IAP实验配置注意点

IAP功能,简单来说就是用户程序在运行过程中可以做自身的更新,设计者在设计固件程序时编写两个或多个项目程序,第一个程序 不执行正常的操作,只是通过某种通信方式(如通过串口发送)来接收程序或数据,从而对第二个程序进行更新,第二个程序才是项目主要要实现的功能。

具体的IAP介绍不多说,相信不少人也都了解。下面主要说一下,实验过程中的注意问题。

要做这部分实验,首先要明白Flash和RAM,配置过程中会要设置其起始地址和大小,如要知道STM32F103zet6系列芯片Flash为512K,SRAM大小为64k字节。然后根据Bootloader程序和Flash_app程序或SRAM_app程序的大小设置ROM或RAM的地址及大小,即在MDK 的Option选项里面的Target里面设置相应的IRAM1和IROM1。(对Flash 和RAM不熟悉的自己去补一下咯,不然地址什么的就不知道为什么这样配置咯)。

其次一定要在Flash_app里面main函数开始处加上SCB->VTOR = FLASH_BASE | 0xaaaa;(0xaaaa即为你设置的偏移量,FLASH_BASH为Flash的起始地址),或在SRAM_app程序里面的main函数开始处加上SCB->VTOR = SRAM_BASE | 0xaaaa;(0xaaaa即为你设置的偏移量)。

做这个实验有一个步骤是生成BIN文件,因为MDK软件编译只能生成HEX文件,HEX文件不便于通过串口更新程序,故要把HEX文件转为BIN文件,幸运的是MDK内部有相应的程序来生成,就是在MDK安装路径里面的fromelf.exe文件。

通过在MDK 点击 Options for TargetUser选项卡,在 After Build/Rebuild栏,勾选 Run #1,并写入:D:\Worksoftware_path\MDK-path\ARM\ARMCC\bin\fromelf.exe --bin -o E:\IAP_shiyan\LED_SRAM_APP\OBJ\LED.bin  E:\IAP_shiyan\LED_SRAM_APP\OBJ\LED.axf

其中 D:\Worksoftware_path\MDK-path 为我的MDK的安装路径,每个人的都不一样;后面的 --bin -o为fromelf.exe的参数,主要用于生成bin;后面的E:\IAP_shiyan\LED_SRAM_APP\OBJ\LED.bin  和 E:\IAP_shiyan\LED_SRAM_APP\OBJ\LED.axf 分别为自成bin文件和axf文件的路径和文件名,注意:LED.bint和LED.axf中的LED要对应MDK >Option>Output选项里面Name of Executable:选项框里面的LED。另外,bin文件和axf文件的路径和文件名中的路径一定不能出现中文路径和空格,即E:\IAP_shiyan\LED_SRAM_APP\OBJ里面不能有中文路径和空格。配置好后编译成功就会在相应的路径中得到.bin文件,此时你就可以用串口进行发送文件进行更新啦~


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值