原创 成功烧写TMS320F2812经验

2008-9-24 09:55 2060 2 2 分类: 处理器与DSP

www.61ic.com


 


用的是CCS2.20版本提供的SDFLASH,设置好SDFLASH,主要是要将需要下载的.out文件写进去.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


关键在于在线仿真时的cmd文件要加以更换成新的.使用的是:


 


 


 


-o .DebugPULSE_AD.out           


-m PULSE_AD.map


 


MEMORY


{


PAGE 0 :


   OTP         : origin = 0x3D7800, length = 0x000800


   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 = 0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3F0000, length = 0x004000


   FLASHB      : origin = 0x3F4000, length = 0x002000


   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


        


PAGE 1 :


   /* SARAM                     */    


   RAMM0M1    : origin = 0x000000, length = 0x000800


 


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


   RAML0L1    : origin = 0x008000, length = 0x002000


   RAMH0      : origin = 0x3F8000, length = 0x002000       


}


 


 


SECTIONS


{


   /* Allocate program areas: */


   .reset              : > BEGIN       PAGE = 0


   vectors             : > VECTORS     PAGE = 0


   .cinit              : > FLASHJ      PAGE = 0


   .text               : > FLASHA       PAGE = 0


 


   /* Allocate data areas: */


   .stack              : > RAMM0M1     PAGE = 1


   .bss                : > RAML0L1     PAGE = 1


   .ebss               : > RAML0L1     PAGE = 1


   .const:                        load =         FLASHB PAGE 0, run = RAML0L1 PAGE 1


        {


            /* Get Run Address        */


            __const_run = .;


            /* Mark Load Address*/


            *(.c_mark)


            /* Allocate .const        */


            *(.const)


            /* Compute Length        */


            __const_length = .-__const_run;


        } 


  


   .econst:                        load =         FLASHB PAGE 0, run = RAML0L1 PAGE 1


        {


            /* Get Run Address        */


            __econst_run = .;


            /* Mark Load Address*/


            *(.ec_mark)


            /* Allocate .const        */


            *(.econst)


            /* Compute Length        */


            __econst_length = .-__econst_run;


        }  


   .sysmem             : > RAMH0       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


 


}


 


 


 


然后把lib文件替换成:rts2800_fl040830.lib


就可以啦.


希望你也成功!!!


 


 


点评:


 


FLASH不用分这么细的,编大一点的程序会有麻烦


以下是本人做过的某项目CMD文件


MEMORY


{


PAGE 0 :


   /* For this example, H0 is split between PAGE 0 and PAGE 1 */ 


   /* BEGIN is used for the "boot to HO" bootloader mode      */


   /* RESET is loaded with the reset vector only if           */


   /* the boot is from XINTF Zone 7.  Otherwise reset vector  */


   /* is fetched from boot ROM. See .reset section below      */


  


   RAMM0      : origin = 0x000000, length = 0x000400


   BEGIN      : origin = 0x3f7ff6, length = 0x000002 


   PRAMH0     : origin = 0x3d8000, length = 0x004000   /*   */


   RESET      : origin = 0x3FFFC0, length = 0x000002          


  


        


PAGE 1 :


 


   /* For this example, H0 is split between PAGE 0 and PAGE 1 */


 


   LSARAM     : origin = 0x3de000, length = 0x008000 /*   */


   RAMM1      : origin = 0x000400, length = 0x000400


   DRAMH0     : origin = 0x3f8000, length = 0x001000 /*   */


   BUFA       : origin = 0x8000,   length=0x1000


   BUFB       : origin = 0x9000,   length=0x1000


   BUFC       : origin = 0x3f9000, length="0x1000"


   RECORDDATA : origin = 0x80020,  length=0x700


   PARAMETER  : origin = 0x80725,  length=0x20


   PASSWORD   : origin = 0x80005,  length=0x08


}


 


 


SECTIONS


{


   /* Setup for "boot to H0" mode:


      The codestart section (found in DSP28_CodeStartBranch.asm)


      re-directs execution to the start of user code. 


      Place this section at the start of H0  */


 


   codestart        : > BEGIN,        PAGE = 0


   ramfuncs         : > PRAMH0        PAGE = 0 


   .text            : > PRAMH0,       PAGE = 0


   .cinit           : > PRAMH0,       PAGE = 0


   .pinit           : > PRAMH0,       PAGE = 0


   .switch          : > RAMM0,        PAGE = 0


   .reset           : > RESET,        PAGE = 0, TYPE = DSECT /* not used, */


  


   .stack           : > RAMM1,        PAGE = 1


   .ebss            : > DRAMH0,       PAGE = 1


   .econst          : > LSARAM,       PAGE = 1     


   .esysmem         : > DRAMH0,       PAGE = 1


   .bufferA         : {}>BUFA         PAGE 1


   .bufferB         : {}>BUFB         PAGE 1 


   .bufferC         : {}>BUFC         PAGE 1 


   .RecordData      : {}>RECORDDATA   PAGE 1


   .parameter       : {}>PARAMETER    PAGE 1


   .password        : {}>PASSWORD     PAGE 1


}


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条