- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教你如何使用CCS进行DSP编程-从入门到精通【最全】,dspccs编程基础,dsp编程软件ccs,ccs入门到精通,dspccs,dspccs软件下载,ccsdsp教程,dspccs软件,ccsdsp开发环境,dspmallocccs
使用CCS 进行DSP 编程(一)
——CCS 编程入门
pacificxu
TI 公司提供了高效的C 编译器和集成开发环境Code Composer Studio,学
习‘C6X 的编程应该从学习CCS 的使用开始。
首先安装CCS,CCS 的安装有详细的说明,并配有简短的Quick Time 的多媒
体介绍,对于没有购买CCS 的用户,可以从TI 处得到30 天的试用版 (没有硬件
仿真功能)。
使用CCS 前需要对CCS 进行设置,以Simulator 为例,运行Setup CCS C6000
1.20,安装Device Driver,对于有硬件支持的仿真器,可以选择配套的CCS 驱
动,设置完成的画面如下图所示:用户的界面大致相同。
接下来就可以运行CCS 了,CCS 提供了比较好的例子,对于初学者,仔细学
习这些例子,会起到事半功倍的效果。在CCS 的Help 菜单的Tutorial 子菜单下,
给出了四个教程,分别是:Code Composer Studio Tutorial、Advanced DSP/BIOS
Tutorial、Compiler Tutorial 和RTDX Tutorial,用户可以从简单的CCS 功能
开始,如创建一个工程文件Project,到创建一个完善的用户程序一步一步的进
行。
下面是Code Composer Studio Tutorial 的例子:
分别从生成一个简单的 “Hello World”程序,到使用DSP/BIOS 功能,到程序的
调试,实时分析,I/O 操作等分6 课来讲解,可以领略TI 的CCS 的强大功能。
下面以“Hello World”程序为例讲一下CCS 的使用。
首先打开一个Project 文件
这些文件的路径如下图所示:
打开 hello.mak,会看到如下图所示的界面。将File View 栏中的“+”号
都打开,会看到整个项目工程中的所有资源。
其中*.c 文件和*.h 文件与普通的 C 语言编程中是一致的(TI 编译器支持
ANSI C 标准)。需要指出的是三个文件:HELLO.CMD、RTS6201.LIB、VECTORS.ASM。
HELLO.CMD 文件给出了程序空间和数据空间的设置、及编译后各程序段在程序或
数据空间的具体位置。RTS6201.LIB 文件为DSP 运行时库,VECTORS.ASM 为中断
向量表,都是区别于纯软件编程的独到之处,熟悉以后会有更深的体会。
下图为 HELLO.CMD 文件的代码,MEMORY 分为程序空间 IPRAM 和数据空间
IDRAM,并分别给出了起始地址origin 和长度 len,各段在MEMORY 空间的分配
也作了定义。对于实际的目标板硬件系统,由实际的存储器空间及DSP 芯片上的
存储空间决定。对于软件仿真,可以不考虑有没有MEMORY 资源。
直接对该工程进行编译,会得到如下结果,试一下吧!也可以试一下快捷工
具条上的按钮,随便点击鼠标右键,也会有意外的收获。怎么样?没有错误吧!
自己在编写工程项目文件时,经常会遇到下面的问题,没有C 语言程序的入
口函数,细心比较一下会发现工程文件中缺少了一个运行时支持库
RTS6201.LIB,不同的DSP 芯片需要不同的运行时库来支持。
下面向项目工程中加上运行时库RTS6201.LIB 来纠正刚才的编译错误,同样
的方法可以用来向工程中添加*.c、*.cmd、*.asm 文件。*.h 文件在编译时会自
己找到(当然需要在环境变量中设置好啦,一般不需要改动)。
运行时库在TI 的缺省路径下,注意将文件类型改为*.lib,
大家可能注意到,在HELLO.C 文件中有这样的定义:
#ifdef FILEIO
int i;
char scanStr[BUFSIZE];
char fileStr[BUFSIZE];
size_t readSize;
FILE *fptr;
#endif
#ifdef FILEIO
/* clear char arrays */
for (i = 0; i BUFSIZE; i++) {
文档评论(0)