社区
Linux_Kernel
帖子详情
直接读取寄存器地址时,REG() 还是REG32~~
xiaoke3344
2008-12-09 09:33:48
如题:
直接读取寄存器地址时,REG() 还是REG32~~ 2者区别?
直接在源码中 读取, REG(0x00000f4)
用到这些需要什么头文件~~
...全文
985
7
打赏
收藏
直接读取寄存器地址时,REG() 还是REG32~~
如题: 直接读取寄存器地址时,REG() 还是REG32~~ 2者区别? 直接在源码中 读取, REG(0x00000f4) 用到这些需要什么头文件~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
x86
2008-12-10
打赏
举报
回复
readl不是命令或者系统调用,man找不到的。
#define __raw_readl readl
所以__raw_readl也是readl
#define readl(x) __readl(x)
最后的定义是
static __always_inline __u32 __readl(const volatile void __iomem *addr)
{
return *(__force volatile __u32 *)addr;
}
所以实际上你也可以直接操作内存指针,不过不知道那些修饰符会不会有特别的影响。
用grep -r可以很容易找到一个定义的
xiaoke3344
2008-12-09
打赏
举报
回复
那那这样子的话,直接用 readl/writel 函数 可以替代了?
需要什么头文件吗?
我man readl 找不到信息
x86
2008-12-09
打赏
举报
回复
grep -r REG32 .
“.”在最后。
估计最后都会去调用readl指令去读寄存器。
x86
2008-12-09
打赏
举报
回复
这个多半都是宏,你grep一下源码看看怎么定义的
在kernel源码目录下,
grep -r . REG32
xiaoke3344
2008-12-09
打赏
举报
回复
??顶下
xiaoke3344
2008-12-09
打赏
举报
回复
怎么直接修改寄存器地址里的存储的值
??
joyself
2008-12-09
打赏
举报
回复
寄存器不是映射到memory空间的嘛?
用__raw_readl或者它的朋友们-- __raw_readw等,呵呵。。。。
linux arm
寄存器
进行读写的操作
之前对
寄存器
读写进行过操作,后面又忘了,这次做个记录: 当我们知道
寄存器
的物理
地址
时
,我们不可以
直接
使用物理
地址
。不使用物理
地址
是因为我们使用了虚拟内存
地址
对实际的物理
地址
进行虚拟化管理。 假设我们知道某个
寄存器
的物理
地址
是:0x302c0038 如果我们要操作这个
寄存器
,就需要对这个
地址
进行内存映射:ioremap void reg_set(u32 phy_reg_addr, u32 ...
CC2541 硬件I2C
读取
寄存器
返回值错误
CC2541 硬件I2C
读取
寄存器
返回值错误 做的项目需要用到CC2541的硬件I2C功能,使用的是TI的I2C驱动。但是调试
时
读取
不同
寄存器
的数据全都一样,用示波器监控信号
时
发现:
读取
寄存器
地址
时
发送的从机
地址
和
寄存器
地址
都正确,而且从机也应答了并且返回从机
地址
+数据,当
读取
不同
寄存器
数据
时
返回的却都是从机
地址
+固定的一串数据。。猜测硬件的I2C可能
读取
数据
时
错误 所以试了下用SDA、SCL的...
C语言
直接
操作
寄存器
物理
地址
的方法
读
寄存器
值: u32RegValue = *((uint32 volatile *)(reg_addres)); 写
寄存器
值: *((uint32 volatile *)(reg_addres)) = value;
基于MODBUS协议的
读取
寄存器
内容的C++实现
基于MODBUS协议的
读取
寄存器
内容的C++实现 #ifndef _MSC_VER #include <unistd.h> #endif #include <string.h> #include <stdlib.h> #include <errno.h> #include "modbus.h" #include<stdio.h> #i...
SSD 中通过#define定义
寄存器
地址
并
直接
访问
需要注意的是,在访问和操作 HOST register definition
时
需要确保
地址
的正确性,并且需要按照控制器的规格书要求进行读写操作。在使用 HOST register definition
时
,还需要考虑多线程、同步和错误处理等问题,以确保程序的正确性和稳定性。定义好 HOST register definition 以后,可以通过宏定义的名称来
直接
访问和操作
寄存器
。然后,使用 HOST register definition
读取
和写入
寄存器
的值,并输出当前值和写入后的值。
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章