篇技术文章
写给工程师的
Rust、Linux
与嵌入式笔记
记录系统编程、操作系统、驱动开发、微控制器与嵌入式 Rust 的学习过程。少一点概念堆砌,多一点可以运行的代码和真实实践。
个实验项目
行示例代码
个长期技术专题
精选文章
从语言基础到系统实践,整理近期最值得阅读的技术内容。
从所有权到零成本抽象:重新理解 Rust 的内存模型
不只解释所有权、借用和生命周期,还会通过内存布局、汇编输出和实际代码, 分析 Rust 如何在编译期保证内存安全。
从用户态进入内核:一次系统调用经历了什么?
使用 strace、perf 和内核源码,追踪 read 系统调用的完整执行路径。
不用操作系统,在 STM32 上运行第一个 Rust 程序
从交叉编译工具链、链接脚本到 GPIO 闪灯,搭建最小嵌入式 Rust 工程。
技术专题
围绕三个方向持续更新,从基础知识逐步深入到真实工程实践。
Rust 系统编程
深入理解 Rust 的类型系统、内存安全、异步运行时和底层开发能力。
- 所有权、借用与生命周期
- Trait、泛型与零成本抽象
- Tokio 与异步编程
- FFI 和 unsafe Rust
Linux 内核与工具
从日常命令行工具深入到进程、内存、文件系统与内核调试。
- Shell 与系统管理
- 进程、线程和信号
- 网络与文件系统
- 内核模块和驱动开发
嵌入式开发
面向 STM32、ESP32 和 RISC-V 平台,记录裸机与实时系统开发。
- GPIO、UART、SPI 与 I²C
- 中断、定时器与 DMA
- FreeRTOS 与 Embassy
- 调试、烧录和性能分析
最新学习笔记
简短但实用的开发记录,包括踩坑、工具配置和实验结论。
使用 cargo-binutils 查看 Rust 程序的段布局
分析 text、rodata、data 和 bss 段在二进制中的实际占用。
Linux 下快速定位端口占用进程
对比 ss、lsof、fuser 和 procfs 的使用方式。
解决 OpenOCD 无法识别调试器的问题
从 USB 权限、udev 规则到调试器固件逐项排查。
用 systemd 管理一个长期运行的后台服务
编写 service 文件,并配置重启策略、日志和环境变量。
嵌入式开发中的 volatile 到底解决了什么?
区分编译器优化、内存屏障和硬件寄存器访问。
struct Task {
stack_pointer: usize,
state: TaskState,
}
fn schedule() {
let current = current_task();
let next = find_ready_task();
save_context(current);
restore_context(next);
trigger_pendsv();
}
// 下一步:加入优先级和时间片