架构重构与模块化
核心工作: 重构为模块化架构,提升代码可维护性和可扩展性
模块拆分
- ✅ embassy-preempt-executor - 执行器核心模块
- ✅ embassy-preempt-port - 平台接口抽象层(暂时)
- ✅ embassy-preempt-cfg - 配置管理模块(暂时)
- ✅ embassy-preempt-event - 事件同步机制
- ✅ embassy-preempt-app - 应用层封装(暂时)
- ✅ embassy-preempt-structs - 基础数据结构
- ✅ embassy-preempt-log - 独立日志系统
rust版本升级
- ✅ 所有模块迁移至2024版本
- ✅ 依赖包版本同步更新
构建系统优化
- ✅ 重新设计 Cargo.toml 配置结构
- ✅ 优化工具链和构建脚本
- ✅ 改进memory.x
🏗️ 平台抽象层
平台无关化改造
- ✅ 新增 platform 抽象模块
- ✅ STM32F401RE 平台支持完善
- ✅ 多平台移植基础架构
依赖关系优化
- ✅ 模块间依赖关系重组
- ✅ 导入路径标准化
- ✅ 架构层次清晰化
工作成果统计
- 提交数量: 25 个 commits
- 文件变更: 114 个文件
- 代码增删: +1829 / -1613 行
- 新增模块: 7 个独立 crate
当前状态
拆分模块后仅有 embassy-preempt-{executor,app} 的部分代码依赖平台特定实现,且原仓库的 button 驱动设计很难与 executor 解耦,所以暂时禁用了
当前计划
- 给现有代码完善注释文档,做到二次开发也能非常容易
- 设计新的设备驱动模型,理想状态下能支持包含单但不限于 button 的驱动设计
- 对拆分后较为凌乱的若干crate继续整理,对crate间的交互进一步规范化,尽量解耦
- 整合embassy-preempt-{app,port,cfg}模块,整合进platform crate
- 预计状态:支持另一平台仅需实现一个CPUops trait,并且可以通过platform中定义的Driver trait给该平台实现外设驱动,供用户使用
- 实现跨平台的entry宏:当前的程序入口宏依赖 cortex-rt::entry,可以写一个新的embassy_preempt::entry宏,在该层进行多平台处理