请问版主:IAP程序一定小于8K吗?

zx0083q   2008-11-17 19:00 楼主
IAP程序一定要小于8K吗?
最近我在做程序升级,IAP程序大于8K,做程序升级时老是出错,不知道是不是因为程序大于8K的原因???

回复评论 (9)

IAP程序的大小没有限制

                                 多大都没有问题,100K、200K、500K都可以。
点赞  2008-11-17 21:10

我现在把一些功能删除了,程序代码小于8K

我现在把一些功能删除了,程序代码小于8K,IAP升级代码程序不变,进行升级成功,之前为什么不行?
没真正弄清楚!
点赞  2008-11-18 08:58

如果你使用的ST的源代码

你的IAP的大小需要小于8K,如果你编译ST的代码超过8K,那你需要通过软件对代码进行优化。
为何代码要小于8K见下图:
点赞  2008-11-18 11:06

IAP程序你搞那么大干吗?

                                  
点赞  2008-11-18 11:34

功能多一点

                                 我把USB本地程序下载更新放在IAP程序中.
点赞  2008-11-18 14:28

需要怎样修改向量表才可以使IAP代码大于8K?

ST_ARM:
你好,我看明白了你写的.
能否通过修改向量表来满足iap代码大于8k时也能升级程序?
如何修改?
能否相告?
点赞  2008-11-18 14:44

只需把你的程序代码定位到较高的地址即可

                                 我说的程序代码是你要通过IAP下载的那段代码。
点赞  2008-11-18 14:48

可以修改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

点赞  2008-11-18 16:07

同楼上,另外注意vector的设置,要匹配

                                  
点赞  2008-11-18 16:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复