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

DSP程序COPY到RAM中运行异常

请教一下,

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

user6079331:

请教一下,

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

请教一下,

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

Green Deng:

非法中断是哪一个?会不会是H0SARAM容量不够?

请教一下,

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

user6079331:

回复 Green Deng:

你好内存量是够用的我通过CCS windows菜单memory allocation 可以看见内存的装入情况,但只要把应用程序COPY 到H0 里运行就会进入非法中断,比如拷贝Init_flash 或者Us_delay运行时就会进入非法中断。

请教一下,

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

user6079331:

回复 Green Deng:

你好,会跳入这个中断

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 Codeasm("ESTOP0");for(;;);

}

请教一下,

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

mangui zhang:

回复 user6079331:

程序跑飞了应该是空间不足的原因吧堆栈怎么设置的

请教一下,

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

user6079331:

回复 mangui zhang:

.text: > FLASHCD,PAGE = 0.cinit: > FLASHCD,PAGE = 0.pinit: > FLASHCD,PAGE = 0.switch: > FLASHCD,PAGE = 0.reset: > RESET,PAGE = 0, TYPE = DSECT.stack: > RAMM1,PAGE = 1.ebss: > RAML1,PAGE = 1.bss: > RAML1,PAGE = 1.econst: > FLASHEF,PAGE = 0.esysmem: > RAML1,PAGE = 1
堆栈设置在 RAMM1了!

请教一下,

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

Green Deng:

回复 user6079331:

你的程序里面,函数MemCopy()处在DELAY_US()函数的前面吗?在调用DELAY_US()时,前面没有执行MemCopy()的话会导致进入非法中断。所有放在FLASH中但在后运行在RAM中的函数,都需要保证在做完memcopy之后才去执行这些函数,否则PC跳到RAM里执行这些函数时,因为RAM里的内容是乱的,因此相当于CPU跑飞掉了。

请教一下,

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

user6079331:

回复 Green Deng:

谢谢,您的回答。我目前程序中涉及到COPYA到RAM中的程序都是先copy后执行。而且同样的程序比如init_flash(),DELAY_US()等如果COPY到H0中一执行就是跳入非法中断,如果COPY到RAML0 等其他RAM块中执行就没有问题。让我感觉程序在H0中不能执行,但找不原因但现在查相关资料中都显示H0可以映射到程序区或者数据区都没问题。能否帮忙找打原因或者依据?谢谢!

请教一下,

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

rookiecalf:

回复 user6079331:

核对地址区域是否正确,也可以仿真,看搬运后对应内存数据是否正确

请教一下,

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

user6079331:

回复 rookiecalf:

你好,感谢回答,各片区地址已经核对没有错误或者重叠现象。请教核对内存数据的对错?

赞(0)
未经允许不得转载:TI中文支持网 » DSP程序COPY到RAM中运行异常
分享到: 更多 (0)