clocksource
[toc] kernel/time/clocksource.c 时钟源管理(Clocksource Management) 内核时间的原始动力历史与背景这项技术是为了解决什么特定问题而诞生的?这项技术是为了在Linux内核中创建一个统一的、可插拔的硬件时钟源抽象层。内核需要一个可靠的方式来读取时间的流逝,而不同的硬件平台提供了种类繁多的硬件定时器/计数器,例如x86上的TSC和HPET,ARM上的System Counter等。这些硬件在精度、稳定性、访问开销等方面都千差万别。 kernel/time/clocksource.c的诞生就是为了解决这个硬件异构性的问题: 抽象硬件差异:它提供了一个标准的struct clocksource接口,将所有不同硬件定时器的具体实现(如如何读取其计数器)封装起来,为上层的timekeeping子系统提供一个统一的、与硬件无关的视图。 选择最佳时钟源:系统中可能同时存在多个可用的时钟源。内核需要一种机制来评估它们各自的优劣(基于频率、分辨率、稳定性等),并从中自动选择一个最佳的来驱动整个系统的时间。 保证可靠性...
hrtimer
[toc] kernel/time/hrtimer.c 高精度定时器(High-Resolution Timers) 纳秒级精度的事件调度历史与背景这项技术是为了解决什么特定问题而诞生的?kernel/time/hrtimer.c 实现了**高精度定时器(High-Resolution Timers)框架,它的诞生是为了解决内核中日益增长的、对亚毫秒级(sub-millisecond)甚至纳秒级(nanosecond)**定时精度的需求。 传统的jiffies定时器(timer_list)虽然开销极低,但其精度受限于系统的心跳频率HZ(通常在4ms到10ms之间)。这对于许多现代应用来说是完全不够的: 用户空间API支持:POSIX标准定义了nanosleep()、clock_nanosleep()和高精度POSIX定时器,这些API要求内核能够提供远超jiffies精度的定时能力。 多媒体与音频:专业的音频应用为了实现低延迟处理,需要在非常精确的时间点(例如每1-2毫秒)被唤醒来填充声卡缓冲区。 网络与金融:高频交易和某些低延迟网络协议需要对超时进行微秒级...
tmc_study
grblconfig Inc\my_machine.h中取消注释进行配置开启如下配置进行学习 12345678910111213141516171819202122#define BOARD_BTT_SKR_20 // F407 based 3D Printer board#define TRINAMIC_ENABLE 5160 // Trinamic TMC5160 stepper driver support.#define N_AXIS 6#define TRINAMIC_DYNAMIC_CURRENT#define TRINAMIC_EXTENDED_SETTINGS#define TRINAMIC_POLL_STATUS// 这些选项需要自行配置,不配做使用默认值#define TMC_DRVCONF#define TMC_COOLCONF_SEMIN#define TMC_COOLCONF_SEMAX#define TMC_COOLCONF_SEDN#define TMC_COOLCONF_SEUP#define TMC_COOLCONF_SE...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment