1、2022-9-282022-9-283.13.1 TMS320C54x软件开发过程软件开发过程 3.23.2 汇编语言程序的编辑、汇编和链接过程汇编语言程序的编辑、汇编和链接过程 3.33.3 COFF的一般概念的一般概念 3.4 3.4 DSP的的C语言程序设计语言程序设计 2022-9-282022-9-282022-9-282022-9-28C54xC54x应用软件开发流程应用软件开发流程 C54xC54x应用软件的开发可在应用软件的开发可在TITI公司提供的开发环境中进公司提供的开发环境中进行行,用户可以用用户可以用C C/C+/C+语言或汇编语言编写源文件,经语言或汇编语言编写源文件
2、,经C C编译器编译器、汇编器生成、汇编器生成COFFCOFF格式的目标文件,再用链接器进行链接,格式的目标文件,再用链接器进行链接,生成在生成在C54xC54x上可执行的目标代码,然后利用调试工具对可上可执行的目标代码,然后利用调试工具对可执行的目标代码进行仿真和调试。执行的目标代码进行仿真和调试。当调试完成后,通过当调试完成后,通过HexHex代码转换工具,将调试后的可执代码转换工具,将调试后的可执行目标代码转换成行目标代码转换成EPROMEPROM编程器能接受的代码,并将该代码固编程器能接受的代码,并将该代码固化到化到EPROMEPROM中或加载到用户的应用系统中,以便中或加载到用户的应
3、用系统中,以便DSPDSP目标系统目标系统脱离计算机单独运行。脱离计算机单独运行。2022-9-282022-9-28C54xC54x应用软件开发流程应用软件开发流程 开发过程的目的是产生一个可以由开发过程的目的是产生一个可以由C54xC54x目标系目标系统执行的模块。统执行的模块。C C源文件源文件C C编译器编译器汇编汇编源文件源文件汇编器汇编器汇编汇编源文件源文件COFFCOFF目标目标文件文件链接器链接器可执行的可执行的COFFCOFF文件文件宏宏源文件源文件存档存档器器宏库宏库存档器存档器目标目标文件库文件库建库工具建库工具运行时运行时支持库支持库EPROMEPROM编程器编程器交叉
4、引用交叉引用列表器列表器调试工具调试工具TMS320C54xTMS320C54x绝对地址绝对地址列表器列表器HEXHEX代码代码转换工具转换工具2022-9-282022-9-28C54xC54x的开发工具的开发工具 TITI公司提供的公司提供的DSPDSP开发环境和工具主要包括以下开发环境和工具主要包括以下三个部分:三个部分:代码生成工具代码生成工具 代码调试工具代码调试工具 实时操作系统实时操作系统2022-9-282022-9-28C54xC54x的开发工具的开发工具(1)(1)代码生成工具:代码生成工具:C C编译器编译器:用来将用来将C/C+C/C+语言源程序自动编译为语言源程序自动
5、编译为C54xC54x的汇编语言源程序。的汇编语言源程序。汇编器汇编器:用来将汇编语言源文件汇编成机器语用来将汇编语言源文件汇编成机器语言言COFFCOFF目标文件。目标文件。链接器链接器:将汇编生成的、可重新定位的将汇编生成的、可重新定位的COFFCOFF目目标模块组合成一个可执行的标模块组合成一个可执行的COFFCOFF目标模块。目标模块。文档管理器文档管理器:允许用户将一组文件(源文件或允许用户将一组文件(源文件或目标文件)集中为一个文档文件库。目标文件)集中为一个文档文件库。2022-9-282022-9-28C54xC54x的开发工具的开发工具 助记符指令助记符指令代数式指令翻译器代
6、数式指令翻译器:用来将包含用来将包含助记符指令的汇编语言源文件转换成包含代数式指令助记符指令的汇编语言源文件转换成包含代数式指令的汇编语言源文件。的汇编语言源文件。建库实用程序建库实用程序:用来建立用户自己使用的、并用来建立用户自己使用的、并用用C/C+C/C+语言编写的支持运行的库函数。语言编写的支持运行的库函数。十六进制转换程序十六进制转换程序:可以很方便地将可以很方便地将COFFCOFF目标目标文件转换成文件转换成TITI、IntelIntel、MotorolaMotorola等公司的目标文件等公司的目标文件格式。格式。(1)(1)代码生成工具:代码生成工具:2022-9-282022-
7、9-28C54xC54x的开发工具的开发工具(1)(1)代码生成工具:代码生成工具:绝对制表程序绝对制表程序:将链接后的目标文件作为输入将链接后的目标文件作为输入,生成生成.absabs输出文件。输出文件。交叉引用制表程序交叉引用制表程序:利用目标文件生成一个交利用目标文件生成一个交叉引用清单,列出链接的源文件中的符号以及它们的叉引用清单,列出链接的源文件中的符号以及它们的定义和引用情况。定义和引用情况。2022-9-282022-9-28C54xC54x的开发工具的开发工具(2)(2)代码调试工具:代码调试工具:(书书111)111)C/C/汇编语言源码调试器:汇编语言源码调试器:与软件仿真
8、器、评与软件仿真器、评价模块、软件开发系统、软件仿真器等配合使用。价模块、软件开发系统、软件仿真器等配合使用。软件仿真器:软件仿真器:是一种模拟是一种模拟DSPDSP芯片各种功能并芯片各种功能并在非实时条件下进行软件调试的调试工具,它不需在非实时条件下进行软件调试的调试工具,它不需目标硬件支持,只需在计算机上运行。目标硬件支持,只需在计算机上运行。初学者工具初学者工具DSKDSK:是是TITI公司提供给初学者进行公司提供给初学者进行DSPDSP编程练习的一套廉价的实时软件调试工具。编程练习的一套廉价的实时软件调试工具。2022-9-282022-9-28C54xC54x的开发工具的开发工具(2
9、)(2)代码调试工具:代码调试工具:软件开发系统软件开发系统SWDSSWDS:是一块是一块PCPC插卡,可提供插卡,可提供低成本的评价和实时软件开发,还可用来进行软件低成本的评价和实时软件开发,还可用来进行软件调试,程序可在调试,程序可在DSPDSP芯片上实时运行。芯片上实时运行。可扩展的开发系统仿真器可扩展的开发系统仿真器(XDS510)XDS510):可用来可用来进行系统级的集成调试,是进行进行系统级的集成调试,是进行DSPDSP芯片软硬件开发芯片软硬件开发的最佳工具。的最佳工具。评价模块评价模块EVMEVM板:板:是一种低成本的开发板,可是一种低成本的开发板,可进行进行DSPDSP芯片评
10、价、性能评估和有限的系统调试。芯片评价、性能评估和有限的系统调试。2022-9-282022-9-282022-9-282022-9-28.asm源文件源文件.obj目标文件目标文件.out输出文件输出文件.cmd链接命链接命令文件令文件.lst列表文件列表文件.map存储器存储器映像文件映像文件-o-m-l2022-9-282022-9-282022-9-282022-9-28常用的汇编命令:常用的汇编命令:asm500%1 s 1 x 2022-9-282022-9-28常用的汇编器命令:常用的汇编器命令:lnk500%1.cmd lnk500:lnk500:%1.cmd:%1.cmd:链
11、接命令文件名,该文件须链接命令文件名,该文件须指明指明目标文件、目标文件、输入文件、输出文件、输入文件、输出文件、链接选项和存储器配置要求等。链接选项和存储器配置要求等。2022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-28目标文件目标文件目标存储器目标存储器.bss.data.textRAME2PROMROM2022-9-282022-9-282022-9-282022-9-282022-9-28
12、2022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-28源程序源程序的行号的行号 段程序段程序计数器计数器目标目标代码代码汇编语言源程序汇编语言源程序2022-9-282022-9-282022-9-282022-9-282022-9-282
13、022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-282022-9-28asm_test.obj-o asm_test.out-m asm_test.mapMEMORY PAGE 0:EPROG:origin=0 x4000,len=0 x3f80 PAGE 1:IDATA:origin=0 x80,len=0 x3f00 EDATA:origin=0 x8000,len=0 x8000SECTIONS .text:EPROG PAGE 0 .data:EPROG PAGE 0 .bss:IDATA PAGE 1 .stack:EDATA PAGE 12022-9-28