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:从闪存执行时遇到问题

Guru**** 2562120 points
Other Parts Discussed in Thread: TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/639607/compiler-tms320f28335-facing-problem-while-executing-from-flash

器件型号:TMS320F28335

工具/软件:TI C/C++编译器

我不熟悉编程、我尝试在 TMS320F28335实验套件中测试代码、

代码包含3个 ISR - timer0 (5s)、Timer1 (25ms)和 SCI

在 timer0 -->切换 GPIO31、Timer1 --> CpuTimer1.InterruptCount++,在 SCI ISR --> if (message[n][index]!='\0') SciaRegs.SCITXBUF= message[n][index++];

程序从 RAM 中完美运行、但当我切换到闪存时会遇到一些问题

while (1)

SciaRegs.SCITXBUF=消息[n][index++];

while (CpuTimer1.InterruptCount < 40)


索引= 0;
CpuTimer1.InterruptCount = 0;
N++;
if (n =SCImax) n =0;

当从闪存运行时 、CpuTimer1.InterruptCount 持续递增、40之后不会复位、我尝试使用另一个变量、而不是 CpuTimer1.InterruptCount (该变量增加了定时器 ISR、并在 while condition 中使用)-->正在工作。

使用  CpuTimer1.InterruptCount 时的问题是什么

 

谢谢、此致

Shinto

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

    您在 RAM 中是否有任何初始化的常量? 如果是、则只有 在连接仿真器并加载程序时才会加载它们(但不会在"冷"上电时加载)。 如果是这种情况、您能否检查.map 文件? 在 RAM 中代码工作正常、但在闪存中不工作是一个相当常见的问题。 这在论坛上已经多次讨论过。 请搜索"从 RAM 工作而不是闪存"或类似的字符串以查找有用的线程。

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

    以下是我的同事几天前发布的回复的摘录:

     

    "...独立启动时的黄金规则是记住、程序没有在 RAM 中加载/初始化任何内容、因此无法正常运行。 RAM 中的任何初始化数据都必须来自闪存,运行时 C 库将在程序到达 main()之前处理此问题。 检查您的映射文件中是否有所有要加载到 RAM 中的段、并查看是否有初始化的程序运行位置、如果是、则需要将它们移动到闪存中的.cinit 段。 与主代码执行 memcpy 的 RAMFUNCs 段类似,该段用于需要从 RAM 运行的任何函数,也会有一个初始化数据的副本。。。。”

     

    您可以在 https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/634545/2354353上读取整个线程

     

    与此类似、论坛上有许多线程可以解决这个 确切的问题。

     

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

    请参阅  http://processors.wiki.ti.com/index.php/C2000_Flash_Common_Issues/FAQs#Running_Code_Standalone