工具与软件:
你好
这是对这一 问题的后续行动。 上一个线程现在已锁定、所以我必须创建这个线程。
我对该问题进行了调试、在引导加载程序未启动的情况下、DSP 会在 c_int00汇编指令内的某处停止。 它到达 GET_DATA 和 GET_ADDR 循环、但在某处出现问题。 它没有 到达 DO_BINIT。 我不确定这如何能帮助我找到原因。
我有第一级引导加载程序(BL0)+第二级 BL +主应用程序。 (BL0 + BL + APP)、每个都在闪存中有专用范围。 BL0从闪存运行、最后它跳转到 BL、而 BL 将跳转到应用。 (从 RAM 运行 BL 和 APP)
奇怪的是、BL0的相同代码在单独运行时(应用程序未刷新)、但在应用程序存在时停止工作。 如果代码中微小的变化、便可让它再次运行。 有时更改会使其运行、但通常情况下无法运行。 例如,在一种情况下,它运行,但我看到一个静态变量,我初始化,有一个不同的值,从开始本身!. 在另一种情况下、BL0和 BL 正常运行、但稍后在应用程序内部运行时、例如通信出现问题。 我不明白、 在 DSP 跳转到应用后、BL0中的东西稍后会如何影响应用。 BTW,该应用程序是100%肯定的,所以没有什么是 wron 那里.
以下是一些示例。 我在不同情况下对 BL0代码进行的更改非常微不足道、也可能涉及任何地方、甚至可以更改甚至未使用的宏的值、或者添加一些虚代码行、或者更改一些调试消息。 所以、无论这是什么、都不是关于我更改的内容。 我在这里编写的不同版本的 BL0基本相同。
BL0_version1 + BL + APP >>运行、正常
BL0_VERSION2 + BL + APP >>不会运行
BL0_version2 + BL >>跑步
BL0_version3 + BL + APP >>运行、但不正常、BL0中出现奇怪的行为
BL0_version4 + BL + APP >>运行、但不正常、稍后在应用中出现奇怪的行为
BL0通过闪存运行。 是否有任何东西 可能解释这一奇怪的问题?
我有一个 关于这个的单独问题。