加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 综合聚焦 > Linux > 正文

从linux内核访问物理内存

发布时间:2021-02-21 10:14:07 所属栏目:Linux 来源:互联网
导读:我们可以通过一些内核代码访问任何物理内存吗?因为,我写了一个只有init_module和exit_module的设备驱动,代码如下. int init_module(void) { unsigned char *p = (unsigned char*)(0x10); printk( KERN_INFO I got %u n, *p); return 0;} 和一个

我们可以通过一些内核代码访问任何物理内存吗?因为,我写了一个只有init_module和exit_module的设备驱动,代码如下.

int init_module(void) {
    unsigned char *p = (unsigned char*)(0x10);
    printk( KERN_INFO  "I got %u n",*p);
    return 0;
}

和一个虚拟的exit_module ..问题是当我做lsmod时计算机挂起..
怎么了?我应该得到一些访问mem位置的许可吗?

亲切的解释..我是初学者!

解决方法

要访问实际物理内存,您应该使用phys_to_virt函数.如果是io内存(例如PCI内存),则应仔细查看ioremap.

这个整个主题是非常复杂的,如果你是一个初学者,我会建议一些内核/驱动程序开发书/文档.

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读