自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux_应用篇(05) 文件属性与目录

linux 文件属性与目录

2024-05-10 14:10:49 717

原创 Linux_应用篇(04) 标准 I/O 库

linux 标准 I/O 库

2024-04-17 16:28:53 727

原创 Linux_应用篇(03) 文件 I/O 加强

linux io加强

2024-04-10 13:56:23 772

原创 Linux_应用篇(02) 文件 I/O 基础

linux应用编程 文件 I/O 基础

2024-03-29 16:01:16 1205

原创 Linux_应用篇(01) 应用编程基础

linux应用

2024-03-29 10:40:27 829

原创 I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建

buildroot 构建rootfs

2024-03-28 16:35:36 1007

原创 I.MX6ULL_Linux_驱动篇(59)linux ADC驱动

linux ADC驱动简析

2024-03-27 17:25:11 884

原创 I.MX6ULL_Linux_驱动篇(58)linux IIO驱动

linux IIO驱动简析

2024-03-27 14:19:06 592

原创 I.MX6ULL_Linux_驱动篇(57)linux Regmap API驱动

linux Regmap API

2024-03-26 16:10:39 854

原创 I.MX6ULL_Linux_驱动篇(56)linux PWM驱动

linux pwm驱动简析

2024-03-26 14:58:55 690

原创 I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

linux网络驱动简析

2024-03-25 16:19:29 1102

原创 I.MX6ULL_Linux_驱动篇(54)linux 块设备驱动

linux 块设备驱动简析

2024-03-05 20:22:12 846

原创 I.MX6ULL_Linux_驱动篇(53)linux USB驱动

linux usb驱动了解

2024-01-30 15:37:08 1075

原创 I.MX6ULL_Linux_驱动篇(52)linux CAN驱动

linux CAN驱动简析

2024-01-02 13:55:59 1140 1

原创 I.MX6ULL_Linux_驱动篇(51)linux 音频驱动

linux 音频编解码驱动简析

2023-12-29 15:27:02 1351

原创 I.MX6ULL_Linux_驱动篇(50)linux UART驱动

linux uart 驱动简析

2023-12-27 13:20:53 1185

原创 I.MX6ULL_Linux_驱动篇(49)linux SPI驱动

linux spi 驱动简析

2023-12-19 17:49:38 942

原创 I.MX6ULL_Linux_驱动篇(48)linux I2C驱动

linux i2c驱动简析

2023-12-19 15:32:33 956

原创 I.MX6ULL_Linux_驱动篇(47)linux RTC驱动

linux rtc驱动简析

2023-12-19 10:42:15 1267

原创 linux 调试工具 GDB 使用

gdb简单使用

2023-12-13 13:53:46 816

原创 I.MX6ULL_Linux_驱动篇(46)linux LCD驱动

LCD使用

2023-12-10 17:30:46 1144 1

原创 I.MX6ULL_Linux_驱动篇(45)linux INPUT子系统

按键、鼠标、键盘、触摸屏等都属于输入(input)设备, Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了 input 框架,用户只需要负责上报输入事件,比如按键值、坐标等信息, input 核心层负责处理这些事件。本章我们就来学习一下 Linux 内核中的 input 子系统。

2023-08-07 14:10:14 399

原创 I.MX6ULL_Linux_驱动篇(44)linux MISC驱动

MISC 驱动也叫做杂项驱动,也就是当我们板子上的某些外设无法进行分类的时候就可以使用 MISC 驱动。 MISC 驱动其实就是最简单的字符设备驱动,通常嵌套在 platform 总线驱动中,实现复杂的驱动,本章我们就来学习一下 MISC 驱动的编写。

2023-08-04 14:13:50 256

原创 I.MX6ULL_Linux_驱动篇(43)linux通用LED驱动

前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动, Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 platform 框架,因此我们只需要按照要求在设备树文件中添加相应的 LED 节点即可,本章我们就来学习如何使用 Linux 内核自带的 LED 驱动来驱动

2023-08-04 11:05:25 313

原创 I.MX6ULL_Linux_驱动篇(42)设备树与platform设备驱动

上一章我们详细的讲解了 Linux 下的驱动分离与分层,以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这样的驱动框架, Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动。上一章我们讲解了传统的、未采用设备树的 platform 设备和驱动编写方法。最新的 Linux 内核已经支持了设备树,因此在设备树下如何编写 platform驱动就显得尤为重要,本章我们就来学习一下如何在设备树下编写 platform 驱动。

2023-08-02 13:47:24 283

原创 I.MX6ULL_Linux_驱动篇(41)platform设备驱动框架

我们在前面几章编写的设备驱动都非常的简单,都是对IO进行最简单的读写操作。像I2C、SPI、 LCD 等这些复杂外设的驱动就不能这么去写了, Linux 系统要考虑到驱动的可重用性,因此提出了驱动的分离与分层这样的软件思路,在这个思路下诞生了我们将来最常打交道的platform 设备驱动,也叫做平台设备驱动。本章我们就来学习一下 Linux 下的驱动分离与分层,以及 platform 框架下的设备驱动该如何编写。

