主题中讨论的其他器件:C2000WARE
我运行 FapiSetActiveFlashBank(0)。它将转至 Fapi_setupFlashStateMachine(),并在发生非法指令时崩溃。
CCS 调试窗口中显示的崩溃地址错误(0x88633)。 实际崩溃发生在其他地址为0x84e7e

崩溃时的指令(从非法指令处理程序内的堆栈中获取) MOVB ACC、#64 (如下面的反汇编中所示)、并通过在该地址放置一个断点和下面的一条指令来验证。
提示:
-电路仅连接到 PS, PS 正常,没有噪音源。 否则 DSP 运行正常
-除了这个报告之外,在 DSP 或其软件中没有问题
-调试为 XDS100V3。 通过 XDS110重复了相同的行为、并且在没有 JTAG 连接的情况下从闪存运行时似乎也是如此。
-问题重复与几个 DSP 板。
-当在.cmd 文件中排除该地址时,链接器必须将该例程定位在闪存的其他位置。 问题仍然存在,在同一条流水线上(在另一个实际地址)。
-内存浏览的启示汇编指令0x240= MOVB ACC,# 64就在那里
-当这个例程运行时,我所有的操作中断处理程序都被阻止。 在几行之前阻止中断(直接在 IDE 中的 ST1中设置 INTM)不会改变任何情况
-当单步执行调试器单个汇编步骤时,MOVB ACC,#64执行 OK (在寄存器对话框中观察 ACC),在步进之后 DSP 继续正常运行指令。
C$L22:
084e69:96EA MOV *+XAR2[5]、AL
084e6a:761F027F MOVW DP、#0x27f
084e6c:0232 MOVB ACC、#50
084e6d:073A 附加 ACC、@0x3a
084e6e:8AA9 MOVL XAR4、@ACC
084e6f:28C4AA55 MOV *+XAR4[0]、#0xaa55
084e71:CC50FF00和 AL、*-SP[16]、#0xFF00
084e73:FFC7 LSR AL、8
084e74:88A9 MOVZ AR6、@AL
084e75:0240 MOVB ACC、#64
084e76:073A 附加 ACC、@0x3a
084e77:8AA9 MOVL XAR4、@μ A ACC
084e78:CCA6000F 和 AL、@AR6、#0xF
084e7a:88A9 MOVZ AR6、Ø@AL
084e7b:CDC4FFF0和 AH、*+XAR4[0]、#0xFFf0
084e7d:99A6或@AR6、AH
084e7e:0240 MOVB ACC、#64
084e7f:073A 附加 ACC、@0x3a
