CCS5.5
C6657
已经调通C6657的SRIO 和 IPC 中断,接下来需要做 NOR FLASH BOOT ,因此修改了一下CMD文件,但修改之后中断却进不了了。
原CMD
MEMORY
{
VECTORS: o = 0x00800000 l = 0x00000200
SL2: o = 0x0C000000 l = 0x00100000
DDR3 : o = 0x80000000, l = 0x01000000
BOOT_CORE0 : o = 0x10800000, l = 0x000000c0
L2 : o = 0x108000c0, l = 0x000FFF40
}
SECTIONS
{
vecs > VECTORS
.text >SL2
.cinit >SL2
.const >SL2
.switch >SL2
.stack >SL2
GROUP
{
.neardata
.rodata
.bss
} >SL2
.far >SL2
.fardata >SL2
.cio >SL2
.sysmem >SL2
platform_lib >SL2
}
修改后CMD
MEMORY
{
/* Local L2, 0.5~1MB*/
VECTORS: o = 0x00800000 l = 0x00000200
/* Shared L2 1MB for C6657 */
SL2: o = 0x0C000000 l = 0x00100000
//CORE0
DDR3 : o = 0x80000000, l = 0x01000000
BOOT_CORE0 : o = 0x10800000, l = 0x000000c0
L2 : o = 0x108000c0, l = 0x000FFF40
}
SECTIONS
{
vecs > VECTORS
.DDRText{MulticoreBoot.obj(.text)}>L2
.text >L2
.cinit >L2
.const >L2
.switch >L2
.stack >L2
GROUP
{
.neardata
.rodata
.bss
} >L2
.far >L2
.fardata >L2
.cio >L2
.sysmem >L2
platform_lib >L2
.myboot
{
*.*<boot.obj>(.text)
} > BOOT_CORE0
}
把原来的SL2( o = 0x0C000000 l = 0x00100000),修改成L2(o = 0x108000c0, l = 0x000FFF40)中断就进不了了,这是为什么呢?
Allen35065:
你的中断表在0x800000处,在这里设断点能进中断吗?
如果能进,那就是跳转的时候出问题,单步调一下即可;
如果不能进,看看STP是不是设置到中断表起始位置上,事件产生链路是不是有问题,I。
jimmy cui:
回复 Allen35065:
弱弱地问,STP是什么?
Allen35065:
回复 jimmy cui:
sorry,打错了
Interrupt Service Table Pointer Register (ISTP)
见C66x CPU and Instruction Set Reference Guide