ARM LINUX内核如何确定自己的实际物理地址

本文档详细介绍了ARM Linux内核在不同版本中如何确定实际物理地址,涉及旧内核中通过KERNEL_RAM_PADDR宏及新内核中通过计算TEXT_OFFSET的方法。在新内核中,创建临时页表时,物理地址是通过添加TEXT_OFFSET和物理地址得到。同时,文章展示了代码段,包括设置页表基地址、物理地址与虚拟地址的转换等步骤。
摘要由CSDN通过智能技术生成

新旧内核有所不同

在旧的内核是通过宏KERNEL_RAM_PADDR来确定

  1. .macro    pgtbl, rd  
  2.   
  3.        ldr   \rd, =(KERNEL_RAM_PADDR - 0x4000)  
  4.   
  5. .endm  

  1. __create_page_tables:  
  2.   /* r4 = KERNEL_RAM_PADDR – 0x4000 = 0x30004000 
  3.    * 后面的C代码中的swapper_pg_dir变量,它的值也指向0x30004000 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值