《TMS320C3X系列-DSP原理与开发技术》课件第7章_第1页
《TMS320C3X系列-DSP原理与开发技术》课件第7章_第2页
《TMS320C3X系列-DSP原理与开发技术》课件第7章_第3页
《TMS320C3X系列-DSP原理与开发技术》课件第7章_第4页
《TMS320C3X系列-DSP原理与开发技术》课件第7章_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章开发工具与集成开发环境

7.1引言7.2代码生成工具7.3代码调试工具7.4CC集成开发环境本章小结

思考题与习题

7.1引

可编程DSP芯片的开发需要一整套完整的软硬件开发工具。通常,DSP芯片的开发工具可以分为代码生成工具和代码调试工具两大类。代码生成工具的作用是将用C语言或汇编语言编写的DSP程序编译汇编并链接成为可执行的DSP程序。代码调试工具的作用则是对DSP程序及系统进行调试,使之能够达到设计目标。本章分别介绍TI公司的这两类开发工具,并介绍它们的使用方法。之后介绍CC集成开发环境的程序设计方法,对初学者来说,可以很好地在此指导下使用这些工具和设计方法。7.2代码生成工具

7.2.1代码生成工具程序

代码生成工具程序主要包括以下几种类型的程序:①C编译器;②汇编器和链接器;③辅助程序,如文档管理程序和代码格式转换程序等;④库文件;⑤RTS(Runtime-Support)头文件。为了对代码生成工具有一个全面的了解,在这里我们给出了浮点DSP芯片的代码生成工具。TMS320C3x/C4xV4.50版本的代码生成程序包主要包括如下文件:(1) CL30.EXE——一步编译汇编链接程序;(2) AC30.EXE——文法分析程序;(3) OPT.EXE——优化程序;(4) CG30.EXE——代码生成程序;(5) AR30.EXE——文档管理程序;(6) MK30.EXE——库生成程序;(7) ASM30.EXE——汇编应用程序;(8) CLIST.EXE——交叉列表程序;(9)

LNK30.EXE——链接程序;(10)

ROM30.EXE——代码格式转换程序。库文件包括:(1) RTS30.LIB——TMS320C3x运行支持库;(2) RTS40.LIB——TMS320C4x运行支持库;(3) RTS.SRC——源码运行支持库。

TMS320C3x/C4x浮点C编译器的RTS头文件共有12个:

ASSERT.H——定义在程序运行时插入失败诊断信息的assert宏。

LIMITS.H——定义一些数值表示的极值。

STDDEF.H——定义了两个宏和两个类型,为多个运行支持函数所使用。

CTYPE.H——定义了字符测试和转换的函数。

MATH.H——定义三角、指数、双曲等数学函数。这些函数的输入值和返回值均为

double类型。除非明确表示,否则所有三角函数均用弧度为单位。

STDLIB.H——说明了多个函数、宏和数据类型。如求绝对值函数abs()和labs()、除法函数div()和ldiv()等。此外,还说明了一些常用的库函数,如字符串转换、伪随机序列产生、程序退出等函数。

ERRNO.H——如果数学函数的输入参数是一个无效的参数值或函数返回有一个超过定义范围的结果,则发生错误。在这种情况下,一个名为ermo的变量被设置为下列两个宏之一的值:

EDOM域错误(无效参数)

ERANGE范围错误(无效结果)调用数学函数的C代码可以读到errno的值以检查错误条件。errno变量在errno.h中说明,在errno.c中定义。

STDARG.H——有些函数具有数目可变和类型不同的参数,即所谓的变参数函数。stdarg.h头文件说明了使用变参数函数的宏和类型。

STRING.H——说明了可进行字符串操作的标准函数。如移动或复制整个或部分字符串、字符串比较、在字符串中搜索字符和确定一个字符串的长度等。

FLOAT.H——定义了一些数值表示参数。

SETJMP.H——定义了绕过正常函数调用和返回规则的类型、宏和函数。

TIME.H——说明了可进行日期和时间操作的宏、数据类型和函数。如clock()和time()等。7.2.2宏汇编器和链接器

TMS320宏汇编器和链接器是一种将汇编语言源文件转化为可执行目标代码的代码生成工具。其主要特点包括:

(1)宏和库函数支持;

(2)允许条件编译;

(3)支持可重定位模块;

(4)具有完整的错误诊断功能;

(5)符号表和交叉参考。汇编器的作用是将汇编语言源文件编译为机器语言目标文件。源文件可以包含指令、汇编器命令和宏命令。汇编器命令控制汇编过程的各个方面,如源列表格式、符号定义以及源代码在块(section)中的放置等。链接器的作用是将目标文件组合成一个可执行的目标模块。在生成可执行模块的过程中,链接器进行重定位操作并处理外部引用符号。链接器输入的文件采用COFF目标文件格式。链接器的主要功能包括:(1)定义一个与目标系统存储器相符的存储器模式;(2)组合目标文件块;(3)将块分配到指定的存储器区域;(4)定义和重定义全局符号以分配特定的值;(5)重定位块以分配最终的地址;(6)处理输入文件之间的未定义外部符号。7.2.3C编译器

C编译器是一种C语言程序自动编译为DSP汇编程序的代码生成工具。TI对其生产的各类DSP芯片都提供了相应的C编译软件工具程序。C编译器为开发DSP芯片提供了一种极为便利的软件开发手段。

TI公司开发的DSP芯片C编译器提供了符合ANSI标准的运行支持库,而且可以一步将程序从C源程序编译为目标代码文件,这种目标代码可以进行重定位,经链接之后就可以形成最终的目标代码。具体的内容可参考第7章的ANSIC编译器内容。7.2.4文档管理器和库生成器

TMS320定点和浮点代码生成程序包中分别提供了dspar.exe和ar30.exe两个文档管理程序。文档管理程序的主要作用是将多个独立文件组合成一个文档(archive)或库(library)。用文档管理器可以生成不同类型的库,例如,可以用文档管理器生成汇编器所需的源文件库;方法是首先编写好多个源文件,然后用文档管理器将它们组合成一个源文件库。也可以用文档管理器生成链接器所需的目标文件库,方法是在编写好各个源文件之后,用汇编器对各个源文件进行汇编,然后用文档管理器将目标文件组合成一个目标文件库,链接时可以指定目标文件作为链接器的输入。除了可以将多个文件组合成一个库之外,文档管理器还可以对已有的库进行其他操作。例如,可以对已有的库进行文件添加、文件删除、文件替换和文件提取,也可以列出库内所有的文件。dspar和ar30提供的命令和使用方法完全相同,常用选项命令有:文件添加命令 -a,文件删除命令 -d,文件替换命令 -r,列出库中文件命令 -t,文件提取命令 -x。其他系列的文档管理程序的用法基本相同。下面我们以dspar为例,举例说明文档管理器的使用方法。

