您好!
我的客户有一个引导代码项目和一个应用代码项目。
他们升级应用程序代码的流程如下所示:
1.当从 SCI 接收到升级请求时、应用程序代码将擦除该标志(告知需要对该应用进行插拔)、然后启用看门狗并触发看门狗复位。
在看门狗复位后、代码将转到 code_start、在这里、我们将检查 Flag、然后跳转到引导代码项目 c_int00、在 c_int00之后、我们应该转到 引导代码 main()、在这里我们完成了应用代码的加载、 在 main()的末尾,我们将跳转到应用 c_int00,然后它应该转到应用 main()。
但是,在150个不能正确进入 app main()的应用程序中,我们有20个,但我们确信新的应用程序代码已经加载到器件中,因为我们已经读出内存并比较结果。 我们猜代码卡在应用 c_int00的某个位置、并触发非法陷阱。
我们已将坏器件焊接到好的电路板上、问题出在坏器件上。
我们不知道为什么它会滞留在应用 c_int00中。 我们猜这是因为我们已经完成了两次 c_int00、一次引导 c_int00、一次应用 c_int00。
但为什么它会导致问题呢? 为什么仅在某些器件上出现该问题?



