DSP中的cmd文件
一、CMD文件
链接命令文件(Link Command Files),以后缀.cmd结尾,简称CMD文件。
CMD文件的两大功能是指示存储空间和分配段到存储空间。
在编写CMD文件时,主要采用MEMORY和SECTIONS 两条伪指令。
在281x调试时,可以将程序代码链接到Flash或者RAM,因此对应两种CMD文件。
MEMORY伪指令
作用:指示存储空间。
语法如下:
MEMORY
{
PAGE 0 : name 0[(attr)]:origin = constant, length = constant
PAGE n : name n[(attr)]:origin = constant, length = constant
}
PAGE:用来指示存储空间的关键字。PAGE n的最大值为255。
name:代表某一属性和地址范围的存储空间名称。长度可以是1~8个字符,在同一页内名称不能相同,不同页内名称可以相同。
attr:用来规定存储空间的属性,共有四种属性:R-只读、W-只写、X-该空间包含可执行代码、I-该空间可以被初始化。实际使用,常忽略此选项。
orgin:用来定义存储空间起始地址的关键字。
length:用来定义存储空间长度的关键字。
举例
MEMORY
{
PAGE 0 :
FLASH : origin = 0x3D8000, length = 0x01FF80 /* FLASH */
BEGIN : origin = 0x3F7FF6, length = 0x000002
ROM : origin = 0x3FF000, length = 0x000FC0
RESET : origin = 0x3FFFC0, length = 0x000002
RAML0 : origin = 0x008000, length = 0x001000
PAGE 1 :
RAMM0 : origin = 0x000000, length= 0x000400 /* RAM M0 */
RAMM1 : origin = 0x000400, length= 0x000400 /* RAM M1 */
RAML1 : origin = 0x009000, length = 0x001000 /* RAM L1 */
RAMH0 : origin = 0x3F8000, length= 0x002000 /* RAM H0 */
}
SECTIONS伪指令
作用:分配段到存储空间,也就是指定段的实际硬件地址空间。
语法如下:
SECTIONS
{
name 0 : > 存储空间名称, PAGE = 页数
name n : > 存储空间名称, PAGE = 页数
}
name :编译器输出段的名称。
存储空间名称:采用MEMORY伪指令指示的存储器空间名称。
PAGE :前面存储器空间名称对应的存储器页。
举例
SECTIONS
{
.cinit : > FLASH, PAGE = 0
.text : > FLASH, PAGE = 0
.const : > FLASH, PAGE = 0
.econst : > FLASH, PAGE = 0
.stack : > RAMM0, PAGE = 1
.bss : > RAML1, PAGE = 1
.ebss : > RAML1, PAGE = 1
}
二、C28x存储器模型
存储器模型:TMS320C28x将存储器分成程序和数据两个线性块。
程序存储器:包含可执行代码,初始化数据和开关量;
数据存储器:包含外部变量、静态变量和系统堆栈。
编译器产生可重定位的代码和数据块,允许链接器将代码和数据分配到适当的存储器空间,而链接器则根据链接命令文件将代码和数据分配到目标存储器。这些代码和数据块,称为sections(段),有两种基本的sections类型,为初始化段和非初始化段。
初始化段
初始化段包含数据表和可执行代码。C编译器创建如下初始化段:
.text段:包含所有可执行代码和常量;
.cint段:已初始化的变量和常量表(用于C程序);
.pint段:已初始化的变量和常量表(用于C++程序);
.const段:包含字符串常数以及用const声明的全局和静态变量;
.econst段:同.const段,但用far const声明的变量或编译器采用大存储器模式时;
.switch段:为开关语句(switch)建立的数据表。
未初始化段
未初始化段在存储器(通常是RAM)中保留空间,程序在运行时可在此空间创建和存储变量。C编译器创建如下非初始化块:
.bss段:为全局和静态变量保留空间。程序引导过程中,C引导程序会将ROM中的.cint块中的数据复制到.bss块中;
.ebss段:为用far声明的或大存储器模式下的全局和静态变量保留空间。程序引导过程中,C引导程序会将ROM中的.cint块中的数据复制到.bss块中;
.stack段:为C系统的堆栈分配的空间,用于函数调用时传递参数以及为局部变量分配空间;
.sysmem段:为动态存储器分配保留空间,如果未用到malloc函数,则该块的空间为0;
.esysmem段:为动态存储器分配保留空间,如果未用到far malloc 函数,则该块的空间为0。
DSP中的cmd文件的更多相关文章
- 【DSP开发】CMD文件
DSP的存储器的地址范围,CMD是主要是根据那个来编的. CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间. 所以不同的芯片就有不同大小的rom和ram.放用户程序的地方 ...
- DSP TMS320C6000基础学习(4)—— cmd文件分析
DSP中的CMD文件是链接命令文件(Linker Command File),以.cmd为后缀. 在分析cmd文件之前,必需先了解 (1)DSP具体芯片的内存映射(Memory Map) (2)知道点 ...
- 有些CCS工程中为什么会有两个CMD文件?
这里的CCS就是TI公司的Code Composer Studio 集成开发环境,所以这篇随笔也就是关于TI公司DSP开发过程中对于刚入门同学的一个常见问题了. 那作为一个初学者,对于CCS工程中的c ...
- DSP中CMD文件
DSP中CMD文件 (2012-12-26 20:54:17) 转载▼ 标签: 杂谈 分类: DSP FPGA DSP的存储器的地址范围,CMD是主要是根据那个来编的.CMD 它是用来分配rom和ra ...
- CCS中CMD文件解析
http://blog.csdn.net/u011392772/article/details/49760897 gel文件中主要包含了PLL.DDR等的初始化工作,具体可以看一下gel源码就明白了: ...
- CCS中cmd文件的编写
http://blog.sina.com.cn/s/blog_abe5740601015b3q.html CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件,其中比较关键的 ...
- cmd中执行jar文件命令(待参数)
cmd中执行jar文件命令(待参数) 1,jar文件路径:F:\products 2,cmd命令: --两个日期参数(空格隔开) java -jar F:\products\analysis.jar ...
- 记录自己在 cmd 中执行 jar 文件遇到的一些错误
记录自己在 cmd 中执行 jar 文件遇到的一些错误 场景: 请求接口,解析接口返回的 JSON 字符串并插入到我们的数据库里面. 情况: 项目在 eclipse 中正常运行,打成 jar 包后在 ...
- DSP6455的cmd文件
DSP6455的cmd文件 CMD 的专业名称叫链接器配置文件,存放链接器的配置信息,DSP编译器的编译结果是未定位的,DSP也没有操作系统来定位执行代码,DSP系统的配置需求也不尽相同,因此需要定义 ...
随机推荐
- ASP.NET MVC5学习笔记之Controller执行ControllerDescriptor和ActionDescriptor
一. ControllerDescriptor说明 ControllerDescriptor是一个抽象类,它定义的接口代码如下: public abstract class ControllerDes ...
- SOCKET 地址
地址格式: 函数bind和getsockname使用通用数据类型:struct sockaddr*来指向socket地址. #incude <sys/socket.h> struct so ...
- linux内核设计与实现学习笔记-模块
模块 1.概念: 如果让LINUX Kernel单独运行在一个保护区域,那么LINUX Kernel就成为了“单内核”. LINUX Kernel是组件模式的,所谓组件模式是指:LINUX K ...
- oracle 各种问题排查
一.ORA-00257 ORA-00257归档日志写满,最简单方法.可以更改归档的大小. 二.job不自动运行解决方法 http://www.cnblogs.com/xbding/p/5861443. ...
- OpenGL 纹理贴图
前一节实例代码中有个贴图操作. 今天就简单说明一下纹理贴图... 为了使用纹理贴图.我们首先需要启用纹理贴图功能. 我们可以在Renderer实现的onSurfaceCreated中定义启用: // ...
- hdu 1973 Prime Path
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1973 Prime Path Description The ministers of the cabi ...
- hdu 1509 Windows Message Queue
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1509 Windows Message Queue Description Message queue ...
- oracle12c不能进入到http://localhost:5500/em的解决办法
Oracle11g企业管理器无法打开——解决https://localhost:1158/em 页面无法打开的问题 常见的问题:https://localhost:1158/em 无法打开 解决办法: ...
- qt QSS文件伪状态
表 1. 伪状态列表伪状态 描述:checked button部件被选中:disabled 部件被禁用:enabled 部件被启用:focus 部件获得焦点:hover ...
- jQuery4ajax
1.jQuery对ajax编程的支持 (1)load方法: 作用:将服务器返回的数据直接添加到符合要求的dom节点之上. 用法:load(url,[data]); url:请求地址,比如"p ...