mmc
[toc] drivers/mmc 多媒体卡(MultiMediaCard)子系统 SD/eMMC/SDIO设备驱动框架历史与背景这项技术是为了解决什么特定问题而诞生的?drivers/mmc 子系统是为了给Linux内核提供一个统一的、可扩展的框架来支持一整类基于**多媒体卡(MultiMediaCard)**规范及其衍生协议的设备而诞生的。这些设备包括: MMC (MultiMediaCard):一种早期的闪存卡标准。 SD (Secure Digital) Card:在MMC基础上发展而来的、目前最普及的移动存储卡,增加了安全特性和更高的性能。 eMMC (embedded MMC):将MMC控制器和NAND闪存封装在同一个BGA芯片中,作为一种“嵌入式”存储解决方案,被广泛用作智能手机、平板电脑和许多嵌入式设备的“硬盘”。 SDIO (Secure Digital Input/Output):一种扩展规范,允许SD插槽除了支持存储卡外,还能连接I/O设备,如Wi-Fi模块、蓝牙模块、GPS接收器等。 在没有这个统...
serial
[toc] drivers/serial 串行驱动核心(Serial Driver Core) 内核与UART硬件通信的统一框架历史与背景这项技术是为了解决什么特定问题而诞生的?Serial(串行)驱动框架的诞生是为了解决一个在计算机历史上长期存在的核心问题:如何为各种不同的UART(通用异步收发器)硬件提供一个统一、标准、可移植的软件接口。 UART是实现串行通信(如RS-232标准)的基础硬件,但不同厂商、不同年代的UART芯片,其寄存器布局、功能特性(如FIFO深度)和编程方式都存在差异。如果没有一个统一的框架: 驱动代码无法复用:内核开发者需要为每一种新的UART芯片编写一个完全独立的、从头到尾的驱动程序。 上层接口不统一:每个驱动可能会向上层(TTY子系统)暴露不同的行为,或者需要上层进行特殊的处理。 设备驱动与硬件强耦合:应用程序或内核的其他部分会与特定的硬件实现绑定,降低了整个系统的可移植性。 Serial驱动框架的核心目标就是创建一个抽象层,将这些硬件差异隐藏起来。它定义了一套标准的接口和数据结构,使得具体的UART硬件驱动(如经典的8250&...
tty
[TOC] drivers/tty TTY子系统(TTY Subsystem) Linux终端和串口的核心框架历史与背景这项技术是为了解决什么特定问题而诞生的?TTY子系统是Linux/Unix系统中历史最悠久、最核心的子系统之一。它的诞生是为了解决一个根本性的问题:如何为用户进程与各种文本输入/输出设备(即“终端”)之间提供一个统一、抽象的交互接口。 它主要解决了以下几个核心问题: 硬件的抽象:早期的计算机通过物理的电传打字机(Teletypewriter, TTY)进行交互。后来出现了各种串行终端(Serial Terminal)。TTY子系统将这些五花八门的硬件抽象成一个标准的字符设备,使得用户进程可以用同样的方式(read, write)与它们交互。 输入处理与行编辑:用户在终端上输入时,难免会打错字。TTY子系统引入了“线路规程”(Line Discipline)的概念,提供了一套通用的输入处理逻辑,包括行缓冲、退格(Backspace)删除、擦除整行(Ctrl+U)等编辑功能。这使得应用程序(如Shell)无需自己实现这些复杂的编...
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






