摘要: 2023-05-04 关键字: 该驱动可通过dts配置属性,可在/dev创建节点,支持对/dev下的节点进行标准IO读写以及ioctl读写。 dts如下: ir_cut { status = "okay"; compatible = "chorm, ir-cut"; gpios = <&gpf 0 阅读全文
posted @ 2023-05-04 18:38 大窟窿 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 2023-01-11 关键字:container_of、内存对齐 1、示例 container_of是定义在linux内核kernel.h中的一个宏,它的作用是根据结构体中某个成员的地址反推出该结构体的地址。 container_of之所以能做到这点,得归功于linux的内存管理方式在逻辑上是连续的 阅读全文
posted @ 2023-01-11 20:15 大窟窿 阅读(1150) 评论(0) 推荐(0) 编辑
摘要: 2022-08-18 场景 存在两个角色,一个是“发布者”,另一个是“订阅者”。双方均处于同一局域网。发布者定时向局域网内所有主机发布消息,订阅者负责接收这一消息。 实现 在linux环境下,使用C语言基于UDP的广播来实现是最便捷的。并且在同一局域网内几乎不用担心UDP的通信可靠性问题。 发布者示 阅读全文
posted @ 2022-08-18 17:07 大窟窿 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 2022-03-24 关键字: 在做Linux系统开发时经常会用到menuconfig来裁剪内核功能模块或控制应用功能,menuconfig的可视化配置大大降低了复杂程序功能配置的难度与出错几率。 在纯应用开发中,当其复杂到一定程度时,功能的可配置性也是必然会引入的功能之一。若单纯靠人工在Makef 阅读全文
posted @ 2022-03-24 21:22 大窟窿 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 2021-11-09 关键字:桶排序 1、桶排序 桶排序一般用于对一组知道上下限的整数序列中。 因为桶排序的核心原理就是全覆盖式计数,为整个区间每一个数创建一个计数器,遍历待排序序列,为每一个出现的数计数加1,最后根据需要从头至尾或从尾至头打印区间计数。 举个例子,假设要为一个班级的学生数学考试分数 阅读全文
posted @ 2021-11-09 21:44 大窟窿 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 2021-08-19 关键字: 1、内核空间与用户空间数据交换方式 分两种情况: 1、需要交换的数据量较大时; 2、需要交换的数据量较小时; 第一种情况使用以下的函数: unsigned long copy_to_user(void __user* to, const void* from, uns 阅读全文
posted @ 2021-08-19 22:45 大窟窿 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 2021-08-10 关键字:中断的概念 1、中断的概念与分类 中断说白了就一句话:临时去处理一下其它事。 这个“其它事”具有以下特点: 1、突发性; 2、短暂性; Linux驱动开发中的中断分类方式较多,大体上可分为以下三个类别: 1、硬中断与软中断; 2、外部中断与内部中断; 3、同步中断与异步 阅读全文
posted @ 2021-08-10 22:57 大窟窿 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 2021-08-03 关键字:竞态解决方案、同步 驱动开发中共有四种方式可以解决并发竞态问题: 1、原子变量; 2、自旋锁; 3、信号量; 4、完成量; 原子变量的功能是通过硬件来操作变量的值,使该变量的值在更替过程中是原子式的,解决了在内核中因调度导致某变量在变值中途被打断从而影响到最终结果的情况 阅读全文
posted @ 2021-08-03 22:29 大窟窿 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 2021-07-06 关键字:主设备号、次设备号 1、什么是设备号 设备号是Linux驱动开发中的术语。 Linux规定每一个字符设备或块设备都必须拥有一个专属设备号。要想在Linux平台开发驱动程序,申请设备号就是开发过程的第一步,只有有了设备号,才能向系统注册设备。 一个设备号由以下两个模块组成 阅读全文
posted @ 2021-07-06 22:54 大窟窿 阅读(937) 评论(0) 推荐(0) 编辑
摘要: 2021-06-30 一、简介 menuconfig是Linux平台用于管理代码工程、模块及功能的实用工具。上至决定某一程序模块是否编译,下到某一行具体的代码是否需要编译以及某个项的值在本次编译时该是什么都可由menuconfig来定义。 menuconfig的使用方式通常是在编译系统之前在系统源代 阅读全文
posted @ 2021-06-30 22:11 大窟窿 阅读(7746) 评论(0) 推荐(2) 编辑