原子笔记-设备树驱动
文章平均质量分 95
深入了解设备树驱动
桃子酱紫君
摸鱼中。。。
展开
-
嵌入式linux驱动开发-设备树点灯(完备版)
新点灯大师设备树 LED 驱动原理实验程序编写修改设备树文件LED 灯驱动程序编写在之前驱动开发基础上,将其驱动开发改为设备树形式。设备树 LED 驱动原理1、在 imx6ull-alientek-emmc.dts 文件中创建相应的设备节点。2、编写驱动程序(在第四十二章实验基础上完成),获取设备树中的相关属性值。3、使用获取到的有关属性值来初始化 LED 所使用的 GPIO。未完待续。。。(此为驱动开发基础,要手打代码,一步一步来)实验程序编写创建 4_dtsled文件夹。修改设备树文件原创 2020-11-15 16:37:22 · 1171 阅读 · 0 评论 -
嵌入式linux驱动-LCD液晶屏驱动
这里写目录标题LCD简介一些性能参数eLCDIF 接口linux下的LCD驱动Framebuffer 设备LCD 驱动介绍LCD 驱动程序LCD 屏幕 IO 配置LCD 屏幕参数节点信息修改LCD 屏幕背光节点信息设置 LCD 作为终端控制台LCD简介一些性能参数分辨率由一个一个的像素点组成,常有720P,1080P( 1920 * 1080 ),2K( 2560 * 1440 ),4K( 3840 * 2160 )。以下就是1080P,X=1920,Y=1080。像素格式一个原创 2021-01-24 22:02:08 · 5130 阅读 · 2 评论 -
嵌入式linux驱动-platform 设备驱动
platformLinux 驱动的分离与分层驱动的分离驱动的分层platform 平台驱动模型简介platform 总线platform 驱动platform 设备Linux 系统提出了驱动的分离与分层这样的软件思路—platform 设备驱动(平台设备驱动)。Linux 驱动的分离与分层驱动的分离随着linux驱动的板子越来越多,驱动设备越来越多,所以代码的重用性非常重要。举个例子,使用一个MPU6050:板子的厂家一般会提供I2C主机驱动MPU6050一般会提供设备驱动需要借助linu原创 2021-01-16 21:35:19 · 608 阅读 · 0 评论 -
嵌入式linux驱动-阻塞和非阻塞 IO
平平酱紫简介阻塞和非阻塞等待队列阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式,在编写驱动的时候=要考虑到阻塞和非阻塞。简介阻塞和非阻塞谁阻塞呢?答案是 IO (Input/Output)。这是用户空间的应用程序与内核空间的驱动程序下的设备之间信息交流的通道。一般编写驱动代码都是使用阻塞方式,这样进入休眠态以后可以节省CPU资源。阻塞 IO应用程序向设备请求数据却发现设备不让用。耐心地等待直到设备可用(休眠状态)。应用程序终于获得了数据。示例代码:fd原创 2021-01-12 17:41:15 · 598 阅读 · 0 评论 -
嵌入式linux驱动-中断服务
中断Linux 中断简介和内核定时一样,不需要配置寄存器啥的,linux内核都已经移植并配置好了,我们只需要调用即可,向内核申请中断,然后注册中断处理函数。有内核和裸机的区别:我们可以告诉内核去间接的配置物理寄存器,而不需要一步步自己挨个配置。Linux 中断简介一般中断过程:1、中断系统那边儿,配置中断寄存器,使能中断(申请中断)。2、CPU这边儿,处理发过来的中断请求。(双方一般通过中断号(又叫中断线)交流中断请求)常用API函数request_irq 函数用于申请中断,但可能会原创 2021-01-05 20:55:04 · 483 阅读 · 0 评论 -
嵌入式linux驱动开发-内核定时器
内核定时器简介内核时间管理简介内核定时器简介Linux 内核短延时函数实验程序编写修改设备树文件驱动程序编写编写测试 APPLinux 内核提供的定时器 API 函数,通过这些定时器 API 函数我们可以完成很多要求定时的应用,也提供了短延时函数,比如微秒、纳秒、毫秒延时函数。简介内核时间管理简介linux内核中也需要自己的时间管理,这就如同人的脉搏一样,让人各个功能有条不紊地运行着。总体理解:jiffies/HZ 就是系统运行时间,单位为秒。具体代码:timeout = jiffies原创 2020-12-18 12:56:25 · 367 阅读 · 0 评论 -
linux系统-运行规则知识储备
并发与竞争一级目录在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问,在 Linux 驱动编写过程中对于并发控制的管理非常重要。一级目录原创 2020-12-17 22:31:51 · 590 阅读 · 0 评论 -
嵌入式linux驱动开发-设备树点灯(附加子系统)
pinctrl&gpiopinctrl&gpio子系统pinctrl子系统添加pinctrl节点模板gpio子系统gpio 子系统 API 函数添加 gpio 节点模板与 gpio 相关的 OF 函数实验程序编写pinctrl&gpio子系统pinctrl&gpio都属于设备树的一个“树枝”节点,用来更系统便捷地操作IO口。使内核源码更好的适应芯片。传统设备树控制IO:reg 属 性中<各个寄存器地址…>添加子系统后的设备树:(1)pinctrl:设置原创 2020-11-16 20:20:51 · 675 阅读 · 0 评论 -
嵌入式linux驱动开发-设备树
设备树什么是设备树?新版本的 Linux 中, ARM 相关的驱动全部采用了设备树(也有支持老式驱动的,比较少)什么是设备树?设备树(Device Tree),描述设备树的文件叫做 DTS(Device Tree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、 IIC 接口上接了哪些设备、 SPI 接口上接了哪些设备等等。DTS 文件的主要功能就是按照下图所示的结构来描述板子上的设备信息(如 IIC1 上接了 FT5206 和原创 2020-10-28 20:20:45 · 1116 阅读 · 0 评论 -
嵌入式linux驱动开发-新字符设备驱动
驱动新字符设备驱动原理新字符设备驱动原理新的字符设备注册方法自动创建设备节点mdev 机制创建和删除类创建设备参考示例设置文件私有数据实验程序编写新字符设备驱动比旧版本更方便快捷。新字符设备驱动原理比较:旧字符设备:register_chrdev ()函数包括添加设备号和字符设备;新字符设备:一些比较详细的设备号申请、注册和注销函数,字符设备注册和注销函数。新字符设备驱动原理传统的register_chrdev 函数注册字符设备必须提供一个人工确定的主设备号,但是直接占用了所有的次设备号,这造原创 2020-10-23 19:22:26 · 395 阅读 · 0 评论 -
嵌入式linux驱动开发-点灯大师(旧版)
这里写目录标题Linux 下 LED 灯驱动原理地址映射I/O 内存访问函数本章开始编写第一个真正的 Linux 字符设备驱动。Linux 下 LED 灯驱动原理LED 灯驱动最终也是对 I.MX6ULL 的 IO 口进行配置,并配置相应的硬件寄存器,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux的驱动框架。地址映射MMU 全称叫做 MemoryManage Unit,也就是内存管理单元。MMU 主要完成的功能如下:①、完成虚拟空间到物理空间的映射。②、内存保护,设置存储器原创 2020-10-21 20:36:24 · 520 阅读 · 0 评论 -
嵌入式linux驱动开发-字符设备驱动
驱动字符设备驱动简介字符设备驱动开发步骤驱动模块的加载和卸载之前在嵌入式系统移植停留了一段时间,枯燥地看uboot、kernel和跟文件系统的源码感觉没有成就感,在这之前已经对嵌入式linux的启动流程有了大体的了解,因此先跳到驱动开发,体验学习一下子哈!!。Linux 中的三大类驱动:字符设备驱动、块设备驱动和网络设备驱动。字符设备驱动:IO口的驱动,比如点灯、 I2C、 SPI、音频等。块设备驱动:存储器设备的驱动,比如 EMMC、 NAND、 SD 卡和 U 盘等存储设备网络设备驱动:网络驱原创 2020-10-20 11:04:07 · 1865 阅读 · 0 评论