OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 426|回复: 5

关于Boot和App共用一份FreeRTOS的疑问

[复制链接]

16

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
563
金钱
563
注册时间
2018-4-16
在线时间
76 小时
发表于 2024-7-4 11:07:47 | 显示全部楼层 |阅读模式
10金钱
目前是Boot和App各自独立的FreeRTOS,这样就导致了最终的Hex有两份FreeRTOS,有没有什么办法让App直接调用App里面的FreeRTOS?比如有没有办法在Boot编译的时候导出个FreeRTOS的函数链接地址啊啥的?或者有什么别的思路?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
563
金钱
563
注册时间
2018-4-16
在线时间
76 小时
 楼主| 发表于 2024-7-4 11:09:13 | 显示全部楼层
写错了,有没有什么办法让App直接调用Boot里面的FreeRTOS?
回复

使用道具 举报

5

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2023-6-26
在线时间
53 小时
发表于 2024-7-4 17:43:57 | 显示全部楼层
boot有必要上系统吗?正常boot就是更新固件,没必要上系统的,app上系统就行了,app是没法调用boot的系统的,是两个独立的程序
回复

使用道具 举报

10

主题

213

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5607
金钱
5607
注册时间
2016-12-19
在线时间
724 小时
发表于 2024-7-5 06:07:48 | 显示全部楼层
合并bin文件,然后用jflash烧录
回复

使用道具 举报

2

主题

446

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4133
金钱
4133
注册时间
2018-5-14
在线时间
902 小时
发表于 2024-7-5 10:47:27 | 显示全部楼层
神的代言人5712 发表于 2024-7-4 11:09
写错了,有没有什么办法让App直接调用Boot里面的FreeRTOS?

确实不好做,提供一个思路:首先要解决链接问题,得先单独编译freertos成库文件,配合链接文件把库在flash中的地址固定。然后写boot和app的时候只包含freertos头文件,也要重写链接文件去链接已经确定flash位置的函数,不然编译器无法找到函数会报错。工程量非常大,而且freertos的全局变量要定义在一个特殊的RAM空间,比如heap数组,不然在app或者boot中可能会出现编译器把你的变量定义到库使用的内存中。总之不推荐这么做
回复

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
401
金钱
401
注册时间
2019-5-5
在线时间
150 小时
发表于 2024-7-5 14:31:25 | 显示全部楼层
可以把freertos单独编译成bin文件,写一个汇编文件,把函数和全局变量可以像中断向量表那样存起来。函数和变量会按照汇编文件里面定义的顺序从bin文件起始位置往后保存,boot和app里面按照地址去调用对应的函数或者变量。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表