设备树
设备树的由来以及基本概念
设备树文件代替的是device.c文件,拿到了内核外面,platform匹配上基本不变,不用重新编译内核了;
采用文本格式;
语法结构像树一样;
设备树基本语法
节点
阅读源文件,看节点从左往右看;看节点内容从上往下看;
节点名称
节点别名
uart8和serial关系
节点的引用
属性
reg属性
address-cells和size-cell
compatible属性
status属性
设备树中添加自定义节点
查看节点
此方法与上面的一样
编写自定义节点
编译自定义节点
注意配置ARCH 、CROSS_COMPILE
只编译一个dts文件
编译后生成文件在哪
烧写文件
略
设备树中常用的of操作函数
2个结构体
查找节点函数
of_find_node_by_path()
查找节点属性函数
of_find_property()
读取属性值
示例
查找我们要查找的节点 of_find_node_by_path()
获取属性值 of_find_property()
根据读类型,选择函数
设备树下的platform总线
根节点里compatible属性,是跟内核匹配的如下
也就是说内核的运行,依赖设备树
确保已经有此节点了
3个name,优先级of_match_table > id_table > driver.name
获取属性
使用设备框架驱动,生成设备节点
补充知识点:
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。