现在我的DSP28335通过XINTF接口与FPGA进行通信
在debug模式中,从FPGA中读出的数据都是正常的
非debug模式中,上电之后,从FPGA读出来的数据都是0xffff
请问这是什么问题
Green Deng:
最直接的区别是,debug模式程序是运行在ram中,运行速度较快。而脱机情况下程序如果没有copy到ram中运行(memcpy函数),那么是运行在flash中的,运行速度会慢很多。
,
user5197967:
cmd文件和运行方式我都改成flash了,debug之前也会擦除flash,所以不是您说的情况,另外请您看一下我的问题
为什么两个模式下,读取的不一样
,
Green Deng:
这是运行速度的问题,不是cmd或者flash擦没擦除的问题。
运行速度不同,可能就导致你的程序运行会出问题。需要你把对时序性要求比较高的程序段copy到ram中运行。
,
user5197967:
就算我运行方式修改成flash运行,而不是ram运行,debug的时候也都会在ram运行?就算debug之前也把flash都擦除了?
,
Green Deng:
是的,在线debug,程序是运行在ram的,即使使用的是切换成flash配置。
,
user5197967:
那我应该如何将代码搬运到flash运行
,
Green Deng:
可以参考一下这个文档和帖子:
www.ti.com/…/spraau8a.pdf
e2echina.ti.com/…/93973
,
user5197967:
我搬运之后,上电运行,就进入数据越界中断了interrupt void
ILLEGAL_ISR(void)
,
user5197967:
我修改了这几处地方
并口读写函数#pragma CODE_SECTION(write_to_sram, "ram_function")#pragma CODE_SECTION(read_from_sram, "ram_function")
cmd文件
ram_function : LOAD = APPLICATION, PAGE = 0 RUN = RAM_DATA, PAGE = 1 LOAD_START(_ram_functionstart), LOAD_END(_ram_functionsend), RUN_START(_ram_functionsrunstart)
在外设初始化之前
MemCopy(&ram_functionstart, &ram_functionsend, &ram_functionsrunstart); InitFlash();
然后上电运行代码,就到这里了
interrupt void ILLEGAL_ISR(void){ // // Insert ISR Code here //
// // Next two lines for debug only to halt the processor here // Remove after inserting ISR Code // asm (" ESTOP0"); for(;;);}
,
Green Deng:
额,有点乱。你用memcopy的话可以看一下这个例子:e2echina.ti.com/…/185635
,
user5197967:
我确实是这么操作的,上电之后运行,就运行到这里了
interrupt void ILLEGAL_ISR(void)
{
//
// Insert ISR Code here
////
// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
//
asm (" ESTOP0");
for(;;);
}
,
Green Deng:
你的memcopy函数具体放在哪里?
当你烧写到flash时,要严格按照下面的顺序,先memcopy,在调用Initflash。MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
,
user5197967:
我确实是这样的先,memcpy,再Initflash(),然后才初始化各种外设
,
Green Deng:
方便的话可以上传一下工程或者代码吗?
,
user5197967:
这个涉及本司的一些机密
,
user5197967:
这个越界的问题解决了,但是发现最开始的问题并没有得到解决,debug模式下读取到正常,正常上电运行下,就不正常
,
Green Deng:
这个确实目前没有更多的想法,或者你去英文E2E论坛上咨询一下这个问题,看有没有其他工程师有这方面的经验:
e2e.ti.com/…/c2000-microcontrollers-forum
TI中文支持网



