STM32的IAP方法,如何写SRAM程序?

2019-07-21 07:54发布

本帖最后由 autoav 于 2018-11-13 16:10 编辑

我是一个STM32F103RBT6+SIM800C的项目,需要增加网络更新固件的功能。
已经实现服务器发送固件通过SIM800C传输到SFLASH中。
现在需要实现的是STM32的IAP功能,我这两天看了原子哥的《实验47 串口IAP实验》,觉得有点麻烦,我的思路是:在原始项目中,增加一段SRAM代码(2~3K),在此代码中实现将SFLASH中的固件写入原始FLASH中,写入完成后复位,程序从头开始运行即可。
此方法与《实验47 串口IAP实验》相比更简单,不用管什么中断向量表,也不用管bin文件合并,当然风险是万一失败,就比较麻烦。
我的问题是:如何写一段SRAM程序?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
szczyb1314
1楼-- · 2019-07-21 07:54
单独新建一个.c文件,右击文件选择option for file xxx,在properties中的memory assignment中将code/const选为你的ram区应该就可以了,编译后去看看.map文件,看看你的函数应该就在ram区了
szczyb1314
2楼-- · 2019-07-21 12:11
 精彩回答 2  元偷偷看……
autoav
3楼-- · 2019-07-21 16:41
szczyb1314 发表于 2018-11-13 16:21
你试试,成功与否都分享下结果

sram中写代码不会,最后改为将BootLoader程序放在flash末尾,这样就无需管什么中断向量表之类。整个项目是一个文件。
具体在
http://www.openedv.com/forum.php?mod=viewthread&tid=282836
szczyb1314
4楼-- · 2019-07-21 19:13
autoav 发表于 2018-11-14 17:58
sram中写代码不会,最后改为将BootLoader程序放在flash末尾,这样就无需管什么中断向量表之类。整个项目 ...

正常的写啊,只是改下文件的属性。编译成功后函数的地址会分配到ram区,.sct文件里会看到装载时你的这个.o文件是装载在ram区

一周热门 更多>