FreeBSD的dts生成dtb文件
来源:互联网 发布:php程序员都需要什么 编辑:程序博客网 时间:2024/06/08 09:47
近年来,FreeBSD和Linux都采用FDT进行设备管理。
FDT中最重要的就是dtb二进制文件,Unix中都是利用dts生成dtb。接下来详细讲解如何将dts的c语言文件转换成dtb二进制文件。
这里以arm中的Beaglebone black的dts文件为例,首先要对dts文件进行预编译,也就是preprocess。这里利用的编译器是C-preprocess,也就是CPP,CPP的参数描述如下:
-C
从源文件拷贝 C 语言注释到输出文件。如果您省略了这个标志,cpp命令除去除了 cpp 伪指令行中的所有 C 语言注释。
-DName[=Definition]
如同在一个 #define 伪指令中那样定义 Name。Definition 的缺省值是 1。
-IDirectory
首先查找 Directory ,再查找针对#include 文件的标准列表上的目录中不是以一个 / (正斜杠)开始的名字。参见先前的关于 #include的讨论。
-P
预处理输入而不为 C 编译器的下一趟执行产生行控制信息。
-qDBCS
指定双字节字符集方式。
-UName
除去所有 Name 的初始定义,这里 Name 是一个预处理器预定义的一个符号(除了四个预处理器方式指示符: __ANSI__、__EXTENDED__、 __SAA__ 和 __SAA_L2__)。在 ANSI 方式中不识别这个标志。
-qlanglvl=Language
为处理选择一个语言级别。Language 可以是 ANSI 、SAA 、SAAL2 或扩展。缺省是扩展。
注:当 Language 是扩展时, _NO_PROTO 不被自动定义。可以使用 -D 选项完成这些定义,这个选项在 /etc/xlc.cfg 文件中。
FreeBSD的beaglebone的dts所需文件如下所示:
将dts文件预编译命令如下:
cpp -P -x assembler-with-cpp -I /freebsd/sys/gnu/dts/include am335x-boneblack.dts done.dts
-x表示编译语言,这里选择的是assembler汇编语言
-I表示include的头文件的路径,这个非常重要,如果不加这个会导致预编译报错,这里选择freebsd的dts头文件的路径
am335x-boneblack.dts 表示需要预编译的dts文件
done.dts 表示预编译生成的文件
运行该命令后,能够在当前目录生成done.dts文件,该文件可以通过dtc命令生成最终需要的dtb二进制文件。dtc命令如下:
dtc -I dts -O dtb -o am335x-boneblack.dtb done.dts
阅读全文
0 0
- FreeBSD的dts生成dtb文件
- DTB to DTS
- dtb文件的反向编译
- dtb to dts by dtc
- dtimg转dtb,dtb反编译为dts方法
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- 如何将dtb反编译成dts
- 如何将dtb反编译成dts
- 将dtb反编译成dts
- 使用dtc将dtb转换成dts
- Image.gz-dtb生成
- powerpc DTB文件
- dtb文件编译
- freeBSD 下 tags文件的递归 -R 生成
- 确定msm8937+android7.1采用的dtb文件
- 了解Linux的dtb
- JVM学习(4)——全面总结Java的GC算法和回收机制
- ThreadPoolExecutor 是如何做到线程重用的
- CSS3 :nth-child() 选择器
- Sublime 3 下运行 JAVA
- 【科普】什么是SSL握手
- FreeBSD的dts生成dtb文件
- 微信小程序开发--富文本插件wxParse的使用
- 侧滑返回上一界面
- unity基本知识点
- Asp.net管理信息系统中数据统计功能的实现
- 有序数组求两个数的和为某个值O(n)解法
- SpringBoot系列(7)---SpringBoot-Cache(EhCache)
- 安装配置ElasticSearch集群
- 分针网——每日分享:网页布局时CSS无效的常见原因