硬汉嵌入式论坛

 找回密码
 立即注册
查看: 319|回复: 7
收起左侧

[BOOT/IAP] 【求助】app能否调用bootloader中的部分文件

[复制链接]

2

主题

4

回帖

10

积分

新手上路

积分
10
发表于 2024-5-16 17:43:21 | 显示全部楼层 |阅读模式
我在工作时遇到一个问题,项目中需要一个无线协议栈,当工程中包含协议栈后,编译完后rom占用达到了36k,而单片机的flash只有64k。
我们移植协议栈前的flash结构是
8k |    24k  |   32k |
bootloader |  app1   |  app2|

也就是升级的时候把升级文件写到app2区,重启后boot会把app2覆盖掉app1。

而现在,8k boot + 36k app1,剩下的空间已经不足以使用app2这种升级方式了。
计划是将app1变成带协议栈的第二个boot,仅用来组网和升级,app2变成真正的运行区。升级的时候直接把app2擦掉重写,这样就算失败了,有boot2(app1)在也不至于变砖。
问题是这样的app1可能仍然巨大,app1+app2依然会空间不够,所以我想确认下一件事:
app2能不能复用app1中的文件?


回复

使用道具 举报

0

主题

45

回帖

45

积分

新手上路

积分
45
发表于 2024-5-16 22:19:42 | 显示全部楼层
能够获取对应函数的指针,是可以调用,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2024-5-17 09:06:30 | 显示全部楼层
可以使用动态APP管理,APP里面可以不需要集成协议栈,BOOT主程序集成协议栈即可。

APP1和APP2可以调用BOOT主程序的各种函数。就是需要花点时间去学习下。


第4期ThreadX视频教程:单片机动态APP加载玩法,像手机电脑一样加载卸载多个应用软件(2022-05-01)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=112203
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-5-17 09:50:24 | 显示全部楼层
eric2013 发表于 2024-5-17 09:06
可以使用动态APP管理,APP里面可以不需要集成协议栈,BOOT主程序集成协议栈即可。

APP1和APP2可以调用BO ...

感谢大佬,现在的情况是,对方提供的协议栈是 .a库 和 .h头文件,这种情况下我还能完成你说的操作吗,还是说一定需要.c源文件?
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-5-17 09:53:39 | 显示全部楼层
eric2013 发表于 2024-5-17 09:06
可以使用动态APP管理,APP里面可以不需要集成协议栈,BOOT主程序集成协议栈即可。

APP1和APP2可以调用BO ...

还有就是这个方法裸机能用吗,还是说一定需要所说的threadX OS?谢谢大佬
回复

使用道具 举报

2

主题

4

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-5-17 10:00:58 | 显示全部楼层
wm20031015 发表于 2024-5-16 22:19
能够获取对应函数的指针,是可以调用,

大佬,如果只有.a库和.h头文件,没有.c源文件,可以获取对应函数指针吗,还能attibute指定函数固定的位置吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2024-5-18 12:11:31 | 显示全部楼层
yyyiiiaaannn 发表于 2024-5-17 09:50
感谢大佬,现在的情况是,对方提供的协议栈是 .a库 和 .h头文件,这种情况下我还能完成你说的操作吗,还 ...

没问题,可以的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107778
QQ
发表于 2024-5-18 12:12:58 | 显示全部楼层
yyyiiiaaannn 发表于 2024-5-17 09:53
还有就是这个方法裸机能用吗,还是说一定需要所说的threadX OS?谢谢大佬

可以使用ThreadX,也可以使用坛友的这个方案
论坛首发,STM32实现动态加载模组(似于Windows的dll),使用MDK编译动态库类
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109952
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-13 20:43 , Processed in 0.234091 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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