Linux_NXP_IMX6ULL
文章平均质量分 92
研究NXP的IMX6ULL芯片
Absorbed_w
这个作者很懒,什么都没留下…
展开
-
I.MX6ULL_Linux_驱动篇(59)linux ADC驱动
linux ADC驱动简析原创 2024-03-27 17:25:11 · 1037 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(58)linux IIO驱动
linux IIO驱动简析原创 2024-03-27 14:19:06 · 660 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(57)linux Regmap API驱动
linux Regmap API原创 2024-03-26 16:10:39 · 869 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(56)linux PWM驱动
linux pwm驱动简析原创 2024-03-26 14:58:55 · 799 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(55)linux 网络驱动
linux网络驱动简析原创 2024-03-25 16:19:29 · 1369 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(54)linux 块设备驱动
linux 块设备驱动简析原创 2024-03-05 20:22:12 · 878 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(53)linux USB驱动
linux usb驱动了解原创 2024-01-30 15:37:08 · 1348 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(52)linux CAN驱动
linux CAN驱动简析原创 2024-01-02 13:55:59 · 1365 阅读 · 1 评论 -
I.MX6ULL_Linux_驱动篇(51)linux 音频驱动
linux 音频编解码驱动简析原创 2023-12-29 15:27:02 · 1722 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(50)linux UART驱动
linux uart 驱动简析原创 2023-12-27 13:20:53 · 1230 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(49)linux SPI驱动
linux spi 驱动简析原创 2023-12-19 17:49:38 · 1014 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(48)linux I2C驱动
linux i2c驱动简析原创 2023-12-19 15:32:33 · 996 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(47)linux RTC驱动
linux rtc驱动简析原创 2023-12-19 10:42:15 · 1321 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(46)linux LCD驱动
LCD使用原创 2023-12-10 17:30:46 · 1284 阅读 · 1 评论 -
I.MX6ULL_Linux_驱动篇(45)linux INPUT子系统
按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息, input 核心层负责处理这些事件。本章我们就来学习一下 Linux 内核中的 input 子系统。原创 2023-08-07 14:10:14 · 417 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(44)linux MISC驱动
MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。 MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动,本章我们就来学习一下 MISC 驱动的编写。原创 2023-08-04 14:13:50 · 267 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(43)linux通用LED驱动
前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动, Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,本章我们就来学习如何使用 Linux 内核自带的 LED 驱动来驱动原创 2023-08-04 11:05:25 · 339 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(42)设备树与platform设备驱动
上一章我们详细的讲解了 Linux 下的驱动分离与分层,以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这样的驱动框架, Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动。上一章我们讲解了传统的、未采用设备树的 platform 设备和驱动编写方法。最新的 Linux 内核已经支持了设备树,因此在设备树下如何编写 platform驱动就显得尤为重要,本章我们就来学习一下如何在设备树下编写 platform 驱动。原创 2023-08-02 13:47:24 · 296 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(41)platform设备驱动框架
我们在前面几章编写的设备驱动都非常的简单,都是对IO进行最简单的读写操作。像I2C、SPI、 LCD 等这些复杂外设的驱动就不能这么去写了, Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform 设备驱动,也叫做平台设备驱动。本章我们就来学习一下 Linux 下的驱动分离与分层,以及 platform 框架下的设备驱动该如何编写。原创 2023-07-31 10:56:07 · 174 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(40)异步通知
在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知,报告自己可以访问,然后应用程序在从驱动程序中读取或写入数据,Linux 提供了异步通知这个机制来完成此功能,本章我们就来学习一下异步通知以及如何在驱动中添加异步通知相关处理代码。原创 2023-07-06 15:08:09 · 286 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(39) 阻塞和非阻塞IO
阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式,在编写驱动的时候一定要考虑到阻塞和非阻塞。本章我们就来学习一下阻塞和非阻塞 IO,以及如何在驱动程序中处理阻塞与非阻塞,如何在驱动程序使用等待队列和 poll 机制。原创 2023-07-03 17:15:19 · 274 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(38) 中断驱动
不管是裸机实验还是 Linux 下的驱动实验,中断都是频繁使用的功能,在裸机中使用中断我们需要做一大堆的工作,比如配置寄存器,使能 IRQ 等等。 Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便,不需要一系列复杂的寄存器配置。本章我们就来学习一下如何在 Linux 下使用中断。原创 2023-06-15 13:26:01 · 826 阅读 · 1 评论 -
I.MX6ULL_Linux_驱动篇(37) linux系统定时器
定时器是我们最常用到的功能,一般用来完成定时功能,本章我们就来学习一下 Linux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用。 Linux内核也提供了短延时函数,比如微秒、纳秒、毫秒延时函数,本章我们就来学习一下这些和时间有关的功能。原创 2023-06-07 14:02:44 · 740 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(36) GPIO输入驱动
在前面我们都是使用的 GPIO 输出功能,还没有用过 GPIO 输入功能,本章我们就来学习一下在 Linux 下编写 GPIO 输入驱动程序。原创 2023-06-02 10:51:39 · 640 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(35) linux并发与竞争
Linux是一个多任务操作系统,存在多个任务共同操作同一段内存或者设备的情况,多个任务或者中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。比如共享单车,大家按照谁扫谁骑走的原则来共用这个单车,如果没有这个并发访问共享单车的原则存在,只怕到时候为了一辆单车要打起来了。在 Linux 驱动编写过程中对于并发控制的管理非常重要,本章我们就来学习一下如何在 Linux 驱动中处理并发。原创 2023-06-01 11:12:57 · 568 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(34) 字符设备驱动巩固
字符设备,gpio接口驱动框架原创 2023-05-24 09:30:13 · 470 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(33) pinctrl与gpio子系统
pinctrl与gpio子系统原创 2023-04-11 15:22:33 · 711 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(32) 设备树GPIO驱动
在前面章节中,我们直接在驱动文件 newchrled.c 中定义有关寄存器物理地址,然后使用 io_remap 函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地址完成对 GPIO 的初始化。本章我们使用设备树来向 Linux 内核传递相关的寄存器物理地址, Linux 驱动文件使用上一章讲解的 OF函数从设备树中获取所需的属性值,然后使用获取到的属性值来初始化相关的 IO。本章实验重点内容如下:①、在 imx6ull-alientek-emmc.dts 文件中创建相应的设备节点。原创 2023-03-28 11:02:58 · 1085 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(31) 设备树
设备树文件:以树状结构描述设备信息,包括soc资源,board资源。原创 2023-03-24 14:25:42 · 942 阅读 · 1 评论 -
I.MX6ULL_Linux_驱动篇(30) 字符设备驱动扩展
经过前两前面的学习实验,我们已经掌握了 Linux 字符设备驱动开发的基本步骤,字符设备驱动开发重点是使用 register_chrdev 函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev 函数注销字符设备,驱动模块加载成功以后还需要手动使用 mknod 命令创建设备节点。register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。原创 2023-03-22 17:50:12 · 528 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(29) GPIO驱动
Linux 下的任何外设驱动,最终都是要配置相应的硬件寄存器。所以本篇的 LED 灯驱动最终也是对 I.MX6ULL 的 IO 口进行配置,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux的驱动框架。I.MX6U-ALPHA 开发板上的 LED 连接到 I.MX6ULL 的 GPIO1_IO03 这个引脚上,因此本章实验的重点就是编写 Linux 下 I.MX6UL 引脚控制驱动。原创 2023-03-17 13:35:00 · 2436 阅读 · 0 评论 -
I.MX6ULL_Linux_驱动篇(28) 字符设备驱动
字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。原创 2023-03-09 14:45:01 · 490 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(27) 系统烧录工具
mfgtool烧录工具了解原创 2023-03-07 21:44:46 · 1519 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建
buildroot 构建rootfs原创 2024-03-28 16:35:36 · 1042 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(24) busybox配置项分析
busybox menuconfig概览原创 2023-03-07 19:22:12 · 562 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(23) busybox文件系统构建
busybox构建原创 2023-03-07 15:51:26 · 667 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(22) kernel移植
I.MX6ULL linux kernel 移植原创 2023-03-04 16:03:46 · 2730 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(21) kernel启动流程
linux kernel 启动流程原创 2023-03-03 14:58:48 · 1362 阅读 · 0 评论 -
I.MX6ULL_Linux_系统篇(20) kernel分析-menuconfig
linux kernel menuconfig 配置项解析原创 2023-03-03 11:50:17 · 2975 阅读 · 1 评论 -
I.MX6ULL_Linux_系统篇(19) kernel编译及Makefile分析
Linux 由 Linux 基金会管理与发布, Linux 官网为 https://www.kernel.org,所以你想获取最新的Linux 版本就可以在这个网站上下载,网站界面如图所示:从图中可以看出最新的稳定版 Linux 已经到了 6.2,NXP 会从 https://www.kernel.org 下载某个版本的 Linux 内核,然后将其移植到自己的 CPU上,测试成功以后就会将其开放给 NXP 的 CPU 开发者。开发者下载 NXP 提供的 Linux 内核,然后将其移植到自己的产品上。原创 2023-02-28 11:21:37 · 795 阅读 · 0 评论