STM32单片机BootLoader
前言
今天我们借用正点原子的的IAP试验例程来分析一下bootloader的原理以及详细过程,为今后相关的IAP功能奠定一定的基础,今后IAP相关的功能都是以此简单原理为基础的。
直接上菜吧,Let‘s go!
一、APP文件的来源
通常我们现在BootLoader工程APP固件文件都是用bin文件,原因我就不多说了,有兴趣的话自行百度吧(这不是今天的重点)。
二、APP文件的传输方式
最简单的方式就是串口直接传输了,就如正点原子的IAP方式,没有加入任何传输协议,简单明了,这是给我们抛砖引玉用的,我们实际项目肯定不会用这种方式去传输文件,因为不加协议的话很容易因为外界干扰导致数据被错误,再一个项目的扩展性和叠加性很差!项目里面有用Ymoden协议的,有用USB的,有用WIFI,GPRS模块等等…大家有兴趣可以自行百度或者等待我后期更新文章。
三、APP文件的载入方式
APP文件的载入方式分为两种:
1.FLASH更新方式
2.SRAM更新方式
下面分别对这两种方式做介绍:
1.FLASH更新方式
直接上代码介绍吧
if(((*(vu32*)(0X20001000+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_write_appbin(FLASH_APP1_ADDR,USART_RX_BUF,applenth);//更新FLASH代码
}
if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
{
iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
}
里一开始我不太明白为什么要
(