[ZLG-ARM] MagicARM2410启动代码中的问题

[复制链接]
 楼主| bqt 发表于 2007-6-6 17:43 | 显示全部楼层 |阅读模式
在startup.s中<br />MRC&nbsp;p15,0,R1,c1,c0,0&nbsp;&nbsp;;&nbsp;(MMU设置,异步总线模式)&nbsp;读控制寄存器<br />ORR&nbsp;R1,R1,#0xC0000000&nbsp;;&nbsp;当HDIVN=1时操作有效<br />MRC&nbsp;p15,0,R1,c1,c0,0<br /><br />应为:<br />MRC&nbsp;p15,0,R1,c1,c0,0&nbsp;&nbsp;;&nbsp;(MMU设置,异步总线模式)&nbsp;读控制寄存器<br />ORR&nbsp;R1,R1,#0xC0000000&nbsp;;&nbsp;当HDIVN=1时操作有效<br />MCR&nbsp;p15,0,R1,c1,c0,0<br />不然的话CPU就只能以HCLK的频率运行了。(这样的错误是笔误了,不过出现在每一个范例都会用到的启动代码中就有点不太应该了)<br /><br /><br />还有在target.c中进行了中断向量的的复制<br />//&nbsp;复制异常向量表操作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />cp1&nbsp;=&nbsp;(uint32&nbsp;*)&nbsp;Vectors;<br />cp2&nbsp;=&nbsp;(uint32&nbsp;*)&nbsp;0x00000000;<br />for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;16;&nbsp;i++)<br />{<br />&nbsp;&nbsp;&nbsp;*cp2++&nbsp;=&nbsp;*cp1++;<br />}<br />2410的中断向量不能remap,在调试中断的时候就不太方便,通常的做法是把各个中断向量固定在SDRAM的末端,发生中断时再通过位于Bank0的Nor&nbsp;Flash中的异常处理程序找到中断入口地址,而周工的程序却不是这样,因为没有研究他们的试验箱,所以推测应该是通过跳线将一片Sram接到了Bank0,取代了原先位于Bank0的Nor&nbsp;Flash,一种比较奇怪的用法,不知道是不是这样
 楼主| bqt 发表于 2007-6-8 17:27 | 显示全部楼层

俺知道了

板子上没有SRAM。<br />原来调试的时候,周工的班子要从NAND&nbsp;FLASH启动,不能从NOR&nbsp;FLASH启动来进行调试。用了4KB的Steppingstone来映射中断向量。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

bqt

3

主题

82

帖子

1

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