微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM Linux (S3C6410架构/2.6.35内核)的内存映射(二)

ARM Linux (S3C6410架构/2.6.35内核)的内存映射(二)

时间:11-09 来源:互联网 点击:

码中,内核使用boot memory manager为中断向量表申请一页(4K)内存,并将这页内存映射到虚拟地址的0xffff0000处。对于中断向量表的位置,ARM为操作系统提供了两个选项,可以把它配置到内存的最低地址0x00000000处,也可以把它配置到到地址0xffff0000处,这里所说的地址都是虚拟地址,即经过MMU映射过后的地址。Linux默认选择后者,即高地址。

[c]static void __init devicemaps_init(struct machine_desc *mdesc) {......vectors = alloc_bootmem_low_pages(PAGE_SIZE);......map.pfn = __phys_to_pfn(virt_to_phys(vectors));map.virtual = 0xffff0000;map.length = PAGE_SIZE;map.type = MT_HIGH_VECTORS;create_mapping(&map);[/c] 

至于为设备内存做二级映射的过程,我将另写一篇做详细记录,因为内容比较多。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top