主题 : 请问嵌入式内存映射,virt_to_phys(high_memory)这个怎么理解呢? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 22374
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
综合积分: 18 分
注册时间: 2010-05-31
最后登录: 2017-09-13
楼主  发表于: 2011-02-11 19:46

 请问嵌入式内存映射,virt_to_phys(high_memory)这个怎么理解呢?

版主大人,最近遇到一个问题,想向你请教一下
high_memory这个在我们的嵌入式开发里面指的是什么?
virt_to_phys(high_memory)这句是什么意思,把高端地址由虚地址转为物理地址?高端地址我在百度谷歌上都没查到一个比较好的解释,一些说是大于1024K-1088K的这64K为高端地址,有些又是说的linux下大于869的为高端地址……
我们的嵌入式开发板只有64M的内存,我理解的是即使映射后,系统可以访问0-4g的虚拟内存空间,0-3G为用户空间,3-4G为内核空间,无论我们的程序是用户空间还是内核空间,在运行时都会由虚转物理后调入64M的物理内存中执行是吧,那么高端地址是位于用户空间还是内核空间呢?目前我正在看嵌入式IO映射这块,有些不明……麻烦你

写了段代码,在开发板中运行:
printk("high memory virt_to_phys(high_memory address (0x%ld)\n",virt_to_phys(high_memory));

开发板显示:
high memory virt_to_phys(high_memory address (0x872415232)  
//872415232 / 1024 / 1024 =832
这意味着什么?