文章转载自:http://bbs.ednchina.com/BLOG_ARTICLE_2141234.HTM

CMD主要是用来分配rom和ram空间用的,它告诉链接程序怎样计算地址和分配空间.所以不同的芯片就有不同大小的rom和ram.放用户程序的地方也不尽相同.所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS.

MEMORY
{ PAGE 0 ..........
PAGE 1.........
}
SECTIONS
{
.vectors .................
.reset .................
................
}
MEMORY是用来指定芯片的rom和ram的大小和划分出几个区间.PAGE 0 对应rom,PAGE 1对应ram。PAGE里包含的区间名字与其后面的参数反映了该区间的起始地址和长度.
SECTIONS:在程序里添加段名.XXXX(如.vectors.)用来指定该段名以下,另一个段名以上的程序(属于PAGE0)或数据(属于PAGE1)放到“>”符号后的空间名字所在的地方。下面给出一个简单的例子:
MEMORY
{
PAGE 0: VECS: origin = 00000h, length = 00040h
LOW: origin = 00040h, length = 03FC0h
SARAM: origin = 04000h, length = 00800h
B0: origin = 0FF00h, length = 00100h
PAGE 1: B0: origin = 00200h, length = 00100h
B1: origin = 00300h, length = 00100h
B2: origin = 00060h, length = 00020h
SARAM: origin = 08000h, length = 00800h
}
SECTIONS
{
.text : { } > LOW PAGE 0
.cinit : { } > LOW PAGE 0
.switch : { } > LOW PAGE 0
.const : { } > SARAM PAGE 1
.data : { } > SARAM PAGE 1
.bss : { } > SARAM PAGE 1
.stack : { } > SARAM PAGE 1
.sysmem : { } > SARAM PAGE 1
}
CMD文件由三部分组成:(1) 输入输出定义;(2) MEMORY命令;(3) SECTION命令。
输入/输出定义:这一部分,可以通过ccs的“Build Option........”菜单设置
         。obj 链接的目标文件
         。lib 链接的库文件
         。map 生成的交叉索引文件
         。out 生成的可执行代码
MEMORY命令:描述系统实际的硬件资源
SECTION命令:描述“段”如何定位
下面给出一个例子:
-c
-o hello.out
-m hello.map
-stack 100
-l rts2xx.lib
MEMORY
{
   PAGE 0: VECT:origin=0x8000,length 0x040
   PAGE 0: PROG:origin=0x8040,length 0x6000
   PAGE 1: DATA:origin=0x8000,length 0x400
}
SECTIONS
{
.vextors >VECT PAGE 0
.text >PROG PAGE 0
.bss >DATA PAGE 1
.const >DATA PAGE 1
}
存储模型说明:
.cinit 存放程序中的变量初值和常量
.const 存放程序中的字符常量、浮点常量和用const声明的常量
.switch 存放程序中switch语句的跳转地址表
.text 存放程序代码
.bss 为程序中的全局和静态变量保留存储空间
.far 为程序中用far声明的全局和静态变量保留空间
.stack 为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果
.sysmem 用于程序中的malloc 、calloc 、和realoc 函数动态分配存储空间.text可执行代

CCS中CMD文件详解相关推荐

  1. CMD文件详解与DSP存储空间

    CMD文件详解与DSP存储空间 CMD的全称为链接命令配置文件.以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间.DSP芯片的片内存储 ...

  2. Maven中pom文件详解

    在IDE中使用Maven IDE工具 MyEclipse 集成maven插件 Eclipse ​ Eclipse For Java EE IDEA 集成Maven插件 在IDE中 配置Maven 指定 ...

  3. GAZEBO 中 sdf文件详解

    转载自:https://blog.csdn.net/weixin_44900096/article/details/103017522 GAZEBO 中 sdf文件详解 木木木一 2019-11-11 ...

  4. Android 中rc文件详解

    rc文件详解 转载https://www.cnblogs.com/zhougong/p/8889040.html

  5. [CMD] DSP CMD文件详解

    目录 1. CMD文件是什么? 2. CMD文件的功能 3. CMD文件的使用方法 MEMORY伪指令--指示存储空间 SECTIONS伪指令--分配段到存储空间 4. 注意事项 1. CMD文件是什 ...

  6. F28335之cmd文件详解

    1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间. 2.C语言生成的段 C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据 ...

  7. IOS 中 pch 文件详解

    在 Xcode6 之前,创建一个新工程会在 Supporting files 文件夹下面自动创建一个"工程名-Prefix.pch"文件,也是一个头文件,pch 头文件的内容能被项 ...

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

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接: https://blog.csdn.net/scottly1/article/de ...

  9. (转) eclipse项目中.classpath文件详解

    背景:对于java项目中.classpath文件中的相关定义一直不是很了解,有必要进行深入的学习. 1 前言 在使用eclipse或者myeclipse进行Java项目开发的时候,每个project( ...

  10. Linux中service文件详解

    1. 什么是systemd service systemd service是一种以 .service 结尾的配置文件,是一个专用于 Linux 操作系统的系统与服务管理器.简单来说,用于后台以守护精灵 ...

最新文章

  1. linux系统怎么关闭usb端口,linux系统挂载以及卸载USB接口的设备的解决办法
  2. 【UVA】10012 - How Big Is It?(暴力)
  3. 项目实践:Spring Boot 三招组合拳,手把手教你打出优雅的后端接口
  4. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨
  5. 动物麻醉剂量和途径相关要点
  6. tensorflow中tf.get_variable()函数详解
  7. Java Web实现信息管理
  8. 排序——冒泡排序算法
  9. mysql并发控制之MVCC
  10. Clear Float
  11. vc浏览器_【36氪基金X一刻】零基础VC/PE行研标准班7月10日线上开课
  12. PHP面向对象之方法重写
  13. 产品经理学习笔记(二)-------------------商业模式和商业模式画布
  14. 组装服务器怎么做阵列,怎么做服务器的磁盘阵列
  15. 15亿美元!软银联合GungHo收购手游巨头Supercell
  16. 如何管理应用的生命周期?
  17. IDEMIA被选中提供其下一代指纹匹配引擎,成为英国内政部生物识别计划的一部分
  18. Zabbix 监控MySQL最大连接数
  19. Java基础学习(6)---Java面向对象
  20. 【java笔记】day01

热门文章

  1. Fundamental of 4G LTE - 学习笔记(1)Duplexing - TDD vs FDD
  2. Redis:字符串MSET、MSETNX、MGET命令介绍
  3. How to Write a simple UEFI EDKII Application:如何编写一个UEFI简单的应用程序[5]
  4. MSP430FR5994LannchPad开发笔记之三:MSP430的IO复用以及如何去获取IO复用功能
  5. 如何让 ABAP 报表在后台作业的模式下运行
  6. sqlalchemy的基本操作大全
  7. 桥架算量用什么软件_鹏业安装算量软件识别桥架
  8. [渝粤教育] 三江学院 财务管理 参考 资料
  9. 视频下载离线工具—“Softorino YouTube Converter”
  10. 周立功linux内核,极速搭建周立功IMX287A ARM Linux开发环境