[应用相关]

在STM32F10x下利用IAP升级程序步骤

[复制链接]
5818|11
手机看帖
扫描二维码
随时随地手机跟帖
everbright|  楼主 | 2008-8-18 12:09 | 显示全部楼层 |阅读模式

这里只粗要说明简单的步骤。
1.从官方网站下载例程
http://www.st.com/stonline/products/support/micro/files/an2557.zip下载例程后需要根据自己的电路板修改头文件platform_config.h。主要是根据电路板中实际使用的芯片定义页大小、Flash尺寸大小等。如果这里定义的不对,传输的应用程序将不能进行正确写入,可能会产生校验错误。如果是使用B型的STM32xx开发板,则在头文件开始添加以下一句定义即可。
#define USE_STM3210B_EVAL    1
2.编写编译应用程序。并在开发环境里指定应用程序起始地址。我用的是Keil MDK,设置界面如下。
http://images.blog.tom.com/newimg/469/598/2008/0818/1219030841.jpg
3.在common.h里修改ApplicationAddress变量使它的值与实际下载的应用程序起始地址一致。这里定义为#define ApplicationAddress    0x8004000
4.因为MDK不能直接生成二进制文件,所以还需要用其它工具进行转换一下。这里是利用MDK自带的fromelf.exe。在MDK环境下设置步骤为①打开Options for Target ‘xxxx’对话框,选择User标签页;②构选Run User Programs After Build/Rebuild框中的Run #1多选框,在后边的文本框中输入C:KeilARMBIN31fromelf.exe --bin -o ..outputgpio.bin ..outputgpio.axf;界面如下:
http://images.blog.tom.com/newimg/469/598/2008/0818/1219030792.JPG
5.根据STM32 IAP官方应用文档,利用超级终端下载编译好的二制文件。
http://www.st.com/stonline/products/literature/an/13588.pdf
grant_jx| | 2008-8-18 12:19 | 显示全部楼层

改一下你的帖子

抱歉,改了一下你的帖子,主要是增加了图片显示,保留了你的原图片链接显示。

使用特权

评论回复
jammy1982| | 2008-8-21 21:56 | 显示全部楼层

找到更简洁的指令,文件名通用

$KARMBIN31fromelf --bin -o #L.bin #L.axf

使用特权

评论回复
xwj| | 2008-8-21 22:18 | 显示全部楼层

顶!再帮LZ贴下图。

这里只粗要说明简单的步骤。
1.从官方网站下载例程
http://www.st.com/stonline/products/support/micro/files/an2557.zip下载例程后需要根据自己的电路板修改头文件platform_config.h。主要是根据电路板中实际使用的芯片定义页大小、Flash尺寸大小等。如果这里定义的不对,传输的应用程序将不能进行正确写入,可能会产生校验错误。如果是使用B型的STM32xx开发板,则在头文件开始添加以下一句定义即可。
#define USE_STM3210B_EVAL    1
2.编写编译应用程序。并在开发环境里指定应用程序起始地址。我用的是Keil MDK,设置界面如下。

3.在common.h里修改ApplicationAddress变量使它的值与实际下载的应用程序起始地址一致。这里定义为#define ApplicationAddress    0x8004000
4.因为MDK不能直接生成二进制文件,所以还需要用其它工具进行转换一下。这里是利用MDK自带的fromelf.exe。在MDK环境下设置步骤为①打开Options for Target ‘xxxx’对话框,选择User标签页;②构选Run User Programs After Build/Rebuild框中的Run #1多选框,在后边的文本框中输入C:KeilARMBIN31fromelf.exe --bin -o ..outputgpio.bin ..outputgpio.axf;界面如下:

5.根据STM32 IAP官方应用文档,利用超级终端下载编译好的二制文件。
http://www.st.com/stonline/products/literature/an/13588.pdf

使用特权

评论回复
15242026| | 2011-3-9 13:35 | 显示全部楼层
假如要实现远程升级的话,要在两段代码(A、B)之间切换,但是每次升级的时候,编译更新程序就的修改工程配置里面的启动地址。
但是编译的时候,无法确定我要将代码写在那一段(A、还是B?)。现在我遇到了这个问题。难道每次都要准备2个程序?一个是A段,另一个是B段。

使用特权

评论回复
yybj| | 2011-3-9 17:08 | 显示全部楼层
不错,挺有用的

使用特权

评论回复
ziyueyoulang| | 2011-7-26 14:58 | 显示全部楼层
很好的帖子  谢谢   楼主  狂顶!

使用特权

评论回复
baiydcwy| | 2011-9-8 11:20 | 显示全部楼层
资料不错,研究研究

使用特权

评论回复
天罡星lmy| | 2013-2-21 13:26 | 显示全部楼层
mark

使用特权

评论回复
jackcheng1985| | 2013-8-31 11:04 | 显示全部楼层
不错,学习了

使用特权

评论回复
菜鸟宅男| | 2013-8-31 11:17 | 显示全部楼层
学习一下

使用特权

评论回复
xlsbz| | 2014-10-18 21:42 | 显示全部楼层
mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

107

帖子

3

粉丝