欢迎来到天天文库
浏览记录
ID:6055441
大小:51.00 KB
页数:12页
时间:2018-01-01
《dsp_cmd文件连接器命令文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、DSP的存储器的地址范围,CMD是主要是根据那个来编的。 CMD它是用来分配ROM和RAM空间用的,告诉链接程序怎样计算地址和分配空间. 所以不同的芯片就有不同大小的ROM和RAM.放用户程序的地方也不尽相同.所以要根据芯片进行修改.分两部分.MEMORY和SECTIONS. MEMORY { PAGE0.......... PAGE1......... } SECTIONS {SECTIONS { .vectors................. .reset..............
2、... ................ } MEMORY是用来指定芯片的ROM和RAM的大小和划分出几个区间. PAGE0对应ROMPAGE1对应RAM PAGE里包含的区间名字与其后面的参数反映了该区间的起始地址和长度. SECTIONS:(在程序里添加下面的段名如.vectors.用来指定该段名以下, 另一个段名以上的程序(属于PAGE0)或数据(属于PAGE1)放到“>”符号后的空间名字所在的地方。 SECTIONS { .vectors:{}>VECSPAGE0 .reset:{}>
3、VECSPAGE0 ............ ............ .......... } eg: MEMORY { PAGE0: VECS :origin=00000h,length=00040h LOW :origin=00040h,length=03FC0h SARAM:origin=04000h,length=00800h B0 :origin=0FF00h,length=00100h PAGE1: B0 :origin=00200h,length=001
4、00h B1 :origin=00300h,length=00100h B2 :origin=00060h,length=00020h SARAM:origin=08000h,length=00800h } SECTIONS { .text :{}>LOWPAGE0 .cinit :{}>LOWPAGE0 .switch :{}>LOWPAGE0 .const :{}>SARAMPAGE1 .data :{}>SARAMPAGE1 .bss
5、 :{}>SARAMPAGE1 .stack :{}>SARAMPAGE1 .sysmem :{}>SARAMPAGE1 }由三部分组成: 输入/输出定义:这一部分,可以通过ccs的“BuildOption........”菜单设置 .obj链接的目标文件 .lib链接的库文件 .map生成的交叉索引文件 .out生成的可执行代码 MEMORY命令:描述系统实际的硬件资源 SECTION命令:描述“段”如何定位 例子 .cmd文件 -c -ohello.out -mhell
6、o.map -stack100 -lrts2xx.lib MEMORY { PAGE0:VECT:origin=0x8000,length0x040 PAGE0:PROG:origin=0x8040,length0x6000 PAGE1:DATA:origin=0x8000,length0x400 } SECTIONS { .vextors>VECTPAGE0 .text>PROGPAGE0 .bss>DATAPAGE1 .const>DATAPAGE1 } 存储模型:c程序的代码和
7、数据如何定位 系统定义 .cinit存放程序中的变量初值和常量 .const存放程序中的字符常量、浮点常量和用const声明的常量 .switch存放程序中switch语句的跳转地址表 .text存放程序代码 .bss为程序中的全局和静态变量保留存储空间 .far为程序中用far声明的全局和静态变量保留空间 .stack为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果 .sysmem用于程序中的malloc、calloc、和realoc函数动态分配存储空间
8、 CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件,其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用,常常令人困惑,系统出现的问题也经常与它们的不当使用有关。CCS是DSP软件对DOS系统继承的开发环境,CCS的命令文件经过DOS命令文件长时间的引申发展,已经变得非常简洁(不知道TI文档有没有详细CMD配置说明
此文档下载收益归作者所有