我最近在用TMS320F28335做一个工程,因为代码量较大,所以外扩了一片256k×16位的SRAM和一片512k×16位的FLASH,芯片型号分别是IS61LV25616和SST39VF800A。
我通过#pragma CODE_SECTION(dma_isr,"zone7");将DMA中断函数移动到外扩的SRAM中仿真运行,但是程序总是跳转到ILLEGAL_ISR()中,通过分步仿真,我发现程序是运行到<math.h>中的double log(double x)函数时跳转到ILLEGAL_ISR()中的,当我把log()函数放到片上的SRAM中运行时,就没有问题,我想应该是#pragma CODE_SECTION(dma_isr,"zone7");这里的问题.
我在cmd文件中对zone7的定义是这样的:
MEMORY
{
PAGE 0 :
。。。
ZONE7 : origin = 0x200000, length = 0x100000 /* XINTF zone 7 – program space */
。。。
}
请问我应该如何处理,谢谢您帮助我!
Shine:
F28335有专门的c2000论坛可以咨询。
C2000™ 32位实时 MCU