[ZLG-ARM] 请教周公向量问题。

[复制链接]
 楼主| kk1271 发表于 2007-2-28 09:20 | 显示全部楼层 |阅读模式
;中断向量表<br />Vectors<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;ResetAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;UndefinedAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;SWI_Addr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;PrefetchAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;DataAbortAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xb9205f80&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;[PC,&nbsp;#-0xff0]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;FIQ_Addr<br />这是你们在ads模版中的向量表,可是在keil生成的向量表中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xb9205f80&nbsp;&nbsp;被定义为nop指令。我的问题是:不是说中断向量和为0!<br />但是keil里这样中断向量和不时就违反这样的规则了吗?<br />请给解释一下!xiexie
zlgARM 发表于 2007-2-28 13:44 | 显示全部楼层

RE

芯片复位后,首先执行bootloader。<br />要根据bootloader的处理流程来判断0x14处填写的值。<br /><br />比如,LPC2200系列芯片的bootloader要通过检查0x14处的值来决定是否运行用户自己编写的程序。这个时候,可能就要填写&nbsp;DCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0xb9205f80&nbsp;&nbsp;。<br /><br />但不同芯片的bootloader是不同的。要看具体芯片的bootloader是如何处理的,要确定这一点只要做试验就知道了。
computer00 发表于 2007-2-28 15:07 | 显示全部楼层

ISP软件可能会帮你干这件事的

你可以写个简单的程序,将地址0x14里面的内容读出来,然后通过串口发出来看看?
 楼主| kk1271 发表于 2007-3-1 08:29 | 显示全部楼层

??

我指的就是LPC2200&nbsp;我是在keil中查看反汇编才发现向量和不为零,0x14不为0xb9205f80!而是nop指令所生成,但程序可以正确脱机运行,希望周公给看看
zlgARM 发表于 2007-3-1 09:43 | 显示全部楼层

re

LPC2210/2212/2214&nbsp;复位时会执行BOOTLOADER。<br /><br />当用户代码位于片外bank0时,BOOTLOADER不会检查用户代码是否有效。<br /><br />楼主用的芯片是LPC2210吗?2210是没有内部FLASH的,所以BOOTLOADER不会检查向量和,用户代码自然能脱机运行。<br /><br />
computer00 发表于 2007-3-1 22:04 | 显示全部楼层

看看这个讨论

  <br /> 相关链接:<a href='http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2033379'>http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2033379</a>
zlgARM 发表于 2007-3-2 08:45 | 显示全部楼层

re

如果不用ISP,是需要注意我在5楼发表的帖子的。<br />做过了实验,如果用H-JTAG烧写程序到LPC2214的内部flash,累加和不为0则用户程序不能运行。
 楼主| kk1271 发表于 2007-3-2 09:53 | 显示全部楼层

??

谢谢oo提供的资料!原来nop指令是正确的!“keil&nbsp;realview,&nbsp;是ADS的升级版。只要将Reserved&nbsp;Vector&nbsp;保持为nop即可,不必计算累加和,累加和由flash&nbsp;utility计算.”<br /><br />周公做的用H-JTAG烧写程序到LPC2214的内部flash的实验<br />应该是用的你自己的ads模版?<br />另外我想说ads的rv是2.0的,而keil的rv都已经3.0了!而周公还在使用ads!<br />是不是有点。。。。~~~!据我所知ads都是学习使用,做开发的话好像很少有人用!希望你们在keil上多提供一些技术支持!
zlgARM 发表于 2007-3-2 16:18 | 显示全部楼层

RE

谢谢您提意见。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

26

帖子

0

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

10

主题

26

帖子

0

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