1) dspar-afunction.libsine.objcos.objflt.obj如果function.lib不存在,则此命令作用是将三个文件组合成一个function.lib库。如果function.lib已经存在,则此命令的作用是在function.lib库中添加三个文件;

2) dspar-tfunction.lib列出function.lib库的所有文件。

3) dspar-rfunction.lib sine.obj用新的sine.obj替换库中的sine.obj.

4) dspar-dfunction.lib flt.obj删除function.lib库中的flt.obj文件。

5) dspar-xmacros.lib push.asm从macros.lib库中提取出push.asm文件。如果想修改库中的某一个文件,可以用-x命令从库中提取出这个文件,修改之后再用-r命令替换。使用TMS320的DSP芯片C编译器,可以用不同的选项来对源程序进行编译。程序包中所提供的RTS库是采用最常用的一组选项生成的,但这不一定能满足特殊应用的需要,为使用户能够根据应用的需要生成RTS库,程序包中不仅提供了RTS目标库,还提供了源文件库。用dspmk或mk30就可以生成符合应用需要的TMS320C3x/C4xRTS库。用dspmk或mk30生成库时,所有的选项和C编译器的选项相同。例如:mk30-v30-o-x-mrrts.src-lrts30.lib从rts.src源文件库生成TMS320C3x的RTS库rts30.lib。7.2.5代码格式转换器代码格式转换器的作用是将链接器生成的.out文件(COFF文件格式)转换为其他文件格式,如Intel的Hex文件格式、Tektronix的文件格式或Ti-tagged文件格式,以便于烧制EPROM,因为大多数的EPROM编程器都不接受COFF文件格式。在TMS320C3x/C4x代码生成程序包中分别提供了dsprom.exe和rom30.exe两个程序,它们的使用方法相同。下面以dsprom.exe为例说明代码格式转换器的用法。代码格式转换的命令格式为:dsprom[-选项][COFF输入文件[输出文件1[输出文件2]]]其中,选项有四种:

-x——输出为Tektronicshex格式;

-i——输出为Intelhex格式;

-w——输出为Intelword格式;

-t——输出为Ti-tagged格式;如果不指定选项,则默认的输出文件格式为Tektronicshex格式。输入文件若不指定扩展名,则默认的扩展名为 .obj。若不指定输出文件名,则输出文件的扩展名为 .hi、.lo、.hex和 .tag等。例如:

1) dsprom-itest.out生成Intelhex格式的两个文件test-hi和test.lo,其中test.hi包含高字节部分,test.lo包含低字节部分。

2) dsprom-xtest.out生成Tektronics格式的两个文件test.hi和test.lo,分别包含高字节和低字节。

3) dsprom-wtest.out生成Intel字格式的一个文件test.hex。

4) dsprom-ttest.out生成Ti-tagged格式的一个文件test.tag。7.2.6编译汇编链接应用举例下面我们以TMS320C3x为例来介绍DSP程序的编译、汇编和链接方法。对于用汇编语言编写的DSP程序,只有汇编和链接两个步骤;对于用C高级语言编写的DSP程序,则首先需要将C程序编译转换为汇编程序,然后进行汇编和链接操作。

1.汇编程序的汇编方法用汇编语言编写的DSP程序只须用汇编工具程序进行汇编即可得到目标文件。例如,有一个名为sample.asm的DSP汇编程序,用下列命令即可得到其目标文件sample.obj:asm30-v30sample.asm命令行中,选项-v30表示选用TMS320C3x。

2.C程序的编译和汇编

C程序的编译方法可以有两种方法:一种是分步编译法,另一种则是常用的一步编译法。下面我们来说明这两种方法。

7.2.1节中我们介绍了TI提供的代码生成工具中的应用程序,分步编译法就是利用其中的若干个应用程序来对C程序分几个步骤进行编译汇编。设有一个名为samples的C语言程序,则采用分步编译法对samples.c程序的编译汇编过程如下。

(1)文法分析:ac30-v30samples.c,生成sample.if的中间文件;

(2)程序优化:opt30-v30sample.if,生成sample.opt文件;

(3)代码生成:cg30-v30sample.opt,生成sample.asm汇编文件;

(4)汇编:asm30-v30sample.asm,生成sample.obj目标文件。

2) 一步编译法用上述方法进行编译的优点是步骤比较清晰,但实际使用时会感到比较麻烦。因此,TMS320C3x代码生成工具程序中还提供了c130.exe应用程序,利用这个程序可以对C程序一步从源程序编译汇编和链接生成最终的sample.out文件。例如,下面的命令可以将samples.c编译汇编和链接生成sample.out文件:c130-v30-o2sample.c-zsample.cmd其中,选项-o2表示激活最高级的优化,-z表示需要链接,sample.cmd为链接控制命令文件,其内容应根据实际系统确定。例如,采用默认存储器分配的链接控制命令文件如下:/*sample.cmd*/

-c /*ROM初始化*/

sample.obj /*目标文件*/

-1rts30.lib /*TMS320C3x运行库*/

-osample.out /*链接输出文件*/在实际DSP应用中,由于程序模块较多,有的是用C语言编写的,有的是用汇编语言编写的,有的还可能采用两种语言混合编写。因此,对C程序一般可采用两步法。第一步是用cl30对C程序进行编译和汇编生成 .obj文件,但不进行链接;第二步是用下面的方法对所有的.OBJ文件进行链接。

3.链接方法用c130和asm30对C程序或汇编程序进行编译或汇编后生成了 .obj文件,将多个目标文件链接以形成最终的输出文件的方法是:

Lnk30sample.cmd其中,sample.cmd是一个用户定义的链接命令控制文件。7.3代码调试工具

7.3.1C/汇编源码调试器

C/汇编源码调试器是一种工作在PC上的先进的软件接口,它与调试工具(如软件模拟器、评价模块、软件开发系统、仿真器)配合使用,调试器可以完全控制用C语言或汇编语言编写的程序。用户程序既可用C语言调试,也可用汇编语言调试,还可以进行C和汇编语言的混合调试。调试器提供了非常友好的用户界面,面向窗口、支持鼠标和菜单式的接口使用户不必记忆复杂的命令,使用十分方便。

1.调试器的主要特征调试器的主要特征如下:

(1)提供完善的控制程序运行的特征:如条件执行,单步执行,断点设置和清除,批文件执行命令等。

(2)多操作支持:增强了并行处理能力以支持TMS320C40的多处理器的调试。

(3)多级调试:可同时调试C和汇编语言,调试C语言时,用户可同时观察C源码及由C源码产生的目标代码的反汇编,调试器也可用做汇编语言调试器。

