SoC 完善与物理验收¶
Nexus 维护精确芯片机制。SoC 事实和路由、私有 provider、生成的静态实例、Board 接线与实际物理行为分别承担责任。运行时仍使用现有 typed factory 和共享只读操作表,不引入新的 registry、worker、allocator、lock 或产品配置权威。
55 项执行台账区分现有修正优化(SOC-01–27)、有条件目标扩展(SOC-28–36)和物理验收(SOC-37–55)。全部维护由 Codex 负责。实现状态、实际软件证据和物理状态分别记录。编写计划、synthetic parser 测试或 ARM 链接均不能完成物理退出条件。
当前软件边界¶
STM32F407VET6/ZGT6 和 GD32F470ZGT6 维护已复核的固定时钟、启动、单调计时器和选定控制器模式。派生能力矩阵列出精确事实、路由、生产源码选择和软件 fixture。STM32G474RET6 维护 GPIO/LPUART 及选定 EXTI 边沿事件。非 M4 参考为 STM32H743ZIT6 / NUCLEO-H743ZI2 和 STM32U575ZIT6Q / NUCLEO-U575ZI-Q。H743 增加固定时钟/cache profile 和有限 UART DMA 发送;U575 将单状态平台与独立同步双域软件参考分开。其他 Cortex-M profile 的 CPU ABI/runtime 支持不代表完整 SoC、Board 或外设实现。
参考配置 |
维护的执行合同 |
明确排除 |
|---|---|---|
G474 / MB1367 |
HSE 24 / 170 MHz、TIM2、PA5 GPIO、LPUART1 PA2/PA3、选定 PA0/PA1 EXTI 边沿事件;裸机或 FreeRTOS。 |
其他控制器、DMA 和 ThreadX;EXTI fixture 接线并非观测到的 Board 路由。 |
H743 / NUCLEO-H743ZI2 |
有界 pre-RAM LDO 入口;HSI 32/64 MHz、Cache 关/开;TIM2、PB0 GPIO、USART3 PD8/PD9 IRQ bytes 或有限 DMA TX;裸机或 FreeRTOS。 |
其他供电/PLL profile、DMA RX/其他引擎、可选 RAM 放置、运行态交接与运行时重配时钟。 |
U575 / NUCLEO-U575ZI-Q 平台 |
外部预先建立 TZEN=0、SWAP_BANK=0,MSIS 4 MHz、Cache 关闭、TIM2、PC7 GPIO、USART1 PA9/PA10;裸机或 FreeRTOS。 |
Option-byte 修改、DMA、可选 RAM 放置与运行态交接;此装配没有 TrustZone transport。 |
U575 独立双域参考 |
显式 TZEN=1 cold-owner 合同、Secure/NS Runtime 镜像、SAU/MPU/RAM attribution、真实 CMSE 入口,以及一个非特权 NS Thread 的同步复制 GPIO 访问。 |
通用双域 factory、NS RTOS/task 身份、异步借用、跨域 DMA、产品 loader authentication 和物理隔离资格。 |
这些是来源已复核的 Board 参考;实际 PCB/silicon revision、焊桥、电气连接与 option bytes 尚未观测。reference-only HIL admission 默认拒绝,匹配芯片名称不能使参考成为合格实板。扩展执行记录区分普通 commit gate、开发 ARM 观测与最终资格。原始基线保留原 source identity 和证据。台账中的参考软件状态仅建立有界 host/ARM 证据,不建立 clean candidate、物理验收或全部原始退出条件。
G474 合同定义独立 EXTI0/PA0 和 EXTI1/PA1 ring、pending ACK、mux/gate ownership 和源撤离。测试 Board 是显式软件 fixture,不推测连接器、按钮或电气偏置。H743 合同定义 HSI 32/64 MHz 与 Cache 关/开的四种组合。固定 cold profile 选择不实现运行中频率切换。
H743 USART3 DMA TX 独占 DMA1 Stream0、DMAMUX1 Channel0 request 46 与独立 vector,RX 保持 IRQ bytes。Cache-on buffer 必须独占选定 AXI SRAM 中完整的 32-byte cache line,不向外取整或使用隐藏 bounce buffer。Cache clean 在 borrow admission 后、长 IRQ mask 之外执行;准备未结束不能结清存储。DMA completion、wire TC 和源撤离彼此独立。撤离失败保留 QUARANTINED 借用;关闭 cache 和 timer 前 provider 必须排空。
U575 双域合同是独立无 OS fixture。Cold owner 观察已配置 option bytes,检查实际物理权限,清除未来共享 RAM,再配置并封存 attribution。真实 SG gateway 验证 NS world 而非不可信 task identity,检查 CMSE 权限并通过现有 GPIO broker 复制有界请求。Layout/GPIO grant 属于参考 fixture,不属于可复用平台政策。不声明 option-byte 编程、RTOS 隔离、通用 factory 接入或异步 transport。
最终时钟建立前,时钟 bootstrap 使用有限轮询工作量上限;轮询次数不是实测毫秒。清理必须区分尚未完成的恢复义务与允许保留的保守设置。单调定时器属于一次成功启动的 boot domain,溢出维护间隔上限为 2^32 微秒。旧 deadline 不能跨 stop/restart 使用。NMI/HardFault、暂停的定时器、动态 PLL 变更和深 STOP 必须各有精确合同,不能从普通任务执行推导。
Cold admission 在全局时钟变化前拒绝可观察的外来 selected owner。生成的 pin admission 观察所需 GPIO gate,并在捕获/修改任意 pin 前验证全部选定 pin mode/lock,包括控制器 route 和隐藏 endpoint CS。共享 bank 中无关 pin 不因此成为自有。初始化失败将部分初始化对象纳入逆序 cleanup;readback 失败保留准确剩余责任,不返回成功释放。
Timer start transaction 清除 stale UIF,观察新 UG update,清除标志并确认 CNT 后才发布 epoch。运行期 overflow 只在 UIF ACK 成功后推进 epoch。ACK 被拒绝时使公共时间失效,记录私有故障并尝试有限 source/clocked-counter/NVIC 撤离。Deadline domain 丢失始终是 terminal,即使隔离成功:CPU 保持 terminal interrupt mask,调用有界 fault observer,observer 返回则停驻。无效零 timestamp 不能恢复 deadline consumer,request/低功耗 loan 不释放。产品可以提供另经审查的不返回恢复。普通 stop/restart 或 cleanup retry 不恢复此 terminal 路径。Snapshot 在读取两段 counter 的同一 saved mask 下复查 epoch validity。
.noinit 表示 startup 既不复制也不清零这些字节,不证明特定 reset、供电事件或 sleep 下的 retention。CPU 可达、DMA 可达、linker placement 和物理 retention 分别是独立事实。Factory 访问不初始化或重新取得任何资源。
IRQ 与 DMA 例程具有有限工作量合同。选定执行 owner 必须持续推进所需 service/cancel/drain。DMA 完成、线侧完成和全部请求引用撤离均先于 SETTLED。撤离失败时保留 QUARANTINED 存储;取消不授予回收许可。连续块提供者在替换存储耗尽时停止,绝不写入消费者拥有的块,也不编造精确的漏事件数量。
公共 typed I/O 合同归 io/include;跨芯片 controller algorithm 使用私有头和实现 target。SoC wrapper 拥有 silicon layout/bit assertion 与实际 IRQ/DMA/clock binding,共享源码位置由这些依赖决定。CMake 拥有源码选择,resolver facts 拥有配置身份;移动文件不创建第二张依赖图。
已实现的修正与优化¶
SOC-01–27 保留原始退出条件。下面按组定位实现,不把软件结果扩大为物理行为。逐项状态和证据入口仍在 CSV。
条目 |
机制与审查边界 |
|---|---|
01–05 |
当前范围文档、派生能力一致性、精确封装 GPIO inventory、配置输入闭包和版本化 primary source/errata index。资料索引不等于完整 silicon-revision workaround 资格。 |
06–07 |
不可变 controller/family descriptor 统一配置身份、provider dispatch 和必需 SDK payload;CMake 仍独占生产源码依赖。 |
08–16 |
显式 pre-RAM/post-RAM ownership、foreign-owner 拒绝、有界 clock transaction/rollback、timer start/ACK 观测、context 限制与 boot-domain validity。 |
17–19 |
固定 profile shallow Sleep/tickless、共享 USB48 ownership 和 |
20–22 |
G474 UART 比较回绕和单字节 masked read、选定 GD EXTI line dispatch、实际 EXTI 撤离及 IRQ/service/drain 工作说明。 |
23, 27 |
真实 ELF/disassembly 观测、工具/输入 receipt 和严格同 profile 成本比较。Flash、静态 RAM、保留 stack 和 caller storage 分开;指令数不是实测 cycles。 |
24–25 |
显式 F407 CCM 放置与 GD RAM initializer 校验。首次写入前验证全部 copy/clear span;未选域无默认成本, |
26 |
公共 I/O、私有跨芯片算法与 SoC SDK assertion 保持依赖边界;不增加纯转发 runtime 层或通用可变 registry。 |
F407 CCM 仅 CPU 可达,作为 DMA 缓冲区时被拒绝。H743 内存事实分别描述 DMA1/DMA2、BDMA 和 MDMA。已实现的 USART3 DMA1 TX 路径只接纳选定 AXI SRAM;MDMA 可达 TCM 不授予驱动、缓存协议或链接放置授权。U575 GPDMA/LPDMA 事实不实现链表引擎或跨安全域 DMA;其同步 CPU 网关不授权 DMA 缓冲区或异步存储借用。旧 dma 事实与显式 dma_engines 是二选一的编写形式;矛盾输入直接拒绝,不自动修复。
SDK 身份包含复核过的原始 CMSIS Device 文件、许可、上游 revision 和选定 family payload。验证在读取窗口内检查 bytes、文件集合与 filesystem identity,但不建立原子 filesystem snapshot;真实 consumer 必须使用同一 immutable SDK。独立 installed consumer 使用公共平台接口,不能继承私有 vendor include 路径。
Hot-path 观测保留实际 ELF bytes、resolved selection、flags、工具身份、资源及完整命令 receipt。Board route、CPU/ABI、backend、clock、memory domain 或 capacity 改变时,回归比较不可比。Empty-to-selected 镜像增长是 selection cost,不是相同 profile 性能改善。物理 cycles、最大 IRQ blackout 和最坏 service 间隔仍未测量。
物理准备与执行¶
tools/hil/soc_acceptance.py plan 不操作设备即可准备十九项物理义务。每项包含所需硬件、激励、raw observation、assertion、安全动作、metric unit、未审查的 null limit 和退出条件。Selection gap/unsupported OS case 保持明确;结果始终为 prepared_unbound / not_executed。
真实 station 提供实测 PCB 修订、料号/UID、探针、供电、接线、精确 ELF、已解析配置、重算资源和已审查负载,由现有 admit.py 建立准入。站点编写的 SoC 协议绑定一个用例、选定控制器 ID、所需仪器/校准字节、激励与数值限制。不变量失败计数必须严格为零;实际工作量和耗时必须具有已审查的正数下限。仓库不提供产品验收数值,也不虚构引脚接线。
capture 委托维护中的采集执行器。既有六种操作保留精确工具/输入身份、站点独占、无 shell 的完整 argv、超时/输出上限、清理和隔离责任。串口/仪器适配器必须接收并按内容锁定 SoC 协议及全部仪器记录。此执行器不实现自动波形采集、CAN/USB/Ethernet 对端或断电;这些操作由站点适配器提供。成功采集也仅为 executed_unqualified。
validate 重建未变的 admission/recipe,校验实际 operation、protocol、instrument bytes、session、firmware/configuration、采集 context、raw observation 与 sample files。对有限、连续、非空 sample 按已审 limits 派生结果。重新hash的opaque protocol、null limit、缺失/失败/跳过操作、陈旧记录、字节漂移和错误scope均拒绝。结果仅资格化命名case、selected mode和记录条件,不建立WCET、未观察负载、认证或产品发布。
Flash 断电用例还需要按内容锁定的外部产品布局。测试区域必须使用精确料号的擦除边界,位于物理 Flash 内,避开全部受保护区域和实际固件 LOAD 字节。外部布局必须保护全部已准入固件 LOAD。区域、受保护数据、断电安全和恢复策略由产品拥有。平台不预留默认测试分区;准备、验证和 commit 检查均不执行破坏性操作。
扩展决定¶
SOC-28–36 保留原始退出条件。选择 H743/U575 解决首批非 M4 目标决策,不完成全部conditional feature。
条目 |
已交付子集或待实现范围 |
|---|---|
28 |
H743 HSI 32/64 MHz、Cache 关/开及 U575 MSIS 4 MHz 参考。其他oscillator/PLL/supply profile和电气资格不在已实现子集。 |
29 |
G474 GPIO/LPUART 与选定 PA0/PA1 EXTI 边沿事件,包括生成的所有权和软件夹具。其他外设模式与实板边沿验收仍待完成。 |
30 |
精确 H743ZI/U575ZIQ inventory与有限route,及G474 EXTI fixture。其他package/controller/route需要自己的facts、ownership、model和budget;实际Board wiring仍未观测。 |
31 |
选定 M7/H743 与 M33/U575 startup/time/GPIO/UART/backend参考;不建立完整外设、全部OS mode或MCU实际执行。 |
32 |
H743 固定cache ownership与有限USART3 DMA1 TX,及U575 CPU-domain permission/attribution。DMA RX/block stream、其他H7 route/engine、U5 DMA和跨安全域DMA未实现;物理coherency未验证。 |
33 |
未实现。拒绝unknown running state;缺少bootloader→platform的clock、IRQ、DMA、cache、RAM与live-owner handoff。U575 cold world transition不实现此功能。 |
34 |
未实现。H743四种profile是cold配置,无running frequency transition、consumer reclocking或deadline-domain conversion。 |
35 |
未实现。F407/F470 shallow Sleep不提供deep-STOP continuous RTC/LPTIM domain、retention proof或wake restoration。 |
36 |
仅部分同步U575参考:Secure/NS镜像、cold attribution owner、单一非特权NS Thread、复制GPIO gateway。无双域platform factory、NS RTOS、多任务identity、mutable address space、异步borrow/drain或HIL isolation资格。 |
拒绝unsupported配置是有效防御合同,但不等于实现被拒feature。关闭台账前,新feature需要精确controller/mode ownership和验收证据。首发芯片保留已声明fixed profiles。
SOC-33–35 剩余软件需要协同ownership,不是再加profile名。运行态handoff需要精确outgoing/incoming image/resource合同、已验证stack/vector/FP/IRQ/cache/RAM状态和受审terminal transfer。外部产品仍拥有loader authentication、partition和recovery。动态调频需要consumer quiescence、有序电气变化、有界rollback、OS timing adaptation和明确continuous time。Deep STOP额外需要精确RTC/LPTIM参考、wake/retention admission、elapsed-time reconstruction和consumer restoration;普通shallow准备不能建立这些能力。
SOC-36 要形成通用userspace支持,仍需独立审查的双域configuration/factory、可信OS task identity及mutable-map/copy-fault合同。Async/DMA扩展必须跨安全边界保留borrow/cancel/drain/final-publication规则;这些是新机制,不由当前同步GPIO参考自动产生。
当前设备未连接。SOC-37–55 有可执行工装和station绑定义务,物理退出状态仍为 not_executed。见HIL编写与命令。