2023-07-31 10:56:07 158

原创 Linux内存文件系统tmpfs的使用方法

Linux内存文件系统tmpfs的使用方法

2023-07-28 11:47:28 1511

原创 I.MX6ULL_Linux_驱动篇(40)异步通知

在前面使用阻塞或者非阻塞的方式来读取驱动中按键值都是应用程序主动读取的,对于非阻塞方式来说还需要应用程序通过 poll 函数不断的轮询。最好的方式就是驱动程序能主动向应用程序发出通知,报告自己可以访问,然后应用程序在从驱动程序中读取或写入数据,Linux 提供了异步通知这个机制来完成此功能,本章我们就来学习一下异步通知以及如何在驱动中添加异步通知相关处理代码。

2023-07-06 15:08:09 268

原创 I.MX6ULL_Linux_驱动篇(39) 阻塞和非阻塞IO

阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式,在编写驱动的时候一定要考虑到阻塞和非阻塞。本章我们就来学习一下阻塞和非阻塞 IO,以及如何在驱动程序中处理阻塞与非阻塞,如何在驱动程序使用等待队列和 poll 机制。

2023-07-03 17:15:19 259

原创 I.MX6ULL_Linux_驱动篇(38) 中断驱动

不管是裸机实验还是 Linux 下的驱动实验,中断都是频繁使用的功能,在裸机中使用中断我们需要做一大堆的工作,比如配置寄存器,使能 IRQ 等等。 Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便,不需要一系列复杂的寄存器配置。本章我们就来学习一下如何在 Linux 下使用中断。

2023-06-15 13:26:01 807 1

原创 I.MX6ULL_Linux_驱动篇(37) linux系统定时器

定时器是我们最常用到的功能,一般用来完成定时功能,本章我们就来学习一下 Linux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用。 Linux内核也提供了短延时函数,比如微秒、纳秒、毫秒延时函数,本章我们就来学习一下这些和时间有关的功能。

2023-06-07 14:02:44 714

原创 I.MX6ULL_Linux_驱动篇(36) GPIO输入驱动

在前面我们都是使用的 GPIO 输出功能,还没有用过 GPIO 输入功能,本章我们就来学习一下在 Linux 下编写 GPIO 输入驱动程序。

2023-06-02 10:51:39 611

原创 linux board增加swap分区以应对DDR空间不足问题

linux board增加swap分区以应对DDR空间不足问题。

2023-06-01 16:19:21 137

原创 I.MX6ULL_Linux_驱动篇(35) linux并发与竞争

Linux是一个多任务操作系统,存在多个任务共同操作同一段内存或者设备的情况,多个任务或者中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。比如共享单车,大家按照谁扫谁骑走的原则来共用这个单车,如果没有这个并发访问共享单车的原则存在,只怕到时候为了一辆单车要打起来了。在 Linux 驱动编写过程中对于并发控制的管理非常重要,本章我们就来学习一下如何在 Linux 驱动中处理并发。

2023-06-01 11:12:57 551

原创 I.MX6ULL_Linux_驱动篇(34) 字符设备驱动巩固

字符设备,gpio接口驱动框架

2023-05-24 09:30:13 463

原创 I.MX6ULL_Linux_驱动篇(33) pinctrl与gpio子系统

pinctrl与gpio子系统

2023-04-11 15:22:33 618

原创 I.MX6ULL_Linux_驱动篇(32) 设备树GPIO驱动

在前面章节中,我们直接在驱动文件 newchrled.c 中定义有关寄存器物理地址,然后使用 io_remap 函数进行内存映射,得到对应的虚拟地址,最后操作寄存器对应的虚拟地址完成对 GPIO 的初始化。本章我们使用设备树来向 Linux 内核传递相关的寄存器物理地址, Linux 驱动文件使用上一章讲解的 OF函数从设备树中获取所需的属性值,然后使用获取到的属性值来初始化相关的 IO。本章实验重点内容如下:①、在 imx6ull-alientek-emmc.dts 文件中创建相应的设备节点。

2023-03-28 11:02:58 1024

原创 I.MX6ULL_Linux_驱动篇(31) 设备树

设备树文件:以树状结构描述设备信息,包括soc资源,board资源。

2023-03-24 14:25:42 861 1

原创 I.MX6ULL_Linux_驱动篇(30) 字符设备驱动扩展

经过前两前面的学习实验,我们已经掌握了 Linux 字符设备驱动开发的基本步骤,字符设备驱动开发重点是使用 register_chrdev 函数注册字符设备,当不再使用设备的时候就使用unregister_chrdev 函数注销字符设备,驱动模块加载成功以后还需要手动使用 mknod 命令创建设备节点。register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。

2023-03-22 17:50:12 518

原创 linux下使用gpio模拟mdio接口

记录linux下使用gpio模拟mdio接口访问phy的过程!

2023-03-18 12:20:25 991 1

蓝桥杯 嵌入式、单片机历年题目与资料

蓝桥杯比赛 嵌入式方向和单片机方向的资料,参赛同学可参考试题或进行模拟训练

2022-07-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除