队长阿超 发表于 2014-7-7 15:15:44

STM32使用bootloader完成IAP升级,堆栈的问题

 在项目中使用了IAP来完成程序的升级,升级的部分由bootloader完成,基本过程如下:
(1)bootloader放在flash的0地址处,而应用程序放在bootloader后面的一段flash中
(2)每次上电后都先运行bootloader,它会检测是否需要升级,并处理升级过程
(3)bootloader中有main函数,应用程序也有main函数,bootloader的main执行的最后一步,是跳转到应用程序的main入口
现在有个疑问,想咨询一下:
我使用的IAR,需要配置bootloader堆栈大小和应用程序的堆栈大小,假设说设置了bootloader的栈大小为A,应用程序栈大小为B,
(1)这两个栈用的是同一片内存吗,还是说两个栈的是相互独立的?
(2)bootloader跳转到应用程序的main之后,bootloader的堆栈还有作用吗,会不会被释放掉?
 
 

发表于 2014-7-8 10:23:08

RE:STM32使用bootloader完成IAP升级,堆栈的问题

堆栈会被释放,他相当于重新启动了一次用户程序。

Eagleson 发表于 2014-7-17 09:11:15

RE:STM32使用bootloader完成IAP升级,堆栈的问题

当执行到应用程序后会释放掉之前配置的栈区。:)

Eagleson 发表于 2014-7-17 09:21:12

RE:STM32使用bootloader完成IAP升级,堆栈的问题

http://blog.csdn.net/yx_l128125/article/details/12992773
还可以参考一下这篇文章:D
页: [1]
查看完整版本: STM32使用bootloader完成IAP升级,堆栈的问题