ARM内核的做法首先建立开启MMU函数turn_mmu_on所在页的一个平映射,同时创建内核起始地址的线性映射,然后开启MMU,完成turn_mmu_on函数物理运行地址到虚拟运行地址的一个无缝衔接,之后在进行链接地址的跳转。
【平映射的作用:在这一段代码,既可以用虚拟地址访问内存,也可以用实际的物理地址作为虚拟地址访问物理内存,应为这两段虚拟地址都映射到了内核代码】
原文:https://blog.csdn.net/skyflying2012/article/details/48496235
参考:https://blog.csdn.net/skyflying2012/article/details/41447843
内核加载地址通常是 0xc0008000,前面0x8000(32K)留出的物理内存通常会保存BootLoader传过来的参数列表,同时建立的临时页表所占用的16K内存也在这个位置。