自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 EDK II之Device Path

UEFI中通过Device Path来描述设备的路径,一个完整的路径由多个Device Path Nodes组成。下面通过输入设备的路径作为例子:PNP0A03 – PCI Host BridgePNP0303 – PC Keyboard ControllerConIn: The device path of the default input console. 下图...

2018-05-29 16:29:00 661

转载 ESP8266使用笔记之常用固件

开发板使用的是NodeMCU开发板:目录1.学习使用ESP8266官方的SDK 1.1使用SDK提供的AT固件 1.2使用SDK Build固件2.学习使用NodeMCU固件(上层可使用Lua开发)和MicroPython固件(上层可使用MicroPython开发)学习使用ESP8266官方的SDK使用AT固件:下载...

2018-04-07 16:00:00 911

转载 Linux中断管理

中断很大一部分是硬件相关的:比如中断控制器,支持的中断数等。下图简单描述一下内核中与中断管理有关的一些结构:中断下半部中断下半部实际上是为了减少禁止中断的中断处理程序的执行时间,实际上下面的机制不仅适用于中断下半部,也可以用于其他的回调机制。一、软中断与tasklet(tasklet是基于软中断的):关于上图的一些说明:1. 上图的上半部分描述...

2018-02-12 20:50:00 113

转载 Linux网络管理(一):网卡驱动与Linux内核

下图简单描述了网卡驱动与Linux内核之间的联系:关于上图的一些说明:系统初始化:1. 协议模块调用 dev_add_pack() 来注册协议处理函数到链表 &ptype_base;2.__init br_init() 用于初始化桥接相关的操作;3.__init net_dev_init() 初始化了两个软中断;网卡驱动初始化:1. ...

2018-02-09 19:05:00 400

转载 Linux进程管理

Linux进程管理框架简介:1.Fork_init()、Sched_init() 用于初始化;2.do_fork()用来创建一个新进程,并把进程插入全局链表&init_task;3.Scheduler_tick()由时钟中断处理函数调用(OS是基于时钟中断来实现基于时间片的多进程调度),用来更新当前进程的时间片,判断进程的时间片是否用完,并把进程插入对应的链表;4...

2018-02-05 20:06:00 79

转载 通过Windbg来追踪ASL code的运行

通过Windbg来追踪ASL code的运行:目标机的配置:第一步:在BIOS Setup下面 disable secure boot(不然下面debug on 命令会失败);关闭防火墙。第二步:替换acpi.sys1. 获取与目标机OS 同版本的check build ACPI.sys文件,替换系统中的C:\Windows\System32\drivers\acpi.s...

2017-12-14 20:07:00 1165

转载 EDK II之DXE Core的事件管理

