OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3042|回复: 2

一个简单高效的BootLoad,让代码在内存里运行(F407)

[复制链接]

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
发表于 2019-4-2 22:20:40 | 显示全部楼层 |阅读模式
本帖最后由 kmmyk 于 2019-4-8 08:59 编辑

让代码在内存里运行,有几个好处1、学习期间,每改一个变量都想烧写,会频繁烧写flash,而通过串口,把代码放到内存里运行,可以避免这样的事。
2、速度非常快,比ST-link还快几倍。
3、可以不用随时再带上ST-Link 或是别的下载器。
4、程序在F407ZGT6上编译通过
5、通过串口921600的波特率加载APP,加载完成自动运行。
6、APP的要求:
        ROM:0x20008000,size:0x18000,在keil的Target页面设定
        RAM:0x20000000,Size:0x8000,在keil的Target页面设定
        编译的文件不超过96K,占用内存不超过32K,编译好看信息:程序大小=Code+RO-data;  内存约等于:ZI-data
        APP需要转换为bin文件:        工作在keil安装目录下的arm/armcc/bin/fromelf.exe
        命令:(x:\xxxx\keil\arm/armcc/bin/fromelf.exe   --bin -o xxxx\object\xxx.bin    xxx\object\xxx.axf)
        (具体方法见原子哥的教程)。
7、为了减少资源占用,我没有使用printf,自己实现了字符串和数字的输出。

8、我在程序放了一个usart.bin,可用来测试下载,运行效果是定时器中断实现流水灯和串口输出字符串。波特率都是921600哦。
9、如有问题,欢迎加入群聊:117886451,或是电子邮件:kmmyk@qq.com
原代码分享
F4_BootLoad.rar (436.17 KB, 下载次数: 75)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2018-2-28
在线时间
21 小时
发表于 2019-4-3 08:43:41 | 显示全部楼层
嗯想法不错,可以做个在RAM运行的BOOTLOADR,然后再往FLASH更新升级,。比传统的 2个都放FLASH,升级时候要开机检测什么的方便多
回复 支持 反对

使用道具 举报

0

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2019-3-4
在线时间
4 小时
发表于 2019-4-3 11:51:34 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 04:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表