TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377D: 28377D,程序下载到flash中在线仿真可以运行,断电重启后无法运行

Part Number:TMS320F28377D

问题:TMS320F28377D,双核,程序下载到RAM中可以正常运行,下载到Flash中也在线仿真可以运行,但是断电重启后,程序没有运行。在main函数的时钟初始化后增加点灯测试,发现断电重启后灯不亮,证明程序没有进到main函数。请问各位这个是什么问题,如果是数组超限在Ram中是否还能正常运行?

过程排查:1、使用以前旧版本程序下载到flash中,断电重启程序可以运行,因此已经排除了硬件问题。

                  2、在上述版本程序上一点点移植增加的代码,发现增加某一条语句后程序就会出现上述的问题,比如定义了一个数组后,或者任意一个                           变 量后,程序都无法运行,但是编译都没有报错,内存也没显示超。

                 3、在上述版本程序上一点点移植增加的代码,发现减少一个空IO口的定义后程序也会出现上述的问题。

                 4、不刷CPU2,只刷CPU1到flash,断电后也无法运行。

             5.CMD截图如下,麻烦帮看看,有没有问题,谢谢!!!

lan jing:

追踪汇编看到在进main函数前一直复位,有知道是什么原因的吗

,

Yale Li:

您好,您在几个芯片上遇到了这个问题?

,

fei wang:

在多片F28335上发现了类似问题,增加一些无用的全局变量后,程序就可以正常独立启动,否则要么停留在_c_int00,要么一直重启。

不知道官方 是否知道这个是什么原因,不太符合逻辑,难道是编译工具的问题?

,

Yale Li:

故障率是多少?

有没有看一下memory allocation?看一下内存占用情况。

方便的话把正常运行时的和出现异常时的map文件都发上来看一下。谢谢

,

fei wang:

Bootloader_error.mapBootloader_OK.map

两个程序的map文件,请你看一下。只增加了一些全局变量。

#if 1float temp1 = 0.0;float temp2 = 0.0;float temp3 = 0.0;float temp4 = 0.0;float temp5 = 0.0;float temp6 = 0.0;float temp7 = 0.0;float temp8 = 0.0;float temp9 = 0.0;float temp10 = 0.0;#endif

,

Yale Li:

请问故障率大概是多少?

,

fei wang:

10%左右吧。

后来发现把下面几个MemCopy放在 main函数最前面可以解决这个问题,但是的确不知道什么原因。尤其Flash28_API那个影响最大,但是我都是参考网上的例程,在MemCopy之前并没有调用这几个section里面的函数。

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);MemCopy(&Flash28_API_LoadStart, &Flash28_API_LoadEnd, &Flash28_API_RunStart); MemCopy(&econst_LoadStart, &econst_LoadEnd, &econst_RunStart);

,

Yale Li:

我向资深工程师咨询后回复您。

,

Yale Li:

我们的工程师认为您将程序迁移到Flash中时的Flash配置可能存在问题,请查看以下链接:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/878674/faq-flash—how-to-modify-an-application-from-ram-configuration-to-flash-configuration

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/201373/faq—ram-flash

https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/190031/faq-flash-ram-flash

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: 28377D,程序下载到flash中在线仿真可以运行,断电重启后无法运行
分享到: 更多 (0)