#define rGPACON (*(volatile unsigned *)0x56000000) //Port A control
在ARM里面我们是通过上面的那种方法来调用寄存器的,但在LINUX移植到开发板的时候我们发现这些寄存器在Linux里面是完全没有用的,得通过__raw_read1(),__raw_writel( , )这两个函数来该读出并写进相应的寄存器。
但在这里我们可以调用一个函数ioremap来将物理地址映射为内存的虚拟地址,然后再取出相应的值。例如:
#define rGPACON (*((volatile unsigned *)(ioremap((volatile unsigned *)0x56000000,4))))
这样我们在写驱动的时候就可以直接将ARM里面的代码拷过来了,本人试过很多次,大体来说都是有用的!!在这里和大家分享下!!
阅读(801) | 评论(0) | 转发(0) |