uefi开发
文章平均质量分 75
今池鱼
已识乾坤大,尤怜草木青。
展开
-
UEFI中的界面设计(二)
结合PASSWORD控件阐述HII驱动中代码部分的写法原创 2022-06-03 14:41:34 · 1780 阅读 · 1 评论 -
如何理解UEFI的事件机制(三)——时钟中断
填坑啦填坑啦!填陈年老坑啦!一,时钟中断概述UEFI 中的EVENT是使用时钟中断来驱动的。在时钟中断处理函数中,它会检查系统中的定时器事件并处理到期的定时器事件,并在合适的时机调度事件的Notify函数,是事件的实现基础。时钟中断在DXE的主函数DxeMain中初始化(准确的说是在初始化事件时)并开始使用,具体的流程请看下图——当时作为UEFI小白的我画了一天!其实后来看,有一些是架构协议与触发函数注册的内容,待会浅提一下。二,时钟中断执行流程执行时钟中断的单元函数是CoreTimerTick原创 2022-04-11 12:23:05 · 1866 阅读 · 2 评论 -
UEFI中的界面设计(一)
最近我从显示驱动搞到显示LOGO和显示界面、再到做界面、改框架,一路走来很是坎坷,但或许会有意义所在吧?一直想写点东西,然而真没空懒 ,三月末疫情哐的一下给我锁家里了,好了,可算是有空了。废话说的太多,直接上笔记好了,为了不违规用的都是EDK2官方的代码,可以直接找对应的文件对应着看一下!界面设计概论最新的EDK2代码,构造界面框架大概如下稍微解释一下HiiDriver:最上层的界面实现,由.uni、.vfr和.c组成,这里我只画了一个,其实可以有很多个,以lib的形式被UiApp集成。原创 2022-04-05 12:37:45 · 3772 阅读 · 5 评论 -
如何理解UEFI的事件机制(二)
我看了很多文章,包括用的教材都是基础知识——时间中断——调度这个顺序这给我造成了很多误解,因为看时钟中断看了很久,但完全不知道它和异步事件调度有什么联系,看到最后才恍然大悟,原来是这样。虽然这种博客应该没什么人看,但恭喜你,不用奇怪这点了。故事要从上篇提到的恢复(降低)优先级的RestoreTpl说起这个函数前面都很正常,断言啊,判断啊,比较有意思的是这一段 while (gEventPending != 0) { PendingTpl = (UINTN) HighBitS原创 2021-08-03 18:35:31 · 855 阅读 · 0 评论 -
如何理解UEFI中的事件机制(一)
(工作真是太奇妙了,总觉着我在疯狂的给自己立flag)顺便记录自己第一次说话都打颤的技术交流1,关于eventevent的定义属实难找,教材也没有,spec也没有。不过它还是很好理解的,作为一个曾经写过如何自学qt博客的人(可惜最后工作完全用不上),我看见它的第一反应就是这不connect吗设置一个信号一个槽,当信号被触发时运行槽里的内容至于怎么用,我举事件类型的例子就可以了这是常用的三种类型(还有其他类型,类型与类型还可以组合,这不赘述了)顺便一提,WAIT和SIG原创 2021-08-02 09:16:42 · 1442 阅读 · 0 评论 -
如何在linux上搭建edk编译环境
被分到了做bios系统的组里(但愿下周我还在),记录一下最艰难的起步。环境说明:ubuntu子系统 18.04gcc 7.5python 3.61,下载源码git clone https://github.com/tiancore/edk2第一步就扑街,这是我没想到的。这里涉及到git里面的子模块——热知识,在clone项目时子模块的内容不会被一并复制下来,而是以链接的形式储存在文件里。这个时候就需要另一个指令git submodule update --init原创 2021-07-15 15:53:28 · 1735 阅读 · 2 评论