(4)可灵活配置的界面:由于调试器的显示界面是可配置的,因此用户可根据需要设置不同的界面,显示的颜色、窗口的边界、尺寸和位置等都可以改变。

(5)灵活的命令输入:输入命令的方式灵活多样,可用键入命令法、鼠标、功能键或下拉菜单输入。调试器具有命令记忆功能,不必重新输入即可执行以前输入的命令。

(6)全屏幕编辑:任何窗口中显示的数据值可很容易地更改。

(7)连续更新:调试器可连续更新屏幕上的信息,并高亮显示更改的数据。

(8)综合数据显示:用户可方便地在屏幕上建立窗口,以显示和编辑变量、数组、结构及指针等数据类型。

(9)功能强大的命令集:调试器提供了一个充分利用C表达式的命令集。

2.调试器的调试模式调试器提供三种调试模式:自动模式,汇编模式,混合模式。

(1)自动模式:在自动模式中,调试器自动显示当前正在运行的代码,或者是汇编语言,或者是C语言。这是默认的调试模式。

(2)汇编模式:在这种模式下,显示的是汇编语言,不管运行的是C语言还是汇编语言。

(3)混合模式:在这种模式下,可以同时显示C语言程序和汇编程序。

3.调试器窗口调试器能显示多种不同类型的窗口。窗口的名称显示在窗口的顶行。调试器共有八种类型的窗口,可以分为3大类。

1)命令显示窗命令显示窗提供一个可以键入各种命令的区域,并显示各种信息,如进程信息、错误信息或命令输出。

2)代码显示窗代码显示窗显示汇编语言代码或C语言代码。有三种代码显示窗口:

(1)反汇编窗口:显示内存的反汇编码;

(2)文件窗口:显示任何文本文件,主要是C语言源程序;

(3)进程调用窗口:运行C代码时显示当前跟踪运行的函数进程。

3)数据显示窗数据显示窗用以观察和修改各种类型的数据。有四种数据显示窗口:

(1)内存显示窗口:显示一定范围的内存内容;

(2) CPU窗口:显示处理器各个寄存器的内容;

(3)数据显示窗口:显示一个集合的数据类型,如数组、结构等;

(4)观察窗口:显示己选定的数据,如变量、寄存器或内存的某个单元。调试器的窗口可任意移动或改变大小,在数据显示窗口中可以编辑其中的任一个值。当然,在做这些工作之前,必须首先选择好窗口并使之成为活动窗口。

4.调试器的命令输入调试器提供了非常灵活方便的命令输入方法。调试器提供的主要命令输入方法如下。

1)命令行输入命令行输入就是在调试器的命令窗口中键入命令。例如:

gomain;执行到程序的main处

winCPU;激活CPU窗口利用调试器的记忆功能可以用简便的方法输入以前键入过的命令。例如,用TAB键可以向后逐条移动执行过的命令,用TAB+SHIFT键可以向前逐条移动执行过的命令,选择好以后按回车键即可。

2)菜单输入菜单输入是一种常用的输入方法。选择菜单时可以采用三种不同的方法:鼠标输入、按键输入和热键输入。热键输入主要用于没有下拉菜单的主菜单,如RUN,STEP和NEXT。鼠标输入比较方便,用鼠标左键点中相应的主菜单和下拉菜单即可。按键输入时首先同时按下ALT键和代表主菜单的高亮字母以选择主菜单,然后按下代表下拉菜单的高亮字母即可。当然,也可以用方向键选择好下拉菜单再按回车键。

3)批文件输入调试器提供的take命令可以使调试器执行一个批处理文件。设有一个批处理文件batcom.fil的内容如下:

reset

loadsample.out

gomain则在调试器的命令行中键入takebatcom.fil,就可使调试器在复位系统之后,装入sample.out并执行至程序的main处。

5.调试器使用方法简介使用调试器调试程序主要有以下5个步骤:

1)调试器配置

在使用调试器之前,首先必须根据需要配置调试器。调试器配置包括内存配置和显示配置,其中内存配置尤为重要。内存配置用于告诉调试器哪些内存有效,哪些内存不能进行存取。因此提供给调试器的内存映像应与实际目标系统的内存配置相一致,当然内存映像也应与链接命令文件中的MEMORY定义相匹配。当内存映像配置好以后,启动调试器运行程序时,如果访问一个没有定义的存储区,则调试器将显示一个错误信息。一般地,配置内存可在启动调试器之前进行。方法是在调试器能够自动读到的批文件init.cmd中放入内存映像命令。启动调试器,在初始化过程中读入init.cmd的命令,从而完成内存配置。需要注意的是,对于不同的调试环境,init.cmd的文件名有所不同,如模拟器中的文件名为siminit.cmd,仿真器中的文件名为emuinit.cmd等。例7.1TMS320C3x存储映像配置示例。MR;

重设内存映像MA0x000000,0x020000,RAM ;SRAM静态RAMMA0x804000,0x001000,RAM ;COMPORT通信口MA0x809800,0x000400,RAM ;RAM0片内RAM块0MA0x809c00,0x000400,RAM ;RAM1片内RAM块1;;存储器映像的外设;MA0x808000,0x000010,RAM ;DMAMA0x808020,0x000010,RAM ;TIMER0定时器0MA0x808030,0x000010,RAM ;TIMERI定时器1MA0x808040,0x000010,RAM ;SPORT0串行口0MA0x808050,0x000010,RAM ;SPORT1串行口1MA0x808060,0X000001,RAM;XBUSCTL扩展总线控制MA0x808064,0x000001,RAM;PBUSCTL主总线控制;MAPON;

启动内存映像其中,MA(MapAdd)命令定义了有效的内存范围,并标识这些范围的读写特征。地址表示一段存储器的起始地址,长度表示该段存储器的长度,类型表示这段存储器的读写特征;ROM表示只读,RAM表示可读可写,WOM表示只写,PROTECT表示不可存取。TORT表示输入口,OPORT表示输出口,IOPORT表示输入/输出口。MAPON命令用于启动内存映像。

Init.cmd是在启动调试器时自动装入的。如果在启动后不想用init.cmd中的内存配置,则也可以调入另一个存储器配置。方法是创建另外一个内存配置文件。文件内容的格式如下:

MR;

重设内存映像

MA命令;定义新的内存映像

MAPON;启动内存映像

设文件名为mem.new,则在启动调试器后,用下列命令读入即可对内存重新配置为mem.new的内容:

