设备树编写基础

设备树在Linux系统中用于解决内核硬件信息的代码冗余问题,实现了硬件信息和驱动的分离。本文介绍了设备树的基本概念、组织结构、常见属性如compatible、#address-cells、#size-cells、reg、中断信息等,并讲解了如何在驱动程序中通过Open Firmware接口获取设备树信息。
摘要由CSDN通过智能技术生成

为什么会有设备树:
在linux2.6之前,Linux采用硬编码的方式,把支持的厂商的测试板的信息全部写在内核中。来实现Linux的兼容,这使得内核硬件信息的代码占比越来越大。而对用户来说我只要我的板子的硬件信息。这就导致有很多的代码的冗余

我们引入设备树之后,用户可以根据自己的板子,去填写和修改设备硬件信息,做到硬件信息和驱动的分离。

我驱动过程中,我们的设备树文件,会被挂载到u_boot的一个内存区域,比如我们之前系统移植的过程中。我们把U-Image 放到41000000
把exynos4412-fs4412.dtb 放到了420000000的位置,这样内核在运行的时候就可以去读取设备树二进制文件中的数据。
根据,我驱动要的设备信息进行匹配,根据设备节点和属性等信息进行匹配。

设备树文件,是以树形结构编写设备,有根节点,下面有节点设备,节点设备下面又有子设备,子设备下面还一子子设备…
比如,我电脑,是一个设备,那么我电脑里面所有的设备组成的设备,那么我电脑设备就是一个根设备/dev 那我电脑里面有网卡上面的,那我网卡组成一个设备节点/dev/网卡 网卡里面有分很多设备 什么dm9000。。。。。

语法格式
/ {
   
node1 {
   
						a-string-property = "A string";
						a-string-list-property = "first string", "second string";
						a-byte-data-property = [0x01 0x23 0x34 0x56
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值