您尚未登录。

楼主 # 2021-08-17 11:04:44

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 253
积分: 314.5

__PHYS_OFFSET == KIMAGE_VADDR ?

// arch/arm64/kernel/head.S
#define __PHYS_OFFSET   (KERNEL_START - TEXT_OFFSET)

// arch/arm64/include/asm/memory.h
#define KERNEL_START      _text

// arch/arm64/kernel/vmlinux.lds.S
    . = KIMAGE_VADDR + TEXT_OFFSET;

    .head.text : {
        _text = .;
        HEAD_TEXT
    }

因此:
__PHYS_OFFSET = (KERNEL_START - TEXT_OFFSET)
              = (_text - TEXT_OFFSET)
              = (KIMAGE_VADDR + TEXT_OFFSET - TEXT_OFFSET)
              = KIMAGE_VADDR

这两个符号一个叫“物理偏移”,一个叫“虚拟地址”,,最终却是同一个取值??

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn