根据ARM9的技术手册,ARM9的TCM物理地址可以通过CP15进行设置。我目前使用的是海思的ARM9芯片,海思的手册说明,系统上电后其TCM的物理地址映射在0x0地址段;但linux在tcm_init()函数中将TCM的物理地址通过CP15设置为0xfffe0000开头。我将TCM的物理地址修改为0x0后,再访问会遇到空指针错误。
我的问题:
1.TCM的物理地址是随便可以设置的吗?我的理解应该不能随便设置,但为何海思的手册说物理地址为0x0,而Linux又可以设置为0xfffe0000呢?
2.假设TCM的物理地址可以改变,改变地址之后是否需要插入一个IMB呢?
请有经验的朋友帮忙!谢谢! |