This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C123GH6PZ:XDS110错误-1170 @ 0x0无法访问 DAP

Guru**** 1826200 points
Other Parts Discussed in Thread: UNIFLASH, TM4C123GH6PZ
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/840500/ccs-tm4c123gh6pz-xds110-error--1170-0x0-unable-to-access-dap

器件型号:TM4C123GH6PZ
主题中讨论的其他器件:UNIFLASH

工具/软件:Code Composer Studio

我运行的是 CCS V8、我使用带有14引脚连接器的 XDS110连接到了 TM4C123G。 调试器第一次运行到 main(),然后正常停止。 当我开始运行代码时、它到达 SysCtlClockSet()、然后停止。 当我尝试重新连接时、标题中显示了错误。 现在、我每次尝试启动调试会话时都会收到该错误。 有人能告诉我发生了什么错误以及如何解决? 谢谢、Harry。

int main (void)
{
unsigned long ulLoop;

for (ulLoop = 1000;ulLoop > 0;ulLoop -){
;
}//
启用主时钟
SysCtlClockSet (SYSCTL_SYSDIV_25 | SYSCTL_USE_PLL |
SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz );
//启用外设时钟
// SysCtlPeripheralClockGating (0xff);//仅需要时钟的外设需要
//

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Halo、

    您是否更改了该 API?

    我不会指望它会导致一个问题、我测试了您使用的 SysCtlClockSet、它在我的 LaunchPad 上工作。

    不管怎样、就正在发生的情况而言、您可能会加载错误的时钟配置。

    您将需要使用 CCS Uniflash 解锁器件。

    您可以看到此帖子的说明、其中涉及 XDS200、但 XDS110将是相同的: e2e.ti.com/.../3088253

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。

    首先、在回答您的问题时、我没有更改 API。

    其次、我已经下载并安装了 UniFlash。 我运行它并选择 TM4C123GH6PZ 器件和 XDS110调试器。 我单击"Start (开始)"按钮、然后转至窗口底部的 DebugPortUnlock 部分、选择 Tiva Class、并在打开电源时按住 RESET 按钮。 然后松开重置按钮并单击解锁。 我得到了一个请稍候... 窗口、然后是红色错误! 模块关闭窗口弹出。 同时,显示“请稍候...”的窗口 执行启动脚本:Cortex_M4_0。 我有什么问题吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实际上、我刚刚更仔细地浏览了"设置和实用程序"页面、并意识到我没有将时钟频率设置为16MHz (我的晶体)。 我刚刚输入了时钟频率、然后重试。 单击"解锁"后、似乎什么都不会发生。 应该发生什么情况? 完成解锁按钮的用途是什么? 我应该何时按下它?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Halo、

    在整个过程中、您应该会收到提示:



    或者、您也可以按照《JTAG 用户指南 》第24页上的过程操作:http://www.ti.com/lit/an/spma075/spma075.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。 感谢你的帮助。 按照 spma075中的指令,我已经成功地重置了器件,并且可以再次执行程序直到 main()。 我对越过这个函数并执行 SysCtlClockSet()函数感到有点谨慎、直到我能找到它在最初可能出错的一些原因。 你有什么建议吗?

    int main (void)
    {
    unsigned long ulLoop;
    
    for (ulLoop = 1000;ulLoop > 0;ulLoop -){
    ;
    }//
    启用主时钟
    SysCtlClockSet (SYSCTL_SYSDIV_25 | SYSCTL_USE_PLL |
    SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz );
    //启用外设时钟
    //SysCtlPeripheralClockGating (0xff);//仅需要时钟的外设
    //
    if (SysPeripheralPresent (SYSCCtl_Periph_GPIOA))){
    //启用相关 GPIO 模块
    SysCtlPeripheralEnable( sysctl_Periph_GPIOA );
    //循环直到准备就绪
    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOA)){
    }
    //
    //Porta_Init();
    }
    //
    if (SysCtlPeripheralPresent (sysctl_Periph_GPIOB)){
    //启用相关 GPIO 模块
    SysCtlPeripheralEnable( sysctl_Periph_GPIOB );
    //循环直到准备就绪
    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOB)){
    }
    //
    //PortB_Init();
    }
    //
    if (SysCtlPeripheralPresent (sysctl_Periph_GPIOC)){
    //启用相关 GPIO 模块
    SysCtlPeripheralEnable( sysctl_Periph_GPIOC );
    //循环直到准备就绪
    while (!SysCtlPeripheralReady( sysctl_Periph_GPIOC){
    }
    //
    //PortC_Init();
    }
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Halo、

    我不确定、因为我尝试了您在我的 LaunchPad 上发布的完整块、它工作正常。

    是否确定已正确填充 BOM 上的晶体? 这可能会导致问题。 尤其是当代码再次使电路板砖型时。

    您可能还需要检查编程器设置、以确保这一目的正确无误

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。 我很确定 XTAL 是正确的解决方法。 它是一个4焊盘 xtal、焊盘1通过具有奇数梯形形状而不是矩形清晰标记、但我将检查它。 我不确定"检查程序员"是什么意思;我应该检查它的哪些方面? 我改变了 SysCtlClockSet()参数、以便主振荡器从内部16MHz PIOSC 运行、并且运行正常。 我认为振荡器源只有在我尝试使 USB 正常工作时才会很重要;我认为 USB 需要一个相当精确的时钟。 哈里。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我刚刚检查、晶体的方向是错误的。 这就是它的原因。 我本应该更加小心。 感谢您的帮助、Ralph。