takemem.new在调试过程中也可以修改内存映像。如用MA命令可增加一段内存,用MD命令可删除一段内存,用MR命令则删除内存映像中的所有内存段,还可以用ML命令列出已经定义的内存及其读写特征。除了可对内存进行配置外,屏幕颜色、窗口位置、窗口大小和边框类型等也可以进行配置。在默认情况下,启动调试器自动调入init.clr文件中的配置。如果要修改配置,则在修改后将当前配置存入一个文件,下次启动调试器后再装入这个配置文件即可,也可将修改后的配置存入init.clr中,则启动调试器时自动装入修改的配置,不必重新装入。

2)装入程序调试器装入运行并调试的程序是编译汇编链接后生成的.out文件。装入的方法是在主菜单的FILE命令下选择LOAD命令,然后键入文件名即可。如果是由C程序得到的文件,则同时在FILE窗口中显示相应的C语言程序。

3)运行程序

运行程序的方法主要有run,runb,go、单步运行等,使用方法如下。

run是最基本的运行命令,执行run命令后,程序开始运行直至遇到断点或按了Esc键或鼠标左键。

runb用来运行并计算一段程序的时钟周期数。若要计算某一段程序执行的周期数,首先在这段程序的开始和结束处各设置一个断点,然后运行run至第一个断点,再运行runb至第二个断点,在命令窗口输入?clk命令,就可以得到该段程序的执行周期数。

go命令用来执行至程序的某一点,如gomain就使程序执行至main标号处。单步运行分step和next两种。用step命令调试C语言时,每执行一次就执行一条C语句,调试汇编语言时,则每执行一次就执行一条汇编语句。next命令与step命令类似,所不同的是在遇到函数调用时,不进入函数内部,而直接执行到调用语句的下一条语句。运行程序时,还可以有条件地运行。如:

runi<100 即只要i<100,调试器就一直运行;

step50 即step单步运行50次;

next100 即next单步运行100次。

4)观察运行结果调试程序时,观察运行结果是检验程序运行正确与否的重要一步。调试器提供了灵活的观察运行结果的手段。观察数据一般有下列三种方法:

(1)直接在己有的显示窗口中观察。如在CPU窗口中可以观察到处理器的寄存器值,在存储器窗口中可以观察到一段内存的内容,首先在命令窗口中键入要观察的内存的首地址,如要观察TMS320C3x从0x809800开始的一段内存,则键入:

mem0x809800

(2)在命令窗口中用?i命令观察。这种方法比较适合于观察一些临时的变量。如:

?i 观察变量i的内容;

?AR0 观察寄存器AR0;

?*0x809800,x 以十六进制观察0x809800内存的内容;

?f0 观察R0的浮点值。

(3)增加显示窗口跟踪变量。这类显示窗口又有两种。一种是WATCH窗,可以观察单个变量、寄存器或指定的存储单元。如:

wai 观察变量i;

wasp 观察堆栈指针;

wa0x809800 观察0x809800内存的内容。另一种是DISP窗,可以观察集合数据类型,如数组、结构等。例如:

dispindata 观察数组indata;

disp*(float*)0x809800 以浮点形式观察0x809800内存。

5)编辑和更改数据编辑、更改数据的方法主要有两种。一种方法是直接在数据显示窗口中更改,如在CPU窗口中可以更改寄存器值,在存储器窗口中可以更改内存的内容,也可在DISP窗口和WATCH窗口中更改数据内容。另一种方法是利用表达式的附加作用更改数据,如:

?AR3++AR3内容加1;

?AR0=8AR0等于8。7.3.2初学者工具DSK初学者工具DSK(DSPStarterKit)是TI公司提供给初学者进行DSP编程练习的一套廉价的实时软件调试工具。DSK板上除了有一片DSP芯片之外,还提供了可用于声音输入和输出接口的模/数和数模接口芯片(一般为一片TLC32044),它可以与PC进行通信,在PC上汇编后的程序可以通过串行或并行接口下载到DSP芯片的内部RAM执行。此外,DSK板上还将DSP芯片的地址和数据总线引出,便于用户对DSK板进行存储器等硬件资源的扩充,并在DSK硬件的基础上形成用户独立的DSP系统。以下是TMS320C3xDSK所提供的软硬件资源。(1) 50 MHz的TMS320C31(内部具有2K字的RAM);(2) A/D和D/A转换芯片TLC32044;(3)与PC之间的标准并行接口;(4)汇编器;(5)调试器软件接口。7.3.3软件模拟器软件模拟器是一种模拟DSP芯片各种功能并在非实时条件下进行软件调试的调试工具,它不需要目标硬件支持,只需在计算机(如PC)上运行,是一种廉价、方便的调试工具。当然,由于DSP芯片用软件模拟实现,运行速度慢是软件模拟器的一个突出的缺点。软件模拟器模拟DSP芯片的I/O口时采用与文件关联的方法来实现,因而调试中所需的I/O值可从文件中读取,输出到I/O口的值也可存储在文件中。软件模拟器的主要特征有:

(1)在计算机上执行的是DSP程序;

(2)可修改和查看寄存器;

(3)可修改和显示数据和程序存储器,任何时候都可进行存储器的修改,也可在程序装入前进行存储器初始化;

(4)可模拟外设、高速缓存(cache)及流水线、定时等功能;

(5)可计算指令周期数;

(6)可编程的断点设置,可在取指令、读写存储器及错误条件满足时设置断点;(7)可进行累加器、程序计数器、辅助寄存器的跟踪;(8)指令的单步执行;(9)用户可设定中断产生间隔;(10)在遇到非法操作码和无效数据访问时提示错误信息;(11)从文件中执行命令。在用模拟器调试程序前,首先必须对源文件进行汇编,如果程序由多个模块组成,还必须进行链接。链接后的绝对代码可以装入模拟器进行调试。

TI的各类DSP芯片均有相应的软件模拟器支持,这些软件模拟器有:(1) TMS320C1x软件模拟器;(2) TMS320C2x软件模拟器;(3) TMS320C2xx软件模拟器;(4) TMS320C3x软件模拟器;(5) TMS320C4x软件模拟器;(6) TMS320C5x软件模拟器;(7) TMS320C54x软件模拟器。在各类软件模拟器中,新版本的模拟器都采用了C和汇编源码调试器接口,允许用户用C语言或汇编语言进行调试,也可进行两种语言的混合调试,用户接口界面非常友好。其程序执行的方式有下列几种方式:单条指令/多条指令,单周期/多周期,执行到条件满足,如果条件满足一直执行,执行设置的循环次数,无条件执行至键输入等。用软件模拟器模拟I/O口时,首先用与存储器配置相同的方法将I/O口增加到存储器映像中,然后用关联命令MC将I/O口与一个文件相关联,MC命令的格式为

