ok6410裸机代码:mcr p15,0,r0,c15,c2,4的解释

google吧,耗费了半天时间,一点线索都没有,无奈之下,还是对比源程序仔细读手册吧,不过这时换成读arm1176jzf-s的文档了。 终于,在inticpu.s中看到这个指令: 

 ldr     r0, =(Peripheral_base+0x13)     

mcr     p15,0,r0,c15,c2,4 

这两条指令是把外设寄存器的地址告诉cpu的,难道是这里出了问题?于是把闪灯程序挪到这两条指令后面,再试,OK,令人激动的蓝色LED,终于像我的脉搏一样,欢快地跳动起来了。 原来,arm1176jzf-s把memory和Peripheral接口分开了,你需要在初始化时告诉cpu,哪些地址范围是属于Peripheral的,否则它就当memory访问,当然就访问不到属于Peripheral 区间的IO口寄存器了,所以灯也就不闪了。 这个问题,看似短短几句话就说完了,却着实为难了我好几天。


Google到上面的一段话后下载arm1176jzfs_r0p7_trm.pdf打开一看就明白了 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值