导读
开始读源码之前,先讲清楚两件事:
- 怎么读这一卷:十几个 crate 各自发版,怎么锁版本、源码链接用哪个 tag;定时器、中断、跨任务三条主线每一步落在哪个函数、哪一页讲;std、QEMU、交叉编译三种实验办法各能回答什么,QEMU 上的结果怎么标注;执行器、time、stm32 三组 feature 各打开什么,哪些最多只能开一个,开两个时的报错原文。
- 源码地图:用
cargo tree核实的依赖图:futures 和 sync 不依赖执行器,执行器和 time 不互相依赖,靠embassy-executor-timer-queue和embassy-time-driver两个小 crate 加链接期符号接起来;embassy-stm32 实现时间驱动;新项目里为什么有两个embassy-hal-internal;每个 crate 的入口文件和行数;仓库里不讲的部分。
flowchart TB read[怎么读这一卷] --> ver[锁定版本] read --> lines[三条主线] read --> exp[三种实验办法] read --> feat["feature 与互斥"] map[源码地图] --> deps["依赖图 cargo tree"] map --> seam["两个小 crate 解耦"] map --> size[入口与规模]
💬 关联讨论
发起讨论加载中...