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

TMS320F28388D的CPU1官方例程在RAM正常运行,在FLASH中会跑飞

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

Green Deng:具体是哪个例程?
一般延时函数如果需要运行在flash中的话都需要加上memcopy函数将延时函数搬移到ram中运行。你可以参考一下这个帖子:
e2echina.ti.com/…/23943

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

user4737828:

回复 Green Deng:

LED那个都是,搬移到RAM运行那几句代码按理说应该在InitSysCtrl()那句话后面,现在就是InitSysCtrl()里面的问题。

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

Green Deng:

回复 user4737828:

是这个吗?
C:\ti\c2000\C2000Ware_2_01_00_00\device_support\f2838x\examples\cpu1\led
有没有对程序做过修改?我手头没有板子,得联系美国的工程师测试一下
另外,方便发一下截图吗

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

user4737828:

回复 Green Deng:

是的,代码我没修改,就使用的FLASH的CMD文件。刚一执行第一句话就跑飞,怀疑是时钟的事情,追查到崩溃的函数是SysCtl_delay()新建 Microsoft Word 文档 (2).docx

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

user4737828:

回复 Green Deng:

是的,代码没有做过修改,就是把CMD文件换成FLASH那个,提示"Break at address "0x3fe96f" with no debug information available, or outside of program code.",截图在附件,估计要审核一段时间

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

user4737828:

回复 Green Deng:

我明白原因了,是我设置的问题,谢谢您 https://e2e.ti.com/support/tools/ccs/f/81/t/873648

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

Green Deng:

回复 user4737828:

非常感谢你的反馈

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

mangui zhang:

回复 user4737828:

直接例程用CCS打开替换一下CMD应该就不会出错
拷贝到其他地方可能就会出现错误

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

user4737828:

回复 mangui zhang:

TMS320F28388D还真不是这样的,替换后在Manage Configurations里面,把CPU1_FLASH设成active,在predefine里面要加上"_FLASH".

TMS320F28388D在FLASH模式下函数Device_init()里面运行到SysCtl_delay()的时候程序会直接跑飞,停在一个空的地址。请问是不是我设置哪里不对。

mangui zhang:

回复 user4737828:

好的还没用到28388型号,跑飞的问题解决了吗
在predefine里面要加上"_FLASH"后会调用 memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
也就是搬移到RAM中运行看看是不是这个原因

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28388D的CPU1官方例程在RAM正常运行,在FLASH中会跑飞
分享到: 更多 (0)