arm1136jzf-s把memory和Peripheral接口分开了,你需要在初始化时告诉cpu,哪些地址范围是属于Peripheral的,否则它就当memory访问,当然就访问不到属于Peripheral 区间的IO口寄存器。可以通过ARM11的协处理器cp15来告诉CPU外设寄存器的地址,在ARM11芯片架构手册上可以看到怎样实现该操作:
CRn Op1 CRm Op2
c15 0 c2 0 Data Memory Remap R/W 0x01C97CC8 page 3-162
1 Instruction Memory Remap R/W 0x01C97CC8 page 3-162
2 DMA Memory Remap R/W 0x01C97CC8 page 3-162
4 Peripheral Port Memory Remap R/W 0x00000000 page 3-162
下面的代码就是在初始化是告诉CPU外设寄存器的基地址和地址空间