- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 Linux创建内核线程
struct;if!IS_ERR;;其中kthread_create()只是创建一个内核线程,但并没有启动,需要调用wake_up_process()来启动线程,所以内核又帮我们定义了一个宏kthread_run来帮我们搞定。内核线程创建成功后,会返回一个struct task_struct对象指针,方便我们的后续操作。
2024-08-28 16:05:29 143
原创 RTT 邮箱使用
******************************系统异常邮箱*******************************/8定义了8组邮箱。
2024-08-28 11:32:31 191
原创 事件集说明
事件是一种实现线程间通信的机制,主要用于实现线程间的同步,但事件通信只能是事件类型的通信,无数据传输。一个事件发生即是一个同步,事件集可以实现一对多(一个线程等待多个事件触发)、多对多(多个线程等待多个事件触发)的同步。其中,一个线程与多个事件的关系可以设为:特定事件触发唤醒线程其中任意一个事件触发唤醒线程几个事件都触发后才唤醒线程。
2024-08-28 10:58:48 138
原创 DHT11 协议解析
首先主机发送开始信号,即:拉低数据线,保持 t1(至少 18ms)时间,然后拉高数据线 t2(20-40us)时间,然后读取 DHT11 的响应,正常的话,DHT11 会拉低数据线,保持 t3 (40-50us)时间,作为响应信号,然后 DHT11 拉高数据线,保持 t4(40~50us)时间后,开始输出数据。
2024-08-23 22:20:35 167
原创 linux总线设备驱动模型
linux自带I2C、 SPI、 USB 等总线。但是在 SOC 中有些外设是没有总线这个概念的,但是又要使用总线、驱动和设备模型该怎么办呢?为了解决此问题, Linux 提出了 platform 这个虚拟总线,相应的就有 platform_driver 和 platform_device。Linux系统内核使用结构体表示总线match 函数有两个参数: dev 和 drv,这两个参数分别为 device 和 device_driver 类型,也就是设备和驱动。
2024-08-23 17:34:03 556
原创 正则匹配初学
\S’ 匹配任意非空白字符,空格,制表符,换页符等 等价于[^ \t\r\n\f]‘\s’ 匹配任意空白字符,空格,制表符,换页符等 等价于[ \t\r\n\f]‘\w’ 匹配任意一个字母或数字,等价于[a-zA-Z0-9]‘\W’ 匹配任意非字母或数字,等价于[^a-zA-Z0-9]‘\D’ 匹配任意非数字字符,等价于[^0-9][a-zA-Z0-9] 匹配任意一个字母或数字。[a-z] 匹配小写a-z中的任意一个字符。[A-Z] 匹配大写A-Z中的任意一个字符。
2024-08-23 15:14:07 227
原创 Linux APP查询驱动的方式归类总
1、休眠与唤醒2、阻塞与非阻塞3、POLL机制4、异步通知等待队列用于进程等待条件,工作队列用于异步任务处理。
2024-08-23 10:48:25 1055
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人