2019-10-16 03:23发布
513393302@qq.co 发表于 2016-7-11 17:01 可以用软件复位。无论是硬件复位还是软件复位,单片机都是从FLASH起始地址开始执行的,Bootloader代码一 ...
xiaoyu_stm32 发表于 2016-7-13 10:19 谢谢您的解答。还有个疑问,是不是程序运行过程中,用通信串口发送升级程序时,直接调用iap_write_appbin ...
最多设置5个标签!
谢谢您的解答。还有个疑问,是不是程序运行过程中,用通信串口发送升级程序时,直接调用iap_write_appbin将升级程序写入FLASH中,并且清楚标记,进行软件复位,Bootlasder中执行时调用iap_load_app,并且将标记写上,开始执行升级后的程序。不知道我理解的对不对。
比如 在FLASH起始地址偏移 0X4000处 为 FLASH标记 如果此地址的值是0X55表示已经有用户代码了 不用进行IAP了
Bootloader代码中,先初始化,再判断FLASH起始地址偏移0X4000处是不是0X55,如果不是就进行IAP,执行完IAP后,在FLASH起始地址偏移0X4000处写0X55,然后跳到用户代码。
用户代码里,你可以加入一个升级检测,当检测到需要升级的时候,先把FLASH起始地址偏移0X4000处的0X55擦除,然后启动软件复位
一周热门 更多>