MC口地址,页,文件名,{READ/WRITE}其中的“页”分别用1和2表示,“1”表示串行口,“2”表示并行口。下面我们以TMS320C3x为例,说明软件模拟器模拟I/O口时的使用方法。在TMS320C3x中,若要将50h口配置为输入口,并与in.dat文件关联,则命令如下:

MA0x50,1,0xl,IPORT;口地址50h配置为输入口

MC0x50,1,in.dat,READ ;口地址50h与文件in.dat关联

TMS320C3x若有具有两个串行口,一个是标准的同步串行口,一个是DM串行口,则两个串行口的配置方法如下:MA0X20,1,1,IPORT;配置DRR(0X20)为输入口MA0X21,1,1,OPORT;配置DXR(0X21)为输出口

MA0X30,1,1,IPORT;配置TRCV(0X30)为输入口MA0X31,1,1,OPORT;配置TDXR(0X31)为输出口MC0X20,1,RECV.DAT,READ;将DRR与RECV.DAT文件关联MC0X21,1,XMIT.DAT,WRITE ;将DXR与XMIT.DAT文件关联

MC0X30,1,TRCV.DAT,READ;将TRCV与TRCV.DAT文件关联

MC0X31,1,TXMT.DAT,WRITE;将TDXR与TXMT.DAT文件关联上述配置可以放入Simlator的初始配置命令文件siminit.cmd中,这样,每次启动simulator调试器时自动进行配置,当然在调试过程中也可以重新进行配置。关联文件具有特定的格式,对一般的I/O口和标准的同步串行口,文件格式为每行一个十六进制数,如:

0x0123

0x4567

0x89ab

对TDM串行口,输入和输出文件格式需要三个区域:地址、数据和通道号。每个区域都是十六进制格式,中间用空格分开,如:

0x800x01230

0x400x45671

0x200x89ab2

0x100xcdef3

0x010x01234

Simulator模拟串行口中断和外部中断是通过设置伪寄存器的方法实现的。每一个中断设置两个伪寄存器,一个是中断周期寄存器,另一个是中断定时器寄存器。中断周期寄存器内设置的是两个中断间隔的机器周期数。中断定时器寄存器内包含的是当前至下一个中断之间的机器周期数。中断定时器寄存器以机器周期的速率进行递减,若中断使能,则递减至0时就产生一个中断,同时将中断周期寄存器中的值装入。7.3.4评价模块评价模块(EVM)是一种低成本的开发板,在EVM板上一般配置了一定数量的硬件资源,可用来进行DSP芯片评价、性能评估和有限的系统调试。调试接口也采用上述的C/汇编源码调试器。7.3.5软件开发系统软件开发系统(SWDS)是一块PC插卡,可提供低成本的评价和实时软件开发。它可用来进行实时的软件调试,程序在DSP芯片上实时运行。与仿真器不同的是软件开发系统不提供实时硬件调试功能,因此涉及目标I/O操作时一般用文件I/O代替。7.3.6仿真器仿真器即扩展开发系统(XDS),可用来进行系统级的集成调试,是进行DSP芯片软硬件开发的最佳工具。目前主要有两种类型的仿真器。一种是传统的电路仿真器,主要用于早期的TMS320C1x和TMS320C2x两代DSP芯片的仿真,这两代DSP芯片没有仿真信号线;另一种是先进的扫描仿真器,主要用于TMS320C3x、TMS320C2xx/C5x、TMS320C54x/C55x和TMS320C6000等DSP芯片的仿真,在这些DSP芯片上提供了用于仿真的一些信号线。采用传统的电路仿真器对用户板进行硬件仿真时,仿真器的电缆插头必须插入到用户硬件电路中DSP芯片的相应位置,也就是说,仿真电缆的插头引脚必须与DSP芯片的引脚一一对应。TI的XDS/22仿真器就属于这一类,主要用于TMS320C1x和TMS20C2x等芯片的仿真。扫描仿真器不采用插入仿真的方法,而是通过DSP芯片上提供的几个仿真引脚来实现仿真功能的。这种方法为TI公司所开发,可用来解决高速DSP芯片的仿真。由于高速DSP芯片具有高度并行的结构、快速的指令周期、高密度的封装等特点,采用传统的电路仿真方法很难实现可靠的仿真。扫描仿真消除了传统的电路仿真存在的问题,例如,仿真电缆过长会引起信号失真,仿真插头会引起可靠性差等。用户程序可在目标系统的片内或片外存储器实时运行,而不会因仿真器引入额外的等待状态。

DSP芯片内部是通过移位寄存器扫描链来实现扫描仿真的,这个扫描链被外部的串行口访问。采用扫描仿真,即使芯片已经焊在电路板上,也可进行仿真调试,这对于在生产过程中调试DSP系统也带来极大的方便。

TI公司为TMS320C3x/C4x,TMS320C5x,TMS320C2xx,TMS320C54x和TMS320C6000等DSP芯片都提供了相应的仿真器。TMS320C3x(不包括TMS320VC33)的仿真器采用了12线的仿真接口,通过仿真器接口与目标系统的TMS320C3x相接进行仿真,其中,EMU0、EMU3为仿真线;H3为时钟线;第7脚的PD为存在检测线,用于指示仿真头与目标系统的连接,在目标系统中,此脚接至 +5 V;第8脚为空脚;其余均为地线。其他DSP芯片的仿真器接口都采用JTAG标准IEEE1149.1。对于TMS320VC33芯片来说,当前国产的仿真器主要有合众达的SEED和北京瑞泰电子科技的ICETEK—5100。表7.1是仿真信号的定义,其中TDO信号与TCK时钟的下降沿对齐,TMS和TDI在TCK时钟的上升沿取样。表7.1JTAG仿真信号定义扫描仿真器的用户界面均采用上面介绍的C/汇编源码调试器界面,与软件模拟器的用户界面完全相同。目标代码可通过扫描接口从PC下载到目标系统的存储器中,一般下载1 KB的代码约需100ms的时间。7.4CC集成开发环境

7.4.1CC功能简介

TI公司的DSP集成开发环境CC(CodeComposer)是一个基于Windows的DSP开发平台,可以加速和提高程序员创建和测试实时嵌入式信号处理系统的开发过程,从而缩短将产品推向市场所需要的时间。

CC主要包含了以下功能:

(1)集成可视化代码编辑界面,可直接编写C、汇编、.H文件、.cmd文件等。

(2)集成代码生成工具,包括汇编器、优化C编译器、连接器等。

(3)基本调试工具,如装入执行代码(.out文件),查看寄存器、存储器、反汇编、变量窗口等,支持C源代码级调试。

(4)支持多DSP调试。

(5)断点工具,包括硬件断点、数据空间读/写断点,条件断点(使用GEL编写表达式)等。

