1.程序说明:
调试驱动程序时,经常遇到候需要查看或设置寄存器的情况,但是直接更改内核代码又不方便。
这里提供一个应用程序源码能在应用层访问底层寄存器。(网上找到的,进行过更改)。
这里只提供4字节数据的访问,如果需要其他字节宽度则需要更改代码。
line40 增加了O_DSYNC标志,防止cache导致数据写入不及时。
2.应用程序源码
- 内核设备文件实现
内核源码位置:/drivers/char/mem.c
/dev/mem设备文件mmap函数实现:
phys_mem_access_prot函数获得映射内存访问权限
O_DSYNC标志将会使用不带cache的映射方式,该标志在打开设备文件时指定。
Original: https://www.cnblogs.com/fanguang/p/12284202.html
Author: 反光
Title: linux 应用程序直接读写寄存器或物理内存
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578085/
转载文章受原作者版权保护。转载请注明原作者出处!