Cstyle的UEFI导读:PEI Image Service

本文介绍了UEFI BIOS固件在XIP模式下的执行环境,特别是如何在PEI阶段通过PEI Core的Image Service将代码从Flash读取到RAM中,并在RAM中执行。固件的各个段在不同阶段的状态、如何初始化RAM以及如何使用PeiImageRead函数进行内存拷贝等关键点进行了阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

===================================================================== 

固件C字营·版权所有·欢迎转载
敬请关注微信公众号:“固件C字营”
敬请关注QQ群:1052307
敬请关注优快云博客:Cstyle_0x007

图片

===================================================================== 

        所谓”固件“原始的定义是被固化的软件。历史上存储固件的介质有很多类似EEROM、Flash等,目前在UEFI固件领域基本都是用的NorFlash,它最大的特点是支持XIP也即片上执行。UEFI BIOS固件基本都是使用SPI接口的NorFlash来存储。目标二进制固件文件通常包括代码段(code)、只读数据段(RO Data)、已初始化读写数据段(RW Data)、BSS段、堆、栈、以及其他的资源段。固件在XIP阶段的代码在链接的时候,链接地址与存储地址是相同的都会是0x00000000,在C代码开始之前通过crt0库把读写数据段(RW Data)拷贝到可读可写的内存、在内存中创建并初始化BSS段,堆、栈,C代码提供基本的运行环境。下表是固件在XIP执行的时候每一个段的状态,RO Data不需要写因此不需要拷贝到RAM当中,同理在RAM没有准备好之前即使是读写数据段也是只读的,再有就是堆段与栈段在内存没有准备好之前也是不可用。

资源类型

状态

固化阶段

初始化阶段

运行阶段

代码段(Code)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值