做 RTOS 项目时,本来把 UART 接收放在中断里,主任务负责解析。结果系统一段时间后开始卡死,CPU 占用率看着正常,但任务不动。调试发现主任务因为 UART 中断太频繁,***得不到 CPU 时间。更糟的是,相机 DMA 完成中断还会被 UART 中断压着,导致相机数据丢失。后来统一调整优先级,把高频但不重要的 UART 中断降级,把 DMA 提升,把任务用事件触发而不是狂轮询,系统马上稳定。很多新手刚上 RTOS 都喜欢“看到外设就加中断”,但 中断越多不代表越快,反而越容易让系统乱套。嵌入式系统的优先级排布是核心能力。
|
|