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/TMS320F2.8379万D:应用程序无法从闪存启动,取决于实例化的对象数量(C++)

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/653298/ccs-tms320f28379d-app-no-start-from-flash-dependend-on-amount-of-objects-instantiated-c

部件号:TMS320F2.8379万D
主题中讨论的其他部件:C2000WARE

工具/软件:Code Composer Studio

您好,

我´m´我的程序无法启动的影响取决于编译时安装了多少对象。
抽象地,结构是类A具有类型为B的类数组

观察:
当我使用调试器闪存并按start启动程序时,程序将正常工作。
n´t重置设备或重新启动设备,程序将无法启动。

当我减少B类的数组 (即使长度没有达到零)时,程序在重新发送或重新启动时也会工作。

在这两种n´t中,我都没有收到错误警告,即程序或其它任何内容与内存不匹配。
我还n´t创建一个虚拟阵列来模拟更高的内存使用率,这并没有改变观察到的效果。
它也与B类无关,当我更改"A"类拥有的其他类的数量时,效果是相同的。

结论:
我的结论是,非启动程序至少与错误选择的启动引脚或OTP密钥无关,因为当对象的数组变短时,程序确实启动。

在使用调试器或关闭电源后重启时,引导过程中的某些内容必须完全不同。
是否有人知道根部是什么?


我不n´t它是否有帮助,我附加了.map文件-一个是程序启动时的输出文件,另一个是程序启动时的输出文件n´t。
在源代码中,我更改了“RmsClass”类的数量。

此致!

启动

e2e.ti.com/.../blinky_5F00_dc_5F00_cpu01_5F005F00_START.txt

 

无法启动

e2e.ti.com/.../blinky_5F00_dc_5F00_cpu01_5F005F00_NO_5F00_START.txt

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

    是的,调试器与其他重置不同。 根据您在CCS中的重置方式,您可能根本不会运行引导。
    在TRM中查看有关引导的更多详细信息: www.ti.com/.../spruhm8

    在C2000Ware中,您可以加载引导符号,并在说不能引导时返回卡住的位置。 如果知道地址,您也可以查看TRM中的"等待点"章节以查看。

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

    您好,  

    嗯,我n´t不知道是什么原因造成了这种影响。  
    我根据C2000 Ware示例“linky_dc”制作了一个示例项目,其中我做了一些更改:

    -已将main.c文件更改为main.cpp
    -添加了类"PointlessClass"
    -已将PointlessClass的数组添加到main.cpp

    PointlessClass具有静态UINT32变量,UINT32成员变量和可获取成员变量的方法。
    在构造函数中,静态变量将递增并写入成员变量。

    -在每个循环中,BLINK Loop ine2e.ti.com/.../blinky_5F00_dc_5F00_cpu01.zip 主电源从PointlessClass Array读取“下一个”成员值。  

    阵列大小为226时工作,阵列大小为227时不工作-意味着Programm独立运行。 (请参见#define AMT_of_PONTLSS_CLSS)
    这两次都是使用项目配置"CPU1_FLASH_Standalone"编译的。
    我把所有其他东西都放在了盒子外,比如.cmd文件。  
    我还´s了使用过的RAM和闪存,其中没有一个甚至接近其限制。  
    查找附加的导出项目。

    此致!


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

    我运行了应用程序并看到了您观察到的内容。 当阵列为227时,看门狗似乎正在超时,导致设备在到达应用程序之前重置。 构造函数在main之前调用,其中监视程序被禁用。 您可以编辑CodeStartBranch。asm以在运行预应用程序项之前禁用看门狗。

    此致

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢,这解决了问题。
    我在该PDF中找到了带有搜索词"WD_DISABLE "的描述
    www.ti.com/.../spra958 l .pdf