[ZLG-ARM] LPC2214的IAP问题

[复制链接]
2771|4
 楼主| zjxzhxzh 发表于 2008-3-21 10:59 | 显示全部楼层 |阅读模式
我在调试LPC2214的IAP功能,因为我的程序分引导程序和用户程序,现发现2个问题没发解决,望知道的同行指点:<br />1、引导程序和用户程序分两个不同的地址加载,引导程序里会调用用户程序,<br />&nbsp;&nbsp;&nbsp;但在编译时会出现问题,当只修改用户程序时,哪怕只改动一点点,重新编<br />&nbsp;&nbsp;&nbsp;译后会发现引导程序的HEX文件也发生了变化,按理引导程序没有修改不应<br />&nbsp;&nbsp;&nbsp;该有变,分散加载地址我没有修改<br /><br />2、在用ISP同时下载引导程序和用户程序时,芯片能正常工作,但如果只下载<br />&nbsp;&nbsp;&nbsp;引导程序时,芯片竟然根本不工作,我是通过在引导程序里让蜂鸣器发声判<br />&nbsp;&nbsp;&nbsp;断芯片是否工作的,引导程序是上电就执行的程序,芯片上电后一点动静<br />&nbsp;&nbsp;&nbsp;都没有,如果把用户程序烧进去,又正常了,用户程序我定位在32K以后的<br />&nbsp;&nbsp;&nbsp;,按理芯片上电工作与用户程序无关的,希望知道的人指点迷津
lpc2000 发表于 2008-3-21 15:30 | 显示全部楼层

用户程序的入口地址如果不变,那

引导程序就不应该变。<br /><br />分散加载只是告诉你用户程序和引导程序在那里。<br />你要好好注意程序的入口地址。编译的时候,产生一个<br />map文件,好好看看用户程序的入口地址。<br /><br />第二个问题,用调试器单步去看看引导程序走那去了。<br /><br /><br /><br />
 楼主| zjxzhxzh 发表于 2008-3-21 19:53 | 显示全部楼层

一样

我写了两个最简单的函数A和B,分别定位在不同的地址,其中A中调B,B里稍微修改一下,A的HEX文件就不同,MAP文件我看过,B的地址没有变化,因为也就这两个函数,根本不会变的,但A为什么会变呢?
lpc2000 发表于 2008-3-22 03:23 | 显示全部楼层

产生两个lst文件,再看看那里变了

别一上来就比较HEX,看看LST文件。<br /><br />A里不就是个“BL&nbsp;0x“B”&quot;指令吗,入口地址0x“B“不变的话,那说明B里还有<br />其它的影响A.<br /><br />
zlgarm 发表于 2008-3-22 10:03 | 显示全部楼层

回复:LPC2214的IAP问题

zjxzhxzh:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;您好!<br />1.&nbsp;限于技术支持的范围及问题的复杂性,将不在版面给您直接回复,请您理解。<br />2.&nbsp;对于您的问题,在周立功网站上已提供一下类似的解决方案,以供用户参考。敬请关注:<br /><a href="http://www.zlgmcu.com/philips/arm/LPC23xx/IAP-yingyong.pdf" target=_blank>http://www.zlgmcu.com/philips/arm/LPC23xx/IAP-yingyong.pdf</a><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;duty:&nbsp;zlgarm_wangguoguang
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部