寄存器地址是如何设定的?能修改吗?
比如说NAND flash的寄存器NFCONF的地址为0x4E000000
这个地址(0x4E000000)是ARM920T这个CPU内定的?
还是设计PCB板时设定(外设寄存器-地址映射关系存放在某个EEPROM里)?
如果扩展一个外设,这个外设的寄存器如何像CFCONF映射到地址?
这个问题困扰我很长时间,那位路过帮忙答疑,万分感谢!!!
17:14:19
NFCONF的地址不能改的,也不是ARM920TCPU内定,是CPU生产商生产时设定的。我认为
17:16:42
"是CPU生产商生产时设定的"
这个CPU不就是ARM920T吗?
17:17:21
也就是说寄存器地址由ARM920T设定?
17:17:42
NAND flash contrlor是外设,不属于CPU部分!
17:20:12
ARM公司设计ARM920T,但并没规定一定带NAND flash contrlor!NAND flash contrlor是半导体公司生产芯片时自己放上去的。我认为
17:25:30
ARM920T本身只有37个寄存器!
17:25:54
寄存器地址是在控制器设定的
这个控制器与不同CPU体系集成的时候给他的各个寄存器设定一个地址,如跟X86体系集成有可能设定地址为:0xA0000000
这个寄存器地址可以修改,但在板子设定后,就不能修改了
可以这样理解吗?
17:27:41
对
17:28:02
好像明白了!
谢谢
17:28:47
寄存器必定是用了CPU地址空间的某个地址!
17:29:44
应该用的是虚拟内存地址的中高位地址放CPU寄存器地址