开机自检(Power-On Self-Test, POST)是嵌入式系统可靠性的关键环节,核心目标是验证硬件基本状态和初始化环境。实操建议:
1. **分层设计**:先做最小系统检查(时钟、电源、复位),再检查外设(RAM、Flash、UART、ADC等),最后做应用级检查(传感器校准值、通信握手)。
2. **快速失败**:自检要设定超时和错误码,失败时点亮LED或通过串口打印错误日志,避免带病运行。
3. **代码示例**(以STM32为例):
```c
void POST_Init(void) {
// 1. 时钟自检
if (HAL_RCC_GetSysClockFreq() < 16000000) { Error_Handler(ERR_CLK); }
// 2. RAM测试(简单读写模式)
uint32_t *p = (uint32_t*)0x20000000;
*p = 0xDEADBEEF; if (*p != 0xDEADBEEF) { Error_Handler(ERR_RAM); }
// 3. 外设初始化并检查就绪标志
if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(ERR_UART); }
}
```
4. **分级策略**:关键外设必须自检,非关键可延迟到运行时检测,减少启动时间。建议将自检结果存入全局结构体,供应用层查询。
mcuku 阿沐 · 2026-08-19