有没有办法在ARM Linux中的/ dev / mem中的特定物理地址上设置中断,如果一个应用程序试图在所选地址中写入,而不是写操作,它会调用我的函数?
澄清
Sam在这里介绍的技术(write_mem()和read_mem())不起作用。我会补充更多详细信息,有人可以提供答案。
我想控制应用程序和物理地址之间的I / O通信。遗憾的是,应用程序直接控制I / O而不使用驱动程序(通过将物理内存映射到映射内存的分配值,例如* value-in-mappedaddress = 0x1F)。我想监视甚至更改应用程序写入物理内存的值。
我有三种方法可以做到这一点:
在物理内存中设置硬件断点(我无法调试应用程序)
改变Page表,以便每次应用程序请求映射内存时,我都会将其写请求发送到其他地方。
通过在映射地址中设置软件断点来直接更改映射地址中的值(应用程序使用mmap2()映射应用程序)
所以现在我必须使用其中一种方法,直到现在我还没有成功。