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.

[参考译文] TM4C129DNCPDT:无法对微控制器进行编程

Guru**** 2522180 points
Other Parts Discussed in Thread: UNIFLASH, TCA9555, EK-TM4C1294XL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1225189/tm4c129dncpdt-unable-to-programmed-microcontroller

器件型号:TM4C129DNCPDT
主题中讨论的其他器件:UNIFLASHTCA9555EK-TM4C1294XL

您好!

我正在尝试在新开发板中加载项目的参考运行代码、但它不起作用。我不能在此处共享项目的代码、因为它是专有的、因此需要直接联系他人来帮助我调试这个问题。

谢谢。

基兰吉特  

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

    您好!  

     参考代码是否在 LaunchPad 上运行?

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

    尊敬的 Charles:

    示例代码在 Launchpad 上运行、但参考代码不起作用。

    请分享您的评论或建议。

    谢谢。

    基兰吉特  

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

    尊敬的  Kiranjit:

    示例代码在 Launchpad 上运行,但参考代码不起作用。

     我有点困惑。 示例代码和参考代码之间的区别是什么?

    您指的是哪个示例代码?

    参考代码是您自己的代码吗?

    参考代码是否可在 LaunchPad 上运行?

    示例代码是否适用于您自己的电路板?

    请回答上述问题、以便我们可以隔离问题、看看它是否与硬件或软件有关。  

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

    尊敬的 Charles:

    示例代码和参考代码之间的区别是什么?

    您指的是哪个示例代码?

    参考代码是您自己的代码吗?

    >>>示例代码是 tirtos 随附的示例项目之一。 参考代码是我们已经在运行的项目代码。 示例代码包括通过 I2C 协议提供一些输出或发光 LED 等。

    参考代码是否可在 LaunchPad 上运行?

    示例代码是否适用于您自己的电路板?

    >>我们有一个参考板, 我们的参考工作项目代码在它上面运行得非常好。 但在我们新设计的原型板上、参考工作项目代码未在运行。 示例代码适用于我们的新电路板。

    另外一点、我在评论参考工作项目中所有的初始化内容、只发光 LED 的时候、是在工作 在新电路板上处于调试模式、但通过 CCS uniflash 编程时无法正常工作。

    请帮助澄清问题。

    此致、

    Kiran

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    ]>我们拥有一个参考板、我们 的参考工作项目代码可以在该板上完美运行。 但在我们新设计的原型板上、参考工作项目代码未在运行。 示例代码适用于我们的新电路板。

    以下是我的评论:

    -参考板和新设计的原型板之间有什么区别? 如果参考代码在参考板上工作、而不是原型板上工作、则表明存在一些硬件问题。  

    示例代码可能足够简单,只打开一个 LED 和一些简单的 I2C 事务。 示例代码可能无法揭示运行参考代码时阻止原型板工作的硬件差异。  

     -参考代码和示例代码之间的主要区别是什么? 我想您的参考代码不仅仅是打开 LED 和 I2C 事务。 将重点介绍参考代码和示例代码之间的差异。  

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

    尊敬的 Charles:

    您能帮我讲完最后一点吗?

    另外一点、我在评论参考工作项目中所有的初始化内容、只发光 LED 的时候、是在工作  在新电路板上处于调试模式、但通过 CCS uniflash 编程时无法正常工作。

    谢谢。

    基兰吉特

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

    另外一点、我在评论参考工作项目中所有的初始化内容、只发光 LED 的时候、是在工作  在新电路板上处于调试模式、但通过 CCS uniflash 编程时无法正常工作。

    [/报价]

    在注释掉参考中的所有初始化之后、您在 LaunchPad 和参考板上运行时是否看到相同的行为?

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

    是的、Launchpad 以及我的新原型板上的行为相同

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

    您删除了什么初始化?  

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

    尊敬的 Charles:

    请参阅以下代码片段:


    //Board_initGeneral();
    //Board_initGPIO ();
    // Board_initPWM ();
    //Board_initUART ();
    //Board_initI2C ();
    // Board_initSPI ();
    //UARTUtils_systemInit (0);
    //Board_initWatchdog();
    // PinoutSet ();

    /*系统时钟频率设置为120MHz */
    System_printf ("clock %d"、SysCtlClockFreqSet (SYSCTL_XTAL_25MHz |
    SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
    SYSCTL_CFG_VCO_480)、120000000);
    SysCtlMOSCConfigSet (SYSCTL_MOSC_HIGHFREQ);

    //状态 LEDConfig ();

    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOG);

    //检查外设访问是否已启用。
    //
    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOG)
    {

    //
    //启用(PG3)的 GPIO 引脚。 将方向设置为输出、
    //启用 GPIO 引脚以实现数字功能。
    //
    GPIOPinTypeGPIOOutput (GPIO_PORTG_BASE、GPIO_PIN_3);

    GPIOPinWrite (GPIO_PORTG_BASE、GPIO_PIN_3、GPIO_PIN_3);

    注释后的初始化被移除。

    此致、

    基兰吉特

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

    您是否在使用 TI-RTOS? 我看到您使用的是 System_printf。  

    如果您使用 TI-RTOS、它将已经初始化系统时钟。  请参见下方的。  

    不需要调用  SysCtlClockFreqSet 我也不认为调用该函数的原因  

    SysCtlMOSCConfigSet (SYSCTL_MOSC_HIGHFREQ);为什么不删除这两行?

    你是否也注释掉 BIOS_start ()?

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

    尊敬的 Charles:

    是的、我们使用的是 TI-RTOS。 我注释了 SysCtlClockFreqSet 和 SysCtlCMOSConfigSet (SYSCTL_MOSC_HIGHFREQ)和 BIOS_start ()、但我仍然有着与使用 Debug 方法工作但无法通过 CCS Uniflash 实用程序进行编程相同的问题。

    您能说明原因吗?

    此致、

    基兰吉特  

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

    您好!

     我无法重现您的问题。 我从 CCS Resource Explorer 导入 pwmled 示例作为起点。 然后我删除大部分代码并粘贴您的代码。 请参见下方的。 我使用 CCS 重建修改后的项目。 我从 PG3更改为 PN0引脚、以便查看 LaunchPad 板上的 LED。 我在 CCS 中加载并运行该程序。 我可以看到 LED 亮起。 接下来、我使用 Uniflash 版本5.3.1加载相同的.out 文件。 它已成功加载、并且一旦运行、我还可以看到 LED 开启。 我可以对器件进行复位、在复位后、LED 将正常亮起。 我建议您将您的代码与以下代码进行比较。 您还可以从 Resource Explorer 导入 pwmled 示例。  

    /*
     *  ======== pwmled.c ========
     */
    /* XDCtools Header files */
    #include <xdc/std.h>
    #include <xdc/runtime/System.h>
    
    /* BIOS Header files */
    #include <ti/sysbios/BIOS.h>
    #include <ti/sysbios/knl/Task.h>
    
    /* TI-RTOS Header files */
    #include <ti/drivers/GPIO.h>
    #include <ti/drivers/PWM.h>
    
    //------------------------------------------
    // TivaWare Header Files
    //------------------------------------------
    #include <stdint.h>
    #include <stdbool.h>
    
    #include "inc/hw_types.h"
    #include "inc/hw_memmap.h"
    #include "driverlib/pwm.h"
    
    /* Example/Board Header files */
    #include "Board.h"
    
    //------------------------------------------
    // TivaWare Header Files
    //------------------------------------------
    #include <stdint.h>
    #include <stdbool.h>
    
    #include "inc/hw_types.h"
    #include "inc/hw_memmap.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/gpio.h"
    #include "inc/hw_ints.h"
    #include "driverlib/interrupt.h"
    #include "driverlib/timer.h"
    
    /*
     *  ======== pwmLEDFxn ========
     *  Task periodically increments the PWM duty for the on board LED.
     */
    
    
    /*
     *  ======== main ========
     */
    int main(void)
    {
        //Board_initGeneral();
        //Board_initGPIO();
        // Board_initPWM();
        //Board_initUART();
        //Board_initI2C();
        // Board_initSPI();
        //UARTUtils_systemInit(0);
        //Board_initWatchdog();
        // PinoutSet();
    
        /* System Clock frequency Set to 120MHz */
        System_printf("clock %d", SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
        SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
        SYSCTL_CFG_VCO_480), 120000000));
        SysCtlMOSCConfigSet(SYSCTL_MOSC_HIGHFREQ);
    
        //StatusLEDConfig();
    
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
    
        // Check if the peripheral access is enabled.
        //
        while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPION))
        {
        }
    
        //
        // Enable the GPIO pin for the (PG3). Set the direction as output, and
        // enable the GPIO pin for digital function.
        //
        GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0);
    
        GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0);
    
        /* Start BIOS */
        BIOS_start();
    
        return (0);
    }

    、但不能使用 CCS Uniflash 实用程序进行编程。

     可能我不清楚您不使用 CCS Uniflash 的意思。 您能解释一下几个问题吗?  

     -您可以使用 CCS Uniflash 成功地将代码编程到闪存吗?

     -你有什么版本的 Uniflash ? 我使用 v5.3.1/您试过其他版本吗?

     -当你说不工作,这到底意味着什么? 您是否看到 LED 已点亮。 您可以尝试上面的代码吗?

      

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

    尊敬的 Charles:

    您是否可以使用 CCS Uniflash 成功地将代码编程到闪存?

    我可以使用 CCS Uniflash 成功对代码进行编程。

    [报价 userid="93620" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1225189/tm4c129dncpdt-unable-to-programd-microcontroller/4631849 #4631849"] -您使用的 Uniflash 是什么版本? 我使用 v5.3.1/您试过其他版本吗?

    我有 uniflash 3.4、我会尝试其他版本并更新您。

    当您说不工作时、这到底是什么意思? 您是否看到 LED 已点亮。 您可以尝试上面的代码吗?

      

    [/报价]

    如果我编写一个单独的代码、那么它可以正常工作、但如果我注释我的参考工作代码中的所有内容、并且仅显示一个 LED、那么通过 uniflash 编程时它不起作用、但在调试模式下运行时有效。

    希望事情现在已经清楚了。

    您能在这方面提供帮助吗? 是否可以安排会议?

    此致、

    Kiran

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

    您好!

     您可以发布整个程序、而不是仅仅一段代码吗?  

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

    尊敬的 Charles:

    由于 IP 问题、我无法发布整个代码。

    谢谢。

    Kiran  

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

    您好!

     您可以将我添加为朋友、然后私下将文件发送给我。  

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

    尊敬的 Charles:

    与团队进行内部讨论后、我将分享这些信息。

    如果我们可以安排一次会议、以便您能够实时看到问题、那会更好。 请尝试参加会议。  

    同时、请为调试问题提供一些故障排除步骤建议。

    为什么我的代码只能在调试模式下运行?

    谢谢。

    Kiran

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

    您好!

     您想要删除初始化代码的原因是什么?  

     当您使用 Uniflash 加载具有初始化功能的参考代码时、是否起作用?  

     当您使用 Uniflash 在未进行初始化的情况下加载参考代码时、它是否起作用?  

     请说明在调试模式下正常工作的意思是什么? 您是指在 CCS 中加载参考代码、然后在调试器连接的情况下运行代码吗?

     当您在调试模式下使用 CCS 进行初始化加载参考代码时、是否起作用?  

     当您在调试模式下使用 CCS 在没有初始化的情况下加载参考代码时、它是否起作用?  

     您是否可以在连接调试器但选择"Free Run"时运行代码。  请参见下方的。 这应该在运行程序时断开调试器。 您能重复该故障吗?  

      

     我尚不知道连接调试器与未连接调试器时运行代码的效果如何?  

     最后、我们的支持模型是通过 e2e 构建的。  

      

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

    尊敬的 Charles:

     为什么要删除初始化代码?  [/报价]

    我删除了初始化、只是为了验证阻止我的代码的原因。

     当您使用 Uniflash 加载具有初始化功能的参考代码时、是否起作用?  

     当您使用 Uniflash 在未进行初始化的情况下加载参考代码时、它是否起作用?  

    [/报价]

    我的参考代码在原型板上使用 Uniflash (具有或不具有初始化)时无法正常工作、

    [报价 userid="93620" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1225189/tm4c129dncpdt-unable-to-programd-microcontroller/4634009 #46349009"]请说明您认为它在调试模式下工作是什么意思? 您的意思是在 CCS 中加载参考代码、然后在调试器连接时运行代码吗?

    是的、这就是我的意思、在连接调试器的情况下运行代码。

    当您在调试模式下使用 CCS 进行初始化加载参考代码时、是否起作用?  

     当您在调试模式下使用 CCS 在没有初始化的情况下加载参考代码时、它是否起作用?

    [/报价]

    参考代码在调试模式下与 CCS 一起工作(有和没有初始化)。

    您可以在调试器连接后运行代码,但选择"Free Run"(自由运行)。  请参见下方的。 这应该在运行程序时断开调试器。 是否可以重复失败?

    右键单击时未显示"Free Run"选项。 如何找到"Free Run"选项? 请参阅下面的

    我按 Ctrl + F8、并得到以下结果:

    对此行为有何建议?

    此致、

    基兰吉特

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

    您好!

    在调试 i (不做任何修改的原始参考代码)时、我发现了以下内容(在 BIOS -> Scan for Errors 中)

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

    右键单击时未显示"Free Run"选项。 如何找到"Free Run"选项? 请参阅下面的

    我按 Ctrl + F8、并得到以下结果:

    [/报价]

    请首先点击"Run"下拉菜单、您应该会看到我之前展示的"Free Run"。  

    我不知道您的项目有多复杂。 我似乎无法理解是什么导致了您的问题。 这是我的建议。  

    1.从已知的工作程序开始。 例如、您可以选择一个 TI-RTOS 示例。  

    2.逐个添加您自己的代码片段。 我的意思是逐项显示、一次更像是一个功能。 例如、添加一个 UART 函数。 重新编译工程、查看您是在调试模式下遇到什么问题、还是通过 Uniflash 加载程序、然后运行。  

    3.如果上述步骤中没有问题,请在代码中添加下一个功能。 例如、添加 I2C。 执行与步骤2中相同的操作。 如果通过 Uniflash 加载代码并运行代码时没有问题、则继续执行下一个功能。  

     我希望一次执行一个小步骤将有助于对新电路板上的参考代码不起作用的原因进行故障排除。  

     下面是 你之前的一条评论,让我很困惑。 您说过、您的参考代码在参考板上的工作情况一度非常好、但在您的新板上工作不正常。 您的参考电路板与新电路板之间有何区别?

    >>我们有一个参考板, 我们的参考工作项目代码在它上面运行得非常好。 但在我们新设计的原型板上、参考工作项目代码未在运行。 示例代码适用于我们的新电路板。

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

    查尔斯,你好!

    我将尝试上述步骤,如你所说,但参考代码是相当复杂的 Modbus 通信通过光纤通道,数字和模拟 I/O , 使用的协议包括以太网、DMA、UART、i2c、SPI 和其他一些东西、其中调用了不同的事件和信号、我只需要修改其中的某些部分。

    我们在闪存的4个不同扇区中加载4个 bin 文件、即引导代码、当前映像、黄金映像和通用数据(非易失性数据)

    参考板是我的参考代码所在的工作板。 在修改原理图中的几个部分以增加功能之后、已设计出新的原型板、并且现有参考代码在该原型板上不起作用。

    希望这会澄清您的问题。

    谢谢。

    Kiran

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

    尊敬的 Kiran:

    之后修改原理图中的几个部分以增加功能,已设计新原型板,但现有参考代码在该原型板上不起作用。

     您是否知道与参考板相比、新板中到底新增了哪些器件或进行了哪些更改?  

     为了确保您的参考代码在参考板上仍然有效、您可以重新运行以确认情况仍然如此。 这将帮助您确定新原型板上的硬件更改如何影响参考代码的问题。  

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

    尊敬的 Charles:

    您是否知道与参考板相比、新板中到底新增了哪些器件或进行了哪些更改?  

    >>是的、我在原理图 设计过程中与电气人员合作。 添加了一个 RJ45端口连接、现有光纤端口和组合旋转开关连接、以及与单 IO 扩展器(TCA9555)的 LED 连接、之前使用的是独立 IO 扩展器(TCA955)。

    下面是与 switch 连接的 IO 扩展器代码片段。

    您能否解释命令字节值(0X8C)的重要性?  

    以确保您的参考代码在参考板上仍然有效、

    >>是的,它也在参考板上正如前面提到的。

    新原型板上的硬件变化如何影响参考代码

    >>硬件更改适用于示例代码(i2c 和 LED 闪烁)、但不适用于参考 代码。

    示例代码正在工作、因此我们可以得出结论:硬件与控制器之间的接口正常。  

    我将尝试您建议的步骤。

    谢谢。

    Kiran

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

    尊敬的 Kiran:

     首先,我还没有掌握哪些是可行的,哪些是不可行的。 请填写下表。 我填写到目前为止我知道的信息。 如果我对哪些方法有效和哪些方法无效有误解、请更正。  

      发射盘 参考板 新原型板
    通过 CCS 调试加载的示例代码 工作 工作 工作
    通过 CCS 调试加载的参考代码   工作 工作
    通过 Uniflash 加载的示例代码      
    通过 Uniflash 加载的参考代码   工作 不工作

    您能解释命令字节值(0X8C)的重要性吗?  [/报价]

    请注意、我只能回答与 MCU 相关的问题、而不能回答 TCA955。 您将需要咨询 TCA9555的支持团队。  

     当您说通过 Uniflash 加载的参考代码不起作用时、您之后是否尝试过与调试器连接、并找出代码滞留在何处? 您只需加载符号、就能找出代码在做什么。  

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

    尊敬的 Charles:

    请找到下面填写的表格:

      发射盘 参考板 新原型板
    通过 CCS 调试加载的示例代码 工作 工作 工作
    通过 CCS 调试加载的参考代码 工作 工作 工作
    通过 CCS Uniflash 加载的示例代码 工作 工作 工作
    通过 CCS Uniflash 加载的参考代码 不工作 不工作 工作
    通过 CCS Uniflash 加载的参考代码中的修改 不工作 不工作 不工作
    修改通过 CCS 调试加载的参考代码 工作 工作 工作

    当您说通过 Uniflash 加载的参考代码不起作用时、您是否尝试过稍后与调试器进行连接并找出代码滞留在何处? 您只需加载符号、就能找出代码在做什么。  [/报价]

    如何加载符号?

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

    请参阅下面的内容并提供您的.out 文件。 CCS 将提取符号。 您将需要自己进行调试。  

      发射盘 参考板 新原型板
    通过 CCS 调试加载的示例代码 工作 工作 工作
    通过 CCS 调试加载的参考代码 工作 工作 工作
    通过 CCS Uniflash 加载的示例代码 工作 工作 工作
    通过 CCS Uniflash 加载的参考代码 不工作 不工作 工作
    通过 CCS Uniflash 加载的参考代码中的修改 不工作 不工作 不工作
    修改通过 CCS 调试加载的参考代码 工作 工作 工作

    您是否确定 参考代码在 New Proto 板中工作、但在参考板和 LaunchPad 中不工作? 您能否再次检查每个字段?

    我很难掌握什么是有效的,而不是无效的。 已经有18种组合。 这甚至不包括被注释掉的初始化代码。 我认为这就是我要提出的建议。

    1. 通过 Uniflash 加载您的参考代码或修改的参考代码。

    2.通过 CCS 连接到目标。  

    3.按照前面的说明加载符号。

    4.进行重置。 已获得 Run->Reset->System Reset。

    5.在你被卡住的地方运行并执行单步操作。  

    您的系统看起来非常复杂、我真的不知道如何从我身边提供除上述故障排除建议之外的帮助。  

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

    尊敬的 Charles:

    您可以在调试器连接后运行代码但选择"Free Run"。  请参见下方的。 这应该在运行程序时断开调试器。 您能重复该故障吗?  [/报价]

    我尝试了"Free Run"选项、即使在该模式下代码也没有运行。

    您确定 参考代码在新原型板中工作,但在参考板和 LaunchPad 中不工作吗? 您是否可以再次检查每个字段?

    对不起更正错误、请找到以下更正后的表格

    已执行的任务   发射盘 参考板 新原型板
    通过 CCS 调试加载的示例代码 工作 工作 工作
    通过 CCS 调试加载的参考代码 由于缺少硬件支持、无法检查 工作 不工作
    通过 CCS Uniflash 加载的示例代码 工作 工作 工作
    通过 CCS Uniflash 加载的参考代码 由于缺少硬件支持、无法检查 工作 不工作
    通过 CCS Uniflash 加载的参考代码中的修改 不工作 不工作 不工作
    修改通过 CCS 调试加载的参考代码 工作 工作 工作

    请参阅下面的内容并提供您的.out 文件。 CCS 将提取符号。 您将需要自己进行调试。  

    [/报价]

    在"Load Symbols"选项中、在以下步骤后、如何继续?

    4. 进行重置。 已运行->重置->系统重置[/报价]

    在我执行"重置->系统重置"后、出现以下错误

    5. 在您所处的位置运行并执行单步操作
    [/quote]

    如何在调试时运行单步执行?

    谢谢。

    Kiran

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

    您好!

    此内容甚至不包括正在注释掉的初始化代码。

    在共享的表中、修改包括正在注释的初始化代码

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    已执行的任务   发射盘 参考板 新原型板
    通过 CCS 调试加载的示例代码 工作 工作 工作
    通过 CCS 调试加载的参考代码 由于缺少硬件支持、无法检查 工作 不工作
    通过 CCS Uniflash 加载的示例代码 工作 工作 工作
    通过 CCS Uniflash 加载的参考代码 由于缺少硬件支持、无法检查 工作 不工作
    通过 CCS Uniflash 加载的参考代码中的修改 不工作 不工作 不工作
    修改通过 CCS 调试加载的参考代码 工作 工作 工作
    [/报价]

    您有  

    通过 CCS Uniflash 加载的参考代码中的修改 不工作 不工作 不工作

    我建议您通过 CCS Uniflash 调试修改后的参考代码、因为我们知道您的参考板是正常工作的板。 我们可以排除硬件故障。  

    n "Load Symbols"选项、在执行以下步骤后、如何继续?

    [/报价]

    只需指定.out 文件,然后选择"Load Symobol"(加载系统)并单击"OK"(确定)。 您为什么不从盲法或 Hello 等非常基本的非 TI-RTOS 示例开始呢。 通过 Uniflash 加载闪烁负载、然后连接调试器。 接下来执行加载符号、您将看到所有用于调试的代码。  

    4.进行重置。 已获得 Run->Reset->System Reset。

    在我执行"重置->系统重置"后、出现以下错误

    [/报价]

    原因是地址0x10016B0是 ROM 地址。 这些是存储在 ROM 中的驱动程序库函数、它们没有符号。  

    如何在调试时运行单步操作?
    [/quote]
    [/quote][/quote]

    如需查看下面的内容、请单击这些图标以单步执行源代码或汇编代码。  我认为您首先需要学习如何使用 CCS 或任何调试器。  

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

    尊敬的 Charles:

    感谢您的答复!

    我将很快回复您以上评论。

    请分享您在以下方面的反馈:

    • 当信号不存在时、引脚编号6、74和104将默认被上拉。 这些是新添加的中断信号、未在参考代码中定义。 会影响微控制器的功能?

    谢谢。

    Kiran

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

    您好!

    • 当信号不存在时、引脚编号6、74和104将默认被上拉。 这些是新添加的中断信号、未在参考代码中定义。 会影响微控制器的功能?

    [/报价]

    引脚6 - PQ1

    引脚74 - PM4

    针脚104 - PP3

    您是否使用这些引脚作为生成中断的 GPIO 输入?

    您是否在使用 PortQ、PortM 和 PortP 之前先启用了这些端口? 如果你不首先启用它们、你可能会得到一个总线错误。 但是、事实似乎并非如此、因为您说过修改后的参考代码将在调试模式下运行。 不管怎样、您应该首先检查它们是否被启用。  

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

    您好!

    这些引脚的硬件尚未连接、默认情况下会被上拉、因此启用/禁用这些端口不会影响其他功能。

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

    您好!

     无论这些引脚是否连接都是一回事、而您的代码是否访问这些引脚则是另一回事。 例如、如果端口 XYZ 中有一个 未连接的引脚、但您的代码尝试访问此端口 XYZ 的寄存器而未启用该端口、则您将收到总线故障。 这并不是说您当前的代码存在此问题。 这只是为了澄清、即使引脚未在板级连接、您仍然可能遇到故障。   

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

    尊敬的 Charles:

    我不是在代码中使用这些引脚、而是逐步检查代码、方法是首先注释所有内容、然后一次打开一件事(尽管仍然只在调试模式下工作)。

    您可以检查以下代码片段吗?

    #ifdef MAC_ADDR_PRINT
    uint8_t i、macAddress[6];
    uint32_t ui32User0、ui32User1;

    FlashUserGet (&ui32User0、&ui32User1);
    MacAddress[0]=((ui32User0 >>0)& 0xff);
    MacAddress[1]=((ui32User0 >> 8)和0xff);
    MacAddress[2]=((ui32User0 >> 16)和0xff);
    MacAddress[3]=((ui32User1 >> 0)和0xff);
    MacAddress[4]=((ui32User1 >> 8)和0xff);
    MacAddress[5]=((ui32User1 >> 16)和0xff);
    System_printf ("MAC 地址:");
    for (I = 0;I < 6;I++)
    System_printf ("%x:"、macAddress[i]);
    #endif
    system_flush();

    /*初始化 EMAC */
    Board_initEMAC();

    /*错误块处理程序*/
    error_init (&eb);

    //启动 BIOS
    BIOS_start();

    返回(0);

    在上面的代码部分中、如果我取消注释 ,BIOS_start() ,那么我的代码不会到达 返回 (0)和端接(参见下面的屏幕截图)

    如果 BIOS_start ()  已注释、则断点位于 返回 (0)达到。 请说明为什么会发生这种情况。

    此致、

    Kiran

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 BIOS_start ()  已注释、则断点位于 返回 (0)到达

    这是预料之中的。 如果你不调用 BIOS_start (),那么代码将只是退出函数 main ()。  如果你调用 BIOS_start (), TI-RTOS 会处理调度,并且永远不会到达 return ()。 记住, main ()也是一个函数。 在执行最后一行代码之后、它必须转至某个位置。 然后转到 exit()。  

    请参阅此处的示例。  

    https://www.tutorialspoint.com/c_standard_library/c_function_exit.htm

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

    尊敬的 Charles:

    感谢您的答复!!

    我还在使用 enet_tcpecho_server 示例代码和 launchpad 对微控制器的 PHY 接口进行验证。

    我能够通过 tera Term 获取 IP 地址、但在套接字测试中失败、也无法使用 ROV 连接目标。

    下图供您参考。

     

    请分享您的反馈、以便在 Launchpad 上验证该代码。

    谢谢。

    Kiran

    e2e.ti.com/.../enet_5F00_tcpecho_5F00_server.txt

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

    您好!

     我过去运行过很多次此示例、每次都对我有效。 您在哪个类型的网络上运行此示例?  似乎您没有获得 DHCP IP 地址、因为您的 IP 地址  169.254.x.x 地址,表示  DHCP 服务器不可访问。 使用 Wireshark 调试以太网问题是最好的故障排除方法。  

     您应该为新问题打开一个新主题。 在这里、您将问一个完全不同的问题相关的 lwIP 问题。  

     明天星期一是美国公共假日。 我要等到星期二才能答复。  

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

    尊敬的 Charles:

    非常感谢您的支持!!

    我找到一个线程、其中提到 "MCU 仅在调试模式下运行良好" 它的解析 方式为  禁用半托管

    以下是链接: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/983549/tm4c1294ncpdt-binary-file-issue (参见切斯特·吉隆的评论)

    我们禁用了半托管、但仍然面临相同的问题。  

    您能不能就我们未能在代码中更改的其他此类可能根本原因提出建议?

    谢谢。

    Kiran  

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

    尊敬的 Kiran:

     感谢您提出相关帖子。  

     您是否使用 GNU 来构建项目?

     如果您使用的是 GNU、您可以使用 TI Arm 编译器吗、看看问题是否解决了?

     您能否查看下面的帖子?  Chester 和 Steve 进行了讨论/解释、Ashish Kapania 最后介绍了如何在.cfg 文件和库更改中禁用半主机的解决方法。  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/337566/gnu-examples-for-ek-tm4c123gxl-fail-to-start-unless-debugger-connected

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

    尊敬的 Charles:

    您是否使用 GNU 来构建项目?

     如果您使用的是 GNU、您可以使用 TI Arm 编译器吗、看看问题是否解决了?

    [/报价]

    我们只使用 TI ARM 编译器、而不是 GNU。 请参阅下面的

    您能看一下下面的帖子吗?  Chester 和 Steve 进行了讨论/解释、Ashish Kapania 最后介绍了如何在.cfg 文件和库更改中禁用半主机的解决方法。  [/报价]

    我们已在.cfg 文件中禁用了 semi-host、将检查其他库更改并对您进行更新。

    谢谢。

    Kiran

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

    尊敬的 Charles:

    我创建了单独的线程、以验证外部 PHY (KSZ8765)和我们的工作板参考板之间的接口。  

    请参阅下面的链接:  

    TM4C1292NCPDT:无法从定制 PCB 板获取 IP 地址-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    请分享您对此主题的建议或评论、以便我们逐步推进。

    非常感谢您的支持。

    谢谢。

    Kiran  

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

    尊敬的 Charles:

    当我在调试模式下运行我的项目并尝试连接 ROV 时、它显示了可能在某个 XDC 文件或项目路径中出现的错误。 请参阅下面的

    我的"包含选项"中包含的库如下所示:

    我的路径中安装了以下内容

    我是否应该卸载 XDC 并重新安装? 或任何其他软件包/库? 请提供相关步骤的指南。

    此致、

    Kiran

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

    您好!

     我不知道如果您过去没有看到、为什么会出现错误。 可能有些东西损坏了。  您最近是否下载或更新了任何 XDC 版本? 您应该只对 Tiva 使用 XDC 版本3.32.0.6。  为什么不先开始使用新的 CCS 工作区? 如果不起作用、请重新安装 XDC  版本3.32.0.6。 这是我的建议。

    -退出 CCS 并再次重新启动 CCS。 它有什么用吗?

    -重新启动您的电脑。 它有什么用吗?

    -重新安装 XDC  3.32.0.6。重新安装的 XDC 版本是否有帮助?  

    -创建新的 CCS 工作区。

    -首先将 TI-RTOS 以太网示例导入到新的 CCS 工作区中,并确保编译和运行该示例。  

    -将当前项目迁移到新的工作区。 我希望编译错误会消失。  

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

    尊敬的 Charles:

    非常感谢您的支持!!

    我不熟悉 XDC 卸载和重新安装过程。  

    请分享一些步骤或链接、以便我可以执行此操作。

    谢谢。

    Kiran   

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

    请访问 http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/ 并下载3.32.00.06版本。 我建议您将新安装的版本与您以前的相同版本进行比较,然后查看 XDC.ROV.monserver 是否有任何差异。  

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

    尊敬的 Charles:

    我重新安装了完整的环境设置、但是现在显示了2个未安装的 SYS/BIOS 和 NDK 错误、虽然在 Windows->CCS 首选项中、显示这些软件已安装。 请见下方。

    我已重新启动计算机以及 CCS、但仍然显示这2个错误。

    请指导如何解决该问题。

    谢谢。

    Kiran

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

    您好!

     我真的认为您需要从一个全新的安装开始、也许从另一台 PC 开始。 我想您在软件开发过程中已经下载了许多不同版本、似乎要将它们混合在一起。  

     如果我看一下您的错误、首先会显示 NDK v2.25.00.09 not installed。 您是否可以首先转至您的 TI-RTOS 安装、确定 C:\ti\tirtos_tivac_2_16_01_14\products\NDK_2_25_00_09是否存在?

     也许您应该检查是否  安装了 C:\ti\tirtos_tivac_2_16_01_14?

    有一个"重新发现..." 按钮. 点击它、它会重新发现它吗?  

    在 CCS 中、转到"File"->"Refresh"。 它有什么用吗?

    下一个错误是它无法找到 SYS/BIOS v6.45.3.32。 您为什么要使用此版本? 根据 ti-rtOS v2.16.01.14的版本说明、已经存在 BIOS_6_45_02_31。为什么不使用  v6.45.1.31、因为它已作为 ti-RTOS v2.16.01.14的一部分安装。 或者至少需要确保 将 SYS/BIOS v6.45.3.32安装在正确的位置。 现在系统提示它无法在 C:/ti/bios_v6_45_3_32.中找到 刷新一下、然后重新发现是否有用。  

    http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos/2_16_01_14/exports/tirtos_full_2_16_01_14/release_notes_tirtos_tivac_2_16_01_14.html

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

    尊敬的 Charles:

    我重新安装了所有软件、现在我的环境运行正常。

    我已经为 I2C 通信添加了另一 篇文章、我认为这可能与我上述的调试问题文章相关、您可以按照该帖子操作吗? 我在下面发布链接:

    TM4C1292NCPDT:I2C 传输函数-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    此外、调试/编程问题是否与 RTOS 有任何关系?

    请分享您的评论/建议

    此致、

    Kiran