Skip to content

架构重构与模块化

核心工作: 重构为模块化架构,提升代码可维护性和可扩展性

模块拆分

  • ✅ 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宏,在该层进行多平台处理