摘要: 在前面讨论的所有LED驱动程序中,把全部设备信息和驱动代码都写在了一个文件中,从本质上看,这种开发方式与单片机的开发并没有太大的区别,一旦硬件信息发生变化,就必须要修改驱动程序的源码。然而,Linux作为一个发展成熟、功能齐全、结构复杂的操作系统,它对于代码的可维护性、复用性非常看重。为了解决驱动代 阅读全文
posted @ 2024-06-20 21:54 fxzq 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 在前面的LED驱动控制中,都只使用了一个设备节点(一个次设备号)来进行操作,本例来讨论一下如何把三个基色的LED分别当成三个次设备,即产生出三个设备节点文件,但共用一个设备驱动(同一个主设备号),应用程序各自控制各自的LED 。 下面先给出完整的驱动程序代码,文件名仍为led.c。 #include 阅读全文
posted @ 2024-06-16 21:29 fxzq 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 在开发驱动程序的时候,有时希望快速地实现其业务功能,以把精力放在文件接口功能的测试上来。这样,对于常见的一些繁琐而又不能省略的步骤(如设备号的申请、字符设备的注册、设备节点文件的创建等),就希望能尽量地简化。这时,就可以借用Linux内核提供的misc(杂项)来实现。 这里仍然使用“嵌入式Linux 阅读全文
posted @ 2024-06-14 23:42 fxzq 阅读(24) 评论(0) 推荐(0) 编辑
摘要: “嵌入式Linux中的LED驱动控制”一文实现了在野火STM32MP157开发板上对三个LED灯的控制,这里来讨论一下该驱动程序具体实现的原理。由于实例使用的是STM32MP157这款芯片,a56爆大奖在线娱乐先来看一下与该芯片端口操作相关的寄存器。 先看端口模式寄存器MODER,该类型的寄存器在STM32MP15 阅读全文
posted @ 2024-06-11 21:09 fxzq 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 在“嵌入式Linux中内核模块的基本框架”一文中,已经构建好了内核模块的基本框架结构,现在在该框架的基础上进一步扩展,就可以形成Linux下的字符型设备驱动基本框架,下面就详细进行讨论。 在Linux系统中,设备驱动共分为三种类型,即字符型、块型和网络型。字符型设备以字节为最小操作单位,最为常见,其 阅读全文
posted @ 2024-06-09 16:24 fxzq 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 在Linux系统中,驱动程序属于内核态程序,可以认为它是介于操作系统和硬件实体之间的一层,对上负责与操作系统交流,对下负责控制硬件设备。 即,驱动程序对操作系统通过软件接口进行沟通,对芯片硬件通过读写寄存器进行控制。Linux系统的驱动由内核模块(Loadable Kernel Module,简称L 阅读全文
posted @ 2024-06-03 16:58 fxzq 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 在前面“嵌入式Linux中字符型驱动程序的基本框架”一文中,讨论了一个字符型驱动的基本框架,但没有实现具体的驱动任务。这里就以野火STM32MP157开发板为例,通过编写一个实际的驱动程序去控制开发板上三个LED的亮灭。 先来看一下LED部分的电路原理图,如下所示。 从上图中可以看到,三个RGB颜色 阅读全文
posted @ 2024-05-19 19:12 fxzq 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 一、电路模块 电路模块参见“基于EP4CE6F17C8的FPGA矩阵键盘实例”部分。 二、实验代码 本例使用6个数码管依次显示按下按键的键值,每位显示的值可从0~F,对应16个矩阵按键。按键reset为复位键,代码使用Verilog编写,具体如下。 先编写数码管实现显示字形解码的程序,模块名称为se 阅读全文
posted @ 2024-04-22 12:49 fxzq 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 一、电路模块 1、数码管 开发板板载了6个数码管,全部为共阳型,原理图如下图所示,段码端引脚为DIG[0]~DIG[7]共8位(包含小数点),位选端引脚为SEL[0]~SEL[5]共6位。端口均为低电平有效。 其实物图如下所示。 数码管引脚分配见下表。 2、时钟晶振 开发板板载了一个50MHz的有源 阅读全文
posted @ 2024-04-07 10:24 fxzq 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、电路模块 1、数码管 开发板板载了6个数码管,全部为共阳型,原理图如下图所示,段码端引脚为DIG[0]~DIG[7]共8位(包含小数点),位选端引脚为SEL[0]~SEL[5]共6位。端口均为低电平有效。 其实物图如下所示。 数码管引脚分配见下表。 2、时钟晶振 开发板板载了一个50MHz的有源 阅读全文
posted @ 2024-04-06 15:23 fxzq 阅读(102) 评论(0) 推荐(0) 编辑