随笔分类 -  Drivers

摘要:在加载PCI设备驱动后,有时需要重新枚举设备以确保系统正确识别和配置新加载的设备。以下是在Linux系统中重新枚举PCI设备的常用方法: 方法一:通过写入/sys文件系统进行重新扫描 触发PCI总线重新扫描 通过向/sys/bus/pci/rescan文件写入1,可以告诉内核重新扫描PCI总线以检测 阅读全文
posted @ 2025-02-17 16:01 闹闹爸爸 阅读(34) 评论(0) 推荐(0) 编辑
摘要:硬件平台:CM4 8G RAM核心板 Hardware : BCM2711 Revision : d03141 Serial : 100000002297c853 Model : Raspberry Pi Compute Module 4 Rev 1.1 系统:树莓派32位OS 问题背景:核心板是8 阅读全文
posted @ 2023-12-15 14:26 闹闹爸爸 阅读(713) 评论(0) 推荐(0) 编辑
摘要:当前使用的Linux内核版本: 4.4.189 插上USB Bluetooth 5.0 Adapter后,dmesg显示如下log: [ 240.348480] usb 3-1.2: new full-speed USB device number 6 using ehci-platform [ 2 阅读全文
posted @ 2023-11-14 18:57 闹闹爸爸 阅读(550) 评论(0) 推荐(0) 编辑
摘要:平台驱动程序也与DTs一起工作。这是目前处理平台设备的推荐方式,不再需要使用板级文件,当设备的属性发生变化时也不需要重新编译内核。可以使用OF匹配表进行匹配,这是一种基于DT的匹配机制。下面让我们看看它是如何工作的。 OF匹配表方式 OF匹配表匹配是Platform核心执行的第一个匹配机制,目的是将 阅读全文
posted @ 2023-03-28 19:50 闹闹爸爸 阅读(826) 评论(0) 推荐(0) 编辑
摘要:驱动程序的主要目的是处理和管理设备,大多数时候将它们的功能暴露给用户空间。这里的目标是收集设备的配置参数,特别是资源(内存区域、中断线、DMA通道、时钟等)。 下面是我们将在本文中使用的设备节点。它是i.MX6 UART设备的节点,定义在arch/arm/boot/dts/imx6qdl.dtsi中 阅读全文
posted @ 2023-03-27 19:42 闹闹爸爸 阅读(117) 评论(0) 推荐(0) 编辑
摘要:表示和寻址设备 每个设备在DT中至少有一个节点。有些属性对于许多设备类型都是通用的,特别是位于内核已知总线(SPI、I2C、Platform、MDIO等等)上的设备。这些属性是reg、#address-cells和#size-cells。这些属性的目的是在它们所在的总线上进行设备寻址。也就是说,主要 阅读全文
posted @ 2023-03-12 17:55 闹闹爸爸 阅读(199) 评论(0) 推荐(0) 编辑
摘要:设备树(DT)是一个易于阅读的硬件描述文件,具有类似json的格式化风格,这是一个简单的树结构,其中设备由节点及其属性表示。属性可以为空(仅有key,用于描述布尔值),也可以为key-value对,其中value可以包含任意字节流。本章是对DT的简单介绍。每个内核子系统或框架都有自己的DT绑定。我们 阅读全文
posted @ 2023-03-12 15:43 闹闹爸爸 阅读(269) 评论(0) 推荐(0) 编辑
摘要:我们都知道网络是Linux内核所固有的。一些年以前,Linux由于其网络性能而被使用,但现在情况已经发生了变化;Linux不仅仅是一个服务器,它可以在数十亿个嵌入式设备上运行。多年来,Linux已经获得了最好的网络操作系统的声誉。尽管如此,Linux不能做所有的事情。考虑到存在的各种各样的以太网控制 阅读全文
posted @ 2023-03-08 16:14 闹闹爸爸 阅读(573) 评论(0) 推荐(1) 编辑
摘要:脉冲宽度调制(PWM)的工作原理就像一个开关,不断循环开和关。它是一种硬件功能,用于控制伺服电机,进行电压调节等。PWM最广为人知的应用有: 电机转速控制 亮度调节 电压调整 下面用一个简单的图表来介绍PWM: 上图展示了一个完整的PWM周期,介绍了一些术语,在深入了解核心PWM框架之前,我们需要说 阅读全文
posted @ 2023-02-20 20:21 闹闹爸爸 阅读(469) 评论(0) 推荐(0) 编辑
摘要:实时时钟(RTC)是用于跟踪非易失性存储器中的绝对时间的设备,RTC设备可以位于处理器内部,也可以通过I2C或SPI总线连接到外部。 你可以使用RTC进行以下操作: 读取和设置绝对时钟,并在时钟更新期间产生中断 生成周期性中断 设置时钟(alarms) RTC和系统时钟有不同的用途。前者是硬件时钟, 阅读全文
posted @ 2023-02-15 19:44 闹闹爸爸 阅读(236) 评论(0) 推荐(0) 编辑
摘要:输入设备是可以与系统交互的设备。这些设备包括按钮、键盘、触摸屏、鼠标等等。它们通过发送由输入核心捕获并在系统上广播的事件来工作。本文将解释输入核心用于处理输入设备的每个结构。我们还将说明如何从用户空间管理事件。 在本文中,我们将讨论以下主题: 输入核心数据结构 分配和注册输入设备,以及轮询的设备族 阅读全文
posted @ 2023-02-14 13:12 闹闹爸爸 阅读(301) 评论(0) 推荐(0) 编辑
摘要:编写代码并不总是内核开发中最难的部分。调试是真正的瓶颈,即使对于有经验的内核开发人员也是如此。也就是说,大多数内核调试工具都是内核本身的一部分。有时,内核通过称为Oops的消息来帮助查找错误的起源。调试可以归结为分析消息。 Oops 和 panic分析 Oops是当发生错误或未处理的异常时由Linu 阅读全文
posted @ 2023-02-06 19:06 闹闹爸爸 阅读(222) 评论(0) 推荐(0) 编辑
摘要:如何精确控制驱动程序的log输出? 一、设定Level等级 enum { DRV_MSG_ERR = 0x0001, DRV_MSG_WARN = 0x0002, DRV_MSG_INFO = 0x0004, DRV_MSG_DEBUG = 0x0008, DRV_MSG_XXX1 = 0x0010 阅读全文
posted @ 2023-01-11 11:45 闹闹爸爸 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Note: 本文主要列举几个usb设备驱动实例 一、“USB LED”驱动模块 在前面的实验室中,开发了一个功能齐全的USB HID设备的固件,该设备能够通过使用HID报告发送和接收数据。现在,将开发一个Linux USB主机驱动程序来控制USB设备。驱动将发送USB命令切换PIC32MX470开发 阅读全文
posted @ 2023-01-06 19:01 闹闹爸爸 阅读(800) 评论(0) 推荐(0) 编辑
摘要:USB(通用串行总线的缩写)被设计为一种低成本的串行接口解决方案,总线电源由USB主机提供,以支持广泛的外围设备。USB最初的总线速度是1.5 Mbps的低速,然后是12 Mbps的全速,然后是480 Mbps的高速。随着USB 3.0规范的出现,超级速度被定义为4.8 Gbps。最大数据吞吐量,即 阅读全文
posted @ 2023-01-05 13:33 闹闹爸爸 阅读(1278) 评论(0) 推荐(0) 编辑
摘要:方法一: interrupts-extended: 指定中断和父中断的另一种形式,允许多个父中断。这优先于'interrupts'和'interrupt-parent'。 #interrupt-cells = <2>; interrupts-extended = <&gpio1 6 0>, <&gp 阅读全文
posted @ 2022-12-19 19:12 闹闹爸爸 阅读(2577) 评论(0) 推荐(0) 编辑
摘要:USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver) 阅读全文
posted @ 2022-07-20 16:50 闹闹爸爸 阅读(2537) 评论(0) 推荐(0) 编辑
摘要:如果我们想要在ubuntu20.04系统下开发rasp的i2c设备驱动程序,那我们需要在相应的i2c设备树节点里添加设备的node信息。我们先看/boot下有哪些信息: # ls /boot/ -l total 42275-rw-r--r-- 1 root root 233406 Apr 14 17 阅读全文
posted @ 2021-08-13 19:03 闹闹爸爸 阅读(866) 评论(0) 推荐(0) 编辑
摘要:消费者接口只要求驱动程序包含一个头文件: #include <linux/regulator/consumer.h> 消费者可以是静态的,也可以是动态的。静态调节器只需要一个固定的电源,而动态调节器需要在运行时对调节器进行主动管理。从消费者的角度来看,调节器设备在内核中被表示为一个struct re 阅读全文
posted @ 2021-08-02 18:57 闹闹爸爸 阅读(2839) 评论(0) 推荐(0) 编辑
摘要:调节器(regulator)是一种为其他设备供电的电子设备。由调节器供电的设备被称为消费者。它们消耗调节器提供的电力。大多数调节器可以启用和禁用他们的输出,一些也可以控制他们的输出电压或电流。驱动程序应该通过特定的函数和数据结构向消费者公开这些功能,这些在稍后讨论。 提供物理调节的芯片被称为电源管理 阅读全文
posted @ 2021-08-02 18:01 闹闹爸爸 阅读(3634) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示