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

TMS320F28062: RELEASE 内部FLASH程序固化失败,程序跑飞

Part Number:TMS320F28062

软件在DEBUG模式下运行正常,现换为RELEASE模式做了如下更改:

1 更改CMD为28062cmd

2主函数添加

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);
InitFlash();

 程序会死在3efea0无法继续执行

3 map文件 CSM_RSVD CSM_PWL_P0寄存器均未被使用应该没有被锁

请问是什么原因可能导致程序卡在 memcpy

Ben Qin:

你好,

?? ? said:memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize);

你的这些参数是如何定义的?

,

?? ?:

您好这一部分参数在main.c中引用为

在CMD中为

您的意思是说我们需要人为给这些参数指定一个地址对吗?我以为会默认指定地址

,

?? ?:

如果这些参数需要我们自己配置那去哪个文件配置呢

,

?? ?:

而且最奇怪的事函数会跳转到到WHILE主循环之外

,

?? ?:

,

Ben Qin:

你的程序有参考TI的例程吗?参考的哪个例程?

,

?? ?:

您好,我参考的是Example_28069Flash.c这个例程,并且我也在外部将GPIO34和GPIO37上拉了

,

Ben Qin:

?? ? said:现换为RELEASE模式做了如下更改

你是如何换为RELEASE模式的?例程不做修改在release模式下可以正常运行吗?

,

?? ?:

 谢谢工程师们,现问题已经被解决,做如下总结解决方法如下

1 (使用TIC2000WARE中程序28069flash进行测试)

更换CMD—28062.cmd并在主函数中添加

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize); InitFlash();

2 程序卡在程序卡在 memcpy是因为模拟库中添加了RTS2800_FPU.LIB

去掉后就不会卡死了

3 程序跑飞应该是与编写的函数有关

4 检查GPIO34 和GPIO37为高电平,删除了直接编写的延时函数就成功了

,

Ben Qin:

好的,问题解决就好,感谢分享。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28062: RELEASE 内部FLASH程序固化失败,程序跑飞
分享到: 更多 (0)