树莓派驱动开发--认识设备树篇

一、认识设备树的结构

编译好内核后,进入设备树目录:(我的在)/home/hsw/linux_kennel/linux/arch/arm/boot/dts

使用命令,列出所有和4b树莓派相关的设备树文件.

ls bcm2711* bcm2835*

其中bcm2711-rpi-4-b.dts便是我们要的,以后的开发也会在此设备树文件下添加节点等工作,并将其编译成.dtb加载到树莓派上。

使用命令,进入文件:

gedit bcm2711-rpi-4-b.dts 

可能你还没下载gedit这个编辑工具,可以使用sudo apt-get install gedit;

执行后会看到,

我们关注的是它的包含文件,bcm2711.dtsi和bcm2711-rpi-dtsi,使用相同命令,打开这两个文件:

观察内容,发现第二个文件不是重点,因为它没有描述外设这些,所以我们不要再从第二个文件扩展了,放眼第一个文件,它包含了一个bcm283x.dtsi,我们再移步这个文件:

可以看到它不再包含什么.dtsi文件了,这就是树莓派的底层描绘文件。移步其内容:往下便可找到节点soc,soc下面又有gpio这个子节点,截出部分内容:

如果你学过正点原子的imx6u,那这里的gpio子节点就相当于imx6u的pinctrl子系统,平台不同,各自有各自的命名规定。

这里的brcm,pins =是树莓派规定的规定格式,类同正点原子的

那这种描述是什么意思呢?如果要知道,就要查看绑定文档:

路径:/home/hsw/linux_kennel/linux/Documentation/devicetree/bindings

可以看到有一个pinctrl目录,进入:

gedit brcm,bcm2835-gpio.txt :这个是树莓派描述pinctrl的属性的

对应:

接着,gedit pinctrl-bindings.txt :讲述pintrl怎么使用

再接着我们看到

故使用gedit ../gpio/gpio.txt 

这里描述了怎么使用gpio口。

好了,说到这里,我想表达的是,想开发一个开发板,就先知道那些表达的含义,怎么知道?查看绑定文件,这里用gpio口举一反三,其他外设步骤相同。

经过上面的查看跳转,我们得到了如下信息:

pinctrl怎么描述,io口怎么描述

有了这两个知识,我们就好开发了。

这里提一下,我为什么知道bcm2711-rpi-4-b.dts是我们要用的?

因为我经过文件的扩展,发现

和树莓派手册中的bcm2711-peripherals.pdf (raspberrypi.com)

寄存器地址对的上。

二、各个文件的解释

bcm2711-rpi-4-b.dts    bcm283x.dtsi   bcm2711.dtsi

bcm283x.dtsi你可以理解成树莓派的原厂用来描述树莓派这个核心芯片信息的文件,它描述的是树莓派核心芯片的信息,然后开放到社区。

原厂升级了树莓派,衍生了2711系列,因为继承了283x系列的东西,所以直接在bcm283x.dtsi基础上修改出了2711这款具体芯片的底层描述文件,生成了bcm2711.dtsi。

2711-4-b开发板厂家购买了它的权利后,工程师就在bcm2711.dtsi基础上添加自己设计的板子的信息,比如时钟,哪个引脚应用在什么上,自己的设备树底层板载芯片使用信息,比如描述了iic的引脚、几个参数cell,地址等。

最后,得到开发接口描述文件bcm2711-rpi-4-b.dts文件,使用该文件以追加的形式进行开发,&节点,追加具体设备等。

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值