置顶文章

15k13 分钟

# BIOS 阶段划分 SEC : Security (安全) : 处理 平台重 事件,创造一个 临时的内存 区 (此时内存还 未初始化 ),在系统中作为一个可信的 root,传递信息到 PEI PEI : pre-efi initialization (预 EFI 初始化): 初始化 一些 永久的内存 HOBS ( hand-off BLocks ) 中内存,以及在 HOBS 里面的 FV (firmware volume) 位置,传递 控制权到DXE 阶段 DXE : driver execution environment (驱动程序执行环境) : 重点 关注,服务
12k11 分钟

# 泛型程序设计 编程不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++ 的模块为泛型程序设计奠定关键基础 # 概念 在 C++ STL 库中用 "概念" 来界定具备一定功能的数据类型 将 “可以比大小的所有数据类型 (有比较运算符)“这一概念记为 Comparable 将” 具有共有的复制构造函数并可以用‘=’赋值的数据类型 “这一概念记为 Assignable 将 “可以比大小,具有公有的复制构造函数并可以用’=‘赋值的所有数据类型” 这个概念记作 Sortable 对于两个不同的概念 A 和 B,如果概念

精选分类

文章列表

7.4k7 分钟

# WinIO 头文件 #ifndef WINIO_H#define WINIO_H//#include "..\drv\winio_nt.h"#include "winio_nt.h"#ifndef WINIO_DLL#define WINIO_API _declspec(dllimport)#else#define WINIO_API #endifextern "C"{ //// 初始化 WinIO 函数库 WINIO_API bool _stdc
6.7k6 分钟

# RU 工具入口 RU 是 AMI James Wang ,其中包括 IA32 X64 版本的 Ru.EFI 和一个 Windows 版本的 Rw.EXE 。 U 盘格式需要是 Fat32格式 将 Ru文件 当道 U盘根目录 将对应的 shell文件 放到 efi/boot/ 目录下 点击 Delete 进入 BIOS , 密码 统一为 123456 进入 Sava & Reset 页面 选中最后一个 Lanch EFI shell from file system 进入 Shell 里面之后,
16k15 分钟

# 模块 包:是一组 模块 及 平台描述文件 ( .dsc 文件),包声明文件 ( .dec 文件) 组成的集合。 模块 ( 可执行 文件,即 .efi 文件) 像 插件一样 可以 动态地 加载到 UEFI内核 中。 每个成功模块由 元数据文件 ( .inf ) 和 源文件 (有些情况包含 .efi 文件) 组成。 .inf 类似与 Linux 下得 Makefile , .dsc 文件则相当于 VS 项目中的 .sln文件 ;模块相当于 VS 项目中的工程, .inf 文件则相当于 VS 工程中的 .proj文件 。 # UEFI 主要模块 # DSC
15k14 分钟

# 入口函数 一个简单的 UEFI程序 , 至少 包含 两个 部分 C程序源文 件 : 用来实现 具体功能 ,在复杂程序中源文件可能包含: C/C++源代码 , .asm汇编文件 (.s 汇编文件, uin资源 文件 (字符串资源文件) 和 .vfr 资源文件) INF元数据 文件用来编译代码 # 入口函数返回值类型 EFI_STATUS 在 UEFI 中基本所有的返回值类型都是 EFI_STATUS , 其本质是 无符号长整数 最高位为 1 时其值为 错误代码 ,为 0 表示 正确 。听过 宏EFI_ERROR(Status) 可以判断 返回值Status
3.9k4 分钟

在UEFI中主要使用函数指针来进行复制与交互,使用结构体复制的形式进行隐私函数实现与函数指针赋值,在系统传感器信息以及硬件资源设备进行获取时,通过操作寄存器的形式进行获取是一个理想的方案,如何使用寄存器来操作应将的常用使用方法,异或,取反,位域等操作。
2k2 分钟

# 下载 ubuntu 系统 在清华大学镜像站 点击获取 下载 链接( IOS ) 选择你要下载的 Linux系统 # 设置 U 盘 下载 Rufus 启动文件之后,选择自己的 U 盘,并选择自己下载好的 ubuntu 系统 点击开始 选择 推荐 ,点击 Ok 将会 清理U盘 数据,点击 确认 等待完成 # 压缩磁盘文件 点击 win键 输入 磁盘管理 , 确认 压缩磁盘 文件,为 Linux 提供 足够的空间 # 进入 BIOS 通过 UEFI 固件设置进入 BIOS 点击所有 设置 点击 更新与安全 点击立即 高级 选项 点击 立即重新启
8.1k7 分钟

# 知识储备 C 语言 C++ 汇编 Linux # 汇编部分补充 # 数据描述符 AX 累加器:用到最多最频繁,AX,AH 和 AL 在乘,除法等操作中有专门的用途。 BX 基址寄存器:用于存放偏移地址 CX 为计数寄存器:在循环操作中做计数器用,用于控制循环程序的执行次数 DX 数据寄存器:在乘,除法及 I/O 端口操作时专门用途。 # 指令 # 操作方向标识为 DF ( Direction Flas ) 使用此指令 控制 方向标志 DF ,决定内存地址增大还是减小。 在子串操作中使 SI 或 DI 的地址指针自动递减,字串处理由后往前。 CLD 使
17k15 分钟

# 面向对象三大特征 封装 是指将数据和行为组合成一个整体,对外部 隐藏 内部的 实现细节, 只提供必要的 接口 。封装可以 保护 数据的 安全性 , 降低 代码的 复杂度 , 提高 代码的 可维护性 。C++ 通过 private,protected,public 关键字来 控制 成员变量和成员函数的 访问权限 继承 是指 子类可以继承父类 的属性和方法,并且可以 添加或修 改自己特有的属性和方法。 继承 可以提高 代码的复用性 ; 提高 代码的 扩展性 ;同时也是 多态的前提 多态 是指 不同类型的对象 对 同一消息 可以做出 不同的响应 。多态可以分为 编译时 和 运行时 多态。
8.6k8 分钟

# 深拷贝和浅拷贝 浅拷贝就是将 源对象 的值 拷贝 给当前对象,两者指向的还是 同一地址 ,对 一个 对象的 修改 可能会 影响 到 另一个 对象。 class MyArray {public: // 构造函数 MyArray(int size) { this->size = size; data = new int[size]; } // 拷贝构造函数,实现浅拷贝 MyArray(const MyArray&a
6.4k6 分钟

# typedef typedef 并不是简单的宏替代。 定义一种 类型的别名 定义 struct结构体别名 用 typedef 来定义与 平台无关 的类型 为 复杂的声明 定义一个 简单的别名 ,表示的是一个指向 函数的指针 用 typedef 可以定义 各种类型别名 ,但不能定义变量 使用 typedef 便于 程序的通用 用 typedef 只是将一个已经存在的类型用一个 新的名称 替代 typedef不 能添加 新类型 # typedef 和 #define 区别 typedef 是一种 类型别名 ,而 #define 只是 宏定义 ,二者 并不总是 可以