随笔分类 -  Linux嵌入式——驱动开发

基于I.MX6ULL开发板
摘要:使用target remote 192.168.10.15:2001 连接成功后 命令集合 l命令 b命令 c命令 使用vscode { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft. 阅读全文
posted @ 2022-02-17 13:55 蘑菇王国大聪明 阅读(82) 评论(0) 推荐(0) 编辑
摘要:compatible:兼容性属性,必须的,可以设置为“fsl,vf610-adc”。 reg:ADC 控制器寄存器信息。 interrupts:中断属性,ADC1 和 ADC2 各对应一个中断信息。 clocks:时钟属性。 clock-names:时钟名字,可选“adc”。 vref-supply 阅读全文
posted @ 2022-02-17 13:31 蘑菇王国大聪明 阅读(118) 评论(0) 推荐(0) 编辑
摘要:工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发,传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等,这些传感器本质上都是ADC,大家注意查看这些传感器的手册,会发现他们内 阅读全文
posted @ 2022-02-16 21:36 蘑菇王国大聪明 阅读(2107) 评论(1) 推荐(0) 编辑
摘要:1.什么是regmap Linux 下大部分设备的驱动开发都是操作其内部寄存器,比如 I2C/SPI 设备的本质都是一样的,通过 I2C/SPI 接口读写芯片内部寄存器。芯片内部寄存器也是同样的道理,比如 I.MX6ULL的 PWM、定时器等外设初始化,最终都是要落到寄存器的设置上。 Linux 下 阅读全文
posted @ 2022-02-16 18:15 蘑菇王国大聪明 阅读(223) 评论(0) 推荐(0) 编辑
摘要:音频是我们最常用到的功能,音频也是 linux 和安卓的重点应用场合。I.MX6ULL 带有 SAI接口,正点原子的 I.MX6ULL ALPHA 开发板通过此接口外接了一个 WM8960 音频 DAC 芯片,本章我们就来学习一下如何使能 WM8960 驱动,并且通过 WM8960 芯片来完成音乐播 阅读全文
posted @ 2022-02-14 17:25 蘑菇王国大聪明 阅读(861) 评论(0) 推荐(0) 编辑
摘要:IO 复用功能选择器(IOMUXC)的寄存器非常多,主要可以分为四组:① IOMUXC_GPR 寄存器组,用于通用控制设置。② IOMUXC_SNVS 组,主要用于GPIO5 的控制。③ IOMUXC_SNVS_GPR 寄存器组,暂时没用到。④ IOMUXC 组,用于指定IO 的复用功能选择和IO 阅读全文
posted @ 2022-02-14 10:36 蘑菇王国大聪明 阅读(534) 评论(0) 推荐(0) 编辑
摘要:1.电容触摸屏驱动框架 1.1 MT协议讲解 ①、电容触摸屏是 IIC 接口的,需要触摸 IC,以正点原子的 ATK7016 为例,其所使用的触摸屏控制 IC 为 FT5426,因此所谓的电容触摸驱动就是 IIC 设备驱动。 ②、触摸 IC 提供了中断信号引脚(INT),可以通过中断来获取触摸信息。 阅读全文
posted @ 2022-02-13 20:21 蘑菇王国大聪明 阅读(751) 评论(0) 推荐(0) 编辑
摘要:1.Linux下SPI驱动框架 SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动,主机控制器也就是 SOC的 SPI 控制器接口。比如在裸机篇中的《第二十七章 SPI 实验》,我们编写了 bsp_spi.c 和 bsp_spi.h这两个文件,这两个文件是 I.MX6U 的 SPI 阅读全文
posted @ 2022-02-13 19:30 蘑菇王国大聪明 阅读(697) 评论(0) 推荐(0) 编辑
摘要:I2C 是很常用的一个串行通信接口,用于连接各种外设、传感器等器件,在裸机篇已经对I.MX6U 的 I2C 接口做了详细的讲解。本章我们来学习一下如何在 Linux 下开发 I2C 接口器件驱动,重点是学习 Linux 下的 I2C 驱动框架,按照指定的框架去编写 I2C 设备驱动。本章同样以 I. 阅读全文
posted @ 2022-02-12 18:24 蘑菇王国大聪明 阅读(305) 评论(0) 推荐(0) 编辑
摘要:RTC 也就是实时时钟,用于记录当前系统时间,对于 Linux 系统而言时间是非常重要的,就和我们使用 Windows 电脑或手机查看时间一样,我们在使用 Linux 设备的时候也需要查看时间。本章我们就来学习一下如何编写 Linux 下的 RTC 驱动程序。 1.Linux内核RTC驱动 RTC 阅读全文
posted @ 2022-02-12 18:18 蘑菇王国大聪明 阅读(364) 评论(0) 推荐(0) 编辑
摘要:1.Linux下LCD驱动简介 1.1 FrameBuffer 在 Linux 中应用程序最终也是通过操作 RGB LCD 的显存来实现在 LCD 上显示字符、图片等信息。在裸机中我们可以随意的分配显存,但是在 Linux 系统中内存的管理很严格,显存是需要申请的,不是你想用就能用的。而且因为虚拟内 阅读全文
posted @ 2022-02-12 17:45 蘑菇王国大聪明 阅读(497) 评论(0) 推荐(0) 编辑
摘要:1. Input子系统 按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息,input 核心层负责处 阅读全文
posted @ 2022-02-12 16:05 蘑菇王国大聪明 阅读(506) 评论(0) 推荐(0) 编辑
摘要:misc 的意思是混合、杂项的,因此 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动。 1. MISC 设备驱动简介 所有的 MISC 设备驱 阅读全文
posted @ 2022-02-11 20:22 蘑菇王国大聪明 阅读(98) 评论(0) 推荐(0) 编辑
摘要:1.自带led驱动使能 2.自带led驱动介绍 2.1 驱动框架分析 2.2 module_paltform_driver 2.3 gpio_led_probe 当驱动和设备匹配以后 gpio_led_probe 函数就会执行,此函数主要是从设备树中获取 LED灯的 GPIO 信息,缩减后的函数内容 阅读全文
posted @ 2022-02-11 19:44 蘑菇王国大聪明 阅读(432) 评论(0) 推荐(0) 编辑
摘要:前面编写的设备驱动都非常的简单,都是对IO进行最简单的读写操作。像I2C、SPI、LCD 等这些复杂外设的驱动就不能这么去写了,Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform 设备驱动,也叫做平台设备驱动。 1 阅读全文
posted @ 2022-02-11 18:56 蘑菇王国大聪明 阅读(785) 评论(0) 推荐(0) 编辑
摘要:1.异步通知 在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知,报告自己可以访问,然后应用程序在从驱动程序中读取或写入数据,类似于我们在裸机例程中讲解的中断。Linu 阅读全文
posted @ 2022-02-10 20:31 蘑菇王国大聪明 阅读(118) 评论(0) 推荐(0) 编辑
摘要:1.阻塞和非阻塞IO 1.1 简介 阻塞IO:当应用程序申请不到内核资源时,程序进入阻塞状态直至被唤醒 代码如下图所示 非阻塞IO:当申请不到内核资源时,会轮询访问,此时CPU忙 代码如下图所示 1.2 等待队列 等待队列头 阻塞访问最大的好处就是当设备文件不可操作的时候进程可以进入休眠态,这样可以 阅读全文
posted @ 2022-02-09 19:24 蘑菇王国大聪明 阅读(469) 评论(0) 推荐(0) 编辑
摘要:1.Linux中断 1.1 Linux中断API函数 request_irq函数 在 Linux 内核中要想使用某个中断是需要申请的,request_irq 函数用于申请中断,request_irq函数可能会导致睡眠,因此不能在中断上下文或者其他禁止睡眠的代码段中使用 request_irq 函数。 阅读全文
posted @ 2022-01-09 16:52 蘑菇王国大聪明 阅读(372) 评论(0) 推荐(0) 编辑
摘要:1.驱动代码 #include <linux/types.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/f 阅读全文
posted @ 2022-01-07 16:50 蘑菇王国大聪明 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1.设备树代码 2.驱动代码 #include <linux/types.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> #include <linux/init.h> #include 阅读全文
posted @ 2022-01-07 09:04 蘑菇王国大聪明 阅读(37) 评论(0) 推荐(0) 编辑

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