UEFI规范实现EDKII项目学习笔记绪论[0]
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源程序/简析
(随学习进度推进、博客内容继续增加~哪里阐述有误,希望批评指正~)
UEFI规范实现EDKII项目学习笔记绪论[0]相关推荐
- TheBeerHouse 网站项目学习笔记(5)---架构设计
前述讨论: TheBeerHouse 网站项目学习笔记(1)----换肤技术 TheBeerHouse 网站项目学习笔记(2)----个性化管理 ...
- 尚医通项目学习笔记Part1
尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...
- spring boot 前后端分离项目(商城项目)学习笔记
spring boot 前后端分离项目(商城项目)学习笔记 目录 spring boot 前后端分离项目(商城项目)学习笔记 后端配置 springboot项目 pom.xml文件 maven 配置文 ...
- Python学习笔记 1.0 基础内容篇章
Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...
- 数据可视化清新版【chart.js】学习笔记8.0—极地图(Polar Area)
Polar Area--(极地图) 极地面积图类似于饼图,但每个线段具有相同的角度 - 线段的半径因值而异.当我们想要显示类似于饼图的比较数据,同时也要显示上下文的值的范围时通常使用这种类型的图表. ...
- RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装
RK3399学习笔记 1.0.3---python环境 Firefly Core-3399pro-jd4 Win10上RKNN工具安装 读取模型各层 1,最好在Conda下新建一个虚拟环境进行安装. ...
- USB摄像头视频监控项目学习笔记
一个摄像头监控应用程序的系统调用如下所示: /* open * VIDIOC_QUERYCAP 确定它是否视频捕捉设备,支持哪种接口(streaming/read,write) * VIDIOC_ ...
- vue3小兔鲜商城项目学习笔记+资料分享01
最近正在学习vue3小兔鲜,需要相关学习资料的可以点链接 https://docs.qq.com/doc/DUmhUVERtUHpLaG1a 下面试学习笔记 项目起步 项目预览地址 小兔鲜儿商城:ht ...
- vue3小兔鲜商城项目学习笔记+资料分享07
建议大家先去看我第一篇小兔鲜的文章,强烈建议,非常建议,十分建议,从头开始看更完整. 下面是学习笔记 填写订单模块 填写订单实现 本节目标: 实现填写订单跳转 填写订单页组件和路由 1)准备填写订单页 ...
- vue3小兔鲜商城项目学习笔记+资料分享06
建议大家先去看我第一篇小兔鲜的文章,强烈建议,非常建议,十分建议,从头开始看更完整. 最近正在学习vue3小兔鲜 下面是学习笔记 购物车模块 购物车功能分析 [外链图片转存失败,源站可能有防盗链机制, ...
最新文章
- 【 MATLAB 】ppval 函数介绍(评估分段多项式)
- 中国电力行业运行形势及十四五供需状况分析报告2021-2027年
- elementui 响应式导航栏网站_什么是响应式网站?响应式网站的优势介绍
- oracle序列创建及使用,Oracle创建和使用序列
- java反编译工具_JDA Java反编译工具的下载和使用手册
- 自动驾驶中的滞后碰撞检测(lazy-collision-checking)
- AMBERT!超越BERT!多粒度token预训练语言模型
- 为什么快速排序比归并排序快
- Android 多媒体开发学习之简单的音乐播放器
- springboot 打印日志
- 我们不改需求了,给你们立字据!
- vue3 自定义指令 directive
- java8 Stream分组求和 reducing
- 由“官方通知”论语音合成,一键合成你想要的语音
- Web开发未来会完全替代客户端开发吗?
- wechall靶场training系列通关记录
- linux全局搜索文件
- php代码编辑软件安卓,PHP代码编辑软件|Rapid PHP编辑器 v15.0 最新版
- Python日志模块log
- 创客路上,跟着嘻多猴快乐出发!
热门文章
- 腾讯元老、上市公司CTO逃离北上广,赚够钱后他在安徽建了一片200亩的农场
- 服务器上删掉的数据如何找回,在服务器数据丢失情况下如何恢复数据
- 物联网知识1---RFID
- 一文搞明白DNS与域名解析
- 【Excel 教程系列第 15 篇】Excel 中的简单排序(升序 / 降序)、多条件排序、按颜色排序、自定义排序、以及巧用“升序“制作工资条
- Android dex2jar反编译dex文件报错 Detail Error Information in File .\classes-error.zip
- ARM920T S3C2440 的中断系统
- linux常用命令知识点
- STM32用于PWM占空比测量
- ARX中各种坐标系及Transfrom操作相关