接入复核的 Board 包¶
精确 SoC 已有维护提供者时使用本指南。Board 增加 PCB 事实与复核绑定,不复制厂商 SDK,也不授权每一条硅片路由。实际未观察的 PCB 版本、焊桥和电压保持未知。
使用下面的解析器或构建命令前,先准备固定源码与递归依赖。
收集最小事实¶
记录完整料号、封装、来源文档版本和保留来源依据。记录晶振值、供电条件、SWD 预留、引脚、有效电平、跳线条件和安全初始输出。区分文档默认与这块实际板卡的观察。先接入一个 LED 和一条控制台路由。
下面是完整维护 Board 文件,包含 soc_family:
{
"schema_version": 1,
"id": "stm32f407zg-qiming-v31",
"soc": "STM32F407ZGT6",
"soc_family": "stm32f407",
"source_revision": "V3.1",
"physical_pcb_revision": null,
"clocks": {
"hse_hz": 8000000
},
"bindings": [
{
"id": "led0",
"controller": "GPIOE",
"route": "gpio-pe3",
"initial": 8,
"mask": 8
},
{
"id": "led1",
"controller": "GPIOE",
"route": "gpio-pe4",
"initial": 16,
"mask": 16
},
{
"id": "led2",
"controller": "GPIOG",
"route": "gpio-pg9",
"initial": 512,
"mask": 512
},
{
"id": "uart1",
"controller": "USART1",
"route": "usart1-pa9-pa10"
},
{
"id": "flash0",
"controller": "FLASH",
"route": "flash-internal"
},
{
"id": "iwdg0",
"controller": "IWDG",
"route": "iwdg"
},
{
"id": "can1",
"controller": "CAN1",
"route": "can1-pa11-pa12"
},
{
"id": "can2",
"controller": "CAN2",
"route": "can2-pb12-pb13"
}
],
"reserved_resources": [
"PA13",
"PA14"
],
"unknowns": [
"Physical PCB revision and fitted options not inspected",
"SPI/I2C/PWM/ADC/EXTI external wiring not bound or physically qualified",
"CAN optional fitted transceivers, termination and jumper positions not inspected; software pad routes only, physical CAN qualification not executed"
],
"provenance": [
{
"url": "https://github.com/petercwq/STM32407/blob/master/启明欣欣407开发板(高配版)V3.1例程使用手册.pdf",
"scope": "V3.1 LED identities and low-active behavior"
},
{
"repository": "https://github.com/petercwq/STM32407",
"tree": "08c5f513f1677388fcacaa519dca0c9ef00b6d2e",
"led_header_blob": "63ed6144e8d33f947fbe2784a9962d2913028ac8",
"led_source_blob": "4adeb6f04323f6c8ae4eabf3308334e3e6910277",
"clock_source_blob": "e99736d005f731db67300447d77ce96901d4c3ec",
"uart_source_blob": "e0f9a0fdf6633de6ef5f1c451c2966f22dae204b",
"scope": "LED pins and inactive initialization; HSE_VALUE 8 MHz with PLL_M 8 / PLL_N 336 / PLL_P 2; USART1 PA9/PA10 AF7"
},
{
"repository": "https://github.com/petercwq/STM32407",
"tree": "08c5f513f1677388fcacaa519dca0c9ef00b6d2e",
"scope": "CAN1 sample blob 8731616cf0d5bf02917c76463c49e722b39eb415 PA11/PA12 AF9; CAN2 blob ef8da679c5e7c7163fe2a48a80b6ce8f9d6ecfaa PB12/PB13 AF9. Fitted transceiver options and jumper positions require commissioning inspection."
}
]
}
接入合同拥有字段与资源要求。描述私有 PCB 数据的 Board 包保留在外部产品仓库。公开可复用包位于 boards/;普通包只需 board.json 与 README。仅当维护数据不能表达电气动作时,才增加有界中性 Board 钩子。
通过实际解析器验证¶
从 Nexus 仓库根目录执行,编写前先检查已知合法参考:
python tools/configure/configure.py list-bindings --assembly tools/configure/assemblies/qiming-baremetal-uart.toml
python tools/configure/configure.py check --assembly tools/configure/assemblies/qiming-baremetal-uart.toml
python tools/configure/configure.py explain --assembly tools/configure/assemblies/qiming-baremetal-uart.toml
自己的包在外部完整 assembly 中选择 board_package,以绝对 assembly 路径运行同样命令。相对包路径从人工编写的 assembly 定位。仅 JSON 语法检查不能证明 SoC 身份、时钟、路由或资源兼容。未知字段与未复核路由必须拒绝。
构建并记录选定范围¶
通过自己的 assembly 和锁定 ARM 工具链配置外部消费工程。裸机与 FreeRTOS 使用独立输出根。检查 resolved claim、向量表/startup、强符号处理函数、ELF/BIN/map 及每个物理 RAM/Flash 预算。Factory 在启动前查找必须纯净,实例状态必须独立。模型/链接测试使用软件 Board 夹具,并准确标注其接线性质。
无设备时准备 HIL 计划。物理资格要求独立复核工位、实际 Board/part/UID/探针/接线、精确镜像和真实原始测量。来源复核的焊盘不建立连接器连通、抗扰或安全电气行为。