当前位置: 技术问答>linux和unix
很简单的问题,如何给一个寄存器赋值
来源: 互联网 发布时间:2016-07-28
本文导语: 小弟最近在尝试学写驱动,有个很简单的问题,比如我想往某个寄存器里(地址0x9000000)写入0001,应该怎么写,给个代码 谢谢 | 这个不一定吧 如果寄存器地址需要先映射呢? 那么只有映射后才可...
小弟最近在尝试学写驱动,有个很简单的问题,比如我想往某个寄存器里(地址0x9000000)写入0001,应该怎么写,给个代码 谢谢
|
这个不一定吧
如果寄存器地址需要先映射呢?
那么只有映射后才可操作的
对于其地址最好不要直接操作 而是用相应的 read write系列函数操作
如果寄存器地址需要先映射呢?
那么只有映射后才可操作的
对于其地址最好不要直接操作 而是用相应的 read write系列函数操作
|
unsigned char *p=(unsigned char *)0x9000000;
*p=0x0001;
*p=0x0001;
|
如楼上所说,需要先映射到虚拟地址
至于读写,推荐使用__raw_readl 和 __raw_writel之类的函数/宏
至于读写,推荐使用__raw_readl 和 __raw_writel之类的函数/宏
|
const volatile unsigned int *reg_1=(unsigned int *)0x9000000; /* 这样更安全 */
*reg_1 = 0x0001;