接触2812没多长时间,写了一段代码后编译出现如下错误:>>   error: can't allocate .text, size 000012db (page 0) in PRAMH0 (avail:

00001000),网上找资料说的是代码长度超出RAM空间了,有几种解决办法,1、精简代码,直至不会出现此类错误,2、增加外部RAM,3、修改cmd文件,把代码放到不同的text段内,前面两种方法暂时不方便实现,第三种方法网上也有部分介绍,但是CMD文件不太一样,不是太理解,所以一直没能解决问题,不知道有谁遇到过此类状况,分享下经验,怎么配置CMD文件,万分感谢。。。

我的SRAM.CMD文件如下:

MEMORY

{

PAGE 0 :

PRAMH0     : origin = 0x3f8000, length = 0x001000

PAGE 1 :

/* SARAM                     */

RAMM0    : origin = 0x000000, length = 0x000400

RAMM1    : origin = 0x000400, length = 0x000400

/* Peripheral Frame 0:   */

DEV_EMU    : origin = 0x000880, length = 0x000180

FLASH_REGS : origin = 0x000A80, length = 0x000060

CSM        : origin = 0x000AE0, length = 0x000010

XINTF      : origin = 0x000B20, length = 0x000020

CPU_TIMER0 : origin = 0x000C00, length = 0x000008

CPU_TIMER1 : origin = 0x000C08, length = 0x000008

CPU_TIMER2 : origin = 0x000C10, length = 0x000008

PIE_CTRL   : origin = 0x000CE0, length = 0x000020

PIE_VECT   : origin = 0x000D00, length = 0x000100

/* Peripheral Frame 1:   */

ECAN_A     : origin = 0x006000, length = 0x000100

ECAN_AMBOX : origin = 0x006100, length = 0x000100

/* Peripheral Frame 2:   */

SYSTEM     : origin = 0x007010, length = 0x000020

SPI_A      : origin = 0x007040, length = 0x000010

SCI_A      : origin = 0x007050, length = 0x000010

XINTRUPT   : origin = 0x007070, length = 0x000010

GPIOMUX    : origin = 0x0070C0, length = 0x000020

GPIODAT    : origin = 0x0070E0, length = 0x000020

ADC        : origin = 0x007100, length = 0x000020

EV_A       : origin = 0x007400, length = 0x000040

EV_B       : origin = 0x007500, length = 0x000040

SPI_B      : origin = 0x007740, length = 0x000010

SCI_B      : origin = 0x007750, length = 0x000010

MCBSP_A    : origin = 0x007800, length = 0x000040

/* CSM Password Locations */

CSM_PWL    : origin = 0x3F7FF8, length = 0x000008

/* SARAM                    */

DRAMH0     : origin = 0x3f9000, length = 0x001000

}

SECTIONS

{

/* Allocate program areas: */

.reset           : > PRAMH0,      PAGE = 0

.text            : > PRAMH0,      PAGE = 0

.cinit           : > PRAMH0,      PAGE = 0

/* Allocate data areas: */

.stack           : > RAMM1,       PAGE = 1

.bss             : > DRAMH0,      PAGE = 1

.ebss            : > DRAMH0,      PAGE = 1

.const           : > DRAMH0,      PAGE = 1

.econst          : > DRAMH0,      PAGE = 1

.sysmem          : > DRAMH0,      PAGE = 1

/* Allocate Peripheral Frame 0 Register Structures:   */

DevEmuRegsFile    : > DEV_EMU,    PAGE = 1

FlashRegsFile     : > FLASH_REGS, PAGE = 1

CsmRegsFile       : > CSM,        PAGE = 1

XintfRegsFile     : > XINTF,      PAGE = 1

CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1

CpuTimer1RegsFile : > CPU_TIMER1, PAGE = 1

CpuTimer2RegsFile : > CPU_TIMER2, PAGE = 1

PieCtrlRegsFile   : > PIE_CTRL,   PAGE = 1

PieVectTable      : > PIE_VECT,   PAGE = 1

/* Allocate Peripheral Frame 2 Register Structures:   */

ECanaRegsFile     : > ECAN_A,      PAGE = 1

ECanaMboxesFile   : > ECAN_AMBOX   PAGE = 1

/* Allocate Peripheral Frame 1 Register Structures:   */

SysCtrlRegsFile   : > SYSTEM,     PAGE = 1

SpiaRegsFile      : > SPI_A,      PAGE = 1

SciaRegsFile      : > SCI_A,      PAGE = 1

XIntruptRegsFile  : > XINTRUPT,   PAGE = 1

GpioMuxRegsFile   : > GPIOMUX,    PAGE = 1

GpioDataRegsFile  : > GPIODAT     PAGE = 1

AdcRegsFile       : > ADC,        PAGE = 1

EvaRegsFile       : > EV_A,       PAGE = 1

EvbRegsFile       : > EV_B,       PAGE = 1

ScibRegsFile      : > SCI_B,      PAGE = 1

McbspaRegsFile    : > MCBSP_A,    PAGE = 1

/* CSM Password Locations */

CsmPwlFile      : > CSM_PWL,     PAGE = 1

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