- 1
- 2
- 3
- 4
- 5
优先级反转踩坑实录与最终改法
资料介绍
优先级反转踩坑实录与最终改法 1) 缘起 本章引言:控制器跑得好好的,偶尔卡顿几百毫秒。查了三个月,最后发现是三个任务在抢一把锁。这就是优先级反转。 项目背景是一台运动控制器,主控是 Cortex-M7,跑 RTOS,上面有电机控制、通信、人机界面、数据记录四个任务。人机界面任务优先级最低,但负责刷屏,周期 20 ms。 问题表现为:每隔几小时,电机控制环路会出现一次明显的抖动,持续时间约 200~400 ms,之后自动恢复。抖动期间,电机电流出现异常波动,但未触发保护。 这个现象极难复现,因为需要特定时序。现场调试时,往往等一整天也碰不到一次。 本章要点:偶发卡顿不是"软件不稳定",一定有一个确定的时序条件。 2) 第一轮尝试 第一轮,怀疑是内存分配导致。把动态内存全部改为静态分配,去掉 malloc。改完后运行一周,问题依旧。 第二轮,怀疑是中断风暴。用逻辑分析仪抓取中断引脚,统计中断频率。发现某段时间内串口中断频率异常,但排查后发现是正常通信数据,不是异常。 第三轮,怀疑是 Flash 写操作阻塞。数据记录任务写入 Flash 时,Flash 控制器会暂停取指,导致所有代码执行变慢。于是把记录任务改为双缓冲加 DMA,问题有所缓解,但仍未根除。 本章要点:每一轮尝试都应记录"排除了什么",避免重复劳动。 3) 遇到的坑 第一个坑是"看起来像,其实不是"。内存分配、中断风暴、Flash 阻塞,这些都符合"偶发卡顿"的特征,但根因只有一个。 第二个坑是"加了日志就好了"。加了打印后复现率大幅下降,因为打印本身改变了时序。这叫海森堡效应,在排查并发问题时尤其常见。 第三个坑是"优先级设得越高越安全"。最初的设计中,电机控制任务优先级最高,通信次之,记录再次,界面最低。看起来合理,但忽略了互斥资源的存在。 第四个坑是"临界区越短越好"。
部分文件列表
| 文件名 | 大小 |
| 优先级反转踩坑实录与最终改法.docx | 39K |
最新上传
-
sialuoyu 打赏1.00元 2天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏310.00元 3天前
用户:潇潇江南
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏310.00元 3天前
用户:潇潇江南
-
21ic下载 打赏210.00元 3天前
用户:zhengdai
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏110.00元 3天前
用户:w993263495
-
21ic下载 打赏60.00元 3天前
用户:gsy幸运
-
21ic下载 打赏70.00元 3天前
用户:xzxbybd
-
21ic下载 打赏20.00元 3天前
用户:kkfjenui
-
21ic下载 打赏30.00元 3天前
用户:王小琪
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w178191520
-
21ic下载 打赏20.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏25.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏20.00元 3天前
用户:x15580286248
-
21ic下载 打赏15.00元 3天前
用户:玉落彼岸
-
21ic下载 打赏5.00元 3天前
用户:hly1230218
-
21ic下载 打赏5.00元 3天前
用户:叮当猫666
-
21ic下载 打赏5.00元 3天前
用户:xjgtgl
-
21ic下载 打赏5.00元 3天前
-
21ic下载 打赏5.00元 3天前
用户:贵平130532
-
21ic下载 打赏5.00元 3天前
用户:linyi3
-
21ic下载 打赏10.00元 3天前
用户:有理想666
-
21ic下载 打赏10.00元 3天前
用户:yahuang001
-
21ic小能手 打赏3.00元 3天前
资料:小米MIX3电路图
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏100.00元 3天前
用户:潇潇江南
-
他山之石可攻玉 打赏50.00元 3天前
用户:烟雨
-
21ic下载 打赏1.00元 3天前
用户:王小琪
-
yahuang001 打赏3.00元 3天前




全部评论(0)