[讨论] stm32f407 IAP升级

jeansonm   2014-2-18 11:39 楼主
1、串口IAP1.1ISPIAP
ISP在系统编程,STM32F4支持USART1USART3CAN2USB OTG FS在设备模式下编程,即我们经常使用的改变boot方式下载程序。
      IAP在应用编程,通过下载一段引导程序Bootloader程序,如果我们想要从串口或网口等更新应用程序,在Bootloader中初始化相应的串口或网口,使其接收应用程序,将接收到的应用程序写入到Flash里面,IAP完成后跳转到应用程序入口执行应用程序。
1.2、串口IAP设置说明
本次实验目标板使用红龙407开发板,其引出串口为串口3,将红龙开发板串口3与电脑相连,打开电脑超级终端,先将引导程序通过jlink等仿真器下载到开发板,按住S3键后复位开发板,D1灯亮并通过串口输出如下菜单,输入“1”开始等待接收APP程序
主菜单.png

点击发送文件,选择APP程序的bin格式文件,并选择传输协议为Ymodem,发送文件
发送bin文件.png
显示发送进度及错误等
等待发送.png

程序更新完成,输入“3”开始执行用户程序
发送成功.png
1.3、应用程序设置注意事项
我们需要开发板实现功能的程序,其中应用程序主要分为两种:hex文件和bin文件。在我们经常使用的KEIL中默认编译生成的可执行文件(应用程序)为hex格式的,若需要编译生成bin格式需要做如下修改,加入“D:\Keil\ARM\ARMCC\bin\fromelf.exe --bin --output ./Obj/Gpio.bin ./Obj/Test.axf”,重新编译生成的Gpio.bin文件存放在Obj文件夹下。
生成bin文件.png
ROM空间区别,普通程序的ROM空间从0x8000 0000开始,而在IAP下的应用程序的起始地址则是IAP跳转的地址,这里我们的引导程序跳转到应用程序的地址为0x801 0000,因此设置ROM空间起始地址为0x801 0000,如下图
修改ROM.png
中断向量表,普通程序若是从Flash启动,则中断向量表的偏移地址为0,而在IAP的应用程序中需要设置新的中断向量表,偏移地址即IAP程序存放的地址与应到程序的地址偏移即0x801 0000-0x800 0000,在程序中做如下设置SCB->VTOR = FLASH_BASE | 0x10000;//设置中断偏移
修改中断向量表.png
游客,如果您要查看本帖隐藏内容请回复




回复评论 (47)

可不可以通过can升级程序啊?
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2014-2-18 12:29
引用: chenzhufly 发表于 2014-2-18 12:29
可不可以通过can升级程序啊?

红龙407 CAN IAP.rar (12.41 MB)
(下载次数: 1016, 2014-2-21 15:15 上传)



点赞  2014-2-21 15:16
不错
点赞  2014-2-25 15:17
可不可以通过can升级程序啊?
点赞  2014-2-25 20:08
受教
点赞  2014-2-28 14:48
学习下
点赞  2014-3-11 14:37
后哈哈哈哈
点赞  2014-3-15 20:26
学习下
点赞  2014-3-26 11:54
不错
点赞  2014-4-4 14:25
好好学习  天天向上
点赞  2014-4-7 22:32
参考一下。
点赞  2014-4-26 18:13
一个项目要用IAP,正在找这玩意,感谢楼主慷慨分享
点赞  2014-5-4 23:16
学习了 ,谢谢分享。
点赞  2014-5-25 22:45
希望是修改后的源码……
点赞  2014-5-26 11:04
引用: yang坤兴 发表于 2014-5-26 11:04
希望是修改后的源码……

可以直接使用的
点赞  2014-5-26 17:40
RE: stm32f407 IAP升级 [修改
点赞  2014-6-4 14:50
楼主 我自己做的APP程序有什么特别需要设置的吗????
点赞  2014-6-6 16:48
引用: 霹雳火 发表于 2014-6-6 16:48
楼主 我自己做的APP程序有什么特别需要设置的吗????

需要修改中断向量表和ROM空间地址,其他的和普通程序一样
点赞  2014-6-6 16:53
不错
点赞  2014-6-7 17:14
123下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复