编写一个以C 语言为基础的DSP程序.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1.2 : 编写一个以C 语言为基础的DSP程序一.实验目的1.学习用标准C语言编制程序;了解常用的C语言程序设计方法和组成部分。2.学习编制连接命令文件,并用来控制代码的连接。3.学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。4.熟悉使用软件仿真方式调试程序。二.实验设备PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio 2.0软件。三.实验原理1. 标准C语言程序CCS支持使用标准C语言开发DSP应用程序。当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c(如:volume.c)。CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为.out。由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。所以用户工程中需要注明使用C的支持库。2. 命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。3. 内存映射(map)文件的作用一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。4.程序设计要求程序框图(图2-1):四.实验内容与步骤1.实验准备设置软件仿真模式。建立新的工程文件(1)双击桌面上图标,启动Code Composer Studio 2.21。(2)进行以下设置(如图2-2):3.编辑输入源程序(1)C语言程序-先新建源程序窗口:-输入源程序:int x,y,z;main(){x=1; y=2;while ( 1 ){z=x+y;}} 图2-3 新建源文件-保存源程序为CProgram.c:(2)连接命令文件-如同第(1)步操作,建立空的源程序窗口。-输入连接命令文件内容:-l rts2800.lib-stack 400h-heap 100MEMORY{PAGE 0 : PROG(R) : origin = 0x3E8000, length = 0x10000PAGE 0 : BOOT(R) : origin = 0x3FF000, length = 0xFC0PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2PAGE 0 : VECTORS(R) : origin = 0x3FFFC2, length = 0x3EPAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000图2-4 保存为c文件PAGE 1 : H0RAM(RW) : origin = 0x3F8000, length = 0x2000}SECTIONS{/* 22-bit program sections */.reset : RESET, PAGE = 0vectors : VECTORS, PAGE = 0.pinit : PROG, PAGE = 0.cinit : PROG, PAGE = 0.text : PROG, PAGE = 0/* 16-Bit data sections */.const : L0L1RAM, PAGE = 1.bss : L0L1RAM, PAGE = 1.stack : M1RAM, PAGE = 1.sysmem : M0RAM, PAGE = 1/* 32-bit data sections */.ebss : H0RAM, PAGE = 1.econst : H0RAM, PAGE = 1.esysmem

文档评论(0)

整理王 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档