![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动
文章平均质量分 95
邻居家的小南瓜
这个作者很懒,什么都没留下…
展开
-
设备树 dtb结构
dtb结构由一个小的报头和三个大小可变的部分组成:内存预留块,结构块和字符串块。这些应该按这个顺序出现在扁平的设备树中。因此,设备树结构作为一个整体,当以地址载入内存时,将类似于下图的图(较低的地址位于图的顶部)。 注:内存预留块可能不存在,尽管在某些情况下可能需要它们来满足单个块的对齐约束。 自格式的原始定义以来,已经定义了几种扁平设备树结构的版本。 报头中的字段给出了版本,以便客户端程序可以确定设备树是否以兼容的格式编码。本文档仅描述17版的格式。 兼容DTSpec的引导程...原创 2022-01-26 10:42:59 · 1461 阅读 · 0 评论 -
linux驱动-定时器
1、设置系统节拍率在编译 Linux 内核的时候可以通过图形化界面设置系统节拍率。-> Kernel Features -> Timer frequencyCONFIG_HZLinux 内核会使用 CONFIG_HZ 来设置自己的系统时钟。打开文件 include/asm-generic/param.h#undef HZ#define HZ CONFIG_HZ#define USER_HZ 100#define CLOCKS_PER_SEC (US.....原创 2022-02-03 13:16:17 · 1082 阅读 · 0 评论 -
linux驱动 同步机制
1、原子整形操作1.1、文件路径include/linux/types.hinclude/linux/spinlock.h1.2、32位原子整形操作1.1.1、atomic_t结构体使用atomic_t结构体来完成32位整形数据的原子操作。typedef struct { int counter;} atomic_t;1.1.2、ATOMIC_INIT宏向原子变量赋初值。#define ATOMIC_INIT(i) { (i) }1.1.3、原子..原创 2021-12-10 17:57:38 · 907 阅读 · 0 评论 -
linux驱动 - 字符设备
1、字符设备驱动字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备。比如灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。2、应用程序调用驱动程序流程应用程序->库函数->内核->驱动程序->硬件。驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即可实现对硬件的操作..原创 2021-11-11 17:54:48 · 574 阅读 · 0 评论