摘要: Linux 中断实验 先来回顾一下裸机实验里面中断的处理方法: ①、使能中断,初始化相应的寄存器。 ②、注册中断服务函数,也就是向 irqTable 数组的指定标号处写入中断服务函数 ②、中断发生以后进入 IRQ 中断服务函数,在 IRQ 中断服务函数在数组 irqTable 里面查找 具体的中断处 阅读全文
posted @ 2024-06-19 20:42 Bathwind_W 阅读(9) 评论(0) 推荐(0) 编辑
摘要: Linux 内核定时器实验 内核时间管理简介 Linux 内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序、对于我们驱动编写者来说最常用的定时器。硬件定时器提供时钟源,时钟源的频率可以设置, 设置好以后就周期性的产生定时中断,系统使用定时中断来计时。中断周期性产生的频率就是系统频率,也 阅读全文
posted @ 2024-06-16 20:37 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Linux 按键输入实验 1、添加 pinctrl 节点 首先修改在设备树里面添加关于按键的节点。I.MX6U-ALPHA 开发板上的 KEY 使用了 UART1_CTS_B 这个 PIN,打开 imx6ull-alientekemmc.dts,在 iomuxc 节点的 imx6ul-evk 子节点 阅读全文
posted @ 2024-06-16 09:59 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Linux 并发与竞争实验学习 原子操作实验 这里原子操作就是采用原子变量来保护一个程序运行的完整过程,使用atomic 来实现一次只能允许一个应用访问 LED,创建atomic.c文件,其实改动内容就是添加原子变量, 要在设备结构体数据添加原子变量,具体代码如下: struct gpioled_d 阅读全文
posted @ 2024-06-15 19:58 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Linux 并发与竞争 并发与竞争 Linux 系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。针对这个问题必须要做处理,严重的话可能会导致系统崩溃。现在的 Linux 系统并发产生的原因很复杂,总结一下有下面几个主要原因: ① 阅读全文
posted @ 2024-06-14 11:27 Bathwind_W 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Linux 蜂鸣器实验 1、修改设备树文件 I.MX6U-ALPHA开发板上的BEEP使用了SNVS_TAMPER1这个PIN,打开imx6ull-alientekemmc.dts,在 iomuxc 节点的 imx6ul-evk 子节点下创建一个名为“pinctrl_beep”的子节点,节点内容如下 阅读全文
posted @ 2024-06-11 23:10 Bathwind_W 阅读(8) 评论(0) 推荐(0) 编辑
摘要: pinctrl 子系统主要工作内容如下: ①、获取设备树中 pin 信息。 ②、根据获取到的 pin 信息来设置 pin 的复用功能 ③、根据获取到的 pin 信息来设置 pin 的电气特性,比如上/下拉、速度、驱动能力等。 对于我们使用者来讲,只需要在设备树里面设置好某个 pin 的相关属性即可, 阅读全文
posted @ 2024-06-11 11:15 Bathwind_W 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 设备树下的 LED 驱动实验 本章实验重点内容如下: ①、在 imx6ull-alientek-emmc.dts 文件中创建相应的设备节点。 ②、编写驱动程序(在第四十二章实验基础上完成),获取设备树中的相关属性值。 ③、使用获取到的有关属性值来初始化 LED 所使用的 GPIO。 设备树文件添加设 阅读全文
posted @ 2024-06-08 19:33 Bathwind_W 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、 IIC 接口上接了哪些设备、 SPI 接口上接了哪些设备等等 阅读全文
posted @ 2024-06-07 18:12 Bathwind_W 阅读(12) 评论(0) 推荐(0) 编辑
摘要: register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。新字符设别驱动API函数在驱动模块加载的时候自动创建设备节点文件。 分配和释放设备号 使用 re 阅读全文
posted @ 2024-06-05 21:05 Bathwind_W 阅读(12) 评论(0) 推荐(0) 编辑