rk3328设备树学习
一、用到的rk3328好像使用了设备树
设备树我知道的有三种文件类型,dtbs是通过指令make dtbs编译的二进制文件,供内核使用。
基于同样的软件分层设计的思想,由于一个SoC可能对应多个machine,如果每个machine的设备树都写成一个完全独立的.dts文件。
那么势必相当一些.dts文件有重复的部分,为了解决这个问题,Linux设备树目录把一个SoC公用的部分或者多个machine共同的部分提炼为相应的.dtsi文件。
这样每个.dts就只有自己差异的部分,公有的部分只需要"include"相应的.dtsi文件, 这样就是整个设备树的管理更加有序。
二、韦山东的设备树教程
如果知道设备树需要填写哪些内容呢:
1.看文档,在内核Documentation/devicetree/bindings/目录下有各种厂家的资料,源码和文档有些都是对应的:
使用指令,居然找出来好多rockchip的文档:
find Documentation/devicetree/bindings/ -name "*rockchip*"
2.参考同类型单板的设备树文件
3.网上搜索
4.研究源码
2.1 设备树的规范DTS格式
(1)语法:
DTS文件布局(layout):
/dts-v1/;
[memory reservations] // 格式为: /memreserve/ <address> <lenght>;
/ { // 根节点
[property definitions]
[child nodes]
};
红色部分,如下:
Property格式1:
[label:] property-name = value;
这个value有三种取值类型:<32位数据> "字符串" [16进制表示的1个/多个byte,一个byte必须用2位表示,byte之间的空格可省略]
第四种是多种组合,之间用逗号分开
Property格式2(没有值):
[label:] property-name; Devicetree node格式:
[label:] node-name[@unit-address] {
[properties definitions]
[child nodes]
};
示例:
a. Arrays of cells : cell就是一个32位的数据
interrupts = <17 0xc>; b. 64bit数据使用2个cell来表示:
clock-frequency = <0x00000001 0x00000000>; c. A null-terminated string (有结束的字符串):
compatible = "simple-bus"; d. A bytestring(字节序列):
local-mac-address = [00 00 12 34 56 78]; // 每个byte使用2个16进制数来表示
local-mac-address = [000012345678]; //每个byte使用2个16进制数来表示 e.可以是各种值的组合,用逗号隔开:
compatible = "ns16550", "ns8250";
example = <0xf00f0000 19> "a strange property format";
rk3328设备树学习的更多相关文章
- 设备树学习之(一)GPIO中断【转】
本文转载自:http://blog.csdn.net/lizuobin2/article/details/54563587 开发板:tiny4412SDK + S702 + 4GB Flash 要移植 ...
- Linux设备树学习
1.概念 设备树用于实现驱动代码与设备信息相分离.驱动代码只负责处理驱动的逻辑而关于设备的具体信息存放到设备树文件中.(dts文件,编译后为dtb文件).一个dts文件对应一个ARM的machine, ...
- 设备树(device tree)学习笔记
作者信息 作者:彭东林 邮箱:pengdonglin137@163.com 1.反编译设备树 在设备树学习的时候,如果可以看到最终生成的设备树的内容,对于我们学习设备树以及分析问题有很大帮助.这里我们 ...
- 设备树(device tree)学习笔记【转】
转自:https://www.cnblogs.com/pengdonglin137/p/4495056.html 阅读目录(Content) 1.反编译设备树 2.分析工具fdtdump 3.Linu ...
- 设备树DTS 学习:4-编写实战
背景 讲完设备树的有关概念以及语法以后,我们接下来就让 我们的驱动 使用 设备树. ref : <内核学习笔记14:内核设备树学习>.<u-boot对设备树的支持> 测试代码 ...
- 基于设备树的controller学习(2)
作者 彭东林 pengdonglin137@163.com 平台 TQ2440 Linux-4.10.17 概述 上一篇大概介绍了一下demo-controller的结构,下面结合驱动分析. 正文 ...
- 设备树DTS 学习:2-设备树语法
背景 通过上一讲了解完设备树DTS有关概念,我们这一讲就来基于设备树例程,学习设备树的语法规则. 参考:设备树详解dts.设备树语法详解.设备树使用总结 设备树框架 1个dts文件 + n个dtsi文 ...
- 基于设备树的controller学习(1)
作者 彭东林pengdonglin137@163.com 平台 TQ2440Linux-4.10.17 概述 在设备树中我们经常见到诸如"#clock-cells"."# ...
- tiny4412学习(四)之移植linux-设备树(1)设备树基础知识及GPIO中断【转】
本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74177978 版权声明:本文为博主原创文章,转载请注明http://blog.c ...
随机推荐
- Spring MVC对日期处理的不友好问题
一.后台日期类型解析到前端 1.在springmvc的配置文件中添加这个.annotation-driven在配置文件中只配置一次 (此方法全局作用)<mvc:annotation-dr ...
- OutLook会议室预定提醒
项目组采用敏捷开发管理,每两周一个迭代.写个工具做会议室预定. 代码下载:https://download.csdn.net/download/linmilove/10547579 Appointme ...
- ftp搭建mysql服务器
一.将mysql放入FTP服务器中1.安装FTP yum install -y vsftpd2.准备ftp主目录 mkdir /var/ftp/mysql57/3.官网下载yum仓库的包. ...
- 深入理解java:2.3.1. 并发编程concurrent包 之Atomic原子操作(循环CAS)
java中,可能有一些场景,操作非常简单,但是容易存在并发问题,比如i++, 此时,如果依赖锁机制,可能带来性能损耗等问题, 于是,如何更加简单的实现原子性操作,就成为java中需要面对的一个问题. ...
- vue防止 由于网速出现 闪现{{}}
防止闪现可能应为网速的原因{{msg}} 一直解析不了, 于是用户就看到它了,不友好, 于是 vue推出 与css配合 [v-cloak] {display:none}
- 杭州集训Day5
下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗, ...
- js分页加载数据
<script type="text/javascript"> $(function(){ $.ajax({ type: "post", dataT ...
- osi七层模型??
1.应用层:提供用户服务,例如处理应用程序,文件传输,数据管理 (HTTP.RTSP.FTP) 2.表示层:做数据的转换和压缩,加解密等 3.会话层:决定了进程间的连接建立,选择使用什么样的 ...
- Delphi XE2_XE3 Update
Delphi 和 C++Builder XE2 更新摘要 XE2的关键特性如下: 1. FireMonkey Application Platform支持运行在Windows (32和64位),Mac ...
- vue 使用element-ui中的Notification自定义按钮并实现关闭功能以及如何处理多个通知
使用element-ui中的Notification,只有一个message属性是有很大的操作空间,其余的都是写死的,无法进行扩展,达不到想要的效果.所以只能在message上下功夫. 在elemen ...