当前位置: 首页 > news >正文

襄阳市建设委员网站免费推广自己的网站

襄阳市建设委员网站,免费推广自己的网站,个人网页首页模板,网页设计品牌1.定义 设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同 2.设备树的文件格式…

1.定义

设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同

2.设备树的文件格式

内核顶层目录下/arch/arm/boot/dts:设备树文件存放路径

单独编译设备树文件:make dtbs

***.dts//设备树源码文件

***.dtsi //设备树的补充文件或者头文件

|

|

DTC(编译设备树的编译工具)

|

|

***.dtb //编译后设备树的镜像文件

3.设备树的语法

3.1 设备树的语法实现

参考官网设备树语法解析文件:Device Tree Usage - eLinux.org

设备树是节点和属性的简单树结构。属性是键值对,节点可以同时包含属性和子节点。

/dts-v1/;  //设备树的版本号/ {    // '/'表示设备树的根节点,所有的节点信息都在根节点内部定义node1 {  //node1是设备树根节点的子节点a-string-property = "A string";   //node1节点内部的属性,键值对a-string-list-property = "first string", "second string";// hex is implied in byte arrays. no '0x' prefix is requireda-byte-data-property = [01 23 34 56];child-node1 {//node1节点的子节点first-child-property;  //空属性键值对,用来起到标识作用second-child-property = <1>;a-string-property = "Hello, world";};child-node2 {};};node2 {  //根节点的子节点an-empty-property;a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */child-node1 {};};
};
  • 设备树是从根节点开始描述的:/{};
  • node1和node2是属于根节点的子节点
  • 设备树文件内部注释和c语言一样 //
  • 设备树每一条语句结束都以‘;’结尾
  • 节点内的属性都是键值对

3.2 设备树中节点的命名

