对于驱动调试有用的两个小工具(devmem2、devkmem)
来源:互联网 发布:js 数字格式化成2位 编辑:程序博客网 时间:2024/05/18 23:12
前段时间一个学习Linux的朋友问我:“可不可以在调试设备驱动的时候,利用一个小工具来查看CPU中寄存器的值?”我当时对他说:“一般都是Printk打印出来的。”后来这个朋友自己去找了资料告诉我:好像用/dev/mem可以实现。后来我自己找了以下相关的资料,发现正好是我当年没有继续学习的《LDD3》的《第十五章 内存映射和DMA》是知识,惭愧惭愧阿~~~~~
后来我开始学习了一下《LDD3》的《第十五章 内存映射和DMA》(内容太多,还在努力),也顺便请教了一下同事。一个比较资深的同事说:已经有这样的工具了,就是利用/dev/mem的,叫做devmem2。后来我自己找了一下这个工具的源码。这个工具的源码简单,google一下到处都是,这里随便给出一两个地址:
http://sources.buildroot.net/devmem2.c
https://dev.openwrt.org/browser/packages/utils/devmem2/src/devmem2.c
我自己下载后顺手搞了个Makefile后打包,分享如下:
devmem2.zip
其实这个工具的原理也比较简单,就是应用程序通过mmap函数实现对/dev/mem驱动中mmap方法的使用,映射了设备的内存到用户空间,实现对这些物理地址的读写操作。使用方法:
- 用法:devmem2 { address } [ type [ data ] ]
- address : 物理地址
- 如果是要修改该地址的数据,需要填入下面的参数;如果只是读取,省略即可
- type :要访问的数据类型 : [b]yte, [h]alfword, [w]ord
- data :想要写入的数据
通过使用,发现IO内存和物理内核都可以读写。
-----------------------------------------------------------------------------------------
在后来的模块调试中,有一次需要查看内核虚拟地址中的数据,我又想起了“/dev/kmem”,直接就在网上找了一个通过这个节点读取(仅支持读取)内核虚拟地址中的数据。经过测试,只适用于内核逻辑地址。
加入Makefile后打包,分享如下:
devkmem.zip
源码下载地址:使用/dev/kmem读取内核变量的值
使用方法:
- 用法: devkmem { address }
- address : 虚拟地址(内核逻辑地址)
-----------------------------------------------------------------------------------------------
/dev/mem和/dev/kmem其实是在同一个驱动中代码中产生的:drivers/char/mem.c
如果想知道具体的情况,建议大家认真学习《LDD3》的《第十五章 内存映射和DMA》,然后自己分析源码。
我对这部分的学习笔记分了好几个部分,尚在更新中:《第十五章 内存映射和DMA》
网上简要的描述:Linux下/dev/mem和/dev/kmem的区别
0
上一篇:输入子系统架构分析
下一篇:sublime text 3 取消自动检查更新的解决办法以及注册的方法
相关热门文章
- 对于驱动调试有用的两个小工具...
- 工作日志--提升效率篇...
- 欢迎诈金花语音报大小工具在Ch...
- 欢迎打麻将语音报大小工具是什...
- 欢迎扑克语音报大小工具在Chin...
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- 对于驱动调试有用的两个小工具(devmem2、devkmem)具体工具见邮件附件(20121007)
- 有用的小工具收集
- 一些有用的-------小工具
- android一些很有用的小工具
- 有用的小工具收藏(1)
- Matlab有用的小工具小技巧
- Sybase ASE中有用的两个小工具(jisql和ribo)
- oracle关于字符集的两个小工具
- oracle关于字符集的两个小工具
- 推荐两个好用的小工具
- 分享倒计时小工具(两个)
- 两个svn小工具
- 记录两个小工具:
- ARM的启动和中断向量表
- 自己动手写一个简单的bootloader
- u-boot-1.1.6源码分析
- mybatis 文档2
- 输入子系统架构分析
- 对于驱动调试有用的两个小工具(devmem2、devkmem)
- mysql5.7.14在windows上的安装及配置
- Windows下安装python版的XGBoost教程(Anaconda)
- Android之Http通信Json生成
- 九个Console命令,让js调试更简单
- sublime text 3 取消自动检查更新的解决办法以及注册的方法
- sgu 332 Largest Circle 求凸n边形内最大圆半径
- 数据结构---线性表的顺序表示和实现
- C/C++串口通信原理及读写与操作
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
艺考准考证丢了怎么办
单招准考证丢了怎么办
6级准考证丢了怎么办
执医准考证丢了怎么办
考研考生号忘了怎么办
证券开户号忘了怎么办
建行卡限额10万怎么办
开通网银不用了怎么办
签了空白按揭合怎么办
信用卡逾期5年了怎么办
银行回执单丢了怎么办
小贷公司起诉我怎么办
工行u盾锁定了怎么办
挂失的卡找到了怎么办
天刀衣服红了怎么办
剑三账号忘了怎么办
剑三总是闪退怎么办
剑灵延迟高怎么办2016
剑灵延迟高怎么办2017
剑灵技能延迟高怎么办
剑灵网络延迟高怎么办
衣服上的环生锈怎么办
黑暗之魂 中毒了怎么办
逗游下载速度慢怎么办
电推剪刀不锋利怎么办
白衣服洗得发黄怎么办
腰突然闪了很痛怎么办
一蹲下膝盖就疼怎么办
蹲久了膝盖疼怎么办
怀孕了外阴痒怎么办啊
我老婆出轨了我该怎么办
老婆有外遇我该怎么办
纸卡在打印机里怎么办
脸上的颧骨太高怎么办?
脸磕了一下淤血怎么办
腿磕到了有淤血怎么办
屁股摔了很疼怎么办
摔了脚踝肿了怎么办
扭了脚肿起来了怎么办
发际线低额头窄怎么办
档案写错了涂改怎么办