工具/软件:Code Composer Studio
CCS 版本:7.1.0.00015
平台:具有 C5515的 eZdsp 开发板(板载 XDS100v2仿真器/调试器)
操作系统:Ubuntu 17.04
我将通过 USB 电缆连接到 eZdsp 电路板。 电路板上没有任何其他连接、没有电源、没有 SD 卡、没有任何连接。
我已经经历了一个编程/调试等周期 几个星期以来、我成功地尝试了更复杂的事情、但现在我突然遇到了一个问题。 当尝试调试程序时、我无法使 C5515上的寄存器恢复到其复位状态。
例如、查看寄存器浏览器、DMA 传输状态(DMACH0TCR2状态)似乎在1处"卡住"-无论我复位、重新启动、重新编程、甚至拔下并重新插入 USB 电缆的次数是多少。 CPU 寄存器 BERR 也是如此(总线错误)。
我已将我的代码最小化为以下内容:
int main (void){return 0}
我尝试重置 CPU、重新启动 CPU、用0填充存储器。 我还尝试写入固件以写入某些寄存器以对其进行复位、但没有。 在 GUI 中更改它们不会产生任何影响、GUI 控制只会重置为不需要的寄存器值。 以下是我的意思的屏幕截图:
有时代码会运行。 在我的"empty main"示例中、它只运行到 main 的末尾。 在更复杂的代码中、我可以单步执行、直到我执行依赖于这些寄存器的操作(例如、等待 DMA 活动停止、或 USB 时钟停止 ACK)、然后代码运行就像寄存器被设置为我看到的值... 这是有道理的、但它表明 CCS 显示的值不正确或 XDS 错误;寄存器必须设置为这些值。 就好像 CPU 复位、甚至在下电上电也不会真正使这些寄存器恢复到其预期的复位后状态。
如果我足够麻烦地使用 CCS、要么它将完全冻结、要么我将得到错误:
连接到目标时出错:
(错误-1138 @ 0x5F)
器件拒绝允许调试模式。 对电路板进行下电上电。 如果错误仍然存在、请确认配置和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。
(仿真包6.0.576.0)
另请注意、如果我关闭(通过断开 USB 连接)并重新插入、它将以一些频带灯和 LCD 滚动文本启动、而不是我编写过的代码。 可能 eZdsp 是通过将一些程序从外部存储器加载到 C5515... 这是否会与寄存器混淆?
无论如何、我在做什么方面完全丧失了能力。 遗憾的是、我没有其他电路板可供测试。 如何继续? 如何使 CPU 将其所有寄存器复位为复位后的值?


