Stm32的bootloader和App的编写注意事项
1、 怎么分配bootloader和app的空间
2、 怎么得到数据和写入flash
3、 怎么从bootloader跳转到app
4、 怎么设置App的中断向量
5、 App中怎么生成bin文件
6、程序执行的流程
1、怎么分配bootloader和app的空间
因为我用的是stm32f103c8t6,它的flash的大小是64k,所以把它分成如上所示
0x08000000 —0x0800 33FF分配给bootloader使用,大小是13k
0x0800 3400----0x080097FF分配给第一个APP的使用,大小是25k
0x08009800----0x0800 FBFF分配给第二个APP的使用,大小是25k
0x0800FC00----0x0800 FFFF 分配给user_flag和其它标志使用,大小是1k
在keil中设置rom的大小
A、bootloader中rom大小的设置
B、APP1中rom大小的设置
C、APP2中rom大小的设置
Rom设置好了就可以在map中看见地址的改变,这里拿bootloader和app1来说。
Bootloader的map
App1的map
这里就可以看到RESET的地址改变了
但是要想我们改变的rom在map中也改变keil里面必须要设置如下图,
这里必须要打勾,默认新建的工程是没有选择的
2、怎么得到数据和写入flash
在我的程序是通过串口接收数据,然后调用app_bin_handler(&timer);函数来在里面完成写fla