+ -
当前位置:首页 → 问答吧 → [问题]建立交叉编译环境,系统环境变量设置问题

[问题]建立交叉编译环境,系统环境变量设置问题

时间:2010-12-18

来源:互联网

下面的宏定义都是获取页面号:
#define pfn_to_page(page) ((unsigned long )((page-mem_map)+PHYS_PFN_OFFSET)) 这里的page为页管理单位的地址,相当于一个指针的值 ,也就数page=&mem_map[x];
#define PFN_UP(x) (((x)+ PAGE_SIZE-1)>> PAGE_SHIFT) 这里的x是分配给页的物理的起始地址.

那这里就有疑问了,对于物理地址为x对应的页面号为x>>PAGE_SHIFT(12),而mem_map[]对应的下标同样也为页面号(mem_map[0]对应的页面号为0,并且对应的物理地址范围为【0:0xfff】),那么page-mem_map也就是对应的下标(也就是页面号了),为什么还需要+PHYS_PFN_OFFSET((0xc0000000UL))呢?


请指教,谢谢!

作者: yfl8640   发布时间: 2010-12-18

热门下载

更多