《DSP开发环境与工具.ppt》由会员分享,可在线阅读,更多相关《DSP开发环境与工具.ppt(47页珍藏版)》请在金锄头文库上搜索。
1、 第四章第四章DSP的开发环境与工具的开发环境与工具 主要内容主要内容n软件开发过程及开发工具软件开发过程及开发工具nCCS集成开发环境集成开发环境 DSP的开发环境和工具的开发环境和工具v代码生成工具代码生成工具v系统集成及调试环境与工具系统集成及调试环境与工具v实时操作系统实时操作系统C 优化编译器优化编译器 TI为为其其TMS320系系列列DSP提提供供了了系系列列的的C编编译译器器。将将标标准准C源源文文件件编编译译成成为为相相应应片片种种的的汇汇编编语语言言源源代代码码文文件件,进进而而汇汇编编和和连连接接,产产生生可执行的目标文件。可执行的目标文件。这这些些C编编译译器器符符合合A
2、NSIC标标准准;有有运运行行支支持持库库;一一个个外外壳壳程程序序(shellprogram)可可以以一步将一步将C源代码翻译成为源代码翻译成为TMS320的目标代码。的目标代码。汇编语言工具汇编语言工具TMS320的的汇汇编编语语言言工工具具是是一一个个软软件件包包,其中包括其中包括:v汇编器汇编器v连接器连接器v归档器归档器v交叉引用列表器交叉引用列表器v十六进制转换公用程序十六进制转换公用程序汇编器(汇编器(Assembler) 将将汇汇编编语语言言的的源源程程序序文文件件汇汇编编成成为为机机器器语语言言的的目目标标程程序序文文件件,其其格格式式为为COFF(公公用用目目标标文文件件格
3、格式式)。汇汇编编语语言言源源 程程 序序 可可 以以 包包 括括 汇汇 编编 语语 言言 指指 令令( instruction) 、 汇汇 编编 指指 令令( assembler directives) 和和 宏宏 指指 令令(macrodirectives)连接器(连接器(Linker) 连连接接器器的的基基本本任任务务是是将将目目标标文文件件连连接接在在一一起起,产产生生可可执执行行模模块块。连连接接器器可可以以接接受受的的输输入入文文件件包包括括汇汇编编器器产产生生的的COFF目目标标文文件件、命命令令文文件件、库库文文件件、以以及及已已部部分分连连接接好好了了的的文文件件。它它所所产
4、产生生的的可可执执行行COFF目目标标模模块块可可以以装装入入各各种种开开发发工工具具,或由或由TMS320器件来执行器件来执行归档器(归档器(Archiver) 归档器允许用户将一组文件归入一个归档器允许用户将一组文件归入一个档案文件(库)。例如,将若干个宏归档案文件(库)。例如,将若干个宏归入一个宏库,汇编器将搜索这个库,并入一个宏库,汇编器将搜索这个库,并调用源文件中使用的宏。也可以用归档调用源文件中使用的宏。也可以用归档器将一组目标文件收入一个目标文件库,器将一组目标文件收入一个目标文件库,连接器将连接库内的成员,并解决外部连接器将连接库内的成员,并解决外部引用引用交叉引用列表器交叉引
5、用列表器(Cross-Reference Lister) 交叉引用列表器是一个查错的工具。交叉引用列表器是一个查错的工具。它接受已经连接好的目标文件作为输入,它接受已经连接好的目标文件作为输入,产生一个交叉引用列表作为输出。它列产生一个交叉引用列表作为输出。它列出符号、符号的定义、以及它们已经连出符号、符号的定义、以及它们已经连接的源文件中的引用接的源文件中的引用十六进制转换公用程序十六进制转换公用程序(Hex Conversion Utility)将将COFF目标文件转换成为若干种标准的文件目标文件转换成为若干种标准的文件格式:格式:vASCII-十六进制十六进制vExtendedTektr
6、onixvIntelMCS-86vMotorolaExorciservTISDSMAC系统集成与调试工具系统集成与调试工具 TI公司为公司为TMS320系统的集成与调试所系统的集成与调试所提供的工具包括调试器接口提供的工具包括调试器接口(C/Assemblysourcedebugger)、)、软软仿真器(仿真器(Simulator)、)、DSP入门套件入门套件(DSK,DSPStarterKit)、)、标准评估模标准评估模块(块(EVM)、)、以及扩展开发系统以及扩展开发系统XDS(eXtendedDevelopmentSystem)等)等软件仿真器(软件仿真器(Simulator)n将链接器
7、输出文件(将链接器输出文件(.out文件)调入到一个文件)调入到一个PC机的软件模拟窗口下,对机的软件模拟窗口下,对DSP代码进行软代码进行软件模拟和调试。件模拟和调试。TMS320软件仿真器是一个软软件仿真器是一个软件程序,使用主机处理器和存储器仿真件程序,使用主机处理器和存储器仿真TMS320DSP的微处理器和微计算机模式,从的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。而进行软件开发和非实时的程序验证。硬件在线仿真器(硬件在线仿真器(XDS Emulator)n为可扩展的开发系统仿真器(为可扩展的开发系统仿真器(XDS510),可),可以用来进行系统级的集成调试,是进行以
8、用来进行系统级的集成调试,是进行DSP芯芯片软、硬件开发的最佳工具。片软、硬件开发的最佳工具。XDS510是是TI为为其系列其系列DSP设计用以系统调试的专用硬件仿真设计用以系统调试的专用硬件仿真器(器(Emulators),它使用),它使用JTAG标准,使用标准,使用这种方法,程序可以从片外或片内的目标存储这种方法,程序可以从片外或片内的目标存储器实时执行,在任何时钟速率下都不会引入额器实时执行,在任何时钟速率下都不会引入额外的等待状态。外的等待状态。评估模块(评估模块(EVM板)板)nTMS320的评估模块是廉价的开发板,用于对的评估模块是廉价的开发板,用于对DSP芯片的性能评估、标准程序
9、检查,也可以芯片的性能评估、标准程序检查,也可以用来组成一定规模的用户用来组成一定规模的用户DSP系统。系统。CCS集成开发环境集成开发环境 n TMS320C54x代码生成工具,如汇编器、链接器、代码生成工具,如汇编器、链接器、C/C+编译器、建库工具等。编译器、建库工具等。nCCS集成开发环境(集成开发环境(IntegratedDevelopongEnvirorment,IDE),包括编辑器、工程管理工具、),包括编辑器、工程管理工具、调试工具等。调试工具等。nDSP/BIOS(BasicInputandOutputSystem)插)插件及应用程序接口件及应用程序接口API(Applica
10、tionProgranInterface)。)。nRTDX(RealTimeDataExchange)实时数据交换)实时数据交换插件、主机(插件、主机(Host)接口及相应的)接口及相应的API。CCS系统安装系统安装nCCS对对PC机的最低要求为机的最低要求为Windows95、32MRAM、100M剩余硬盘空间、奔腾剩余硬盘空间、奔腾90以上处理以上处理器、器、SVGA显示器(分辨率显示器(分辨率800600以上)。以上)。CCS系统设置系统设置n在在安安装装CCS之之后后、运运行行CCS软软件件之之前前,首首先先需需要要运运行行CCS设设置置程程序序,根根据据用用户户所所拥拥有有的的软软
11、、硬件资源对硬件资源对CCS进行适当的配置。进行适当的配置。n启启动动Setup CCS 应应用用程程序序,将将显显示示CodeComposerStudioSetup窗口。窗口。在在Factory Boards中添加设置中添加设置n 在在Family下选择下选择C55xx,将看到所有,将看到所有C55xx的的仿真驱动,包括软件仿真和硬件仿真;仿真驱动,包括软件仿真和硬件仿真;n在在Platform下选择下选择Simulator,在,在AvailableFactoryBoards中只显示软件仿真驱动,选中中只显示软件仿真驱动,选中相应的驱动;相应的驱动;n双击双击C55xxRev4.0CPUFu
12、nctionalSimulator,可以在,可以在MySystem下看到所加入下看到所加入的驱动;的驱动;n点击点击Save&Quit,将保存设置退出,将保存设置退出SetupCCStudiov3.1并启动运行并启动运行CCStudio。CCS文件名介绍文件名介绍 n*.mak:CCS定义的工程项目文件;定义的工程项目文件;n*.c:C语言编写的源程序文件;语言编写的源程序文件;n*.asm:汇编语言编写的源程序文件;:汇编语言编写的源程序文件;n*.h:C语言程序的头文件,包括语言程序的头文件,包括DSP/BIOSAPI模块的头模块的头文件;文件;n*.lib:库文件;:库文件;n*.cmd
13、:链接命令文件;:链接命令文件;n*.obj:由源文件编译或汇编后所生成的目标文件;:由源文件编译或汇编后所生成的目标文件;n*.out:完成编译、汇编、链接后所形成的可执行文件,:完成编译、汇编、链接后所形成的可执行文件,可在可在CCS监控下调试和执行;监控下调试和执行;n*.wks:工作空间文件;:工作空间文件;n*.cdb:CCS的配置数据库文件,是使用的配置数据库文件,是使用DSP/BIOSAPI模块所必须的。模块所必须的。链接器命令文件的编写和使用链接器命令文件的编写和使用 n链接命令文件中可以使用链接命令文件中可以使用MEMORY命令和命令和SECTIONS命令来定义目标系统的存储
14、器配置图命令来定义目标系统的存储器配置图及段的映射。及段的映射。n链接命令文件为链接命令文件为ASCII文件,可包含以下内容:文件,可包含以下内容:n输入文件名,即指定要链接的目标文件、文档库输入文件名,即指定要链接的目标文件、文档库文件或其他命令文件。当调用其他命令文件时,文件或其他命令文件。当调用其他命令文件时,该语句要放在命令文件的最后,因为链接器不能该语句要放在命令文件的最后,因为链接器不能从调用的命令文件返回。从调用的命令文件返回。n链接器选项,可以用在链接器命令行,也可以编链接器选项,可以用在链接器命令行,也可以编写在命令文件中。写在命令文件中。nMEMORY和和SECTIONS链
15、接伪指令,存储器链接伪指令,存储器伪指令伪指令MEMEORY,用来定义目标系统的存储,用来定义目标系统的存储器空间。段伪指令器空间。段伪指令SECTIONS负责告诉链接器负责告诉链接器将输入文件中用将输入文件中用.text、.data、.bss、.sect等伪指令定义的段放到等伪指令定义的段放到MEMORY命令描述的命令描述的存储器空间的什么位置。存储器空间的什么位置。nMEMORY伪指令的一般语法为:伪指令的一般语法为:nMEMORYnnPAGE0:name1(attr):original=constant,length=constant;nnPAGEn:namen(attr):origin
16、al=constant,length=constant;nn(1)PAGE指定存储器空间页面,最多指定存储器空间页面,最多255。通常通常PAGE0用于程序存储器,用于程序存储器,PAGE1用于数用于数据存储器。如果不指定据存储器。如果不指定PAGE,链接器默认指,链接器默认指定定PAGE0。每一个。每一个PAGE代表一个完全独立的代表一个完全独立的地址空间。地址空间。n(2)name是存储器区间的取名,可由是存储器区间的取名,可由164个字符组成,包括个字符组成,包括AZ、az、$、.、_。名。名称对链接器没有特殊的含义,只是用来区分链称对链接器没有特殊的含义,只是用来区分链接器区间。在不同
17、的接器区间。在不同的PAGE里区间名可以相同,里区间名可以相同,但有同一个但有同一个PAGE里区间名不能相同,且不能里区间名不能相同,且不能重叠配置。重叠配置。n(3)attr指定存储区的指定存储区的14种属性,属性为任种属性,属性为任选项,利用属性将输出段定位到存储器时加以选项,利用属性将输出段定位到存储器时加以限制。限制。nR:指定该存储区可以读。:指定该存储区可以读。nW:指定该存储区可以写。:指定该存储区可以写。nX:指定该存储区可以装入可执行代码。:指定该存储区可以装入可执行代码。nI:指定该存储区可以进行初始化。:指定该存储区可以进行初始化。n如果不给存储区指定属性,默认为具有以上
18、如果不给存储区指定属性,默认为具有以上4种属性,可以不受限制地将任何输出段分配到种属性,可以不受限制地将任何输出段分配到该存储区。该存储区。n(4)original指定存储区的起始地址,可以简指定存储区的起始地址,可以简写为写为org或或o,该值是一个,该值是一个16位二进制常数,可位二进制常数,可以用十进制、八进制或十六进制数表示。以用十进制、八进制或十六进制数表示。n(5)length指定存储区的长度,可以简写为指定存储区的长度,可以简写为len或或l。nSECTIONS伪指令语法格式如下:伪指令语法格式如下:nSECTIONSnnname:property,property,proper
19、tynname:property,property,propertynname:property,property,propertyn段段n.text:包括可执行代码、字符串和编译器产生的常数:包括可执行代码、字符串和编译器产生的常数n.data:数据段数据段n.cinit:初始化变量和常数表:初始化变量和常数表n.const:字符串和以:字符串和以const关键字定义的常量关键字定义的常量n.switch:包含:包含switch语句表语句表n.bss:为全局变量和静态变量保留空间:为全局变量和静态变量保留空间n.stack:为:为C的系统堆栈分配存储空间的系统堆栈分配存储空间n.system
20、:动态分配存储器分配保留空间,为:动态分配存储器分配保留空间,为C语言函语言函数数malloc、calloc、realloc动态分配存储器动态分配存储器n通常,通常,.text、.cinit、.switch段可以链接到段可以链接到系统的系统的ROM或或RAM中且必须是在程序存储器中且必须是在程序存储器中(中(page0);.const段可以链接到系统的段可以链接到系统的ROM或或RAM中,且必须是在数据存储器中中,且必须是在数据存储器中(page1);.bss、.stack、.system段必须段必须链接到系统的链接到系统的RAM中,且必须是在数据存储器中,且必须是在数据存储器中(中(page
21、1)。链接器命令文件举例链接器命令文件举例n-ohello.out-mhello.mapMEMORYPAGE0:VECT:origin=0x8000h,length0x040hPAGE0:PROG:origin=0x8040h,length0x600hPAGE1:DATA:origin=0x8000h,length0x400hSECTIONS.vectorsVECTPAGE0.textPROGPAGE0.bssDATAPAGE1.constDATAPAGE1 用用CCS开发简单的程序开发简单的程序1创建新的工程文件创建新的工程文件n工工程程文文件件中中包包含含着着设设计计中中所所有有的的源源代
22、代码码文文件件、链接器命令文件、库函数、头文件等。链接器命令文件、库函数、头文件等。(1)在在CCS的的安安装装目目录录的的myprojects子子目目录录下下创建一个创建一个myfile1目录。目录。(2)启启动动CCS,在在Project菜菜单单中中选选择择New项项,在在Project中中输输入入myfile1,CCS将将创创建建一一个个名名为为myfile1.pjt的工程。的工程。2.将文件添加到工程中将文件添加到工程中(1)新建源文件)新建源文件执执行行菜菜单单file/New/sourcefiles,并并把把文文件件保存在保存在myfile工程文件夹下。工程文件夹下。(2)在工程中
23、添加源文件)在工程中添加源文件 执执行行菜菜单单project/add files to project,把把此此文文件添加到工程中。件添加到工程中。3生成和运行程序生成和运行程序(1)选选择择菜菜单单命命令令ProjectRebuildAll,对对工工程程重重新新编编译译、汇汇编编和和链链接接,主主窗窗口口下下方方的的信信息息窗窗口口将将显显示示build进行汇编、编译和链接的相关信息。进行汇编、编译和链接的相关信息。(2)选选择择菜菜单单命命令令FileLoadProgram,在在当当前前目目录录的的Debug目目录录下下选选择择myfile.out并并打打开开,将将Build生生成成的程
24、序加载到的程序加载到DSP中。中。(3)选选择择菜菜单单命命令令DebugRun或或在在Debug工工具具栏栏上上单单击击Run按钮,运行该程序。按钮,运行该程序。举例举例n实现数组实现数组a20=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,x20=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1的初始化,并将数据存储器中的初始化,并将数据存储器中的数组的数组x20复制到数组复制到数组y20,将数据存储器,将数据存储器中的中的a20写入到程序存储器写入到程序存储器PROM(2000H-2013H),再将程
25、序存储器再将程序存储器PROM中的中的20个数据个数据存入数据存储器存入数据存储器DATA(0200H-0213H)1.编写汇编源程序编写汇编源程序n .mmregsn.datanTBL:.wordn0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19n.word1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1nPROM:.usect“PROM”,20n.bssa,20n.bssx,20n.bssy,20nDATA.usect“DATA”,20n .textnStart:STM#a,AR1nRPT#39nMVPDT
26、BL,*AR1+nSTM#x,AR2nSTM#y,AR3nRPT#19nMVDD*AR2+,*AR3+nSTM#a,AR1nLD#PROM,AnSTM#19,AR3nLOOP:WRITA*AR1+nADD#1,A,AnBANZLOOP,*AR3-nLD#PROM-1,AnSTM#DATA,AR1nST#19,BRCnRPTBLOOP1nADD#1,A,AnLOOP1:READA*AR1+nWAIT:NOPnBWAIT2.建立汇编源程序建立汇编源程序n在在CCS环境下,点击环境下,点击file/new/sourcefile菜单菜单命令,打开一个空白文档,将汇编程序输入。命令,打开一个空白文档,将
27、汇编程序输入。n单击单击file/save菜单命令,在菜单命令,在D:programfilestimyprojects下保存文件名为下保存文件名为mymove,并选择保存类型为,并选择保存类型为*.asm。3.建立链接命令文件建立链接命令文件n_omymove.outn_mmymove.mapnMEMORYnPAGE0:nRAM:origin=1000h,length=800hnRAM1:origin=2000h,length=300hnPAGE1:nDARAM1:origin=0100h,length=100hnDARAM2:origin=0200h,length=100hnn SECTIO
28、NSnn.data:RAMPAGE0n.text:RAMPAGE0nPROM:RAM1PAGE0n.bss:DARAM1PAGE1nDATA:DARAM2PAGE1n4.创建一个新工程创建一个新工程n在在project菜单中选择菜单中选择new项,弹出项,弹出projectcreation窗口,在窗口,在project栏中输入栏中输入mymove,单击单击“完成完成”按钮,按钮,CCS将创建一个名为将创建一个名为mymove.pjt的工程,此文件保存了工程的设的工程,此文件保存了工程的设置信息及工程中的文件引用情况。置信息及工程中的文件引用情况。5.将有关文件添加到工程中将有关文件添加到工程中
29、n从从project菜单中选取菜单中选取addfilestoproject命令,命令,选择文件选择文件mymove.asm,双击,双击“找开找开”按钮,按钮,将将mymove.asm添加到工程中。添加到工程中。n从从project菜单中选取菜单中选取addfilestoproject命令,命令,选择文件选择文件mymove.cmd,将,将mymove.cmd添添加到工程中。加到工程中。6.汇编、编译和链接产生汇编、编译和链接产生.out文件文件n点击点击project菜单中的菜单中的rebuildall。在监视窗口。在监视窗口显示汇编、编译和链接的相关信息。如果没有显示汇编、编译和链接的相关信
30、息。如果没有错误,将产生错误,将产生mymove.out文件;如果有错,文件;如果有错,在监视窗口以红色字体显示出错行,用鼠标双在监视窗口以红色字体显示出错行,用鼠标双击该行,光标跳至源程序相应的出错行。修改击该行,光标跳至源程序相应的出错行。修改错误后,重新汇编、链接。错误后,重新汇编、链接。7.加载并运行加载并运行.out文件文件n执行菜单命令执行菜单命令file/loadprogram,选择,选择mymove.out并找开,将并找开,将rebuildall生成的程生成的程序加载到序加载到DSP中。中。n点击点击debug/run菜单命令运行程序。菜单命令运行程序。8.观察运行结果观察运行
31、结果n由由.asm源程序和源程序和.cmd链接程序,可知本程序的链接程序,可知本程序的a20放置在数据空间放置在数据空间0100H开始的单元中,开始的单元中,DATA放置在数据空间放置在数据空间0200H开始的单元中。开始的单元中。n点击点击view/memory菜单命令,菜单命令,page菜单中为菜单中为data,为数据存储器,将,为数据存储器,将address改为改为0x0100,单击单击ok按钮,将在汇编窗口显示待定按钮,将在汇编窗口显示待定的数据空间的内容。在的数据空间的内容。在page下拉菜单中选择下拉菜单中选择program,为程序存储器,将,为程序存储器,将address改为改为0x2000,单击单击ok按钮,观察程序存储器按钮,观察程序存储器2000H-2013H(PROM)空间中的内容。空间中的内容。n介绍dsp知识,为大家提供最新的dsp资讯,更多内容可以去南京研旭电气科技有限公司的官网 或者官方论坛,嵌嵌dsp论坛进行交流学习n欢迎大家收听嵌嵌dsp论坛的官方微博 http:/