蓝牙推送协议实测逆向:外置串口当旁路探头,五个疑点一次修完

蓝牙模块挂在主机的 UART 上:手机连上蓝牙放歌,模块把曲名、艺术家、进度等状态以文本行推给主机,主机再转发到控制面板显示。没有正式协议文档,厂商给的"说明"和实际行为对不上。这篇记录怎么用外置串口把协议抓明白,以及五个疑点的修复——其中三个修复后来直接变成了协议设计。

给量产产品换开机LOGO:横竖预旋转、字节级验证,和多放一张BMP就爆分区

设计师给了张横版 800×480 的欢迎图,产品屏幕却是竖着装的 480×800,LOGO 要在 U-Boot 阶段(内核还没起来)就显示。这篇记录从 PNG 到屏上点亮的完整管线,以及三个坑——其中"多放一张 BMP 就爆分区"这个,打包工具的报错信息几乎不会让你直接想到答案。

全志T113串口RX"永久失聪"实录:一场DMA描述符池上的开局竞态

T113 音源播放器上跑着两路业务串口:uart4(ttyS4)接 OTG 音源切换芯片,uart5(ttyS5)接蓝牙模块,DTS 里都配了 use_dma = <3>(TX/RX 全走 DMA)。这周先后出现两起"串口收不到数":先是 OTG 芯片"未连接",修好之后隔了一次烧录,蓝牙又"聋"了——同一个病根,两次发作在不同的串口上。这篇完整复盘根因、修复和一个值得记住的竞争格局故事。

快速切歌把整机按死:一次sunxi rpmsg内核竞态的完整复盘

这是迄今遇到的最迷惑的一次故障:快速切歌或切源,整机就"哑"了——不出声、面板失联,但所有进程都活着:ps 全在、心跳正常、没有任何 crash 和重启。软重启无效,断电是唯一恢复。最后定位到内核里的 sunxi rpmsg 竞态 Oops,而且 Oops 本身还死在打印路径里——这篇完整复盘。

USB Bulk链路"失联永不恢复"实录:重扫devicePath与三条自愈修复

控制面板与播放主机之间走 USB Bulk 通信:面板是 host,按 VID/PID 枚举设备、claim 接口、开端点读写。这条链路平时很稳,但只要下位机重启或电气抖动,面板就会"失联且永不恢复"——只能重启面板。花了两天把这条链路修成自愈的,这篇记录三次修复和背后的通用教训。