F28335之cmd文件详解

转载 2015年07月09日 09:34:11

1.CMD文件的作用

    CMD文件的作用就像仓库的货物摆放记录一样,为程序代码数据分配指定的空间。

2.C语言生成的段

    C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据,未初始化段只是保留变量的地址空间。

已初始化段:

.text——C语言编译生成的汇编指令代码存放于此

.cinit——存放初始化的全局和静态变量

.const——字符串常量和const定义的全局和静态变量

.econst——字符串常量和far const定义的全局和静态变量

.print——全局构造器(C++)程序列表

.switch——存放switch语句产生的常数表格

以.const段为例:

const int a = 10;  //注意必须是全局的 如果声明为局部const初始化变量,不会放在.const段,局部变量都是运行时放在.bss段中
char * p = "ABC";
数组和结构体的初始值——是局部变量时,产生的是.const,如果是全局变量,产生的是.cinit

未初始化段:

.bss——为全局变量和局部变量保留的空间,程序上电时,.cinit空间中的数据复制出来并存放在.bss空间中

.ebss——为使用大寄存器模式时预留的全局和局部变量空间,程序上电时,.cinit空间中的数据复制出来并存放在.bss空间中

.stack——堆栈空间,主要用于函数传递变量或为局部变量分配空间

.system——为动态存储分配保留的空间(malloc),如果有宏函数,此空间被占用

.esystem——为动态存储分配保留的空间(far malloc),如果有far函数,此空间会被占用


3.自定义段

上面的都是官方预先定义好的,我们可以定义自己的段么?可以,使用如下语句:

#pragma CODE_SECTION(symbol, "section name");
#pragma DATA_SECTION(symbol, "section name");
symbol——符号,可以是函数名/变量名

section name——自定义的段名

CODE_SECTION用来定义代码段

DATA_SECTION用来定义数据段

注意

不能再函数体内声明#pragma;

必须在符号被定义和使用之前声明#pragma

例子:

#pragma DATA_SECTION(data, "data_name");
char data[100];


4.CMD文件

    在DSP28335工程文件里(不用BIOS产生CMD文件),手写CMD文件一般有两个,RAM里调试时用的两个CMD文件分别为DSP2833x_Headers_nonBIOS.cmd和28335_RAM_lnk.cmd,烧写flash里时用的两个CMD文件分别为DSP2833x_Headers_nonBIOS.cmd和F28335.cmd,其中DSP2833x_Headers_nonBIOS.cmd文件可以在所有工程文件中通用,主要作用是把外设寄存器产生的数据段映射到对应的存储空间,可以跟DSP2833x_GlobalVariableDefs.c文件对照一下看看。

下面是官方F28335.cmd;

编写用于flash烧写的F28335.cmd文件时相对来说较复杂些,根据不同的情况需要做一些修改

1 不需要把部分代码copy到RAM里,一般情况不需要外扩RAM等时直接用TI的F28335.cmd即可。

2 需要把部分代码从flash 复制到RAM里,如延时函数DSP2833x_usDelay.asm等,这时CMD文件需要做相应的修改。

3 从时间开销方面考虑,需要把整个程序从flash复制到RAM里,这时程序及CMD文件都要做相应的修改。

DSP28335—CMD文件解读(2)

在nonBIOS情况下,CMD文件不外乎就三个:28335_RAM_lnk.cmd(用于仿真调试) 、  DSP2833x_Headers_nonBIOS.cmd 、   F28335.cmd(用于f...
  • u012138828
  • u012138828
  • 2014年07月07日 17:09
  • 1479

理解CMD原理到掌握CMD编写 DSP(一)

一、CMD文件的起源  在DSP系统中,存在大量的、各式各样的存储器,CMD文件所描述的,就是开发工程师对物理存储器的管理、分配和使用情况。  先复习一下存储器。目前的物理存储器,种类繁多,原理、功能...
  • muguajia
  • muguajia
  • 2015年01月04日 21:03
  • 2895

dsp的CMD文件详解

DSP的CMD文件详解 CMD是用来分配ROM和RAM空间用的,告诉链接程序怎样计 算地址和分配空间。所以不同的芯片就有不同大小的ROM和RAM, 存放用户程序的地方也不尽相同。所以要根据芯片进...
  • zheng_ren_feng
  • zheng_ren_feng
  • 2013年02月19日 21:12
  • 1138

个人对TI DSP CMD文件编写的理解

如需转载,请将下列字段一起转载。 新浪海风博客http://blog.sina.com.cn/dingyunfeng       最近在学习使用TI的DSP,CMD文件的编写始终是个无法绕过的坎...
  • leshraczs
  • leshraczs
  • 2013年08月28日 09:54
  • 2001

F28335中断学习

28335 的中断系统总结"> 当多个中断同时出现,将按优先级高低进行处理,中断可按优先级分为两种:可屏蔽中断和非屏蔽中断 28335 的中断系统总结"> 28335 的中断系统总结"> ...
  • occlumency
  • occlumency
  • 2016年03月08日 18:31
  • 715

TMS320F28335项目开发记录6_28335之cmd文件详解

1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间。...
  • scottly1
  • scottly1
  • 2014年11月03日 08:49
  • 7024

08-CMD_if命令讲解

if 命令讲解 IF命令有三种用法: 1, if [not] errorLevel number commond 2, if [not] string1==string2 commond 3, i...
  • wuqinfei_cs
  • wuqinfei_cs
  • 2013年07月16日 11:10
  • 988

F28335 ePWM模块使用总结

DSP ePWM 28335
  • HopesunIce
  • HopesunIce
  • 2017年06月17日 10:11
  • 602

CCS中CMD文件详解

文章转载自:http://bbs.ednchina.com/BLOG_ARTICLE_2141234.HTM CMD主要是用来分配rom和ram空间用的,它告诉链接程序怎样计算地址和分配空间.所以不...
  • u012133341
  • u012133341
  • 2016年07月27日 11:08
  • 168

小技巧-cmd常用命令之创建文件

一、建立空文件的几种方法 1、cd.>a.txt cd.表示改变当前目录为当前目录,即等于没改变;而且此命令不会有输出。 “>”表示把命令输出写入到文件。后面跟着a.txt,就表示写入到a.tx...
  • sunjinshengli
  • sunjinshengli
  • 2016年12月10日 12:28
  • 2289
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:F28335之cmd文件详解
举报原因:
原因补充:

(最多只允许输入30个字)