61ic电子在线 首页 技术 嵌入式系统 查看内容

TMS320F28377D-CMD文件

2017-6-6 15:37| 发布者: 61ic| 查看: 1506| 评论: 0|原作者: Dyi|来自: 61ic

摘要: DSP2837x_Headers_nonBIOS.cmd,该文件无论是烧写到Flash或是RAM中都可以用,在所有工程中也是通用的

DSP2837x_Headers_nonBIOS.cmd,该文件无论是烧写到Flash或是RAM中都可以用,在所有工程中也是通用的,其重要的作用是把外设寄存器的数据映射到对应的存储空间中,例如在F2837xD_GlobalVariableDefs.c中,一ADCA寄存器为例。

#ifdef __cplusplus

#pragma DATA_SECTION("AdcaRegsFile")

#else

#pragma DATA_SECTION(AdcaRegs,"AdcaRegsFile");

#endif

volatile struct ADC_REGS AdcaRegs;

用volatile定义变量告诉编译器该变量是变化的,该关键字的详解

由上可知AdcaRegs是一个结构体变量名其定义在F2837xD_Adc.h中,通过预处理命令#pragma为该结构体定义一个名为AdcaRegsFile的数据段。F2837x_Headers_nonBIOS_cpu1.cmd,定义如下:

MEMORY

{

 PAGE 0:    /* Program Memory */

 PAGE 1:    /* Data Memory */

   ADCA_RESULT   : origin = 0x000B00, length = 0x000020

   ADCB_RESULT   : origin = 0x000B20, length = 0x000020

   ADCC_RESULT   : origin = 0x000B40, length = 0x000020

   ADCD_RESULT   : origin = 0x000B60, length = 0x000020

   ADCA          : origin = 0x007400, length = 0x000080

   ADCB          : origin = 0x007480, length = 0x000080

   ADCC          : origin = 0x007500, length = 0x000080

   ADCD          : origin = 0x007580, length = 0x000080

   ANALOG_SUBSYS : origin = 0x05D180, length = 0x000080

  };   

SECTIONS

{

/*** PIE Vect Table and Boot ROM Variables Structures ***/

  UNION run = PIE_VECT, PAGE = 1

   {

      PieVectTableFile

      GROUP

      {

         EmuKeyVar

         EmuBModeVar

         FlashCallbackVar

         FlashScalingVar

      }


   }

   AdcaResultFile        : > ADCA_RESULT,  PAGE = 1


   AdcbResultFile        : > ADCB_RESULT,  PAGE = 1


   AdccResultFile        : > ADCC_RESULT,  PAGE = 1


   AdcdResultFile        : > ADCD_RESULT,  PAGE = 1


   AdcaRegsFile          : > ADCA,         PAGE = 1


   AdcbRegsFile          : > ADCB,         PAGE = 1


   AdccRegsFile          : > ADCC,         PAGE = 1


   AdcdRegsFile          : > ADCD,         PAGE = 1

}

在MEMORY中定义一个存储空间ADCA,它的起始地址和长度,SECTIONS伪指令把AdcaRegsFile数据段装载到名称为ADCA的存储空间中。结构体AdcaRegs的具体位置就确定了,所以通过这几层映射的关系,当向AdcaRegs写数据时即可准确的写入DSP内部寄存器所在的存储器的位置。由此看见,CMD的作用就是为程序代码和数据分配存储空间。


鲜花

握手

雷人

路过

鸡蛋

地址 :湖南省株洲市天元区利江花园
合作 Email: administration@61ic.com

  • 关注61ic官方微博
    了解最新动态

  • 关注61ic微信公众号
    这里有好玩的讯息

  • 加入61ic交流群
    不断在这里成长

© 2014-2017 HuNan 湖南索炜达电子科技有限公司 . All rights reserved.
湘公网安备 43020202000020号

Archiver|手机版|小黑屋||湘ICP备13001086号-2 QQ 
返回顶部