06 2024 档案

摘要:在前面讨论的所有LED驱动程序中,把全部设备信息和驱动代码都写在了一个文件中,从本质上看,这种开发方式与单片机的开发并没有太大的区别,一旦硬件信息发生变化,就必须要修改驱动程序的源码。然而,Linux作为一个发展成熟、功能齐全、结构复杂的操作系统,它对于代码的可维护性、复用性非常看重。为了解决驱动代 阅读全文
posted @ 2024-06-20 21:54 fxzq 阅读(300) 评论(0) 推荐(0)
摘要:在前面的LED驱动控制中,都只使用了一个设备节点(一个次设备号)来进行操作,本例来讨论一下如何把三个基色的LED分别当成三个次设备,即产生出三个设备节点文件,但共用一个设备驱动(同一个主设备号),应用程序各自控制各自的LED 。 下面先给出完整的驱动程序代码,文件名仍为led.c。 #include 阅读全文
posted @ 2024-06-16 21:29 fxzq 阅读(180) 评论(0) 推荐(0)
摘要:在开发驱动程序的时候,有时希望快速地实现其业务功能,以把精力放在文件接口功能的测试上来。这样,对于常见的一些繁琐而又不能省略的步骤(如设备号的申请、字符设备的注册、设备节点文件的创建等),就希望能尽量地简化。这时,就可以借用Linux内核提供的misc(杂项)来实现。 这里仍然使用“嵌入式Linux 阅读全文
posted @ 2024-06-14 23:42 fxzq 阅读(159) 评论(0) 推荐(0)
摘要:“嵌入式Linux中的LED驱动控制”一文实现了在野火STM32MP157开发板上对三个LED灯的控制,这里来讨论一下该驱动程序具体实现的原理。由于实例使用的是STM32MP157这款芯片,所以先来看一下与该芯片端口操作相关的寄存器。 先看端口模式寄存器MODER,该类型的寄存器在STM32MP15 阅读全文
posted @ 2024-06-11 21:09 fxzq 阅读(185) 评论(0) 推荐(0)
摘要:在“嵌入式Linux中内核模块的基本框架”一文中,已经构建好了内核模块的基本框架结构,现在在该框架的基础上进一步扩展,就可以形成Linux下的字符型设备驱动基本框架,下面就详细进行讨论。 在Linux系统中,设备驱动共分为三种类型,即字符型、块型和网络型。字符型设备以字节为最小操作单位,最为常见,其 阅读全文
posted @ 2024-06-09 16:24 fxzq 阅读(238) 评论(0) 推荐(0)
摘要:在Linux系统中,驱动程序属于内核态程序,可以认为它是介于操作系统和硬件实体之间的一层,对上负责与操作系统交流,对下负责控制硬件设备。 即,驱动程序对操作系统通过软件接口进行沟通,对芯片硬件通过读写寄存器进行控制。Linux系统的驱动由内核模块(Loadable Kernel Module,简称L 阅读全文
posted @ 2024-06-03 16:58 fxzq 阅读(534) 评论(0) 推荐(0)