- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2系列DSP学习笔记 1cmd文件编写
1·什么是CMD文件,它有什么作用。
CMD文件是用来说明对应的对应的代码、数据、变量的存放空间。
它包括两个指令SECTOINS和MEMORY。
如果把RAM和ROM看成是两个仓库的话,那MEMORY指令就是把这两个仓库再分成不同的区域。如果把不同的代码段是看成一件件货物的话,那么SECTOINS指令则指出了这些货物对应的存放位置。
.cmd文件
由汇编器产生的COFF格式的OBJ文件中的段作为构造块,当有多个文件进行链接时,链接器会将输入段结全在一起产生可执行的COFF输出模块,然后链接器为各输出段选择存储器地址。
1.1 MEMORY指令说明
存储器(MEMORY)伪指令,用来定义目标系统的存储器空间。MEMORY可以定义存储器的区域,并指定起始地址和长度。
MEMORY伪指令的一般语法:
MEMORY
{
PAGE 0: name1[(attr)]:origin=constant, length=constant;
PAGE n: name1[(attr)]:origin=constant, length=constant;
}
PAGEn中的页号n最大为255。每个PAGE代表一个完全独立的地址空间。通常PAGE0为程序存储器,PAGE1为数据存储器。
Name1:存储器区间名。可包含8个字符。不同PAGE可以取同样的name1,但在同一个PAGE内区间名不可以相同。
Attr:可选项。规定存储器属性。
R,可以对存储器执行读操作
W,可以对存储器执行写操作
X,破除可以装入可执行的程序代码
I,规定可以对存储器进行初始化
Origin:起始地址。
Length:区间长度。
初始化段用SECTIONS可定位两次:装入和运行。如:一些关键的执行代码必须装在系统的ROM中,但希望在较快的RAM中运行。
未初始化段只可被定位一次。
自己写的关于LF2406A的.cmd文件
MEMORY
{
PAGE 0: VECS: origin=0h, length=40h ;中断向量表,40h~43h为安全代码
;或保留代码区,复位向量是0h和1h
FLASH: origin=44h, length=0ffbch ;32Kflash
SARAM: origin=8000h, length=800h ;当PON=1DON=0,
;SARAM映射为程序存储空间
B0: origin=ff00h, length=100h ; 256 WORD DARAM,CNF=1时
PAGE 1: MMRS: origin=0h, length=60h ;内部映射寄存器,或保留区间
B2: origin=60h, length=20h ;32 WORD DARAM
B0: origin=200h, length=100h ;256 WORD DARAM,CNF=0时
B1: origin=300h, length=100h ;256 WORD DARAM
SARAM: origin=800h, length=800h ;2K WORD SARAM,DON=1PON=0
PF1: origin=7000, length=230h ;外设帧1
EVA: origin=7400, length=32h ;外设帧2
EVB: origin=7500, length=32h ;外设帧3
}
内部的所有的存储器都定义过了,最后的三个PF1、EVA、EVB可以不用定义的,因为是这外设的寄存器映射。
1.2 SECTOINS指令说明
段(SECTOINS)伪指令,告诉链接器如何将输入段结合成输出段并告诉链接器将输出段放在存储器的何处。
SECTIONS
{
Name:[property,property,…]
Name:[property,property,…]
Name:[property,property,…]
}
Name:源程序中的段名。如.text
Property:段的属性参数。一个段的属性参数包括下列五种:
1.2.1 Load allocation,由它定义将输出段加载到存储器中的什么位置。
语法:load: allocation、allocation、allocation (allocation是将逻辑段定位的地址说明)
例如:.text: load=0x1000 ;将输出段定位到一个特定的地址
.text: loadROM ;将输出段定位到命名为ROM的存储区
.text: align=0x80 ;关键词align规定输出段.text定位到从地址边界0x80开始
您可能关注的文档
- 2012网络推广费用申请.doc
- 2012经管系分党校工作总结.doc
- 2012电大论文,计算机类论文,题目:第三方物流企业管理系统的设计与实现.doc
- 2012精美端午节快乐祝福贺卡.ppt
- 2012米兰秋冬时装周发布会 细节设计精赏.doc
- 2012美国Top100大学排名.doc
- 2012考研复试英语口语面试应试宝典.doc
- 2012考研政治经典必看:考前预测20_题_详解.doc
- 2012至尚优品-中国千万富豪品牌倾向报告-胡润财富发布.doc
- 2012胡润艺术榜详细榜单.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)