历史上的今天
今天是:2025年07月24日(星期四)
2019年07月24日 | 基于STM32F407的bootloader、IAP、Flash_APP、上位机设计(二)
2019-07-24 来源:eefocus
第二部分: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文件就可以作为上位机下载文件。
史海拾趣
|
如何改进VRLA蓄电池 铅酸蓄电池研究和发展的主要目的: ——取得最大的放电容量和深放电的运用; ——经历多次充、放电循环后,尽可能能维持最大容量。 铅酸蓄电池的放电反应表述如下: 正极:PbO2+3H++HSO4-+2e→PbSO4+2H2O(1) 负极:Pb+ ...… 查看全部问答> |
|
怡鼎信息科技公司是注册和工作在上海张江高科技园区的年轻公司,公司致力于嵌入式系统的开发工具和教学设备的开发,提供嵌入式产品的一揽子解决方案.公司拥用一个由资深嵌入式系统技术专家和市场人员组成的团队。 公司的理念:诚信做事,积极乐观.分享 ...… 查看全部问答> |
|
赛普拉斯日前针对通过现有电力线进行数据通讯的应用,推出灵活的基于PSoC的可编程解决方案。新型赛普拉斯电力线通讯(PLC)解决方案利用赛普拉斯的 PSoC®可编程片上系统所具有的模拟和数字资源,除通讯功能外还集成了许多功能,例如电源管理、 ...… 查看全部问答> |
|
最近发现一些id在各个板块刷分,虽然分数并没有很大用处,但这种行为破坏了论坛公平的原则,给软件农民工们幼小的心灵造成了伤害,不利于河蟹社会,希望大家回帖时能关注一下,并举报出这些id。 刷粪的家伙们,别以为我会嫌删贴麻烦,只要批量搜索 ...… 查看全部问答> |




