版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、方法以及程序的重定位等。方法以及程序的重定位等。 TMS320C54x软件开发过程软件开发过程 汇编语言程序的编辑、汇编和链接过程汇编语言程序的编辑、汇编和链接过程 COFF的一般概念的一般概念 源程序的汇编源程序的汇编链接器的使用链接器的使用。C54xC54x应用软件开发流程应用软件开发流程 C54xC54x应用软件的开发可在应用软件的开发可在TITI公司提供的开发环境中进公司提供的开发环境中进行行,用用户可以用户可以用C C/C+/C+语言或汇编语言编写源文件,经语言或汇编语言编写源文件,经C C编译器编译器、汇编器生成、汇编器生成COFFCOFF格式的目标文件,再用链接器进行链接,格式的
2、目标文件,再用链接器进行链接,生成在生成在C54xC54x上可执行的目标代码,然后利用调试工具对可上可执行的目标代码,然后利用调试工具对可执行的目标代码进行仿真和调试。执行的目标代码进行仿真和调试。 当调试完成后,通过当调试完成后,通过HexHex代码转换工具,将调试后的可执代码转换工具,将调试后的可执行目标代码转换成行目标代码转换成EPROMEPROM编程器能接受的代码,并将该代码固编程器能接受的代码,并将该代码固化到化到EPROMEPROM中或加载到用户的应用系统中,以便中或加载到用户的应用系统中,以便DSPDSP目标系统目标系统脱离计算机单独运行。脱离计算机单独运行。 C54xC54x应
3、用软件开发流程应用软件开发流程 开发过程的目的是产生一个可以由开发过程的目的是产生一个可以由C54xC54x目标系目标系统执行的模块。统执行的模块。C C源文件源文件C C编译器编译器汇编汇编源文件源文件汇编器汇编器汇编汇编源文件源文件COFFCOFF目标目标文件文件链接器链接器可执行的可执行的COFFCOFF文件文件宏宏源文件源文件存档存档器器宏库宏库存档器存档器目标目标文件库文件库建库工具建库工具运行时运行时支持库支持库EPROMEPROM编程器编程器交叉引用交叉引用列表器列表器调试工具调试工具TMS320C54xTMS320C54x绝对地址绝对地址列表器列表器HEXHEX代码代码转换工具
4、转换工具C54xC54x的开发工具的开发工具 TITI公司提供的公司提供的DSPDSP开发环境和工具主要包括以下开发环境和工具主要包括以下三个部分:三个部分: 代码生成工具代码生成工具 代码调试工具代码调试工具 实时操作系统实时操作系统C54xC54x的开发工具的开发工具(1)(1)代码生成工具:代码生成工具: C C编译器编译器:用来将用来将C/C+C/C+语言源程序自动编译为语言源程序自动编译为C54xC54x的汇编语言源程序。的汇编语言源程序。 汇编器汇编器:用来将汇编语言源文件汇编成机器语用来将汇编语言源文件汇编成机器语言言COFFCOFF目标文件。目标文件。 链接器链接器:将汇编生成
5、的、可重新定位的将汇编生成的、可重新定位的COFFCOFF目目标模块组合成一个可执行的标模块组合成一个可执行的COFFCOFF目标模块。目标模块。 文档管理器文档管理器:允许用户将一组文件(源文件或允许用户将一组文件(源文件或目标文件)集中为一个文档文件库。目标文件)集中为一个文档文件库。 C54xC54x的开发工具的开发工具 助记符指令助记符指令代数式指令翻译器代数式指令翻译器:用来将包含用来将包含助记符指令的汇编语言源文件转换成包含代数式指助记符指令的汇编语言源文件转换成包含代数式指令的汇编语言源文件。令的汇编语言源文件。 建库实用程序建库实用程序:用来建立用户自己使用的、并用来建立用户自
6、己使用的、并用用C/C+C/C+语言编写的支持运行的库函数。语言编写的支持运行的库函数。 十六进制转换程序十六进制转换程序:可以很方便地将可以很方便地将COFFCOFF目标目标文件转换成文件转换成TITI、IntelIntel、MotorolaMotorola等公司的目标文件等公司的目标文件格式。格式。 (1)(1)代码生成工具:代码生成工具:C54xC54x的开发工具的开发工具(2)(2)代码调试工具:代码调试工具: C/C/汇编语言源码调试器:汇编语言源码调试器:与软件仿真器、评与软件仿真器、评价模块、软件开发系统、软件仿真器等配合使用。价模块、软件开发系统、软件仿真器等配合使用。 软件仿
7、真器:软件仿真器:是一种模拟是一种模拟DSPDSP芯片各种功能并芯片各种功能并在非实时条件下进行软件调试的调试工具,它不需在非实时条件下进行软件调试的调试工具,它不需目标硬件支持,只需在计算机上运行。目标硬件支持,只需在计算机上运行。 初学者工具初学者工具DSKDSK:是是TITI公司提供给初学者进行公司提供给初学者进行DSPDSP编程练习的一套廉价的实时软件调试工具。编程练习的一套廉价的实时软件调试工具。 C54xC54x的开发工具的开发工具(2)(2)代码调试工具:代码调试工具: 软件开发系统软件开发系统SWDSSWDS:是一块是一块PCPC插卡,可提供插卡,可提供低成本的评价和实时软件开
8、发,还可用来进行软件低成本的评价和实时软件开发,还可用来进行软件调试,程序可在调试,程序可在DSPDSP芯片上实时运行。芯片上实时运行。 可扩展的开发系统仿真器可扩展的开发系统仿真器( (XDS510)XDS510):可用来可用来进行系统级的集成调试,是进行进行系统级的集成调试,是进行DSPDSP芯片软硬件开发芯片软硬件开发的最佳工具。的最佳工具。 评价模块评价模块EVMEVM板:板:是一种低成本的开发板,可是一种低成本的开发板,可进行进行DSPDSP芯片评价、性能评估和有限的系统调试。芯片评价、性能评估和有限的系统调试。 .asm源文件源文件.obj目标文件目标文件.out输出文件输出文件.
9、 cmd链接命链接命令文件令文件. lst列表文件列表文件. map存储器存储器映像文件映像文件- - o- - m- - l常用的汇编命令:常用的汇编命令: asm500 %1 s 1 x 常用的汇编器命令:常用的汇编器命令: lnk500 %1.cmd lnk500:lnk500: %1.cmd:%1.cmd: 链接命令文件名,该文件须链接命令文件名,该文件须指明指明目标文件、目标文件、输入文件、输出文件、输入文件、输出文件、链接选项和存储器配置要求等。链接选项和存储器配置要求等。 常用的汇编器命令:常用的汇编器命令: lnk500 %1.cmd lnk500:lnk500: %1.cmd
10、:%1.cmd: 链接命令文件名,该文件须链接命令文件名,该文件须指明指明目标文件、目标文件、输入文件、输出文件、输入文件、输出文件、链接选项和存储器配置要求等。链接选项和存储器配置要求等。 目标文件目标文件目标存储器目标存储器.bss.data.textRAME2PROMROM作用:伪指令也称汇编伪指令,仅仅在汇编的过程中起作用,它们为汇编程序(asm)和链接程序(link)提供控制和管理信息,但并不产生代码。目的:增加程序编写的灵活性,增强汇编语言的功能,提高汇编系统的性能。 定义段的伪指令(6条).bss:未初始化变量段,用于为未初始化的变量在.bss段内 保留空间.text:程序代码段
11、,通常用于包含可执行程序代码。.data:初始化数据段,用于包含已初始化的数据,如表格数据等。.sect:自定义初始化段,可为程序或数据。可重定位。.usect:自定义未初始化段,在未初始化命名段内保留空间。.asect: 建立具有决对地址的初始化段。不建议使用。 初始化常数的伪指令.byte:把1个或多个8位数值放入当前段连续的字中,后面跟参数,由“,”分开;.word和.int:把1个或多个16位数值存储在当前段连续的字中;.long:把1个或多个32位数值存储在当前段连续的2个字中;.string:将1个或多个字符串中的8位字符存放在当前段中,一次存储两个字符,为空时放0(NULL);
12、主要应用于初始化数据存储器,而不需要指令赋值。引用其它文件的伪指令.copy和.include:告诉汇编器开始从其他文件中读取源说明,读完之后再恢复从当前文件读取源语句,.include包含的引用文件在LIST文件中不出现(不同于.copy);.def:指示在当前模块中定义且可以被其他模块使用的符号;.ref:识别在当前模块中使用但在其它模块定义的符号;.global:声明外部符号,该符号在链接时可以被其它模块使用;对于已定义的符号起.def的作用,对于未定义的符号起.ref作用。条件汇编伪指令.if/.elseif/.else/.endif: 指示汇编器根据表达式结果的真或假来汇编代码的某些
13、段;.loop/.break/.endloop: 根据表达式的值来重复地汇编代码块;汇编时的符号伪指令.set和.equ:把常量值赋给符号;.asg:把字符串赋给替代符号(在汇编时遇到该符号时,汇编器会把常量值或字符串嵌入到汇编结果中);.end:指示汇编器中止汇编; 例子: FP .set #20h; FP .equ #20h; ADD FP; .asg ar0, FP; .asg *+, INC; mar INC, FP 头文件及命令文件1个完整的DSP汇编语言文件一般要包含3种基本文件:(1)用于定义外设控制寄存器的映射地址、用户定义的端口寄存器地址和相关常量的头文件,如F2407REG
14、S.H,用.include引用;(2)实现要DSP完成的汇编语言工程文件,扩展名为.asm;(3)用于文件链接的命令文件,扩展名为.cmd,该文件实现对程序存储空间和数据存储空间的分配。头文件;C2xx Core Registers;IMR.set0004h; Int MaskIFR.set0006h; Int FlagWSGR.set0FFFFh ; Wait State Control (IO space mapped);Digital I/O;PADATDIR.set07098h ; I/O port A Data & DirectionPBDATDIR.set0709Ah ; I/O
15、port B Data & DirectionPCDATDIR.set0709Ch ; I/O port C Data & DirectionPDDATDIR.set0709Eh;I/O port D Data & Direction reg.PEDATDIR.set07095h ; I/O port D Data & DirectionPFDATDIR.set07096h ; I/O port D Data & Direction;-; Constant defines;-B0_SADDR.set00200h;Block B0 start addressB0_EADDR.set002FFh;
16、Block B0 end addressB1_SADDR.set00300h;Block B1 start addressB1_EADDR.set003FFh;Block B1 end addressB2_SADDR.set00060h;Block B2 start addressB2_EADDR.set0007Fh;Block B2 end address;External Data Space Registers;EXTDATA.set8000h;-; M A C R O - Definitions;-SBIT0.macroDMA,MASK; Clear bit MacroLACCDMAA
17、ND#(0FFFFh-MASK)SACLDMA.endmSBIT1.macroDMA,MASK; Set bit MacroLACCDMAOR#MASKSACLDMA.endmKICK_DOG.macro;Watchdog reset macroLDP#WD_KEY7SPLK#05555h,WD_KEYSPLK#0AAAAh,WD_KEY.endm汇编代码(工程文件)的格式 由汇编语言编写的程序采用ASCII码文件存储,每一行代码都包括标号、指令、操作数和注释; 标号:指令 操作数 ;注释 其中,标号用来定义一行代码或变量,它代表一条指令或数据的存储地址,标号后面的冒号是可选的。标号必须满足的
18、条件:标号的第一个字母必须是字母或下划线后跟一个字母;标号的第一个字母必须写在文件的第一列;标号最多可包含32个字母。 指令包括伪指令和汇编语言指令,伪指令一般用来在汇编过程中定义数据结构或控制汇编的流程,伪指令以原点开头(.);汇编语言命令是有效的CPU指令。 操作数由常数、符号和表达式构成,操作数之间必须用逗号分开。 注释用于对代码进行说明,一般应遵循:使用分号(;)开始时,注释可在任一列开始;使用星号(*)开始时,注释必须从文件的第一列开始;* *axis transformationconstants*SQRT3inv.set093Dh;1/SQRT(3) 4.12 formatSQR
19、T32.set0DDBh ;SQRT(3)/2 4.12 formatADR_start_stack .set079h.bssKi_isd,22ext_control:ldp#ctrl_nlarar1,#Kp_isq命令文件 实现对程序空间和数据空间的分配,常用到2个伪指令:MEMORY命令:描述系统实际的硬件资源SECTIONS命令:描述“段”如何定位MEMORY语法:MEMORY PAGE0: name0: origin=cons. , length=cons. ; PAGE1: name1: origin=cons. , length=cons. ;PAGE 标识存储空间origin 规
20、定存储器起始地址name 命名存储器范围length 规定存储器长度/*-*/* Memory Specifications */*-*/MEMORYPAGE 0: VECS: o=0000h, l=0040h /* reset&int vectors */PROG:o=0040h, l=07fc0h /* 32K prog space*/B0: o=0FF00h, l=0100h /* when CNF=1 */PAGE 1: MMRS:o=0000h, l=005Fh/* MMRS */B2:o=0060h, l=0020h/* DARAM B2 */B0B1: o=0200h, l=02
21、00h/* DARAM B0+B1 */SECTIONS 语法:SECTIONS .段名n 存储器名x 存储器空间(页p)SECTIONS/* Program sections */vectors: VECSPAGE 0 /* Res/int vectors */.text: PROGPAGE 0 /* Code */.data: PROGPAGE 0 /* Init tables */* Variable sections */.mmrs: MMRSPAGE 1 /* Memory Mapped Regs */.bss block(0 x80) B0B1PAGE 1 /* .bss variables */r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年河南商丘梁园职业学院单招综合素质考试题库含完整答案详解(考点梳理)
- 2026四川省人力资源和社会保障科学研究所招聘编外科研专员2人考试参考题库及答案详解
- 2026年亳州市利辛县劳务派遣招聘2名工作人员考试参考题库及答案详解
- 比较历史分析在比较教育中的应用研究
- 2026湖南湘潭湘乡市经开区区域党建工作指导站公开招聘工作人员3人考试参考题库及答案详解
- 2026夏季江苏南通市海安市教体系统招聘教师11人考试备考试题及答案详解
- 2026浙江温州瑞安市社会福利院招聘编外工作人员1人笔试备考题库及答案详解
- 2026年白山市事业单位公开招聘大学生乡村医生(8人)考试备考试题及答案详解
- 2025年沈阳市新城子区工会人员招聘考试试题及答案详解
- 2026年金融科技发展动态与创新实践报告
- 学校1530安全教育记录(2026年春季期)
- WMS系统课件培训
- 拆除储罐施工方案
- 防范非法网贷培训课件
- 2025年文化旅游项目申报材料撰写指南方案
- 逆向退货管理办法
- 农村儿童手机依赖问题小组干预策略研究
- 防灾避难场所设计规范
- 口服给药操作技能
- 照明与健康人因工程学研究
- 山东会展业发展研究
评论
0/150
提交评论