DSP仿真时进入非法中断

[复制链接]
3292|34
手机看帖
扫描二维码
随时随地手机跟帖
混子黄|  楼主 | 2017-12-1 14:05 | 显示全部楼层 |阅读模式
进入了


interrupt void EPWM1_INT_ISR(void)     // EPWM-1{
  // Insert ISR Code here

  // To receive more interrupts from this PIE group, acknowledge this interrupt
  // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;

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





下面是CMD文件





MEMORY
{
PAGE 0 :
   /* BEGIN is used for the "boot to SARAM" bootloader mode      */
   /* BOOT_RSVD is used by the boot ROM for stack.               */
   /* This section is only reserved to keep the BOOT ROM from    */
   /* corrupting this area during the debug process              */

   BEGIN      : origin = 0x000000, length = 0x000002     /* Boot to M0 will go here                      */
   BOOT_RSVD  : origin = 0x000002, length = 0x00004E     /* Part of M0, BOOT rom will use this for stack */               
   RAMM0      : origin = 0x000050, length = 0x0003B0



   RAML0      : origin = 0x008000, length = 0x000200   
   RAML1      : origin = 0x008200, length = 0x006e00   
/*   RAML1      : origin = 0x008200, length = 0x003e00  */
/*   RAML2      : origin = 0x00A000, length = 0x001000  */
/*   RAML3      : origin = 0x00B000, length = 0x001000  */
/*     RI      : origin = 0x123456, length = 0x0000ff*/
   ZONE6A     : origin = 0x100000, length = 0x080000    /* XINTF zone 6 - program space */
   CSM_RSVD   : origin = 0x33FF80, length = 0x000076     /* Part of FLASHA.  Program with all 0x0000 when CSM is in use. */
   CSM_PWL    : origin = 0x33FFF8, length = 0x000008     /* Part of FLASHA.  CSM password locations in FLASHA            */
   ADC_CAL    : origin = 0x380080, length = 0x000009
   RESET      : origin = 0x3FFFC0, length = 0x000002
   IQTABLES   : origin = 0x3FE000, length = 0x000b50
   IQTABLES2  : origin = 0x3FEB50, length = 0x00008c
   FPUTABLES  : origin = 0x3FEBDC, length = 0x0006A0
   BOOTROM    : origin = 0x3FF27C, length = 0x000D44               


PAGE 1 :
   RAMM1      : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
/*   RAML4      : origin = 0x00C000, length = 0x001000    */
/*   RAML5      : origin = 0x00D000, length = 0x001000    */
/*   RAML6      : origin = 0x00E000, length = 0x001000    */
   RAML7      : origin = 0x00f000, length = 0x01000
  /* ZONE6B     : origin = 0x180000, length = 0x080000   */  /* XINTF zone 6 - data space */
/* RUAN      : origin = 0x182222, length = 0x070000*/
   ZONE6B     : origin = 0x180000, length = 0x080000
}


SECTIONS
{
   /* Setup for "boot to SARAM" mode:
      The codestart section (found in DSP28_CodeStartBranch.asm)
      re-directs execution to the start of user code.  */
   codestart        : > BEGIN,     PAGE = 0
   ramfuncs         : > RAML0,     PAGE = 0  
   .text            : > RAML1,     PAGE = 0
   .cinit           : > RAML0,     PAGE = 0
   .pinit           : > RAML0,     PAGE = 0
   .switch          : > RAML0,     PAGE = 0

   .stack           : > RAMM1,     PAGE = 1
/*   .ebss            : > RAML4,     PAGE = 1    */
/*   .econst          : > RAML5,     PAGE = 1    */
   .ebss            : > RAML7,     PAGE = 1
   .econst          : > RAML7,     PAGE = 1     
   .esysmem         : > RAMM1,     PAGE = 1

   IQmath           : > RAML1,     PAGE = 0
   IQmathTables     : > IQTABLES,  PAGE = 0, TYPE = NOLOAD
   IQmathTables2    : > IQTABLES2, PAGE = 0, TYPE = NOLOAD
   FPUmathTables    : > FPUTABLES, PAGE = 0, TYPE = NOLOAD

/*   DMARAML4         : > RAML4,     PAGE = 1 */
/*   DMARAML5         : > RAML5,     PAGE = 1 */
/*   DMARAML6         : > RAML6,     PAGE = 1 */
   DMARAML6         : > RAML7,     PAGE = 1
   DMARAML7         : > RAML7,     PAGE = 1


/* ZONE6DATA       : > RUAN,      PAGE = 1*/
   ZONE6DATA        : > ZONE6B,    PAGE = 1  
/*  HUNZI            : > RI,        PAGE = 0*/

   .reset           : > RESET,     PAGE = 0, TYPE = DSECT /* not used                    */
   csm_rsvd         : > CSM_RSVD   PAGE = 0, TYPE = DSECT /* not used for SARAM examples */
   csmpasswds       : > CSM_PWL    PAGE = 0, TYPE = DSECT /* not used for SARAM examples */

   /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
   .adc_cal     : load = ADC_CAL,   PAGE = 0, TYPE = NOLOAD

}





