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.

[参考译文] TMS320F28335:基本 F28335项目中的无限 while (1)循环最终避开 while (1)循环

Guru**** 2522770 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1309917/tms320f28335-infinite-while-1-loop-in-basic-f28335-project-eventually-escapes-the-while-1-loop

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

我正在将 F28335微控制器与 CCS Studio 12.5配合使用。  我已经使用项目向导创建了一个简单的 main.c 项目,然后我添加了这个非常简单的 main()函数:


int rmt_counter = 0;
int main(void)
{
    while (1)
    {
        rmt_counter++;
    }

	return 0;
}

当我在调试程序中查看变量"rmt_counter"时、并使用图形工具、我看到变量最终会停止递增、值为9328:

之后、如果我暂停调试器、我会显示 en error 选项卡:

在 C:\Users\GTG25\Desktop\HIL_8_single_double_switch\RMT_rev8_HIL_28335\pi_double_switch\uC_28335\Debug\controller_rev1.out:{3}0x3ff9fa{4}"中、"_system_post_cinit ()"没有可用源。

我的问题是:为什么我的 while (1)循环要逃脱?  我的 RMT_COUNTER 变量难道不应该一直递增直到它回滚吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 C:\Users\GTG25\Desktop\HIL_8_single_double_switch\RMT_rev8_HIL_28335\pi_double_switch\uC_28335\Debug\controller_rev1.out:{3}/quote4}

    之所以会出现此错误、是因为特定文件/库未包含在即时工程中;我不确定您是否属于这种情况、但您可以通过打开"Disassembly"窗口并查看汇编代码来仔细检查正在运行的代码; 如果要调试文件、则应正确映射 C 代码。

    Unknown 说:
    我的问题是:为什么我的 while (1)循环要转义?  我的 RMT_COUNTER 变量不应该在回滚之前一直在递增吗?

    只要您在您的代码中没有发生任何中断或错误即可。 该项目是您从头开始创建的还是基于 C2000Ware 中的空示例项目创建的? 作为建议、请始终根据与您尝试完成的操作非常匹配的示例启动您的项目(universal_project 示例可用作所有项目的基本模板)。

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

    感谢您的帮助。  我正在查看 C2000ware (版本5.01)、在 F2833x 示例中找不到"universal_project"目录。  您能指出我应该在哪里查找此项目吗?

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

    抱歉、这是一个较旧的器件、所以没有通用项目、而是可以使用 cpu_timer 项目作为模板、因为没有提供空项目模板。