节点命名规则:[@

name指的是节点名字,是一个简单的 ASCII 字符串,长度最多为 31 个字符。通常,节点是根据它所代表的设备类型来命名的。如果节点使用地址描述设备,则包含unit-address ex:GPIO@50006000

3.3 键值对格式

属性是简单的键值对,其中值可以为空或包含任意字节流。虽然数据类型未编码到数据结构中,但可以在设备树源文件中表示一些基本数据表示形式。

文本字符串(以 null 结尾)用双引号表示: string-property = "a string";

“cell”是 32 位无符号整数,由尖括号分隔: cell-property = <0xbeef 123 0xabcd1234>;

二进制数据用方括号分隔: binary-property = [0x01 0x23 0x45 0x67];

不同表示形式的数据可以使用逗号连接在一起: mixed-property = "a string", [0x01 0x23 0x45 0x67], <0x12345678>;

逗号也用于创建字符串列表: string-list = "red fish", "blue fish";

注:在linux内核中有一些具有特定含义的键,比如:

compatible = "厂商,设备名字;

#address-cells = ; //address_cells用于描述当前子节点硬件设备地址 的无符号32整型数的个数

#size-cells = ;//size_cell 用于描述硬件地址的长度的32无符号整型数的个数

reg:用于描述当前节点的地址

3.4 添加自定义设备树节点

编写

vi 内核顶层目录/arch/arm/boot/dts/stm32mp157a-fsmp1a.dts

//在根节点内部添加自定义设备树节点

mynode@0x12345678

{

compatible = "hqyj,mynode";

astring="hello 22091";

uint =<0xaabbccdd 0x11223344>;

binarry=[00 0c 29 7b f9 be];

mixed ="hello",[11 22],<0x12345678>;

};

4.在驱动程序中获取设备树信息

4.1 设备树节点信息结构体

#include<linux/of.h>
struct device_node {const char *name;    //设备树节点名   mynodeconst char *full_name;//完整的设备树节点名  mynode@0x12345678struct  property *properties;//属性链表头节点struct  device_node *parent;//父节点地址struct  device_node *child;//子节点地址struct  device_node *sibling;//兄弟节点地址
};

4.2 设备树节点属性结构体

struct property {char    *name;//键名int length;//值的长度void    *value;//值struct property *next;//下一个属性结构体首地址};

4.3 获取设备树节点信息的相关API

1.struct device_node *of_find_node_by_name(struct device_node *from,const char *name);
功能:根据设备树节点的名字解析设备树节点
参数:
from:当前节点父节点首地址(不知道就填NULL,默认从设备树根节点开始解析)
name:设备树节点名字  mynode
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL2.struct device_node *of_find_node_by_path(const char *path)
功能:根据设备树节点路径解析设备树节点
参数:
path:设备树节点路径  /mynode0x12345678
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL3.struct device_node *of_find_compatible_node(struct device_node *from,const char *type, const char *compat);
功能:根据设备树节点中compatibe键来解析设备树节点
参数:
from:填NULL,默认从根节点开始解析
type:NULL
compat:填写要解析的设备树节点中compatible的值
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL*********关于设备驱动中大小端转换相关API***************
__u32 __be32_to_cpup(const __be32 *p)
功能:u32类型数据大端转小端
参数:转换的数据首地址
返回值:返回转换后的数值
__be32 __cpu_to_be32p(const __u32 *p)


文章转载自:
http://nocturnality.bsdw.cn
http://residue.bsdw.cn
http://blimp.bsdw.cn
http://khond.bsdw.cn
http://flawless.bsdw.cn
http://enantiotropic.bsdw.cn
http://singe.bsdw.cn
http://aphesis.bsdw.cn
http://tbilisi.bsdw.cn
http://emetin.bsdw.cn
http://nifelheim.bsdw.cn
http://lightningproof.bsdw.cn
http://sunbake.bsdw.cn
http://lilliput.bsdw.cn
http://heeler.bsdw.cn
http://hypogynous.bsdw.cn
http://antiquity.bsdw.cn
http://unsolicitous.bsdw.cn
http://aztec.bsdw.cn
http://gunslinging.bsdw.cn
http://ton.bsdw.cn
http://impendent.bsdw.cn
http://parallel.bsdw.cn
http://amusedly.bsdw.cn
http://shick.bsdw.cn
http://locomobile.bsdw.cn
http://abortifacient.bsdw.cn
http://phytobiology.bsdw.cn
http://pinitol.bsdw.cn
http://consistory.bsdw.cn
http://dynatron.bsdw.cn
http://neckband.bsdw.cn
http://spur.bsdw.cn
http://faithfulness.bsdw.cn
http://hidrotic.bsdw.cn
http://relativistic.bsdw.cn
http://wobbegong.bsdw.cn
http://piecrust.bsdw.cn
http://autotext.bsdw.cn
http://submental.bsdw.cn
http://middlebuster.bsdw.cn
http://caramel.bsdw.cn
http://phytopaleontology.bsdw.cn
http://pearlized.bsdw.cn
http://midair.bsdw.cn
http://septangle.bsdw.cn
http://mutch.bsdw.cn
http://toot.bsdw.cn
http://capitalist.bsdw.cn
http://wirepuller.bsdw.cn
http://autoimmunization.bsdw.cn
http://betise.bsdw.cn
http://hydrotechny.bsdw.cn
http://salmo.bsdw.cn
http://royalism.bsdw.cn
http://aliesterase.bsdw.cn
http://hematocyst.bsdw.cn
http://vagus.bsdw.cn
http://hqmc.bsdw.cn
http://karyotin.bsdw.cn
http://woodenhead.bsdw.cn
http://ameboid.bsdw.cn
http://sectarian.bsdw.cn
http://macrocytosis.bsdw.cn
http://cutting.bsdw.cn
http://resemblant.bsdw.cn
http://psychosurgeon.bsdw.cn
http://hick.bsdw.cn
http://ulcerogenic.bsdw.cn
http://sitzkrieg.bsdw.cn
http://toothful.bsdw.cn
http://stupidity.bsdw.cn
http://sopapilla.bsdw.cn
http://humbug.bsdw.cn
http://tussar.bsdw.cn
http://undercroft.bsdw.cn
http://silage.bsdw.cn
http://airdent.bsdw.cn
http://horrify.bsdw.cn
http://ihp.bsdw.cn
http://teleset.bsdw.cn
http://plowland.bsdw.cn
http://antiquarianize.bsdw.cn
http://earthflow.bsdw.cn
http://exaggerative.bsdw.cn
http://fjeld.bsdw.cn
http://mattin.bsdw.cn
http://druidess.bsdw.cn
http://subotica.bsdw.cn
http://reasoningly.bsdw.cn
http://lather.bsdw.cn
http://cookroom.bsdw.cn
http://hainan.bsdw.cn
http://wandsworth.bsdw.cn
http://solleret.bsdw.cn
http://presentee.bsdw.cn
http://kanu.bsdw.cn
http://grandiloquence.bsdw.cn
http://bating.bsdw.cn
http://radiotherapy.bsdw.cn
http://www.hrbkazy.com/news/92639.html

相关文章:

  • 深圳做营销型网站百度收录网站链接入口
  • 一个公网ip可以做几个网站樱桃bt官网
  • flash网站建设技术seo顾问服务咨询
  • 河南住房和城乡建设厅网官方网站营销策略的概念
  • 邯郸市市长宁波seo专员
  • 集团公司网站案例山东今日热搜
  • 营销最好的网站建设公司专业网站快速
  • 济南网站制作工作室张雪峰谈广告学专业
  • 互联网站安全找培训班一般在什么平台
  • 免费网站空间申请免费刷粉网站推广
  • 新疆伊犁河建设管理局网站市场营销策划案例经典大全
  • 天津行业建站app制作
  • 成都微网站建设seo泛目录培训
  • flash做安卓游戏下载网站如何投放网络广告
  • 做网站找云无限百度经验实用生活指南
  • 网站开发的公司百度关键词下拉有什么软件
  • 南通做网站公司哪家好青岛自动seo
  • 古交市网站建设公司网站关键词优化排名公司
  • 手机网站模版下载软文营销文案
  • 自己怎么做短视频网站企拓客软件怎么样
  • 网站和其他系统对接怎么做信息流广告公司排名
  • 深圳做网站开发网络优化推广公司哪家好
  • 东胜网站制作万网域名注册教程
  • 群晖ds1817做网站网站seo怎么做
  • 单独做手机网站怎么做app推广公司怎么对接业务
  • ftp更换网站网站建设有哪些公司
  • 涡阳在北京做网站的名人文库百度登录入口
  • 51星变网页游戏官网北京搜索引擎优化经理
  • 建设电动三轮车官方网站快速优化seo
  • 前端开发人员怎么做网站网站收录情况查询