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.

[参考译文] AM2634:AM2634演示板无法在断点停止?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1357710/am2634-am2634-demo-board-cannot-stop-at-breakpoints

器件型号:AM2634

环境:

       CCS 12.7.0   

       AM263x-LP 评估板(红色)  

       演示 rti_Blink_am263x-lp_r5fss0-0_nortos_ti-arm-clang

我修改了时钟配置。 (__LW_AT__未提及且未修改)

       SYSCFG:  输入时钟频率:200MHz

              输入时钟源:SYS_CLK

              启用计数器块0

              所需输出频率:1M

              启用比较事件0

              节拍周期(usecs):500,000

对 main 函数的修改  

    System_init();
    Board_init();

    rti_led_blink(NULL);
    while(1);
//    Board_deinit();
//    System_deinit();

    return 0;

               

在 rti_leed_blink.c 中进行的修改   

    /* Wait until the LED is blinked specified number of times */
    //while(gBlinkCount < LED_BLINK_COUNT);

    /* Stop the RTI counter */
    //RTI_counterDisable(CONFIG_RTI0_BASE_ADDR, RTI_TMR_CNT_BLK_INDEX_0);

    DebugP_log("[RTI LED Blink Test] Timer Stopped...\r\n");

    if(SystemP_SUCCESS == status)
    {
        DebugP_log("All tests have passed!!\r\n");
    }
    else
    {
        DebugP_log("Some tests have failed!!\r\n");
    }

//    Board_driversClose();
//    Drivers_close();
    

以确保 LED 闪烁泡沫器

我还在"gBlinkCount++"上添加了一个断点

void rtiEvent0(void)
{
    if(gLedState == LED_ON)
    {
        GPIO_pinWriteLow(gpioBaseAddr, pinNum);
        gLedState = LED_OFF;
    }
    else{
        GPIO_pinWriteHigh(gpioBaseAddr, pinNum);
        gLedState = LED_ON;
    }
    gBlinkCount++;
}

预期结果:

代码将在"gBlinkCount++"行停止

当我禁用断点时、LED 将每隔0.5s 闪烁一次、并且永远运行

实际结果:

1.代码 不会始终在 "gBlinkCount++"行停止。 当我手动暂停代码时、变量 gBlinkCount 会增加、这与我观察到的 LED 闪烁次数一致。

  我不确定是 CCS 错误还是配置错误

2.代码在大约30s 时会闪烁,然后代码进入0x000039DE (有时会发生这种情况)

3.寄存器"RTI0_RTICOMP0"在运行程序期间始终进行计数(始终发生)

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

    周先生、您好!

    Unknown 说:
    1.code 将停止在"gBlinkCount++"

    此处可能发生的情况是、如果您未 在程序的其他部分中使用 gBlinkCount 变量、编译器会将其作为不必要的变量进行优化、因此调试器无法将其中断。

    Unknown 说:
    2. 代码将在约30s 时闪烁、然后代码转至0x000039DE (有时会发生这种情况)

    导致这种情况的原因是否存在任何可重复性、还是纯随机性? 它是仅在例如暂停调试器时发生、还是程序只是在你什么都不做的情况下停止?

    此致、

    拉尔夫·雅各比