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

28335烧写flash问题

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

Hank Zhao:

工程中有没有添加“DSP2833x_CodeStartBranch.asm”文件,boot mode是否配置为flash boot mode?

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

kunkun jin:

回复 Hank Zhao:

   配置如图,已经将模式设置为从flash启动,我忽然发现我的配置中有两个cmd文件,会不会存在问题

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

Hank Zhao:

回复 kunkun jin:

这两个CMD文件是正常的,你通过target configuration配置为load symbol only,然后连接板子,reset CPU,然后再运行,通过CCS查看运行情况。

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

kunkun jin:

回复 Hank Zhao:

你好,还得麻烦你,我该怎么通过target configuration配置为load symbol only呢,刚刚找了一下没有找到,我用的是ccs5.5

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

Hank Zhao:

回复 kunkun jin:

抱歉,是debug configuration

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

kunkun jin:

回复 Hank Zhao:

你好,我刚找到那个load symbol了,然后load之后reset之后有红颜色的字提示错误“No source available for "0x3ff9ce" ,这个是什么情况呢,另外我想知道这个load symbol和reset cpu是干什么的呢?感谢帮助了

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

kunkun jin:

回复 Hank Zhao:

嗯嗯,找到了,设置之后下载程序就会出现”No source available for "0x3ff9ce" ,会是什么情况呢

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

Hank Zhao:

回复 kunkun jin:

load symbol就是不下载程序,只连接板子,调试Flash中存储的代码。reset cpu就是模拟板子的自启动,从reset开始执行。由于reset之后先运行boot rom中的代码,所以“No source available for "0x3ff9ce"是正常情况。在reset之后,点击运行,然后暂停看程序暂停在什么位置,是否和之前你连接CCS调试时的情况一致。

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

kunkun jin:

回复 Hank Zhao:

你好,今天下午试了一下,连上板子load symbol调试,运行结果和之前我调试的结果一样,就是一断电还是没有反应,会不会是我之前说的我定义的4个512长度的数组在L4 、L5存储段导致的什么问题呢

RT,我在ram调试通过后,将28335_RAM_lnk.cmd替换F28335.cmd,并且在main函数中添加MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();之后,运行程序,运行正确,结果也没有问题,然后我断电,拔掉仿真器,再次上电,程序运行没有结果,不知道是程序没有运行还是运行了结果不对。注:我在程序开始定义了几个较大数组“

#pragma DATA_SECTION (ping_buffer, "DMARAML4");
#pragma DATA_SECTION (pong_buffer, "DMARAML4");
#pragma DATA_SECTION (ping_buffer_t, "DMARAML5"); 
#pragma DATA_SECTION (pong_buffer_t, "DMARAML5");

”程序编译和烧写都没有报错不知道这几个数组是不是导致程序重新上电不能运行的原因,求助大神

Hank Zhao:

回复 kunkun jin:

既然Flash中的程序可以正常运行,那么跟你定义的数组应该没关系。你的板子是自己制作的吗?在程序中加一段GPIO翻转程序以检测自启动时程序是否运行了。

赞(0)
未经允许不得转载:TI中文支持网 » 28335烧写flash问题
分享到: 更多 (0)