完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CCS建立一个完整的工程,至少需要以下4个文件:存储器分配cmd文件、C语言系统库rts2xx.lib、包含main函数的c源文件、矢量跳转表asm汇编文件。
(1)cmd命令文件是用来分配存储空间的。 (2)rts2xx.lib是C语言系统库,包含了编译器提供的所有功能:①初始化C语言环境(入口地址是_c_int0),②设置堆栈,③提供标准的c语言函数库。 (3)有且只有一个包含main函数的c源文件,系统库初始化完毕后就把控制权交给main()函数了。 (4)矢量跳转表文件,通常是汇编文件(asm)形式,此文件需要准确的定位在程序的起始地址,其内容是汇编语句中的无条件跳转语句“B”。 程序执行的常规流程是:矢量表的第一条指令可设置为"B _c_int0” ,从而在上电复位后,把控制权交给系统库,系统库初始化完毕后,把控制权交给main()函数。 1.include头文件(.h)的主要作用 头文件,一般用于定义程序中的函数、参数、变量和一些宏单元,同库函数配合使用。因此,在使用库时,必须用相应的头文件说明。 2.DSP/BIOS CONFIG FILES 开发基于DSP/BIOS的程序保存BIOS配置之后自动产生的文件。在保存BIOS配置时候会产生program.cbd/programcfg.h54/programcfg.s54/programcfg.cmd/programcfg.h/programcfg_c.c(C5000的example,program为你的项目名),这些文件被分配在project不同目录。 3.Source Files 源程序,实现DSP系统指定功能的主要代码部分 4.Program.cmd 链接文件,在源文件经过汇编器(Assembler)输出的OBJ Files(目标文件)需要通过Linker(链接器)才能得到OUT files,在链接阶段Linker根据.cmd里面存储区、Section分配以及lib来链接rst.lib、csl.lib、DSP/BIOS library跟对段的重定位 5.Library Filers的作用 Rst.lib:C语言实时运行支持库,建立C运行环境,由_c_int00主要完成设置堆栈指针、初始化全局变量、调用main() Csl.lib:芯片支持库,实现片内外设的操作 DSPLIB/IMGLIB:信号处理库,利用针对不同DSP的优化的函数进行数学运算 通用的视/音LIB:例如263、264、jpeg、G.7XX、mp3、wmv。。。 其他自己封装的LIB:例如bsl.lib(board source library),对DSP系统板上资源的操作。 asm文件包含中断表asm文件可能是线性汇编用的cmd文件是资源的分配,可以把指定的代码 数据 放在你想放的存储区域 cmd文件是命令链接文件,里面指定了片上资源的分配。CMD文件时要自己写的(用文本编辑器如写字板),而且该文件对于DSP编程是非常重要的,硬件不同,这个文件也就不一样,如果使用错误的CMD配置文件,不仅无法编译,更加无法下载。 其他文件: .opt工程关于开发环境的参数文件。如工具条位置等信息; .aps (AppStudio File),资源辅助文件,二进制格式,一般不用去管他. .clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建. .dsp (DeveloperStudio Project):项目文件,文本格式,不过不熟悉的话不要手工修改.DSW(DeveloperStudio Workspace)是工作区文件,其他特点和DSP差不多. .plg 是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大.在Tools->Options里面有个选项可以控制这个文件的生成. .hpj (Help Project)是生成帮助文件的工程,用microsfot Help Compiler可以处理. .mdp (Microsoft DevStudio Project)是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的DSP格式. .bsc 是用于浏览项目信息的,如果用Source Brower的话就必须有这个文件.如果不用这个功能的话,可以在Project Options里面去掉Generate Browse Info File,可以加快编译速度. .map 是执行文件的映像信息纪录文件,除非对系统底层非常熟悉,这个文件一般用不着. .pch (Pre-Compiled File)是预编译文件,可以加快编译速度,但是文件非常大. .pdb (Program Database)记录了程序有关的一些数据和调试信息,在调试的时候可能有用. .exp 只有在编译DLL的时候才会生成,记录了DLL文件中的一些信息.一般也没什么用. .ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。build后会自动生成。CMD文件时要自己写的(用文本编辑器如写字板),而且该文件对于DSP编程是非常重要的,硬件不同,这个文件也就不一样,如果使用错误的CMD配置文件,不仅无法编译,更加无法下载。这里给一个CMD文件给楼主参考一下,是以前做毕设时写的 /*----------------------------------------------------------------------*/ /* CMD命令文件 - 存储空间划分(LF2407A) */ /*----------------------------------------------------------------------*/ MEMORY { PAGE 0: VECS :origin = 0000h , length = 0040h /* 程序复位 */ PROG :origin = 00b0h , length = 7F50h /* 片内FLASH */ PAGE 1: B2: origin = 0060h , length = 0020h /* 内部双访问RAM,B2 块 */ B0B1: origin = 0200h , length = 0200h/* 内部双访问RAM,B0、B1合并块 */ SARAM_IN:origin = 0800h , length = 0800h/* 内部单访问RAM,数据区 */ SARAM_EX:origin = 8000h , length = 8000h/* 外部扩展RAM,数据区 */ } /*----------------------------------------------------------------------*/ /* CMD命令文件 - 程序段、数据段配置(LF2407A) */ /*----------------------------------------------------------------------*/ SECTIONS { .vectors : { } > VECS PAGE 0 /* 指向自己定义的中断向量表 */ .text : { } > PROG PAGE 0 /* 程序代码 */ .cinit : { } > PROG PAGE 0 .switch : { } > PROG PAGE 0 .data : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .bss : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .const : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ .stack : { } > SARAM_IN PAGE 1 /* 堆栈,片内单访问RAM */ .sysmem : { } > SARAM_IN PAGE 1 /* 片内单访问RAM */ } |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 19:56 , Processed in 0.588183 second(s), Total 54, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号