这个问题的现象是固件跑着跑着会莫名其妙SOFTDEVICE: ASSERTION FAILED,没有特定的触发条件,时间上也不确定,但是如果用Jlink连接板子并开着IDE处于调试状态,就算是全速运行,也会增加出现这个问题概率,如果把固件OTA到或者烧录到板子上,就不会出现这种现象.之前一直以为是用了FreeRTOS有什么兼容性问题.

后来在官方论坛上问了这个问题,得到的答复是时钟不同步,之前板子一直使用外部高速时钟与内部低速时钟,当我将低速时钟改成了由高速时钟分频出的低速时钟(合成时钟)后,问题得到了解决,当时沟通的具体贴子地址:https://devzone.nordicsemi.com/f/nordic-q-a/76361/assertion-failed-pc-0x154a2


一个电子工程师的自我修养