02 2023 档案
摘要:脉冲宽度调制(PWM)的工作原理就像一个开关,不断循环开和关。它是一种硬件功能,用于控制伺服电机,进行电压调节等。PWM最广为人知的应用有: 电机转速控制 亮度调节 电压调整 下面用一个简单的图表来介绍PWM: 上图展示了一个完整的PWM周期,介绍了一些术语,在深入了解核心PWM框架之前,我们需要说
阅读全文
摘要:实时时钟(RTC)是用于跟踪非易失性存储器中的绝对时间的设备,RTC设备可以位于处理器内部,也可以通过I2C或SPI总线连接到外部。 你可以使用RTC进行以下操作: 读取和设置绝对时钟,并在时钟更新期间产生中断 生成周期性中断 设置时钟(alarms) RTC和系统时钟有不同的用途。前者是硬件时钟,
阅读全文
摘要:输入设备是可以与系统交互的设备。这些设备包括按钮、键盘、触摸屏、鼠标等等。它们通过发送由输入核心捕获并在系统上广播的事件来工作。本文将解释输入核心用于处理输入设备的每个结构。我们还将说明如何从用户空间管理事件。 在本文中,我们将讨论以下主题: 输入核心数据结构 分配和注册输入设备,以及轮询的设备族
阅读全文
摘要:尽管通过打印进行调试可以满足大多数调试需求,但在某些情况下,我们需要在运行时监视Linux内核以跟踪奇怪的行为,包括延迟、CPU占用、调度问题等等。在Linux世界中,实现这一点最有用的工具是内核本身的一部分。最重要的是ftrace,这是一种Linux内核内部跟踪工具,也是本文章的主要主题。 使用F
阅读全文
摘要:最佳Linux内核开发实践的灵感来自于现有的内核代码。通过这种方式,您当然可以学习到好的例程。也就是说,我们不会白费力气(重复造轮子)。我们将重点讨论本章所必需的内容,即调试。最常用的调试方法包括记录和打印。为了利用这种经过时间检验的调试技术,Linux内核提供了合适的日志APIs,并公开了一个内核
阅读全文
摘要:根据Linux内核发布模型,总共有三种类型的活跃内核发布:主线版本、稳定版本和长期支持(LTS)版本。首先,由子系统维护者收集和准备bug修复和新特性,然后提交给Linus Torvalds,以便他将它们包含在自己的Linux树中,称为主线Linux树,也称为主Git存储库。这就是每个稳定版本的来源
阅读全文
摘要:编写代码并不总是内核开发中最难的部分。调试是真正的瓶颈,即使对于有经验的内核开发人员也是如此。也就是说,大多数内核调试工具都是内核本身的一部分。有时,内核通过称为Oops的消息来帮助查找错误的起源。调试可以归结为分析消息。 Oops 和 panic分析 Oops是当发生错误或未处理的异常时由Linu
阅读全文