(6)具有探针工具(ProbePoints),可用于算法仿真、数据监视等。

(7)分析工具(ProfilePoints),可用于评估代码执行的时钟数。

(8)数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图像等,并可自动刷新(使用Animate命令运行)。

(9)提供GEL工具,用户可以编写自己的控制面板/菜单,方便直观地修改变量,配置参数等。

(10)支持RTDX(RealTimeDataExchange)技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)的数据交换。

(11)采用开放式的Plug-in技术,支持其他第三方的ActiveX插件,支持包括软仿真在内的各种仿真器(只需安装相应的驱动程序)。可见,CC具有实时、多任务、可视化的软件开发特点,已经成为TIDSP家族的程序设计、制作、调试、优化的利器。本书对CC的基本概念、多处理功能、断点和探测点、文件输入/输出功能、可视化窗口、存储器图、观察窗口、集成编辑器、项目环境、代码执行评估、通用扩展语言(GEL)和RTDX技术做了详细分析。使读者能够快速地使用CC开发出优秀的TI公司TMS320C3x系列DSP代码。7.4.2CC软件的安装

CC4.10软件对PC机的要求为MicrosoftWindows98、WindowsNT4.0、Windows2000、WindowsXP操作系统,32 MB的内存,100 MB的剩余硬盘空间,SVGA显示器(分辨率为800 × 600以上)。安装过程如下:

(1)在Windows下将安装光盘插入CD-ROM驱动器中,运行光盘根目录下的setup.exe,按照向导的提示将CC安装到硬盘中,如图7.1所示。在WindowsNT、Windows2000及WindowsXP系统中,必须使用管理员或特权模式。安装程序在安装盘中建立一个目录tic3x4x。最后系统提示重启计算机完成安装。完成安装后,安装程序将自动在计算机桌面上创建“CC′C3x-′C4x”和“SetupCC′C3x-′C4x”两个图标,如图7.2所示。图7.1CC的安装

图7.2CC图标设置

(2)安装补丁程序。运行安装光盘中的“cc_c3x4x_sp2.exe”程序安装补丁。最后系统提示重启计算机完成安装。重启后自动进入CCsetup界面,这时可以在里面进行相应的设置;或者将其关闭进入Windows。

(3)安装硬件仿真器驱动程序。常用的仿真器接口有并口和USB两种结构,由于USB的接口方便,即插即用,故现在用户多选用USB接口的。安装完驱动程序后,在硬件设备中出现一个红色的苹果标志,说明安装成功。7.4.3CC软件的设置在安装CC之后、运行CC软件之前,须首先运行CC设置程序以建立CC集成开发环境与目标板或Simulator之前的通信接口。CC是一个开放的环境,通过设置不同的驱动,完成对不同环境的支持。使用CC进行仿真有两种方式,一种硬件仿真器,一种为软件自带的Simulator。

CC的设置就是用来定义DSP芯片和目标板类型,或者是选择软件的模拟器。使用Simulator时可以没有目标板只在CC环境下模拟运行DSP程序。CC的设置大致有以下几个步骤:

(1)启动CC配置程序。双击桌面上的SetupCC快捷图标,弹出对话框如图7.3所示。图7.3CC配置对话框

(2)清除以前定义的配置。在图7.3所示的对话框中,单击“ClearSystemConfiguration”按钮,弹出确认清除命令对话框,选择“Yes”,清除以前的配置。

(3)选择与目标系统相匹配的配置文件。例如使用C33软件仿真器,则在“Available”列表中选择“C33Simulator”项,对应的系统配置信息显示在“SystemConfiguration”栏中。对话框中的“Filters”用于设置DSP类型、平台类型、是否进行内存映射等。

(4)将所选中的配置文件加入到系统配置中。单击图7.3对话框中的“Addtosystemconfiguration”按钮,“SetupCC”将“C33Simulator”作为系统的配置,并将所选择的配置显示在系统设置窗口中。单击“Close”按钮,关闭对话框后出现CC系统设置窗口,如图7.4所示。在系统配置栏目的“MySystem”图标下,显示系统的配置。图7.4CC系统设置窗口

(5)安装驱动程序。在图7.4中,单击“InstallaDeviceDriver”,弹出选择器件驱动程序对话框,如图7.5所示。选择驱动程序(如tisimC33.dvr),单击“打开”按钮。随后弹出器件驱动属性对话框,如图7.6所示。单击“OK”按钮,完成器件驱动程序的安装。图7.5选择器件驱动程序对话框图7.6器件驱动属性对话框

(6)保存系统配置。在图7.4的窗口中,打开“File”菜单,单击“Save”按钮,将系统配置保存在系统寄存器中,完成CC的系统配置。7.4.4CC文件名介绍在使用CC软件的过程中,所要用到的文件类型如下。

(1) *.mak:CC定义的工程项目文件;

(2) *.c:C语言编写的源程序文件;

(3) *.asm:汇编语言编写的源程序文件;

(4) *.h:C语言程序的头文件,包括DSP/BIOSAPI模块的头文件;

(5) *.lib:库文件;

(6) *.cmd:链接命令文件;

(7) *.obj:由源文件编译或汇编后所生成的目标文件;

(8) *.out:完成编译、汇编、链接后所形成的可执行文件,可在CC监控下调试和执行;

(9) *.wks:工作空间文件,可用来记录工作环境的设置信息。7.4.5CC的应用界面

CC的可视界面设计十分友好,允许用户对编辑窗口以外的其他所有窗口和工具条进行随意设置。双击桌面的“CC'C3x–'C4x”图标,就可以进入CC的主界面。一个典型的CC开发环境界面由主菜单、工具条、工程窗口、编辑窗口、反汇编窗口、图形显示窗口、内存单元显示窗口和寄存器显示窗口等构成,如图7.7所示。图7.7CC软件主界面

(1)工程窗口:用来组织用户的若干程序,构成一个工程项目。用户可以从工程列表中选择需要编辑和调试的程序。

(2)编辑窗口:在该窗口中,用户既可以编辑源程序,又可以设置断点、探测点调试程序。

(3)反汇编窗口:用来帮助用户查看机器指令,查找错误。

(4)内存和寄存器显示窗口:可以查看、编辑内存单元和寄存器。

