平台如何装配与执行

Nexus 是静态装配的 C11 MCU 平台,将通用机制与外部产品策略分开。一份人工编写的 TOML 选择精确硬件与可选 adapter;不可变 I/O 接口面暴露所选私有提供者。应用负责执行与恢复。这些是当前设计边界,不代表整个平台已经取得物理资格。

当前平台分层与外部产品边界

FIG-01 表达当前各层责任。箭头描述已标明的依赖或访问,不是初始化顺序。

层

状态与责任

Core

结果、绝对单调截止时间、请求发布与稳定 epoch

Arch

编译期 CPU 原语;输入中断掩码、屏障和可选缓存/MPU/SAU

SoC

精确芯片时钟、内存、启动、IRQ/DMA 和控制器实现

Board

已审查 PCB 路由、晶振/安全电平事实及明确未知项

I/O

类型化公共接口面与操作合同;不暴露厂商布局

可选 OS/owner

显式逐对象等待、任务或共享资源执行存储

可选组件

通过窄端口实现有界算法

外部产品

main、执行任务、角色、私有 PCB、预算、分区与恢复

构建期决策与运行时工作

解析器将人工编写的 TOML 与已审查 SoC/Board 事实组合为不可变类型化 IR 及原子生成包。它验证模式、资源、时钟、IRQ、ABI、DMA 可达性与预算。CMake 拥有源码依赖图;解析器不根据设备名称发现软件,也不生成产品执行任务。

实际编译目标依赖关系

FIG-02 是已核对的编译图。厂商和提供者包含路径保持私有;公共消费工程获得 Nexus 类型及所选编译/链接策略。

编写的输入、原子生成与固件产物

FIG-03 表达当前生成流程。未知或冲突选择必须失败;不得通过 Kconfig/缓存/旧头文件回退修补。运行时类型化工厂查找返回已有接口面。平台显式启动成功后,普通操作通过共享 ops 表调用该实例上下文。IRQ 分发固定到提供者实例,不为每个字节重复执行工厂查找。

生命周期与失败责任

当前初始化、失败撤回与保留的清理责任

FIG-05 表达显式启动与逆序清理。静态接口面可以在启动前和停止后存在;其指针不授予操作未启动硬件的权限。部分失败可能留下不可逆 watchdog 效果或活跃借用。产品必须检查主要结果与清理结果,继续运行真实执行器,并保留隔离资源。平台启动从不启动调度器。

成本与取舍

32 位接口面包含两个指针,占用八字节只读存储。提供者/模式的 ops 共享;精确可变状态与所选缓冲区分开。间接调用允许同一公共接口服务独立具体提供者与 GoogleMock 端口。成本是一次公共分发以及保留代码/只读表;实际 Flash/RAM 与时序必须在所选链接镜像上测量。

静态装配提前拒绝冲突,裁剪未选择驱动。它不提供热插拔发现、运行时字符串注册表、任意动态时钟变化或自动恢复策略。可选共享 owner 增加显式预算的槽与同步;直接单执行器路径不需要默认 OS 锁或执行任务。

阅读类型化工厂、所有权、接入合同和精确支持范围。架构图解释机制;测试、镜像检查和 HIL 分别建立各自执行范围。