<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnEC616_SLM130" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/LearnEC616_SLM130" width="100%"></iframe>
https://mnifdv.cn/resource/cnblogs/iot_documents/STM32%20OTA%20demo.pdf
APP_FLASH_LOAD_ADDR 地址呢是 0x00820000 ; 其实就是咱用户程序(执行具体功能的程序)存放在flash的起始地址 咱的用户程序就是从这个地址开始烧录到flash
看下下面的跳转程序,因为是ARM内核嘛, 所以最终就是要执行程序的复位中断入口地址,
注:falsh是4字节代表一个地址, 地址加1 正好是复位中断地址(如果不理解,说明没有玩转ARM单片机升级....)
BootLoader程序是从flash的 0x00804000 地址开始存储的, 总共 0x00012000(73728字节,72KB)
(说明最底层还有一套程序,这个咱就不关心了)
用户程序是从flash的 0x00820000 地址开始存储的, 总共 0x280000(2621440字节,2560KB)
编译程序的时候其实有个链接文件 xxxxx.ld文件;
现在咱看是如何把BootLoader程序设置到运行在上面说的0x00804000 地址上的
其实就是xxxxx.ld文件控制的哈, 不过咱只需要了解就可以, 咱也不需要改什么.
同样的用户程序也有设置(注意哈,所有的用户程序是在上面的文件夹里面统一设置的)
提示:上面说的这个不必深究, 了解下就可以, 后面应该是用不到去自己调整flash分配