在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1867|回复: 0

[资料] AT91X40启动引导说明

[复制链接]
发表于 2013-1-18 17:10:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
复位使AT91X40进入引导模式,初始化用户接口寄存器,使其变为缺省直。除了PC为0以外,ARM核内部的其它寄存器无定义。
   AT91X40复位时,存储器映射将NVM放在0页面,片内RAM重定位到0X00300000。片内32位NVM或片外的8/16位NVM映射到0X00000000(片外NVM由NCS0选择)。重映射命令,即重映射寄存器的RCB位写1,可以使AT91X40退出引导模式,存储器映射返回到常规的映射关系。此时0页面处映射为片内RAM,以存放动态的(可修改的)异常向量表。外部的存储器映射到用户在片选寄存器0中定义的地址。注意: 如果这个寄存器没有写入相应的值,将会产生内部的冲突。
   如果要访问外部芯片(即使用NCS1到NCS7),重映射命令是必须的。
   重映射命令执行前后的AT91R40807 内存映射:  
注意:在任何时间,内部的 RAM 和外部的引导存储器都在 2 个不同的地址。
有两个不同的方法执行 Remap 命令。
第一个是标准的。将在引导存储器(与 CS0 联接的)中的程序拷贝到片内 RAM 。
然后 remap 能安全地执行。
第二个是利用 ARM 核的流水线技术。下面的系列描述允许在不拷贝任何代码的情况下
执行 remap 。这个例子被 AT91 库使用, 在文件 \Library\Init\in_reset.s 中。
- 拷贝存储控制器的映像
ldr  r10 , PtInitTableEBI  
mov  r10 , r10 , LSL  #12  
mov  r10 , r10 , LSR  #12
- 装载要跳转的地址
ldr  r12 , PtInitRemap
- 拷贝片选寄存器映像到存储控制器和命令 remap  
ldmia  r10 !,{ r0-r9 , r11 }
stmia  r11 !,{ r0-r9 }
- 在它的新地址跳到 ROM
mov pc, r12
PtInitTableEBI
DCD InitTableEBI
PtInitRemap
DCD InitRemap
PtInitVector
DCD __main
- 程序启动
InitRemap
在这种情况中, " MOV  pc , r12 " 指令在前面的“ STMIA ”执行以前,映射到地
址 0 的外部引导 ROM 中取指。然后 " MOV pc , lr " 执行并且这跳到外部的引导
区 ROM 的连接地址。
/*******************************************************************
在复位期间,BMS和NTRI须保持一个有效的电平。
NTRI的输入电平决定了AT91X40进入正常模式还是三态模式。
BMS告诉芯片引导程序的位置。
        BMS                     启动模式
         1      无片内NVM       外部8位的存储器(CS0)
                有片内NVM       内部的32位NVM
         0                     外部的16位存储器(CS0)
看门狗引起的复位不重新检查BMS和NTRI的电平值。
********************************************************************/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-21 12:30 , Processed in 0.014522 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表