![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| TMS320VC33系列讲座资料 第四讲 | |||||
作者:Free 文章来源:本站原创 点击数: 更新时间:2007-8-16 ![]() |
|||||
|
第四讲 VC33中CMD文件的写法 呵呵,又来了哦!前段时间忙着本科生的毕业设计,没时间写,今天我们的讲课又开始咯。做好准备了吗:-) 前面主要讲了一下DSP的硬件设计,让大家大致了解了一下。从今天开始,我将向大家介绍VC33的软件设计。这一讲向大家介绍VC33中CMD文件的写法。 所谓CMD文件就是Command文件,即连接命令文件。 1、段 一般来讲,通用目标文件格式(COFF)一般有三种:*.obj、*.lib和*.out。 1)汇编语言中的段 1>未初始化段 .bss——定义变量存放空间 .usect——用户自定义未初始化段 2>已初始化段 .text——可执行的指令码 .data——初始化数据或表格 .sect——用户自定义段 .asect——类上 2)C语言中的段 1>未初始化段 .bss——定义变量存放空间、存放全局、静态变量 .stack——存放C中的栈 .system——存放C中的堆(heap) .const——存放特殊的常数、字符 2>初始化段 .text——指令代码 .cinit——存放全局/静态变量执行初始化的常数数据 .switch——存放C中switch语言产生的表格 明白了吗?呵呵。慢慢来:-) 2、CMD文件 1)输入/输出定义:-l rts30.lib -o DEMO1.out 这两项可由菜单设置。 2)MEMORY命令——指令存储空间 格式如下: MEMORY { PAGE0 :name1[atlr]:Origin = C1,l = C2 PAGE1 :…… …… } 举个例子: MEMORY { RAM0 :O = 800000h ,l = 8000h //片内RAM0 RAM1 :O = 809800h ,l = 800h //片内RAM1 RAM_EX :O = A00000h ,l = 1000h //片外SRAM } 3)SECTIONS——描述“段”定义在哪个物理地址 格式如下: SECTIONS { name :[propertry,propertry,……] } 其中propertry属性是什么? 1>load——定义段存放在何处 load =(或>) 800100h 2>run——定义段在何处运行 run =(或>) 800300h 举个例子: SECTIONS { .text :> RAM .bss :> RAM .stack :> RAM_EX } 注意:伪指令MEMORY和SECTIONS只能大写! 下面给出一个完整的CMD文件。 -w -stack 400h -heap 400h -l rts30.lib MEMORY { RAM : o = 800000h, l = 8000h RAM1: o = 809800h, l = 800h SRAM: o = 1000h, l = 3efffh FLASH: o = 400000h, l = 3fffffh } SECTIONS { .text: > RAM .data: > RAM .bss : > RAM .cinit: > RAM .stack:> RAM1 .const:> RAM } 大家会了吗? 总之,CMD 它是用来分配rom和ram空间用的,告诉链接程序怎样计算地址和分配空间。 其实要是在支持BIOS的DSP中,根本不用写CMD文件,直接利用图像配置界面自动生成的CMD文件即可。但是像2407和VC33不支持BIOS的DSP,只能手写CMD文件了。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|