打印
[ZLG-ARM]

MagicARM2410启动代码中的问题

[复制链接]
1819|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bqt|  楼主 | 2007-6-6 17:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在startup.s中
MRC p15,0,R1,c1,c0,0  ; (MMU设置,异步总线模式) 读控制寄存器
ORR R1,R1,#0xC0000000 ; 当HDIVN=1时操作有效
MRC p15,0,R1,c1,c0,0

应为:
MRC p15,0,R1,c1,c0,0  ; (MMU设置,异步总线模式) 读控制寄存器
ORR R1,R1,#0xC0000000 ; 当HDIVN=1时操作有效
MCR p15,0,R1,c1,c0,0
不然的话CPU就只能以HCLK的频率运行了。(这样的错误是笔误了,不过出现在每一个范例都会用到的启动代码中就有点不太应该了)


还有在target.c中进行了中断向量的的复制
// 复制异常向量表操作        
cp1 = (uint32 *) Vectors;
cp2 = (uint32 *) 0x00000000;
for (i = 0; i < 16; i++)
{
   *cp2++ = *cp1++;
}
2410的中断向量不能remap,在调试中断的时候就不太方便,通常的做法是把各个中断向量固定在SDRAM的末端,发生中断时再通过位于Bank0的Nor Flash中的异常处理程序找到中断入口地址,而周工的程序却不是这样,因为没有研究他们的试验箱,所以推测应该是通过跳线将一片Sram接到了Bank0,取代了原先位于Bank0的Nor Flash,一种比较奇怪的用法,不知道是不是这样

相关帖子

沙发
bqt|  楼主 | 2007-6-8 17:27 | 只看该作者

俺知道了

板子上没有SRAM。
原来调试的时候,周工的班子要从NAND FLASH启动,不能从NOR FLASH启动来进行调试。用了4KB的Steppingstone来映射中断向量。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

bqt

3

主题

82

帖子

1

粉丝