Linux应用层操作寄存器

内核配置devmemdevmem命令依赖于/dev/mem设备节点,需要在linux内核中打开/dev/mem的配置:
device drivers --- > character devices --- > [*] /dev/mem virtual device support
linux应用层操作寄存器除了直接使用devmem,我们也可以在linux应用层自己实现一个devmem。
devmem的实现原理,就是打开/dev/mem,然后通过mmap映射物理地址,从而实现读写寄存器。因此,我们只要实现这些操作,就可以自己实现类似devmem的功能。
例如,在linux应用层读取物理地址为0x40000000的值:
#include #include #include #include #include #include #include #define map_size 0x80000#define base 0x40000000int main(int argc, char **argv){ int fd = open(/dev/mem,o_rdwr|o_ndelay); if (fd < 0) { printf(open /dev/mem error!n); return -1; } void *map_base = mmap(null,map_size,prot_read|prot_write,map_shared,fd,base); if (map_base == map_failed) return -1; printf(%x n,*(volatile unsigned int*)(map_base)); close(fd); munmap(map_base,map_size); return 0;}总结devmem是一个很常用的工具,主要给驱动开发人员在linux应用层调试使用。devmem不仅仅是访问寄存器,只要有权限访问某个物理地址,就可以使用devmem,方便我们调试。

华为P10闪存门最新消息:华为P10闪存门事件道破了小米饥饿营销的秘密,魅族也来补刀
创通联达5G+AI+Edge方案惊艳亮相日本IT贸易展
是德科技中标中国移动终端公司 蜂窝物联网射频和RRM一致性测试系统
UPS的容量选择需要注意什么
高通骁龙845工程机与市面上多种型号手机对比
Linux应用层操作寄存器
人工智能教育普及也要从娃娃抓起 为学生终身学习和发展奠定基础
海能达被判向摩托罗拉支付损害赔偿53亿元
rfid技术会是怎样的
阀控式铅酸蓄电池技术特点
【教程】40G MTP-LC光纤配线架实现4x10G LC布线
深圳市英唐智能控制股份有限公司企业详情
蓝牙耳机什么牌子的性价比较高?高性能降噪蓝牙耳机推荐
MacBook拆解:满城尽带玫瑰金
太阳能逆变器用的精确的电流测量
家庭用电一千瓦等于几个电流
什么是DAS?
剖析声学成像仪在高压局部放电中的应用原理
OPPO将推出新款智能手表和智能耳机
OnePlus确认了OnePlus 8T 5G的发布日期