2024年9月7日

原子变量

摘要: 参考网友帖子:学习笔记五 :linux驱动之原子变量_驱动中添加一个原子变量-CSDN博客 实现一个驱动只能被一个进程打开: #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <li 阅读全文

posted @ 2024-09-07 12:15 f1engmin11 阅读(15) 评论(0) 推荐(0)

信号量-基于堵塞的同步机制

摘要: 适用于:任务上下文之间且临界区执行时间较长的互斥或者同步问题 阅读全文

posted @ 2024-09-07 12:14 f1engmin11 阅读(17) 评论(0) 推荐(0)

并发控制机制选择原则

摘要: 1. 不允许睡眠的上下文需要采用忙等待类 2. 可以睡眠的上下文可以采用堵塞类 3. 在异常上下文中访问的竞争资源一定要采用忙等待类 4. 临界区操作较长的应用建议采用堵塞类 5 临界区很短的操作建议采用忙等待类 6. 中断屏蔽仅在有与中断上下文共享资源时使用 7. 共享资源仅仅是一个整型变量时,使 阅读全文

posted @ 2024-09-07 12:14 f1engmin11 阅读(12) 评论(0) 推荐(0)

时钟中断

摘要: 1. 硬件滴答时钟,周期性产生中断,每中断异常,jiffies_64的值加1,jiffies是jiffies_64的低32位 2. HZ,一个宏定义,一般为100或者200,代表1秒时间对应的滴答中断次数 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(22) 评论(0) 推荐(0)

内核定时器

摘要: 有滴答定时器触发软中断 内核定时器时间到达后,执行回调函数,回调函数执行过程,属于:异常上下文 这就意味着,在回调函数内,不能有堵塞产生。 Linux在驱动里做定时循环 - f1engmin11 - 博客园 (cnblogs.com) 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(19) 评论(0) 推荐(0)

延时机制

摘要: 非堵塞类: 1. 短延时,不睡眠,在延时函数内,跑循环 2. 长延时 堵塞类:(本进程进入堵塞态挂起,此时CPU执行其他进程去了,直到延时完成。) msleep 深度睡眠 msleep_interruptible 浅度睡眠 延时类型选择原则: 堵塞时,任务会进入等待队列,等堵塞结束后,任务会出现出队 阅读全文

posted @ 2024-09-07 12:13 f1engmin11 阅读(31) 评论(0) 推荐(0)

2024年9月6日

Linux在驱动里做定时循环

摘要: 1. 使用内核定时器 实现 思路是,在驱动里使用一个内核定时器,定时一个时间后,执行回调函数,再在回调函数里重新设置一次定时时间,以此往复,在回调函数里里执行自己的业务 Linux4.4内核 定时器内核源码位置:linux-4.1.15/kernel/time/timer.c /* 一些变量 */# 阅读全文

posted @ 2024-09-06 09:12 f1engmin11 阅读(130) 评论(0) 推荐(0)

2024年9月4日

root 添加登录密码(基于buildroot)

摘要: 通过以前这篇文章 Linux启动后自动登录root进入控制台 - f1engmin11 - 博客园 (cnblogs.com) 我们可以知道,Linux启动后,是否自动登录 root 用户,可以通过修改 /etc/inittab 文件的 respawn 动作来实现。 下面记录一下如何 添加 root 阅读全文

posted @ 2024-09-04 16:03 f1engmin11 阅读(981) 评论(0) 推荐(0)

Linux启动后自动登录root进入控制台

摘要: 通过修改 /etc/inittab 文件来实现 1. buildroot 编译出来的 /etc/inittab 文件如下 # # Copyright (C) 2001 Erik Andersen <andersen@codepoet.org> # # Note: BusyBox init doesn 阅读全文

posted @ 2024-09-04 10:09 f1engmin11 阅读(515) 评论(0) 推荐(0)

导航