在MCU底层开发里,改一个寄存器位最常见也最危险。写REG |= (1
裸机或RTOS项目里,最容易出现“驱动调业务”的硬耦合:UART中断里直接ParseModbus、按键扫描里直接ControlRelay、定时器回调里直接BlinkLED。换协议、换板卡就要改驱动源文件,维护成本陡增。用函数指针做回调注册,把“事件发生”和“事件处理”拆开,驱动只负责收数据、置标志、调指针,应用层注册具体函数,复用性会明显提升。
栈溢出在MCU里最麻烦:它不报警,先把全局变量、堆管理块、函数返回地址踩坏,表现为偶发HardFault、参数随机跳变、看门狗无故复位。仅靠“把栈开大点”治标不治本,工程上要用两层防线——编译期静态检查筛高危代码,运行期MPU硬件拦截越界写。