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:
好的,问题解决就好,感谢分享。