欢迎来到天天文库
浏览记录
ID:58702686
大小:1.75 MB
页数:89页
时间:2020-10-04
《第3章 TMS320C54x软件开发过程((DSP原理与开发实例))ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章TMS320C54x软件开发过程§3.1TMS320C54x应用软件开发过程§3.2汇编语言程序的编辑、汇编和链接过程§3.3汇编伪指令§3.4汇编宏指令§3.5COFF的一般概念§3.6C语言程序设计概述§3.7混合编程§3.8小结【重点难点】★段的定义和用法★链接命令文件★C语言编程★混合编程TMS320C54x应用软件开发过程§3.1TMS320C54x应用软件开发过程软件开发流程图将C语言源程序自动地编译为C54x的汇编语言源程序。即生成.asm文件。将汇编语言源文件汇编成基于公用目标文件格式的机器语言目标文件。即生成.ob
2、j文件。将汇编生成的、可重新定位的COFF目标模块组合成一个可执行的COFF目标模块。将一组文件(源文件或目标文件)集中为一个文档文件库。将包含助记符指令的汇编语言源文件转换成包含代数指令的汇编语言源文件。建立用户自己用的、C语言编写的支持运行的库函数。建立用户的C语言运行支持库。标准运行支持库在rts.src里提供源代码,在rts.lib里提供目标代码。将COFF目标文件转换TI、Intel、Motorola或Tektronix公司的目标文件格式。生成.abs输出文件。对.abs文件汇编产生包含绝对地址(而不是相对地址)的清单。生成一个
3、交叉引用清单,列出所链接的源文件中的符号及其定义和引用情况。★开发目的:产生一个可由C54x目标系统执行的模块。★调试工具:软件仿真器(Simulator)可扩展的开发系统硬件仿真器XDS510(Emulator)评价模块(EVM)DSK开发套件★需要开发人员编写的文件:源程序(.c或.asm)链接命令文件(.cmd)中断向量表TMS320C54x应用软件开发过程§3.2汇编语言程序的编辑、汇编和链接过程汇编语言程序的编辑、汇编和链接过程汇编器调试程序链接器文本编辑器.asm源文件.obj目标文件.out输出文件.cmd链接命令文件.ls
4、t列表文件.map存储器映像文件十六进制转换程序HEX500-o-m-l汇编伪指令§3.3汇编伪指令8种伪指令:1)段定义伪指令;2)常数初始化伪指令;3)段程序计数器定位伪指令;4)输出列表格式伪指令;5)引用其他文件的伪指令;6)条件汇编伪指令;7)汇编时符号定义伪指令;8)其他汇编伪指令。1)段定义伪指令★.bsssymbol,sizeinwords[,blockingflag][,alignmentflag]为未初始化变量在.bss段内保留空间,可在RAM中分配变量。必需参数,定义了指向伪指令所保留的第一个单元地址的符号,符号名对
5、应于所要保留空间的变量。必需参数,应该是绝对表达式。汇编器在.bss段内分配size个字。可选参数。如果该参数大于0,汇编器分配连续的size个字。也就是说除非size大于一页,否则被分配的空间不会跨越页边界。可选参数。如果该参数大于0,段对准到长字边界★symbol.usect“段名”,字数[,blockingflag][,alignmentflag]在一个未初始化的命名段中保留空间。必需参数,定义了指向伪指令所保留的第一个单元地址的符号,符号名对应于所要保留空间的变量。必需参数,应该是绝对表达式。定义了保留的字数。可选参数。如果该参数
6、大于0,汇编器分配连续的size个字。也就是说除非size大于一页,否则被分配的空间不会跨越页边界。可选参数。如果该参数大于0,段对准到长字边界命名了未初始化段。注意必须包含在双引号内。★.data包含初始化数据。使汇编器开始把源代码中的初始化数据汇编到.data段内,且.data变为当前段。★.sect“sectionname”:定义包含代码或数据的已初始化命名段,将紧随其后的代码或数据存入该段。★.text:包含可执行的代码。如果还没有代码被汇编到.text段中,那么段程序计数器被设置为0,否则段程序计数器恢复到它原先在段内的值。.t
7、ext是默认段,除非规定了另外的伪指令,否则在汇编开始时,汇编器将把代码汇编到.text段。段名,注意sectionname必须包含在双引内。汇编伪指令2)常数初始化伪指令★.bessizeinbits.spacesizeinbits在当前段中保留size个数的位,汇编器对这些保留的位填0,可用位数乘以16来实现保留字。注意:.bes指向包含保留位的最后一个字,.space指向包含保留位的第一个字。★.bytevalue1[,…,valuen]:在当前段内初始化一个或多个连续的8位字。.fieldvalue[,sizeinbits]:将单
8、个值放进当前字的指定位域。此指令可将数值放入当前字中规定的位数,并从最高有效位开始。在字被填满前,汇编器不增加段程序计数器(SPC)的值。汇编伪指令★.floatvalue1[,…,value
此文档下载收益归作者所有