【BIOS/UEFI】PCD配置和使用

PCD是平台配置数据库,用于配置代码中的可变数据,减少维护工作量并增强代码复用。它包括不同类型的PCD如FixedAtBuild、Dynamic等,允许在运行时修改。PCD的数据类型包括BOOLEAN、UINT等,并在DEC、INF和DSC文件中声明和使用,通过PcdLib提供读取和修改接口。

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

概念

        PCD(Platform Configuration Database,平台配置数据)就是抽取出代码中可配置的数据而不修改源代码。类似于C语言中的宏,降低了代码维护的工作量,增加了可复用性。不同于宏的是,有些PCD(动态PCD)可以在代码运行的时候修改。

PCD常用类型

  •  所谓模块级别就是在不同的模块中可以有不同的值;在Boot阶段不可修改类似于宏定义或者用const修饰的变量;FeatureFlag比FixedAtBuild更加特殊,它的值只能是Boolean的TRUE或者FALSE,可以看作是Boolean类型的FixedAtBuild;
  • PatchableInModule类型的PCD值在Boot阶段可以修改,可以用于以二进制形式发布的模块中;
  • Dynamic和DynamicEx是系统级的、动态的,在整个boot过程中可以被修改,同时在整个系统中都能生效。DynamicEx类的PCD主要用在二进制文件中使用到PCD的情况,可以实现跨平台访问和修改以二进制发布的驱动中的PCD的值。

Dynamic分为三类:

  1. DynamicDefault:存在于Mem/Hob中,下次启动时,更改的值就丢失了,从默认值开始启动;        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值