bios & driver
BIOS固件和驱动开发/调试/使用中一些经历分享
萧条桑拓
天道酬勤
展开
-
3.UEFI-edk2 增加中文显示
edk2源码中默认只有英文和法文的字库,在UI界面上或者shell终端打印中文字符,要么显示的是乱码,要么就没显示。例如,上一篇博客中的TestoneApp.cpp中,增加一行带中文的打印:Print(L"Hello, world!\r\n"); Print(L"UEFI-dek 你好..!\r\n");实际上运行的效果是如下图这样的。...原创 2020-03-22 18:16:13 · 4153 阅读 · 7 评论 -
2.UEFI-edk2 编写第一个应用
上一章把UEFI的编译开发和模拟器环境都搭建好了,这里开始写第一个应用。写之前先简单介绍下UEFI-edk2的源码目录结构,源码目录下主要有以下这些子目录:BaseTools: 包含代码编译所需的二进制编译工具集和编译环境配置文件。MdePkg: 包含各个平台通用的基本的底层库函数、协议和工业标准。MdeModulePkg:包含一系列各平台通用的模块,其中包括MdePkg中公共库的应用模块示...原创 2020-03-08 15:31:11 · 3055 阅读 · 0 评论 -
1.UEFI-edk2 开发环境搭建
EDK2是UEFI使用比较广泛的开源实现,支持在多种操作系统平台下进行开发。为了开发调试方便,这里采用在win10下用visual studio进行UEFI的开发。VS号称地表Top one的IDE,功能强大自不在话下,开发起来往往起到事半功倍的效果。此篇博客我们完成edk2源码的开发编译环境的搭建,同时编译运行一个模拟器,用来测试efi程序。一、相关工具安装首先下载安装vs2017或者vs2...原创 2020-02-29 21:14:10 · 7253 阅读 · 4 评论 -
imx6芯片通过EIM总线外扩多路sja1000 CAN控制器
有时会需要扩展多个CAN接口,在CAN设备比较多的时候作分组控制。这里使用imx6q芯片,它本身已经自带了两个CAN接口,如果需再扩展4个接口,就要想想办法了。sja1000是一个经典的CAN控制器,稳定可靠,由于它在业界使用方案比较成熟,用它来扩展再好不过。imx6q作为一款性能强大的处理器,扩展sja1000这种相对慢速的芯片,着实有点屈才。可是没办法,项目需要,就像PCIE转ISA,或者US原创 2018-01-15 21:09:13 · 7801 阅读 · 0 评论 -
S5PV210 ADC驱动分析
我这里用的是mini210开发板,在其内核源码中,采用了Linux设备驱动模型中的platform虚拟总线来管理ADC设备。首先看S5PV210提供的ADC驱动接口。在plat-samsung/dev-adc.c中定义了s3c_device_adc,它是一个platform_device结构体,描述adc这个设备。/* plat-samsung/dev-adc.c */static struct原创 2016-05-17 11:39:31 · 2276 阅读 · 0 评论 -
关于udev,sys,proc,tmpfs一些定义的问题
谈这些概念之前,首先不得不说下devfs。devfs(设备文件系统)时由Linux2.4内核引入的,它的出现可以使得程序在设备初始化时在/dev目录下创建设备文件,卸载时将它删除。虽然它在2.6内核版本后已被udev取代,这里还是简要列出它的范例,方便后面的分析。原创 2016-05-06 12:09:46 · 1487 阅读 · 0 评论