(5)图形显示窗口:可以根据用户需要,以图形的方式显示数据。用户可通过主菜单选项管理各窗口。除了编辑窗口外,所有其他窗口和工具条均可移动,用户可以将窗口或工具条拖拽到所喜欢的位置,甚至可以移出界面,放到桌面的任何位置。移动的方法很简单,用鼠标左键按住移动窗口的标题或工具条进行拖拽即可完成移动。若要将一个窗口移动到界面之外,首先把鼠标放在要移动的窗口中,单击右键弹出关联菜单,选择“AllowDocking”选项,激活移动的窗口。然后鼠标放在要移动窗口的标题上,按左键拖拽该窗口即可。也可直接用鼠标左键拖拽移动窗口的边框,将其移出界面外。7.4.6主菜单主菜单中的各选项如图7.8所示,由文件File、编辑Edit、查看View、项目Project、调试Debug、性能Profiler、选项Option、扩展功能GEL、工具Tools、视窗Window和帮助Help等选项组成,共有11个选项。有关各选项的详细信息,请查阅CC帮助文件中的“Commands”内容。其功能见表7.2所述,并对每个菜单的具体内容作了详细的描述。图7.8CC主菜单

表7.2主菜单功能介绍

(1) File菜单。File菜单提供了与文件操作有关的命令。除“Open”、“Save”、“Print”、“Eixt”等常见的命令外,该菜单还列出了其他文件操作命令,如表7.3所示。表7.3File菜单

(2) Edit菜单。Edit菜单提供的是与编辑有关的命令。除“Undo”、“Redo”、“Delete”、“SelectAll”、“Find”、“Replace”等常用的文件编辑命令外,CC还支持其他编辑命令,如表7.4所示。表7.4Edit菜单

(3) View菜单。View菜单可以选择是否显示“Standard”、“GEL”、“Project”、“Debug”、“Editor”工具栏和状态栏。此外,“View”菜单中还包括如表7.5所示的命令。表7.5View菜单

(4) Project菜单。CC使用工程来管理设计文档。CC不允许直接对汇编或C源文件Build生成DSP应用程序,只有在建立工程文件情况下“Project”工具栏上的“Build”按钮才会生效。工程文件被存盘为.mak文件。在“Project”菜单中包含一些常见的命令,如“New”、“Open”和“Close”等。此外还包括如表7.6所示的菜单命令表7.6Project菜单

(5) Debug菜单。Debug菜单显示常用的调试命令,如表7.7所示。表7.7Debug菜单续表

(6) Profiler菜单。剖切(Profiling)是CC的一个重要功能。它可提供程序代码特定区域的执行统计,从而使开发设计人员能检查程序的性能,进而可对源程序进行优化设置。使用剖切功能可以观察CPU算法占用了多少CPU时间,还可以用来剖切处理器的其它事件,如分支数、子程序调用次数及中断发生次数等。表7.8列出了Profiler各菜单命令。表7.8Profiler菜单

(7) Option菜单。Option菜单提供CC的一些设置选项,如颜色、字体和键盘等。表7.9列出了几种较为重要的“Option”菜单命令。表7.9Option菜单

(8) GEL菜单。扩展功能菜单(GEL)仅在加载了GEL文件后有效。

(9) Tools菜单。Tools菜单提供常用的工具集。在CC中,只有“CommandWindow”一项。单击后出现一个窗口,可以在里面输入调试器所需的命令。键入的命令遵循TI调试器命令语法格式。由于许多命令都接受C表达式作为命令参数,从而使得指令集相对较小且功能较强。在命令窗口中键入“HELP”并回车将弹出帮助窗口,从中可得到命令窗口支持的调试命令列表。

(10) Window菜单。同其他Window应用软件一样,CC在“Window”菜单中提供了窗口的叠层、平铺、图标重排等几种窗口排列管理方式,此外在该菜单中还可选择需要的窗口作为当前活动的窗口。

(11)Help菜单。在CC的帮助菜单中提供了对CC软件界面和各项功能的简要介绍、TMS320C3x/C4xDSP芯片汇编语言集以及CPU所有寄存器的列表,使用起来非常方便。7.4.7常用工具条

CC将主菜单中常用的命令筛选出来,形成四类工具条:标准工具条、编辑工具条、项目工具条和调试工具条。用户可以单击工具条上的按钮执行相应的操作。

1.标准工具条

启动CC后会自动显示标准工具条,如图7.9所示。可通过选择主菜单“View”中的“StandardToolbar”选项,打开或关闭标准工具条。图7.9标准工具条在标准工具条中有以下14个按钮:

·New:创建文件按钮。用来创建新文件。

· Open:打开文件按钮。用来打开已有的文件。

· Save:保存文件按钮。用来保存当前窗口中的文件。

· Cut:剪切按钮。用来剪切文本,将标记文本放入剪贴板。

· Copy:复制按钮。用来复制文本,将标记文本放入剪贴板。

· Paste:粘贴按钮。用来粘贴文本,将剪贴板中的文本粘贴在光标处。

· Undo:撤消按钮。用于撤消最后的编辑活动。

· Redo:恢复按钮。用于恢复最后撤消的活动。

· FindNext:向下搜索按钮。用来查找光标所在处下一个要搜索的字符串。

· FindPrevious:向上搜索按钮。用来查找光标所在处前一个要搜索的字符串。

· SearchWord:搜索文本段按钮。将加亮显示的文本段作为搜索文本,单击该按钮,窗将移动到该段下一个出现的位置。

· FindinFiles:搜索多个文件按钮。用来搜索多个文件或指定的文本。

· Print:打印文件按钮。用来打印当前窗口的源文件。

· Help:帮助按钮。可为用户提供上下文相关的帮助。

2.编辑工具条

CC启动后,将自动显示编辑工具条。可通过主菜单“View”,选择“EditToolbar”来打或关闭编辑工具条。编辑工具条共计10个按钮,如图7.10所示。图7.10编辑工具条

·MarkTo:设置括号标志按钮。从光标所在处开始,查找括号对,并标记括号对中的文本。

·MarkNext:查找下一个开括号按钮。找到后,标记与之对应的闭括号内的文本。通常用于搜索嵌入的括号块。

· FindMatch:查找匹配括号按钮。用来寻找匹配的闭括号。

· FindNextOpen:查找下一个开括号按钮。用来寻找下一个开括号。

· OutdentMarkedText:左移制表位按钮。将选定的文本块左移一个Tab键。

· IndentMarkedText:右移制表位按钮。将选定的文本块右移一个Tab键。

· EditToggleBookmark:设置或取消书签按钮。用来为当前文件设置或删除书签。若没书签,则在光标所在行创建书签,否则删除书签。

· EditNextBookmark:查找下一个书签按钮。在当前文件光标所在处,查找下一个书签。

· EditPreviousBookmark:查找上一个书签按钮。在当前文件光标所在处,查找上一个书签。

· EditBookmarks:书签属性设置按钮。用来编辑书签属性。

3.项目工具条项目工具条也称工程项目工具条,它提供了与工程项目和断点设置有关的命令,主要用于建工程项目,完成对断点、探测点和评价点的操作等。工程项目工具条如图7.11所示。其各按钮的功能如下。图7.11工程项目工具条

