【简介】
【问题背景】
本地的环境芯片上电后到任务运行大约需要100ms,这个时间按照以往的经验来看是不合理的,针对该启动时间超过预期的,于是针对该问题进行跟踪确认,调查原因。
【问题调查】
本地debug 发现时钟初始化占用了很大一部分,本地debug时钟初始化前的cpu cycle 为 0x1e9e2.

完成时钟初始化后对应的CPU cycle 为0x5e134f, 所占用的CPU cycle 数为 5C 296D 这个cycle 相对比正常大很多。

本地继续debug 跟踪确认耗时比较长的处理是外部晶振的初始化处理。

进一步跟踪确认发现是Sxosc的晶振初始化超时了。

至此异常原因已经明确,Sxosc 时钟为什么会超时异常,查看原理图发现外部Sxosc 的32.768KHZ的本地硬件并没有接入,所以会造成对应的时钟配置异常。
【问题修改】
上述原因已经明确本地修改策略也比较简单只要关闭外部Sxosc 配置不进行配置即可。


重新生成代码后初始化的配置中已经删除了SXOSC 的时钟配置

修改后 debug 查看时钟初始化前对应的CPU cycle为0x11ab2

完成时钟初始化后的CPU cycle为0x341c0

我要赚赏金