本文简单介绍一下UEFI中的事件管理:UEFI是不支持多进程的,但是UEFI支持多事件分发机制。UEFI只支持时钟中断,并基于时钟中断实现事件分发。类似于OS中基于时钟中断来实现基于时间片的多任务调度。下图是DXE内核管理事件的结构:1. UEFI把事件分成32个优先级,当我们创建一个事件的时候,我们会把他添加到链表gEventSignalQueue中.2. 当我们触发(...

2017-12-09 10:11:00 343

转载 EDK II之驱动程序与硬件平台的初始化简介

本文旨在简单介绍一下UEFI中驱动程序的加载方式(这里涉及的模块指的是符合UEFI Driver Model的模块):在UEFI中,当一个驱动模块被加载时,在模块入口点只会安装EFI_DRIVER_BINDING_PROTOCOL等,而不会去执行驱动程序的初始化(这一点与Linux中不同,在Linux中,当我们在驱动模块的入口点调用driver_register()来注册驱动的时候,...

2017-11-24 21:47:00 598

转载 Linux中USB协议栈的框架简介

文本旨在简单介绍一下Linux中USB协议栈的代码框架:下图是USB协议栈相关数据结构的关系图:下面结合上图看一下系统初始化的流程:1.USB子系统初始化:\drivers\usb\core\usb.csubsys_initcall(usb_init);static int __init usb_init(void)中调用了很多初始化函数,目前关注下...

2017-11-18 23:32:00 555

转载 EDK II之USB设备驱动程序的加载与运行

本文简单介绍一下USB设备的驱动程序是如何匹配设备以及被加载的:上文(UDK中USB总线驱动的实现框架)提到USB总线枚举设备的最后一步是调用gBS->ConnectController()去查找device的驱动并加载。1.查找驱动:首先UEFI中所有符合UEFI Driver Model的驱动在模块的入口点,都会去安装EFI_DRIVER_BINDING_PR...

2017-11-15 19:33:00 367

转载 EDK II之USB总线驱动的实现框架

本文简单介绍一下UEFI中USB驱动的实现框架:下图是USBD向上层驱动提供的接口:1.从图中我们可以看出,USBDI的实现主要通过调用HCDI实现 和 访问USB_INTERFACE结构体(该结构体在总线枚举过程中存放了device的相关信息):(这里为什么是从interface获取呢?一个device可以包含多个configuration,一个configuratio...

2017-11-12 09:28:00 177

转载 EDK II之USB主控制器(EHCI)驱动的实现框架

本文简要介绍一下UEFI中EHCI驱动的代码实现框架:下图是HCDI:上图是Host驱动程序向上层驱动提供的接口图:1.大部分接口的最后动作都是去操作主控制器寄存器,ECHI的spec:《ehci-specification-for-usb.pdf》;2.寄存器PORTSC用来获取/设置端口的状态(这里表示root hub的端口),root hub有几个port,这...

2017-11-09 18:53:00 724

转载 EDK II之USB协议栈的实现简介

本文旨在简单介绍一下UEFI中USB协议栈的代码框架:主要包括:USB主控制器驱动(HCDI:EFI_USB2_HC_PROTOCOL)USB总线驱动(USBDI:EFI_USB_IO_PROTOCOL)USB Mass Storage驱动(EFI_BLOCK_IO_PROTOCOL)下图是USB协议栈的代码框架:上图出自:《UEFI与EDKII源代码分析》...

2017-10-31 22:41:00 591

转载 EDK II之DXE Core框架简介

本文旨在简单的介绍一下DXE阶段的工作原理:UDK2015的开源代码下载:https://github.com/tianocore/tianocore.github.io/wiki/EDK-IIDXE阶段是UEFI系统的最主要的组成部分,1.DXE阶段主要由两部分组成:DXE内核 + 模块;2.DXE内核提供了最基本的一些功能,比如Protocol的管理,事件的管理等等(...

2017-10-09 21:34:00 870

转载 Linux内核启动流程与模块机制

本文旨在简单的介绍一下Linux的启动流程与模块机制:Linux启动的C入口位于/Linux.2.6.22.6/init/main.c::start_kernel()下图简要的描述了一下内核初始化的流程:本文我们分析一下do_initcalls ()函数,他负责大部分模块的初始化(比如U盘驱动就是在这里被初始化的)。 1 static void __init do...

2017-09-24 11:51:00 165

转载 Linux内核线程创建

本文旨在简单介绍一下Linux内核线程:先举个例子:不插U盘,在Linux命令行中输入:ps -el;然后插上U盘,再次输入:ps -el会发现多出了下面一行(当然还会有其他的,比如scsi相关的):1 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD2 1 S 0 ...

2017-09-23 21:40:00 130

转载 DOS下读取spd信息的汇编程序(通过SMBus)

汇编程序编写的读取spd信息的代码: 1 ;----------------------------------------------------------- 2 ;功能: 通过SMbus 读取内存的SPD 信息 3 ;时间: 2015/09 4 ;环境: DOS + MASM5 5 ;说明: 代码中涉及的smbus规范是基于Intel平台 ...

2017-09-21 20:11:00 999

转载 DOS下读取smbios的汇编程序(通过搜索memory)

汇编程序编写的读取smbios的代码: 1 ;------------------------------------------------- 2 ;功能: 读取SMBIOS 的Entry Point ,并读取SMBIOS 表的前128-byte 3 ;环境: DOS + MASM5 4 ;时间: 2015/08 5 ;----------------...

2017-09-21 20:08:00 400

转载 DOS下读取PCI配置空间信息的汇编程序(通过IOCF8/IOCFC)

汇编程序编写的读取PCI配置空间信息的代码(通过IOCF8/IOCFC): 1 ;------------------------------------------------ 2 ;功能: 读取PCI 配置信息,存入文件zpci_config.txt 3 ;环境: DOS + MASM5 4 ;时间: 2015/08 5 ;说明: 通过端口...

2017-09-21 20:01:00 576

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除