0%

ARM Cortex-M3 M4

引言

ARM Cortex-M3 M4是ARM公司推出的32RISC(精简指令集计算机)处理器内核,用于各种嵌入式系统中。

阅读全文 »

Pinctrl和GPIO子系统

引言

在Linux系统中Pinctrl子系统和GPIO子系统是非常重要的概念,他们共同负责和管理SoC(system on a Chip)上的引脚。这两个子系统相互协作,为驱动开发提供一个灵活且高效的接口,用于配置和控制硬件引脚。

阅读全文 »

杂项设备的使用流程

1、杂项设备(misc device)
  • 概念:

    杂项设备是linux内核提供的一种字符设备驱动矿建,用于管理那些功能比较简单、数量较少的设备。

  • 特点:

    主设备号固定为10,通过次设备号来区分不同的杂项设备。

    结构简单

    提供基本的读写操作接口

阅读全文 »

匹配过程及其问题

1、匹配过程

​ 在linux驱动中,目前学到了三种编写代码的方式。

  • 第一种:传统编写。驱动和硬件写在一起,让linux内核和硬件交织在一起,这是早期linux开发的编写方式,不推荐使用,可以在初学时看看,也可以不看,不影响。

  • 第二种:使驱动和设备硬件分开编写。pdrv主要编写linux的内核代码,pdev主要关于硬件的资源。分开有利管理,但是当设备多了之后,又出现了问题,代码太多,太繁。

  • 第三种:使用设备树。驱动的代码基本不变,修改设备硬件的代码,把使用的设备硬件汇总为一个设备树的结构,每个节点都是一个设备硬件,代码简单、方便、便于移植。

阅读全文 »

设备树

linux3.0以后版本才引进了设备树,在此之前的linux内核代码中描述硬件平台信息的代码散乱的分布在arch/arm/plat-XXX 和 arch/arm/mach-XXX等目录中。所以为了改善这一情况,设备树孕育于出,它将这些硬件描述信息从内核代码中剥离出来,使用一种树形结构来描述硬件平台的组成和配置信息。

具体关于设备树的介绍可以参考:https://www.devicetree.org/

阅读全文 »