28335的cmd文件学习

2019-07-30 15:54发布

今天调试28335发现出现了错误error: can't allocate .ebss, size 00000400 (page 1) in RAMM1 (avail: 00000380),网上找答案都是改Stack Size,改成小于1024,我一看我早就改了,于是静下心来找答案,发现ebss是未初始化的变量存放的空间,于是在程序中将一些以前调试而没有删除的变量删除了,编译就果断ok了,问题是解决了,但是觉得自己关于cmd文件的学习太过草率了,于是,学习一些28335的cmd文件。ps:在去年的笔记中也发现中发现了error: can't allocate .text太大的原因,但是的解决办法是将一些多余的c文件删除就行了,但是还不知道为什么,现在可以解释了。
   
  首先,我们必须要知道一些基本的概念,然后再分析,这里引用书本的一些话。
1.jpg
[attachimg]349298[/attachimg

3.jpg
28335的cmd文件有两个,一个是关于寄存器的,一个是关于程序的。
  关于寄存器的cmd文件,包括两部分,一部分是section,这部分是定义的寄存器文件,一部分是map,就是为那些寄存器文件分配地址:
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
拿起书本
2019-07-30 18:14
MEMORY   
{   
PAGE 0:    /* Program Memory */   
   
PAGE 1:    /* Data Memory */   
   
   DEV_EMU     : origin = 0x000880, length = 0x000180     /* device emulation registers */   
   FLASH_REGS  : origin = 0x000A80, length = 0x000060     /* FLASH registers */   
   CSM         : origin = 0x000AE0, length = 0x000010     /* code security module registers */   
     
   ADC_MIRROR  : origin = 0x000B00, length = 0x000010     /* ADC Results register mirror */   
   
   XINTF       : origin = 0x000B20, length = 0x000020     /* external interface registers */   
      
   CPU_TIMER0  : origin = 0x000C00, length = 0x000008     /* CPU Timer0 registers */   
   CPU_TIMER1  : origin = 0x000C08, length = 0x000008     /* CPU Timer0 registers (CPU Timer1 & Timer2 reserved TI use)*/   
   CPU_TIMER2  : origin = 0x000C10, length = 0x000008     /* CPU Timer0 registers (CPU Timer1 & Timer2 reserved TI use)*/   
   
   PIE_CTRL    : origin = 0x000CE0, length = 0x000020     /* PIE control registers */   
   PIE_VECT    : origin = 0x000D00, length = 0x000100     /* PIE Vector Table */   
   
   DMA         : origin = 0x001000, length = 0x000200     /* DMA Rev 0 registers */   
   
   MCBSPA      : origin = 0x005000, length = 0x000040     /* McBSP-A registers */   
   MCBSPB      : origin = 0x005040, length = 0x000040     /* McBSP-B registers */   
   
   ECANA       : origin = 0x006000, length = 0x000040     /* eCAN-A control and status registers */   
   ECANA_LAM   : origin = 0x006040, length = 0x000040     /* eCAN-A local acceptance masks */   
   ECANA_MOTS  : origin = 0x006080, length = 0x000040     /* eCAN-A message object time stamps */   
   ECANA_MOTO  : origin = 0x0060C0, length = 0x000040     /* eCAN-A object time-out registers */   
   ECANA_MBOX  : origin = 0x006100, length = 0x000100     /* eCAN-A mailboxes */   
   
   ECANB       : origin = 0x006200, length = 0x000040     /* eCAN-B control and status registers */   
   ECANB_LAM   : origin = 0x006240, length = 0x000040     /* eCAN-B local acceptance masks */   
   ECANB_MOTS  : origin = 0x006280, length = 0x000040     /* eCAN-B message object time stamps */   
   ECANB_MOTO  : origin = 0x0062C0, length = 0x000040     /* eCAN-B object time-out registers */   
   ECANB_MBOX  : origin = 0x006300, length = 0x000100     /* eCAN-B mailboxes */   
   
   EPWM1       : origin = 0x006800, length = 0x000022     /* Enhanced PWM 1 registers */   
   EPWM2       : origin = 0x006840, length = 0x000022     /* Enhanced PWM 2 registers */   
   EPWM3       : origin = 0x006880, length = 0x000022     /* Enhanced PWM 3 registers */   
   EPWM4       : origin = 0x0068C0, length = 0x000022     /* Enhanced PWM 4 registers */   
   EPWM5       : origin = 0x006900, length = 0x000022     /* Enhanced PWM 5 registers */   
   EPWM6       : origin = 0x006940, length = 0x000022     /* Enhanced PWM 6 registers */   
   
   ECAP1       : origin = 0x006A00, length = 0x000020     /* Enhanced Capture 1 registers */   
   ECAP2       : origin = 0x006A20, length = 0x000020     /* Enhanced Capture 2 registers */   
   ECAP3       : origin = 0x006A40, length = 0x000020     /* Enhanced Capture 3 registers */   
   ECAP4       : origin = 0x006A60, length = 0x000020     /* Enhanced Capture 4 registers */            
   ECAP5       : origin = 0x006A80, length = 0x000020     /* Enhanced Capture 5 registers */            
   ECAP6       : origin = 0x006AA0, length = 0x000020     /* Enhanced Capture 6 registers */            
   
   EQEP1       : origin = 0x006B00, length = 0x000040     /* Enhanced QEP 1 registers */   
   EQEP2       : origin = 0x006B40, length = 0x000040     /* Enhanced QEP 2 registers */      
   
   GPIOCTRL    : origin = 0x006F80, length = 0x000040     /* GPIO control registers */   
   GPIODAT     : origin = 0x006FC0, length = 0x000020     /* GPIO data registers */   
   GPIOINT     : origin = 0x006FE0, length = 0x000020     /* GPIO interrupt/LPM registers */   
                    
   SYSTEM      : origin = 0x007010, length = 0x000020     /* System control registers */   
   SPIA        : origin = 0x007040, length = 0x000010     /* SPI-A registers */   
   SCIA        : origin = 0x007050, length = 0x000010     /* SCI-A registers */   
   XINTRUPT    : origin = 0x007070, length = 0x000010     /* external interrupt registers */   
   
   ADC         : origin = 0x007100, length = 0x000020     /* ADC registers */   
   
   SCIB        : origin = 0x007750, length = 0x000010     /* SCI-B registers */   
   
   SCIC        : origin = 0x007770, length = 0x000010     /* SCI-C registers */   
      
   I2CA        : origin = 0x007900, length = 0x000040     /* I2C-A registers */   
      
   CSM_PWL     : origin = 0x33FFF8, length = 0x000008     /* Part of FLASHA.  CSM password locations. */   
}   
   
   
SECTIONS   
{   
   PieVectTableFile : > PIE_VECT,   PAGE = 1   
   
/*** Peripheral Frame 0 Register Structures ***/   
   DevEmuRegsFile    : > DEV_EMU,     PAGE = 1   
   FlashRegsFile     : > FLASH_REGS,  PAGE = 1   
   CsmRegsFile       : > CSM,         PAGE = 1   
   AdcMirrorFile     : > ADC_MIRROR,  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        
   DmaRegsFile       : > DMA,         PAGE = 1   
   
/*** Peripheral Frame 3 Register Structures ***/   
   McbspaRegsFile    : > MCBSPA,      PAGE = 1   
   McbspbRegsFile    : > MCBSPB,      PAGE = 1   
   
/*** Peripheral Frame 1 Register Structures ***/   
   ECanaRegsFile     : > ECANA,       PAGE = 1   
   ECanaLAMRegsFile  : > ECANA_LAM    PAGE = 1      
   ECanaMboxesFile   : > ECANA_MBOX   PAGE = 1   
   ECanaMOTSRegsFile : > ECANA_MOTS   PAGE = 1   
   ECanaMOTORegsFile : > ECANA_MOTO   PAGE = 1   
      
   ECanbRegsFile     : > ECANB,       PAGE = 1   
   ECanbLAMRegsFile  : > ECANB_LAM    PAGE = 1      
   ECanbMboxesFile   : > ECANB_MBOX   PAGE = 1   
   ECanbMOTSRegsFile : > ECANB_MOTS   PAGE = 1   
   ECanbMOTORegsFile : > ECANB_MOTO   PAGE = 1   
      
   EPwm1RegsFile     : > EPWM1        PAGE = 1      
   EPwm2RegsFile     : > EPWM2        PAGE = 1      
   EPwm3RegsFile     : > EPWM3        PAGE = 1      
   EPwm4RegsFile     : > EPWM4        PAGE = 1      
   EPwm5RegsFile     : > EPWM5        PAGE = 1      
   EPwm6RegsFile     : > EPWM6        PAGE = 1   
      
   ECap1RegsFile     : > ECAP1        PAGE = 1      
   ECap2RegsFile     : > ECAP2        PAGE = 1      
   ECap3RegsFile     : > ECAP3        PAGE = 1      
   ECap4RegsFile     : > ECAP4        PAGE = 1   
   ECap5RegsFile     : > ECAP5        PAGE = 1      
   ECap6RegsFile     : > ECAP6        PAGE = 1   
   
   EQep1RegsFile     : > EQEP1        PAGE = 1      
   EQep2RegsFile     : > EQEP2        PAGE = 1                  
   
   GpioCtrlRegsFile  : > GPIOCTRL     PAGE = 1   
   GpioDataRegsFile  : > GPIODAT      PAGE = 1   
   GpioIntRegsFile   : > GPIOINT      PAGE = 1   
      
/*** Peripheral Frame 2 Register Structures ***/   
   SysCtrlRegsFile   : > SYSTEM,      PAGE = 1   
   SpiaRegsFile      : > SPIA,        PAGE = 1   
   SciaRegsFile      : > SCIA,        PAGE = 1   
   XIntruptRegsFile  : > XINTRUPT,    PAGE = 1   
   AdcRegsFile       : > ADC,         PAGE = 1   
   ScibRegsFile      : > SCIB,        PAGE = 1   
   ScicRegsFile      : > SCIC,        PAGE = 1   
   I2caRegsFile      : > I2CA,        PAGE = 1   
                 
/*** Code Security Module Register Structures ***/   
   CsmPwlFile        : > CSM_PWL,     PAGE = 1   

关于寄存器的cmd文件没有什么很难理解的地方,关键是程序的cmd文件,要好好学习一下。

一周热门 更多>