您的位置:首页 > 产品设计 > UI/UE

UEFI规范实现EDKII项目学习笔记绪论[0]

2015-07-16 23:57 806 查看

UEFI规范实现EDKII项目学习笔记绪论[0]

2015-07-10 北京海淀区 张俊浩

这段时间在学习UEFI( Unified Extensible Firmware Interface,统一的可扩展固件接口),熟悉EDKII(EFI Developer KitII,EFI开发工具包)项目,本想对UEFI框架脉络和EDKII项目的组织结构较为熟悉时候再着手写UEFI、EDKII项目的学习笔记,这样会对一些概念、工程的开发把握、阐述会更准确些~但发现冰冻三尺非一日之寒,一口也吃不下一个大胖子,所以先把博客写成散、零碎的UEFI、EDKII笔记,较为真实的记录自己的学习过程~等到对UEFI和EDKII较为明朗的时候,再反过来整理这些博客~

学习UEFI和EDKII项目,发现中文资料很少,主要是UEFI论坛(http://www.uefi.org)、Tianocore社区(http://www.tianocore.org)上的各类规范、手册进行学习、开发。本人的UEFI、EDK学习也是通过UEFI论坛、Tianocore社区,还有一本中文书籍戴正华的《UEFI原理与编程》,当然也有百度各种文库、博客资源,从中国知网下载一些期刊、文献来科普、学习。发现UEFI规范、EDKII项目的刚开始学习重点不在于解决一些具体概念(比如key concepts)或者EDKII项目中某个具体的技术点,而在于有一条宏观上的较为清晰、明确的学习路线,或者说是对UEFI论坛、Tianocore社区上各类文档、说明性资源的有一个较为明晰的把握,这也是期望接下来的学习之路能理清的。

刚接触UEFI及其实现EDKII项目,能感觉到UEFI比BIOS(Basic Input Output System,基本输入/输出系统 )、 Uboot
( Universal Boot Loader,通用的引导程序)等常用的引导程序更为强大的生命力(硬件芯片上原则上BIOS、Uboot、UEFI都可以支持MIPS、 x86、ARM、PowerPC等诸多CPU系列。BIOS开发采用汇编开发效率低,而且技术垄断在少数大公司;Uboot主要支持Linux类操作系统;UEFI由于可编程性好、可扩展性、高性能、安全性获得主流操作系统Linux系、Windows、MacOS等支持),但陌生的UEFI概念、EDKII项目框架,还有网上对于UEFI的介绍铺天盖地的好评,自然的高大上~找到一条相对明朗的学习路线成了很关键的事情:自己是通过EDKII项目来熟悉UEFI的,Tianocore社区http://www.tianocore.org ->EDKII->Getting Started for Developers—>Getting Started with EDK II->Step-by-step Instructions,还有《EDKII_UserManual_0_7》是EDKII项目学习的一个入门线路,还有戴正华的《UEFI原理与编程》作为辅助(毕竟手册式文档,几乎很少个人感情色彩、学习体验的呈现)。

开始的几篇EDKII学习笔记,模仿EDKII_UserManual框架来整理目前的学习情况,主要包括:EDKII概述, EDKII源码的下载,EDKII项目Linux、Windows开发环境的搭建,EDKII项目的配置编译,模拟器的运行,还有简单UEFI应用程序的编写。(These blogs provides detailed instructions for downloading,
configuring and building an EDKII project , running EDKII Emulation Environments as well as writing a simple UEFI EDK II Application)。

最近几篇UEFI规范实现EDKII项目博客内容安排如下:

1. UEFI&EDKII Introduction(UEFI&EDKII概述)

->1.1 EFI,UEFI,PI,Tianocore,EDK,EDKII

->1.2 Several key concepts introduced by EDKII:

Package,Library Class/Library Instance, PCD, Module, UEFI Application and UEFI Driver

2. Setting Up EDKII Development Environment(EDKII开发环境的搭建)

->2.1 The General Procedure Of Setting Up EDKII Development Environment(搭建EDKII项目的通用流程)

->2.2 Setting up a EDK II build environment on Windows and Linux(搭建Windows和Linux开发环境)

->2.3 Tools:Installing and using the Required Tools for downloading and Building EDKII. (工具篇)

3. EDKII Build Process(EDKII项目源码的配置、编译流程)

->3.1 The General Process Of EDKII Build(EDKII项目源码的配置、编译一般流程)

->3.1.1 Tool chain:BaseTools

->3.1.2 Setup build shell environment

->3.1.3 Modify Conf Files

->3.1.4 Build

->3.2 The Process Of EDKII Build on Windows(Windows环境下EDKII项目源码的配置、编译流程)

->3.3 The Process Of EDKII Build on Linux(Linux环境下EDKII项目源码的配置、编译流程)

4. Build/Launch EDKII emulator in Windows and Linux(编译/运行EDKII模拟器)

->4.1 Emulation Platforms Introduction (EDKII模拟器平台介绍)

->4.2 In Windows:Nt32Pkg(Windows环境下编译/运行Nt32模拟器)

->4.2.1 Tool chain:BaseTools

->4.2.2 Setup Nt32 build shell environment

->4.2.3 Modify Conf Files

->4.2.4 Build Nt32Pkg

->4.2.5
Run Nt32

->4.3 In Linux:EmulatorPkg(Linux环境下编译/运行Emulator模拟器)

5. How to Write a simple UEFI EDKII Application:Getting Started Writing Simple Application (写一个简单UEFI应用程序例程)

->5.0 EDKII Project Introduction

->5.1 Setup build shell environment:Run the edksetup

->5.2 Modify Conf Files:Edit the file conf/target.txt

->5.3 Create a project:MyHelloWorld

->5.3.1 Create a new directory.

->5.3.2 Create MyHelloWorld.c file in the project directory

->5.3.3 Create MyHelloWorld.inf file in the project directory

->5.4 Build your UEFI Application

->5.5 Run your UEFI Application

->5.5.1 Run Nt32 and UEFI Application

->5.5.2 Run Emulator and UEFI Application

6. UEFI简单的应用程序模块MyHelloWorld:C源文件//INF工程文件源码/简析

->6.1 MyHelloWorld.c源程序/简析

->6.2 MyHelloWorld.inf源程序/简析

(随学习进度推进、博客内容继续增加~哪里阐述有误,希望批评指正~)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: