拓展作业(一)

前言:

  无意在网上看见@Hi,Hubery的博客,他也是在培训三个月后开始写博客。我不知道他在哪家公司,但他自己写了一下成长结点。感谢他的分享,我觉得我也要做些东西出来,就把他的结点过一遍,解答出来。

题目:

1.Define PCD and Configure PCD 如何定义一个PCD以及使用PCD

解答:

在我培训完后的写的一篇博客Setup页面相关探索中,我修改了Timeout的数值。

但这里要求会更多一些,就参考PcdPlatformBootTimeOut去重新定义一个。

首先在MdeModulePkg\Include\Guid下定义一个DavidTokenSpace.h

/** @file
  GUID for MdeModulePkg PCD Token Space.

Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _DAVID_TOKEN_SPACE_GUID_H_
#define _DAVID_TOKEN_SPACE_GUID_H_

#define DAVID_TOKEN_SPACE_GUID \
  { \
    0xA1AFF040, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xB0 } \
  }

extern EFI_GUID  gEfiDavidTokenSpaceGuid;

#endif

接着在MdeModulePkg.dec的[Guids] 下声明一下

#david start
## Include/Guid/DavidTokenSpace.h
   gEfiDavidTokenSpaceGuid = { 0xA1AFF040, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xB0 } }
#david end

声明之后在[PcdsFixedAtBuild]的下面加上

#david start
  gEfiDavidTokenSpaceGuid.PccdTime|0|UINT32|0x11111122
#david end

DSC文件中可以修改PCD变量的值,这里我们不需要修改,不用去改DSC文件。就是dsc文件不写也可以

.dsc可以写成下面这种默认值的形式

#david start
	gEfiDavidTokenSpaceGuid.PcdTime|0x0f
#david end

将BdsEntry里的PcdGet16 (PcdPlatformBootTimeOut)都改成PcdGet32(PccdTime)

但要在.inf文件中声明自己使用了变量,如以下:
 

[Pcd]
  gEfiDavidTokenSpaceGuid.PcdTime

结果我是可行的

可参考:UEFI开发探索101 – PCD探究-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值