【驱动】TI AM437x(内核调试-07):devmem2直接读写内存、寄存器,devkmem读取内核变量

1、/dev/mem 和 /dev/kmem

1)/dev/mem: 物理内存的全镜像。可以用来访问物理内存

2)/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。kernel部分内存用户空间本不可访问。但是因为所有进程共享内核空间的页表。所以内核虚拟地址对应物理地址是确定的。kmem的作用即是根据kernel的虚拟地址,找到对应的物理地址,再将物理地址映射到用户空间。这样访问映射的虚拟地址,即访问内核对应的内容。

3)区别:
/dev/mem: 物理内存的全镜像。可以用来访问物理内存。
/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。

4)作用:
前者用来访问物理IO设备,比如访问显卡的物理内存,或嵌入式中访问GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址来访问物理内存。这其实就是实现用户空间驱动的一种方法。
后者一般可以用来查看kernel的变量,或者用作rootkit之类的。

2、内核配置

Device Drivers → Character devices → /dev/kmem virtual device support
在这里插入图片描述

3、devmem2

1)使用方法
注意:该工具一次只能读/写1个寄存器


 

                

相关推荐

  1. ARM/CM3/CM4:内核寄存器内核特殊寄存器

    2024-01-26 07:32:01       29 阅读
  2. QT Sqlite 内存模式 简单

    2024-01-26 07:32:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 07:32:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 07:32:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 07:32:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 07:32:01       18 阅读

热门阅读

  1. nrm-npm包版本管理和详细安装和使用教程

    2024-01-26 07:32:01       35 阅读
  2. 使用uniApp+vue3+Vite4+pinia+sass技术栈构建微信小程序

    2024-01-26 07:32:01       34 阅读
  3. SpringBoot ResponseBodyAdvice使用以及常见问题

    2024-01-26 07:32:01       33 阅读
  4. 前端学习之——react篇(条件渲染)

    2024-01-26 07:32:01       44 阅读
  5. Dockerr开发环境搭建

    2024-01-26 07:32:01       36 阅读
  6. 阿里云centos安装mysql,并修改初始密码

    2024-01-26 07:32:01       42 阅读
  7. SQL中的DML、DDL以及DCL是什么?

    2024-01-26 07:32:01       37 阅读
  8. 常用的gpt-4 prompt words收集7

    2024-01-26 07:32:01       33 阅读
  9. centos搭建离线仓库

    2024-01-26 07:32:01       34 阅读
  10. Git进阶

    2024-01-26 07:32:01       36 阅读