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]
至于为设备内存做二级映射的过程,我将另写一篇做详细记录,因为内容比较多。
ARMLinuxS3C6410架构2 6 35内核内存映 相关文章:
- ARM Linux (S3C6410架构/2.6.35内核)的内存映射(三)(11-09)
- ARM Linux (S3C6410架构/2.6.35内核)的内存映射(四)(11-09)
- ARM Linux (S3C6410架构/2.6.35内核)的内存映射(五)(11-09)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- 基于TMS320DM642的农药喷洒系统(04-22)
- 用DSP56F805 PWM模块输出高频正弦波(05-25)