⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 成功烧写tms320f2812经验.txt

📁 DSP2812的CMD详细说明,内容非常完整,包括CMD文件编写以及实例.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
wind0408.bokee.com注册设为首页帮助首页|博客群|公社|专栏|论坛|图片|商城|汽车|博客联播|博客院线|随机访问|订阅 用户名 注 
      密 码 忘记密码
      保存密码         
  wind0408.bokee.com    复制
欢迎光临我的博客首页个人资料日志图片视频(测)好友博客群日志设置f2812 flash配置寄存器的等待周期数的理解
分类:默认栏目一般而言,为了将运行在f2812  
flash内得程序代码以最快速度运行,需要设置flash配置寄存器的等待周期数,而“设置flash配置寄存器的等待周期数”的这段代码是不能在flash内部执行的,这样就会出现两种实际的配置方式:
  
一种是2812系统无外扩程序存储器,此时程序只能写在2812内部得flash区,程序运行开始后,需要将“设置flash配置寄存器的等待周期数”的这段代码用数据复制的方式复制到内部sram区,比如 
L0 区,然后使用跳转指令跳转到L0 
区“设置flash配置寄存器的等待周期数”的代码进行flash配置寄存器的设置,设置完成后再使用跳转指令跳转到flash程序区执行正常的功能程序。这样以后的flash内的代码就会以最快速度运行。

  
还有一种是2812系统外扩了部分“引导”程序存储器,“设置flash配置寄存器的等待周期数”的这段代码放置在外扩的“引导”程序存储器内,而其他的所有程序代码都放在2812内部flash区,系统复位后,首先运行外扩的“引导”程序存储器内的程序,一旦完成了对内部flash配置寄存器的设置后,即跳转到flash程序区执行正常的功能程序。

  正如上述,对2812外部接口XINTF配置寄存器的设置代码,也是不能在“外部”程序代码区进行的,为了实现对其的正常设置,可仿照上述办法进行相关操作。

2007.8.13 19:06 作者:wind 收藏 | 评论:0
成功烧写TMS320F2812经验
分类:默认栏目用的是CCS2.20版本提供的SDFLASH,设置好SDFLASH后,主要是要将需要下载的.out文件写进去.
关键在于在线仿真时的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 = 0x3F0000, 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
就可以啦.
希望你也成功!!!


本人qq: 15007807  欢迎以后交流. 
点评:
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  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -