This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

error: .const section (0x1e000) spans page boundary: not allowed before CPU

DSP:TMS320VC5510

编译器:CCS3.3

编译时出现如下错误:

 error: .const section (0x1e000) spans page boundary: not allowed before CPU

 

我的CMD文件:

 

-m hpi_new.map

 

MEMORY
{
    PAGE 0:
      VECT:      origin = 0x0200,     len = 0x0100
   VEC2:      origin = 0x0300,     len = 0x0100
   CONS:      origin = 0x1E000, len = 0x3000
      PROG:      origin = 0x26000, len = 0xd000
   
    PAGE 1:
      HPI_OUT:   origin = 0x0400,     len = 0x0200
      HPI_IN:    origin = 0x0600,     len = 0x0200
      DATA:      origin = 0x0800,     len = 0x15000
      STACK:     origin = 0x15800, len = 0x5000
      SSTACK:    origin = 0x1A800,    len = 0x1000
   SYSMEM:    origin = 0x1B800,    len = 0x2000
   DATA2:     origin = 0x21000,    len = 0x5000
   SDRAM:     origin = 0x800000,   len = 0x7FFFFE
}

SECTIONS
{
    .vectors:       {} > VECT  PAGE 0
  vectors:       {} > VEC2  PAGE 0
    .text:          {} > PROG  PAGE 0
 .fftcode:       {} > PROG  PAGE 0
   
    .Hpi_In_Frame:  {} > HPI_IN PAGE 1
    .Hpi_Out_Frame: {} > HPI_OUT PAGE 1
    .const:         {} > CONS  PAGE 0
    .data:          {} > DATA  PAGE 1
 .switch:        {} > DATA  PAGE 1
    .cinit:         {} > DATA  PAGE 1
 .bss:     {} > DATA  PAGE 1
    .Buff_Index:     {} > DATA2  PAGE 1
    .stack:   {} > STACK PAGE 1
    .sysstack:{} > SSTACK PAGE 1
 .sysmem:  {} > SYSMEM PAGE 1
 .cio:     {} > DATA   PAGE 1
 .faxbuf:  {} > SDRAM  PAGE 1
}

尝试方法:

1.将版本改为-vcore:3.3,出现同样的错误

  • 需要把大数组拆成几个小数组,然后分配在64k页内。这是因为C55x compiler本身设计上的局限性,还是只用16bit ALU计算指针,所以每次跨页时,高七位地址不会自动加1

x 出现错误。请重试或与管理员联系。