Linux 内核:设备树(1)dtb格式 背景 dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码才是了解设备树最好的方式。 所以,如果需要更透彻的了解设备树解析的细节,第一步就是需要了解设备树的格 ...
分类:
系统相关 时间:
2021-06-28 18:17:54
阅读次数:
0
be32_to_cpup()接口是干什么的呢? 转换一个无符号的, 大端, 32位值到一个cpu的大小端值(如果cpu为大端序,就将数值直接返回此值;如果cpu为小端序,就将数值转换为小端序) be32_to_cpup()接口的定义(linux内核源码的版本为5.9) #define be32_to ...
分类:
系统相关 时间:
2020-10-21 20:22:30
阅读次数:
38
1、根文件系统rootfs制作jffs2.img镜像 Flash支持jffs2文件系统格式,所以需要使用此该rootfs制作jffs2文件系统镜像。 //使用工具 sudo apt-get install mtd-utils 操作步骤 mkdir rootfs //创建目录 sudo tar xzv ...
分类:
其他好文 时间:
2020-06-20 11:06:46
阅读次数:
87
编译完成后,内核image、文件系统rootfs、设备树dtb、启动项uboot/barebox, 会放在build目录的/deploy/images/MACHINE/下面, 这里MACHINE需要可能为空(对于老版本的poky/yocto),也可能是你的板子名字,例如sabresd。 对于tool ...
分类:
其他好文 时间:
2020-06-10 21:32:10
阅读次数:
106
一. 准备工作 1.1. buildroot 开启flashcp 1.2. buildroot 开启ssh(便于网络传文件,如果你有更好传输文件办法当然可以不用ssh) 二. 实战 2.1. 查看分区 cat /proc/mtd 2.2. flashcp 用法 2.3. 烧录dtb(uboot,zI ...
分类:
其他好文 时间:
2020-05-03 01:02:16
阅读次数:
84
因为工作调查看不懂设备树,所以先从设备树的视频开始看起。 1. 引入设备树原因: 以前在arch目录中有大量的平台文件,使用dtb省地方且便于管理。设备树是完全基于板子做成的。 2. 基础知识: 首先清楚平台文件的方式注册设备和驱动。即之前的设备和驱动学习的内容。 3. 设备树源码的编译环境 1)安 ...
分类:
其他好文 时间:
2020-03-26 23:17:11
阅读次数:
198
device_node只是某个结构体而已。在uboot中把设备树文件随表放入内存中的某个地方就可以使用,为什么内核运行过程中它不会覆盖dtb文件所占用的那块内存呢?在设备树格式那篇文章中曾经说过,在设备树文件中可以用memreserve指定一块内存,这块内存就是保留下来的内存,内核不会占用它。即使没 ...
分类:
其他好文 时间:
2020-02-23 21:52:14
阅读次数:
261
uboot把设备树文件传给内核,内核怎么处理这些设备树文件呢?需要从内核的第一个执行文件head.s开始分析。 bootloader启动内核时,会设置r0,r1,r2三个寄存器,r0一般设置为0;r1一般设置为machine id (在使用设备树时该参数没有被使用); r2一般设置ATAGS或DTB ...
分类:
其他好文 时间:
2020-02-22 21:28:38
阅读次数:
89
ODAC 组件支持 Oracle 8 的 BLOB 和 CLOB 数据类型。你可以使用 TOraQuery 组件来获取 LOB 字段的值,使用同样的方法,你也可以获取 LONG 或 LONG ROW 字段。 当你需要使用 SQL DML 及 PL/SQL 语句存取这些字段时,你就会发现 LOB 数据 ...
分类:
数据库 时间:
2020-02-11 16:13:27
阅读次数:
72
device tree 解决内核源码中,存在大量对板级细节信息描述的代码。 编译过程 DTC(device tree compiler)将DTS(device tree source)/DTSI文件编译为二进制文件DTB(device tree blob) 格式 ...
分类:
其他好文 时间:
2020-01-10 15:36:44
阅读次数:
73