首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于TMS320VC33系列资料讲解(5)

关于TMS320VC33系列资料讲解(5)

四、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文件了

继承事业,薪火相传
返回列表