打印

2812CMD文件之疑问

[复制链接]
3577|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
littleapple|  楼主 | 2010-5-24 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2812的标准CMD文件如下:
MEMORY
{
PAGE 0 :
   PRAMH0      : origin = 0x3F8000, length = 0x001A00  
/*  PRAML0L1    : origin = 0x008000, length = 0x002000 */
   /* SARAM                     */  
   OTP         : origin = 0x3D7800, length = 0x000800
   /* SARAM                     */  
   FLASHJ      : origin = 0x3D8000, length = 0x002000
   FLASHI      : origin = 0x3DA000, length = 0x002000
   FLASHH      : origin = 0x3DC000, length = 0x004000
   FLASHG      : origin = 0x3E0000, length = 0x004000
   FLASHF      : origin = 0x3E4000, length = 0x004000
   FLASHE      : origin = 0x3E8000, length = 0x004000
   FLASHD      : origin = 0x3EC000, length = 0x004000
   FLASHC      : origin = 0x3F0000, length = 0x004000
   FLASHA      : origin = 0x3F6000, length = 0x001FF6
   BEGIN       : origin = 0x3F7FF6, length = 0x000002
   PASSWDS     : origin = 0x3F7FF8, length = 0x000008
   ROM         : origin = 0x3FF000, length = 0x000FC0
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E
   RESET       : origin = 0x3FFFC0, length = 0x000002
         
PAGE 1 :
   /* SARAM                     */     
   RAMM0M1    : origin = 0x000000, length = 0x000800
   RAML0L1    : origin = 0x008000, length = 0x002000
   DRAMH0     : origin = 0x3F9A00, length = 0x000300  
   SRAM       : origin = 0x080000, length = 0x002000
   FLASHB     : origin = 0x3F4000, length = 0x002000
   BOOTROM    : origin = 0x3ff000, length = 0x000502  

   /* 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
        
}

相关帖子

沙发
littleapple|  楼主 | 2010-5-24 21:53 | 只看该作者
SECTIONS
{
   /* Allocate program areas: */
   CodeStart           : > BEGIN       PAGE = 0
   .cinit              : > FLASHJ      PAGE = 0
   .text               : > FLASHD       PAGE = 0
                                          
   
        vectors            : > VECTORS     PAGE = 0, TYPE = DSECT
   .reset              : > RESET      PAGE = 0, TYPE = DSECT /*这个分配很重要*/
        
/*        UserPage:          LOAD = FLASHD,PAGE = 0
                                           RUN  = PRAMH0,PAGE = 0
                                           RUN_START(_UserPage_runstart),
                                           LOAD_START(_UserPage_loadstart),
                                           LOAD_END(_UserPage_loadend)
*/
/*        codeA:             LOAD = FLASHD,PAGE = 0
                                           RUN  = PRAMH0,PAGE = 0
                                           RUN_START(_codeA_runstart),
                                           LOAD_START(_codeA_loadstart),
                                           LOAD_END(_codeA_loadend)
*/
        ramfuncs:          LOAD = FLASHD,PAGE = 0
                                           RUN  = RAML0L1,PAGE = 1
                                           RUN_START(_ramfuncs_runstart),
                                           LOAD_START(_ramfuncs_loadstart),
                                           LOAD_END(_ramfuncs_loadend)

/*    Allocate data areas: */
   .stack              : > RAMM0M1     PAGE = 1
   .bss                : > SRAM        PAGE = 1
   .ebss               : > SRAM        PAGE = 1
/*   .const              : > FLASHB    PAGE = 1   */
   .econst             : > FLASHB      PAGE = 1               

   .const              : > FLASHB       PAGE = 1
/*  .SWITCH             : > FLASHA    PAGE = 0        */                           

   .sysmem             : > SRAM        PAGE = 1
   .esysmem            : > SRAM        PAGE = 1

   /* Allocate IQ math areas: */
/*   IQmath              : > FLASHI      PAGE = 0   /* Math Code */
/*   IQmathFastTables    : > FLASHI      PAGE = 0   /* Math Tables in fast memory */
/*   IQmathTables        : > ROM         PAGE = 0   /* Math Tables In ROM */
      
   /* 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
   
}

问题如下:
1.如果2812上电后使用的是PIE中断矢量表,那么vectors       : > VECTORS     PAGE = 0, TYPE = DSECT是不是可以不映射
2。.reset              : > RESET      PAGE = 0, TYPE = DSECT /*这个分配很重要*/ 这句后面的TYPE=DSECT是什么意思?
3.在自定义段ramfuncs下,将FLASH程序加载到RAM里面,在工程文件中定义如下:
extern Uint16 Ramfuncs_loadStart;
extern Uint16 Ramfuncs_loadEnd;
extern Uint16 Ramfuncs_runStart;
需不需要指定这些变量是哪个具体的地址,即要不要给它们赋值呢?

使用特权

评论回复
板凳
五谷道场| | 2010-5-24 21:54 | 只看该作者
需要指定

使用特权

评论回复
地板
五谷道场| | 2010-5-24 21:54 | 只看该作者
楼主赋值后再试试

使用特权

评论回复
5
love_life| | 2010-5-24 22:02 | 只看该作者
这个好像不需要给他们赋值,网上有这样的例程你可以去下一个看看

使用特权

评论回复
6
thf2008| | 2010-5-24 23:05 | 只看该作者
用memorycopy这个函数给它赋东西

使用特权

评论回复
7
tiger2010| | 2010-5-25 13:12 | 只看该作者
楼上说的没错~~~

使用特权

评论回复
8
littleapple|  楼主 | 2010-5-28 19:18 | 只看该作者
5# love_life

我找了,没找到例程,你那有吗?

使用特权

评论回复
9
littleapple|  楼主 | 2010-5-28 19:19 | 只看该作者
6# thf2008

这个函数该怎么用?刚开始学没多久,望多指教

使用特权

评论回复
10
hulan1985| | 2010-5-28 19:42 | 只看该作者
memorycopy都没用过啊

使用特权

评论回复
11
littleapple|  楼主 | 2010-5-31 19:55 | 只看该作者
是啊,刚学没多久啊,楼上的能讲讲吗

使用特权

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

本版积分规则

0

主题

124

帖子

0

粉丝