会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
每天学习之路
方向为嵌入式
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
下一页
2023年9月5日
20.1 platform 设备驱动
摘要: 一、Linux 驱动的分离与分层 1. 驱动的分隔和分离 现在有三个平台,A、B 和 C,这三个平台都有 MPU6050 设备。编写最简单的驱动框架如下图: 每个平台下都有一个主机驱动和设备驱动,主机驱动是必要的,因为不同的平台 I2C 控制器不同。但设备驱动不建议这样。最好的方法是:每个平台的 I
阅读全文
posted @ 2023-09-05 15:51 烟儿公主
阅读(257)
评论(0)
推荐(0)
2023年9月4日
19 异步通知
摘要: 一、异步通知 1. 异步通知简介 阻塞和非阻塞两种方式都是需要应用程序去主动查询设备的使用情况。 异步通知类似于驱动可以主动报告自己可以访问,应用程序获取信号后会从驱动设备中读取或写入数据。 异步通知最核心的就是信号: #define SIGHUP 1 /* 终端挂起或控制进程终止 */ #defi
阅读全文
posted @ 2023-09-04 15:54 烟儿公主
阅读(144)
评论(0)
推荐(0)
2023年8月31日
18 Linux 阻塞和非阻塞 IO
摘要: 一、阻塞和非阻塞 IO 1. 阻塞和非阻塞简介 这里的 IO 指 Input/Output(输入/输出),是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将对应应用程序对应的线程挂起,直到设备资源可以获取为止。非阻塞式 IO,应
阅读全文
posted @ 2023-08-31 20:41 烟儿公主
阅读(710)
评论(0)
推荐(0)
2023年8月30日
17 Linux 中断
摘要: 一、Linux 中断简介 1. Linux 中断 API 函数 ① 中断号 每个中断都有一个中断号,通过中断号可以区分出不同的中断。在 Linux 内核中使用一个 int 变量表示中断号。 ② request_irq 函数 在 Linux 中想要使用某个中断是需要申请的,request_irq 函数
阅读全文
posted @ 2023-08-30 16:26 烟儿公主
阅读(603)
评论(0)
推荐(1)
2023年8月28日
16 Linux 内核定时器
摘要: 一、Linux 时间管理和内核定时器简介 1. 内核时间管理简介 Linux 内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序、定时器等。 硬件定时器提供时钟源,时钟源的频率可以设置,设置好以后就周期性的产生定时中断,系统使用定时中断来计时。中断周期性产生的频率就是系统频率,也叫做节拍
阅读全文
posted @ 2023-08-28 17:14 烟儿公主
阅读(1102)
评论(0)
推荐(1)
2023年8月25日
15 Linux 按键
摘要: 一、Linux 按键驱动原理 其实案件驱动和 LED 驱动很相似,只不过区别在于,一个是读取GPIO高低电平,一个是从GPIO输出高低电平。 在驱动程序中使用一个整形变量来表示按键值,应用程序通过 read 函数来读取按键值,判断按键有没有按下。在这里,这个保存按键值的变量就是个共享资源,驱动程序要
阅读全文
posted @ 2023-08-25 17:37 烟儿公主
阅读(165)
评论(0)
推荐(0)
2023年8月24日
14.2 并发与竞争实验
摘要: 一、原子操作实验 这节使用原子操作来实现对 LED 设备的互斥访问,也就是只有一个应用程序能使用 LED。 1.1 实验程序编写 因为是 12 章已经修改了设备树,所以这里暂时不用修改。 在 /linux/atk-mpl/Drivers 该目录下创建 7_atomic 子目录,并且把 5_gpiol
阅读全文
posted @ 2023-08-24 16:16 烟儿公主
阅读(117)
评论(0)
推荐(0)
2023年8月23日
14.1 Linux 并发与竞争
摘要: 一、并发与竞争 并发:多个执行单元同时、并行执行。 竞争:并发的执行单元同时访问共享资源(硬件资源和软件上的全局变量等)易导致竞态。 二、原子操作 1. 原子操作简介 原子操作:不能再进一步分割的操作,一般用于变量或位操作。 例如在 C 语言中对 无符号整型变量 a 赋值: a = 3; 但 C 语
阅读全文
posted @ 2023-08-23 20:17 烟儿公主
阅读(263)
评论(0)
推荐(0)
2023年8月22日
13 Linux 蜂鸣器
摘要: 一、蜂鸣器驱动原理 常用蜂鸣器分两种,有源蜂鸣器和无源蜂鸣器。 它们俩的区别:有源蜂鸣器具有内置的振荡器和驱动电路,无源蜂鸣器没有;源蜂鸣器只需简单的数字信号来控制,无源蜂鸣器需要外部电路或微控制器来提供特定频率的脉冲信号。 在 Linux 下做的工作:①设备树中添加蜂鸣器节点,在蜂鸣器节点中加入
阅读全文
posted @ 2023-08-22 19:46 烟儿公主
阅读(393)
评论(0)
推荐(0)
2023年8月18日
12 pinctrl 和 gpio 子系统
摘要: 一、pinctrl 子系统 1. 什么是 pinctrl 子系统? 首先回顾一下如何初始化 LED 所使用的 GPIO: ①、修改设备树,添加相应的节点,节点里面重点是设置 reg 属性, reg 属性包括了 GPIO相关寄存器。 ②、获取 reg 属性中 GPIOI_MODER、 GPIOI_OT
阅读全文
posted @ 2023-08-18 20:41 烟儿公主
阅读(660)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
下一页
公告