· CompileFile:编译文件按钮。用来编译当前的源文件,但不进行链接。

· Incrementalbuild:增加构建按钮。用来生成当前工程项目的可执行文件,仅对上次生成后改变了的文件进行编译。

· RebuildAll:全部重新构建按钮。用来重新编译当前工程项目中的所有文件,并重新链接形成输出文件。

· StopBuild:停止构建按钮。用于停止正在构建的工程项目。

· ToggleBreakpoint:设置断点按钮。用来在编辑窗口中的源文件或反汇编指令中设置断点。

· RemoveAllBreakpoints:删除所有断点按钮。用来删除全部断点。

· ToggleProbePoint:设置探测点按钮。用来设置探测点。

· RemoveAllProbePoints:删除所有探测点按钮。用来删除全部探测点。

· ToggleProfilePoint:设置评价点按钮。用来在源文件或反汇编窗口中设置评价点。

· RemoveAllProfilePoints:删除所有评价点按钮。用来删除全部评价点。

4.调试工具条

在CC开发环境中,提供了多种调试程序的操作方法。这些操作方法都是以工具按钮的形式存放在调试工具条中。调试工具条如图7.12所示。图7.12调试工具条

·StepInto:单步进入按钮。在调试程序中,完成单步进入执行操作。

· StepOver:单步执行按钮。用于单步执行在当前函数中的单条语句。

· StepOut:单步跳出按钮。在调试过程中,用于子程序的执行操作。该条命令能直接从当前子程序的位置自动执行后续的程序,直到返回到调用该子程序的指令。

· RuntoCursor:执行到光标处按钮。在调试过程中,从当前位置执行程序,直到遇到反汇编窗口中的光标位置为止。

· Run:运行程序按钮。从当前

PC位置开始执行程序,直到遇到断点后停止。

· Halt:暂停程序按钮。用来暂停正在执行的程序。

· Animate:动画执行按钮。这是一个在断点支持下调试程序的命令。在执行前先设置好各断点,每按一次该按钮,就会从当前程序位置执行到下一个断点处。连续按按钮就可以实现动画运行。

· QuickWatch:快速观察按钮。用来打开快速观察窗口(QuickWatch),查看和修改变量。

· WatchWindow:观察窗口按钮。用来打开观察窗口(WatchWindow),监视局部变量和全局变量的值。

· ViewRegisters:观察寄存器按钮。用来显示寄存器观察窗口(Registers),观察和修改寄存器。

· ViewMemory:观察存储器按钮。用来打开存储器窗口选项(MemoryWindow)。7.4.8CC开发软件应用举例本节首先简要地介绍CC软件开发流程,然后结合一个实例来演示如何在CC环境下开发DSP程序。

1.CC开发流程CC为用户提供了环境配置、源文件编辑、程序调试、跟踪和分析等工具,极大地方便了DSP程序的设计与开发,用户可以在一个软件环境下完成编辑、编译链接、调试和数据分析等工作。利用CC集成环境开发应用程序的流程如图7.13所示。图7.13CC的软件开发流程利用CC开发应用程序的步骤如下。

(1)软件设计。主要包括程序模块的划分、算法和流程的确定以及执行结果的预测等工作。

(2)程序编辑和编译链接。主要进行工程文件的创建,编写头文件、配置文件和源程序,使用汇编和C编译器进行编译,排除语法、变量定义等错误。

(3)程序调试。利用CC软件的调试工具,采用单步执行、设置断点和探测点等手段对应用程序进行调试。

(4)结果分析。利用CC软件提供的分析工具,对应用程序运行的结果进行分析,如图形显示数据或统计运行时间等。若算法不能满足要求,则需重新进行软件设计。充分利用CC所提供的功能,可以帮助用户高效地开发DSP应用系统。

2.CC应用举例

下面结合一个简单的信号处理程序来演示一下DSP程序的开发和调试过程。为了便于学习,将c:\tic3x4x\tutorial下的volume1文件夹(包括文件夹内的所有文件)复制到c:\tic3x4x\myprojects目录下,并删除volume1文件夹中的volume.mak(工程项目文件)。

1)创建工程项目一般在CC环境下开发DSP程序,需要先建立一个工程项目文件,然后将编写好的源程序文件(.c或 .asm文件)、链接命令文件(.cmd文件)和库文件(.lib文件)添加到工程项目中。具体操作步骤如下。

(1)双击CC4.10图标,进入CC集成开发环境。

(2)创建一个新的工程项目。单击菜单中的“Project”项,选择New命令,出现如图8.14所示的对话框。确定工程项目目录,输入新建工程项目名volume.mak。当工程项目建立后,单击工程项目管理窗口的Project目录,将出现volume.mak项目。图7.14保存新工程项目对话框

(3)将源程序文件、库文件和头文件(.h文件)添加到工程项目中。在“Project”菜单下,选择“AddFilestoProject”命令,出现类似图7.14的对话框。将C源文件volume.c、汇编源文件load.asm和vector.asm、链接命令文件volume.cmd和C语言标准库文件,如rts30.lib(rts30.lib,在安装盘tic3xc4x\c3x4x\cgtool\lib目录下)添加到工程项目volume.mak下。一般情况下,CC会自动添加到源程序中包含的头文件。若编写的源文件不含有C源程序,则不需要头文件和库文件。

(4)观看volume.mak工程项目所包含的文件。在工程项目管理窗口中,单击所有的“+”项,展开此工程所包含的文件,如图7.15所示。

(5)查看源文件和链接命令文件。在工程项目窗口中,分别双击图8.15中的文件名,可打开文件。在打开的文件中,可进行文件的编辑和修改。图7.15工程项目管理窗口

2)工程项目的编译工程项目建立后,可进行编译链接,其方法如下:

(1)打开已建的过程项目。进入CC开发环境后,选择“Project”菜单中的“Open”命令,出现“ProjectOpen”对话框,选择volume.mak文件,单击“打开”按钮。

(2)工程项目的编译链接。选择“Project”菜单下的“Rebuildall”命令,将在“Output”窗口显示运行信息。若编译链接没有错误,将生成volume.out文件,完成工程项目的编译链接。若出现错误,可根据提供的错误信息,对源程序进行修改,然后重新编译,直到编译成功,生成volume.out文件。

3)设置探测点工程项目编译链接,生成volume.out文件后,可在源程序或反汇编程序中设置探测点,并将探测点与数据文件链接。

(1)将volume.out文件装入目标板。编译成功后,选择{“File”菜单中的“LoadProgram”命令,弹出“LoadProgram”对话框,选中volume.out文件,然后单击“打开”按钮,将程序装载到DSP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论