IAP程序一定要小于8K吗?
最近我在做程序升级,IAP程序大于8K,做程序升级时老是出错,不知道是不是因为程序大于8K的原因???
IAP程序的大小没有限制
多大都没有问题,100K、200K、500K都可以。
我现在把一些功能删除了,程序代码小于8K
我现在把一些功能删除了,程序代码小于8K,IAP升级代码程序不变,进行升级成功,之前为什么不行?
没真正弄清楚!
如果你使用的ST的源代码
你的IAP的大小需要小于8K,如果你编译ST的代码超过8K,那你需要通过软件对代码进行优化。
为何代码要小于8K见下图:
功能多一点
我把USB本地程序下载更新放在IAP程序中.
需要怎样修改向量表才可以使IAP代码大于8K?
ST_ARM:
你好,我看明白了你写的.
能否通过修改向量表来满足iap代码大于8k时也能升级程序?
如何修改?
能否相告?
只需把你的程序代码定位到较高的地址即可
我说的程序代码是你要通过IAP下载的那段代码。
可以修改IAR的*.xcl来改变8K的大小
在使用IAR软件进行开发时,用户的代码使用的*.xcl如下(部分):
/*************** (C) COPYRIGHT 2007 STMicroelectronics *************
;* File Name : lnkarm_flash.xcl
;* Author : MCD Application Team
;* Version : V1.0
;* Date : 10/08/2007
;* Description : XLINK command file template for EWARM/ICCARM
;* Usage : xlink -f lnkarm <your_object_file(s)>
;* :-s <program start label> <C/C++ runtime library>
;*******************************************************************/
// Code memory in FLASH
-DROMSTART=0x8002000 <----- 这里指示用户的代码的起始地址,当前值位于8K的起始地址,用户只需改变该值即可使IAP的代码超过8K。
-DROMEND=0x801FFFF
// Data in RAM
-DRAMSTART=0x20000000
-DRAMEND=0x20004FFF