单片机 > 单片机程序设计 > 详情

基于STM32F407的bootloader、IAP、Flash_APP、上位机设计(二)

发布时间:2020-05-26 发布时间:
|

第二部分:Flash_App设计


前期准备:


一、硬件:STM32F407VET6板一块,IAP使用串口通信,板上需引出串口或有DB9接口都行(如果不使用串口,使用其他协议均可)。


二、软件:KEIL4.73版本,关于IAP读写FLASH的源代码是使用战舰的源码,共有iap、stmflash、sys等文件,上位机软件设计使用QT5.5。


工作开始:


三、Flash_App工程中有几个需要修改的地方。


(1):Target里面IROM1,Start修改为0X8010000,这个和Bootload的#define FLASH_APP1_ADDR        0x08010000  一致,Size修改为0xF0000,代表你的APP最大的内存,如果APP过大则不能正常运行,因此需要确认你的APP具体的真实大小再修改该值。


(2):User配置里面RUN#1需要增加fromelf.exe文件,路径在KEIL的安装路径里面,可以下载everything搜索工具搜索即可,例如我的路径F:2.WorkSoftARMBIN40fromelf.exe --bin -o ../../app.bin  ./Flash/Obj/output.axf 


(3):路径后面跟着--bin -o ../../app.bin  ./Flash/Obj/output.axf,表示应用输出一个app.bin文件,文件位置在project的../../上,也就是上一层再上一层的目录下,output.axf表示生成bin文件的来源,在工程的output下。


其它配置均和普通工程相同。


四、程序使用


        在程序上面,配置和正常使用一致,但在最开始需要增加一句SCB->VTOR = FLASH_BASE | 0x10000;//设置偏移量。0X10000是0X8010000同等关系,如果你的APP初始位置不一样,这个地方也需要更改,这段代码表示将FLASH偏移到0x10000中,这样就可以正常使用。


        如果bootloader的外设通过boot按键来做了选择,那么APP模式下bootloader不配置外设(例如IO,TIMER,UART等),APP可以使用任何的系统配置,如果APP模式下Bootloader配置了外设,那么APP尽量不要使用,会互相干扰,比较bootloader也是在跑。


五、生成的bin文件就可以作为上位机下载文件。


关键字:STM32F407  bootloader  IAP  Flash_APP  上位机设计

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM JTAG 调试原理