现在是我仿真时空间不够,RAML1      : origin = 0x008200, length = 0x006e00    改为RAML1      : origin = 0x008200, length = 0x007e00   

将RAML7      : origin = 0x00f000, length = 0x01000 改为RAML7      : origin = 0x3f8000, length = 0x01000

改成这样就进入非法中断了,请问是什么原因。

然后怎么增加仿真空间?
谢谢了。







相关帖子

kkzz| | 2017-12-1 20:59 | 显示全部楼层
你的程序死机了吗?

使用特权

评论回复
hudi008| | 2017-12-1 20:59 | 显示全部楼层
显示的是什么中断?

使用特权

评论回复
lzmm| | 2017-12-1 21:00 | 显示全部楼层
是否打开了某个中断,但是没有响应和清除中端标志?

使用特权

评论回复
minzisc| | 2017-12-1 21:00 | 显示全部楼层
地址溢出,常见错误为指针操作错误

使用特权

评论回复
selongli| | 2017-12-1 21:01 | 显示全部楼层
无条件的死循环?

使用特权

评论回复
fentianyou| | 2017-12-1 21:03 | 显示全部楼层
非正常状态?

使用特权

评论回复
xiaoyaodz| | 2017-12-1 21:03 | 显示全部楼层
楼主不一定是cmd的问题

使用特权

评论回复
febgxu| | 2017-12-1 21:03 | 显示全部楼层
是不是硬件的问题。

使用特权

评论回复
sdlls| | 2017-12-1 21:04 | 显示全部楼层
超出存储的范围了吗?

使用特权

评论回复
pixhw| | 2017-12-1 21:06 | 显示全部楼层
当需要把程序从flash复制到RAM里时,各个段分配参考如下:
.cinit
Flash
.cio
RAM
.const
Flash
.econst
Flash
.pinit
Flash
.switch
Flash
.text
Flash
.bss
RAM
.ebss
RAM
.stack
Lower 64Kw RAM
.sysmem
RAM
.esysmem
RAM
.reset
RAM1

使用特权

评论回复
kkzz| | 2017-12-1 21:06 | 显示全部楼层
进入非法中断,可能是内部空间不足造成的。

使用特权

评论回复
hudi008| | 2017-12-1 21:06 | 显示全部楼层
这个变量能够正常使用吗?

使用特权

评论回复
lzmm| | 2017-12-1 21:06 | 显示全部楼层
程序一直进入中断,造成死机

使用特权

评论回复
minzisc| | 2017-12-1 21:06 | 显示全部楼层
如果循环变量没控制好则会出现数组下标越界

使用特权

评论回复
selongli| | 2017-12-1 21:06 | 显示全部楼层
堆栈溢出。

使用特权

评论回复
fentianyou| | 2017-12-1 21:06 | 显示全部楼层
异常  是指工作尚未停止,但又不是正常状态。

使用特权

评论回复
xiaoyaodz| | 2017-12-1 21:06 | 显示全部楼层
可能程序的问题。

使用特权

评论回复
febgxu| | 2017-12-1 21:06 | 显示全部楼层
进入哪个中断了?

使用特权

评论回复
sdlls| | 2017-12-1 21:07 | 显示全部楼层
楼主的空间修改的太大了吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

936

帖子

6

粉丝