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

DSP2812 程序copy问题请教

   我的程序在flash里运行正常,我将部分程序copy到H0SARAM里后只要运行到H0SARAM里的程序就会进入非法中断(中断如下所示),但如果把同样的程序copy到L0SARAMA就没有这问题可以顺利运行。H0里不能移植程序么?请教高手帮忙解答一下,谢谢!

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// 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:麻烦把函数复制的那一段程序发过来看一下。

   我的程序在flash里运行正常,我将部分程序copy到H0SARAM里后只要运行到H0SARAM里的程序就会进入非法中断(中断如下所示),但如果把同样的程序copy到L0SARAMA就没有这问题可以顺利运行。H0里不能移植程序么?请教高手帮忙解答一下,谢谢!

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

mangui zhang:相关的帖子可以参考一下看着他也没解决
e2echina.ti.com/…/536475

   我的程序在flash里运行正常,我将部分程序copy到H0SARAM里后只要运行到H0SARAM里的程序就会进入非法中断(中断如下所示),但如果把同样的程序copy到L0SARAMA就没有这问题可以顺利运行。H0里不能移植程序么?请教高手帮忙解答一下,谢谢!

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// Insert ISR Code here

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
asm(" ESTOP0");
for(;;);

}

user6079331:

回复 Green Deng:

这是复制函数:
KickDog();// Initialize the PLLCR to 0xAInitPll(0xA);
/* Copy the secureRamFuncs section */memcpy(&FLASH_SET_FUNCS_runstart, &FLASH_SET_FUNCS_loadstart,&FLASH_SET_FUNCS_loadend – &FLASH_SET_FUNCS_loadstart);/* Initialize the on-chip flash registers */InitFlash();// Initialize the peripheral clocksInitPeripheralClocks();

这是CMD
PRAMH0: origin = 0x3F8000, length = 0x002000/*used as program segment*/
FLASH_SET_FUNCS: LOAD = FLASHCD, PAGE = 0RUN =PRAMH0,PAGE = 0
RUN_START(_FLASH_SET_FUNCS_runstart),LOAD_START(_FLASH_SET_FUNCS_loadstart),LOAD_END(_FLASH_SET_FUNCS_loadend)

请帮忙谢谢!

   我的程序在flash里运行正常,我将部分程序copy到H0SARAM里后只要运行到H0SARAM里的程序就会进入非法中断(中断如下所示),但如果把同样的程序copy到L0SARAMA就没有这问题可以顺利运行。H0里不能移植程序么?请教高手帮忙解答一下,谢谢!

interrupt void ILLEGAL_ISR(void) // Illegal operation TRAP
{
// 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:

回复 user6079331:

我认为你的memcpy()函数的参数出了问题,可能导致了这个问题。见下面,应该是加载开始,然后加载结束,然后运行开始:
你的:
/* Copy the secureRamFuncs section */

memcpy(&FLASH_SET_FUNCS_runstart, &FLASH_SET_FUNCS_loadstart,

&FLASH_SET_FUNCS_loadend – &FLASH_SET_FUNCS_loadstart);

改为:
// Copy time critical code and Flash setup code to RAM
// TheRamfuncsLoadStart, RamfuncsLoadEnd, and RamfuncsRunStart
// symbols are created by the linker. Refer to the F2812.cmd file. MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

更改后测试一下,如果还是有问题的话麻烦将进入非法中断的函数告知给我一下。

赞(0)
未经允许不得转载:TI中文支持网 » DSP2812 程序copy问题请教
分享到: 更多 (0)