- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[原]TMS320F28335项目开发记录628335之cmd文件详解
[原]TMS320F28335项目开发记录6_28335之cmd文件详解
2014-11-3阅读970?评论0
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文件对照一下看看。在我的上一篇文章中也有提到。
? ? 其实我们也不需要详细的知道如何编写cmd文件,可以照着原有的修改就可以了。
? ? 下面是官方28335_RAM_lnk.cmd,一般情况下直接用TI给的,不需要做修改即可满足调试用,模式较固定,当然你也可以做相应的修改用到哪块RAM存储空间,在CMD文件里做相应的分配即可。
MEMORY
{
PAGE 0 :
/* BEGIN is used for the boot to SARAM bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */
RAMM0 : origin = 0x000050, length = 0x0003B0
RAML0 : origin = 0x008000, length = 0x001000
RAML1 : origin = 0x009000, length = 0x001000
RAML2 : origin = 0x00A000, length = 0x001000
RAML3 : origin =
您可能关注的文档
- winhex教程应用数据恢复-Doc文件恢复-MBREBRDBR.doc
- wincc安装第一步安装说明WIN7.doc
- WL-GN-E002肿瘤标志物类定量检测试剂注册申报资料指导原则(食药监办械函116号7).doc
- WLM-7无线电罗盘天线模仿仪技术使用说明书.doc
- WKD-XX系列一次消谐器说明书.doc
- WLM-9无线电罗盘天线模仿仪技术说明书.doc
- WM09300打卡机说明书.doc
- Windows-NTP服务配置说明书.doc
- Word(入门基础技巧大全).doc
- windows与linux之间实现网络的远程登陆以及文件的传输.doc
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)