第5章TMS320C55X汇编语言编程 51TMS320c55X软件开发流程 52TMs320c55X目标文件格式 53TMS320c55X汇编器 54TMS320c55X汇编伪指令 55TMs320C55X汇编语言源文件的书写格式 56TMs320c55X链接器 57一个完整的TMs320c55X汇编程序
◼5.1 TMS320C55x软件开发流程 ◼5.2 TMS320C55x目标文件格式 ◼5.3 TMS320C55x汇编器 ◼5.4 TMS320C55x汇编伪指令 ◼5.5 TMS320C55x汇编语言源文件的书写格式 ◼5.6 TMS320C55x链接器 ◼5.7 一个完整的TMS320C55x汇编程序 第5章TMS320C55x汇编语言编程 3
1TMS320c55x软件开发流程 51软件开发流程 编程语言 ◆汇编语言 编程过程复杂,但程序执行效率高 C/C++语言 编程容易,但程序执行效率不如汇编语言 软件开发环境 ◆集成开发环境ccS( Code Composer Studio)(第3章) ◆非集成开发环境本章介绍)
5.1 TMS320C55x软件开发流程 5.1.1 软件开发流程 ⚫编程语言 ◆汇编语言 编程过程复杂,但程序执行效率高 ◆C/C++语言 编程容易,但程序执行效率不如汇编语言 ⚫软件开发环境 ◆集成开发环境CCS(Code Composer Studio)(第3章) ◆非集成开发环境(本章介绍) 4
511软件开发流程 ●非集成开发环境下,C55x的软件开发流程和所 用工具与CCS下是一样的。因此本章有关内容也 是学习CCS的基础。 ●两个环境的不同在于: ◆CCS把有关开发工具集成在一个 Window界 面下使用,使用更方便 ◆CCS增加了一些新的开发工具,功能更强大
5.1.1 软件开发流程 ⚫非集成开发环境下,C55x的软件开发流程和所 用工具与CCS下是一样的。因此本章有关内容也 是学习CCS的基础。 ⚫两个环境的不同在于: ◆ CCS把有关开发工具集成在一个Window界 面下使用,使用更方便 ◆ CCS增加了一些新的开发工具,功能更强大 5
0/H源 源程序 图5-1非集成开发 文件 (C或CPP) 环境下C55软件法灌文 c/0++编 开发流程图 源程序 存档器 汇编源 (asm) 反汇编 「宏库 汇编器 目标文件 库文件 标文存建库工 Cobi) 存档器 (lib) 可执行输出 件库 实时行文件( 链接器)支持库 Cout) 可脱机运行转换Y 的 执行自 0FF文件 的执行程序 (hex)>额5 调试工具 6
存 档 器 链 接 器 存 档 器 建 库 工 具 H E X 代 码 转 换 工 具绝 对 地 址 列 表 器 交 叉 引 用 列 表 器 E P R O M 编 程 器 C 5 5 x i M a c 调 试 工 具 反 汇 编 器 C / C + + 编 译 器 汇 编 器 宏 源 文 件宏库 目标文 件库 实 时 运 行 支 持 库 C O F F 目 标 文 件 C / C + + 源 文 件 汇 编 源 文 件 可 执 行 的 C O F F 文 件 源程序 (.C 或.CPP) 源程序 (.asm) 目标文件 库文件 (.obj) (.lib) 可执行输出 文件(.out) 可脱机运行 的执行程序 (.hex) 6 图 5 -1 非集成开发 环境下C55x软件 开发流程图
非集成开发环境下软件开发的流程图 采用c/C++语言或汇编语言编写源文件(c或asm) 经c/C++编译器、汇编器生成COFF格式的目标文 件(obj),再用链接器进行链接,生成在c55x上可 执行的目标代码(out 然后利用调试工具(软件仿真器 simulato或硬件仿 真器 emulator)对可执行目标代码进行仿真和调试。 当调试完成后,通过Hex代码转换工具将调试后的 可执行目标代码(ou转换成 EPROM编程器能接受 的代码(hex) 并将该代码固化到 EPROM中或加载到用户的应用系 统中,以便DSP目标系统脱离计算机单独运行
◆采用C/C++语言或汇编语言编写源文件(.c或.asm); ◆ 经C/C++编译器、汇编器生成COFF格式的目标文 件(.obj),再用链接器进行链接,生成在C55x上可 执行的目标代码(.out); ◆然后利用调试工具(软件仿真器simulator或硬件仿 真器emulator)对可执行目标代码进行仿真和调试。 ◆当调试完成后, 通过Hex代码转换工具, 将调试后的 可执行目标代码(.out)转换成EPROM编程器能接受 的代码(.hex); ◆并将该代码固化到EPROM中或加载到用户的应用系 统中, 以便DSP目标系统脱离计算机单独运行。 ⚫ 非集成开发环境下软件开发的流程图 7
512软件开发工具 ●代码生成工具 ◆源代码编辑器 采用汇编语言或C/C++语言编写的源程序均为 文本文件,可以在任何一种文本编辑器中进行。如 WoRD、EDIT、TC、 Windows操作系统自带的 笔记本等 ◆c/C++编译器 用来将C/C++语言源程序(C或CPP)自动编译 为c55x的汇编语言源程序(asm)
5.1.2 软件开发工具 ⚫代码生成工具 ◆源代码编辑器 采用汇编语言或C/C++语言编写的源程序均为 文本文件,可以在任何一种文本编辑器中进行。如 WORD、EDIT、TC、Windows操作系统自带的 笔记本等 ◆ C/C++编译器 用来将C/C++语言源程序(.C或.CPP)自动编译 为C55x的汇编语言源程序(.asm)。 8
512软件开发工具 ◆汇编器 用来将汇编语言源文件(asm)汇编成机器语言coFF 目标文件(obj)。 链接器 将汇编生成的、可重新定位的COFF目标模块(ob) 组合成一个可执行的COFF目标模块(out)。 ◆文档管理器 允许用户将一组文件(源文件或目标文件)集中为一个 文档文件库
5.1.2 软件开发工具 ◆ 汇编器 用来将汇编语言源文件(.asm)汇编成机器语言COFF 目标文件(.obj)。 ◆ 链接器 将汇编生成的、可重新定位的COFF目标模块(.obj) 组合成一个可执行的COFF目标模块(.out)。 ◆ 文档管理器 允许用户将一组文件(源文件或目标文件)集中为一个 文档文件库 。 9
512软件开发工具 ◆建库实用程序 用来建立用户自己使用的、并用C/C++语言编写的 支持运行的库函数。 十六进制转换程序 可以很方便地将COFF目标文件(out转换成T Intel、 Motorola等公司的目标文件格式(hex)。 ◆绝对制表程序 将链接后的目标文件作为输入生成abs输出文件。 交叉引用制表程序 利用目标文件生成一个交叉引用清单,列出链接 的源文件中的符号以及它们的定义和引用情况
5.1.2 软件开发工具 ◆建库实用程序 用来建立用户自己使用的、并用C/C++语言编写的 支持运行的库函数。 ◆十六进制转换程序 可以很方便地将COFF目标文件(.out)转换成TI、 Intel、Motorola等公司的目标文件格式(.hex) 。 ◆绝对制表程序 将链接后的目标文件作为输入, 生成.abs输出文件。 ◆交叉引用制表程序 利用目标文件生成一个交叉引用清单,列出链接 的源文件中的符号以及它们的定义和引用情况。 10
512软件开发工具 ●代码调试工具 软件仿真器( Simulator) 是一种模拟DSP芯片各种功能并在非实时条 件下进行软件调试的调试工具,它不需目标硬件 支持,只需在计算机上运行 ◆硬件仿真器(XDs510) 可用来进行系统级的集成调试,是进行DSP 芯片软硬件开发的最佳工具
5.1.2 软件开发工具 ⚫ 代码调试工具 ◆ 软件仿真器(Simulator) 是一种模拟DSP芯片各种功能并在非实时条 件下进行软件调试的调试工具,它不需目标硬件 支持,只需在计算机上运行 ◆ 硬件仿真器(XDS510) 可用来进行系统级的集成调试,是进行DSP 芯片软硬件开发的最佳工具 11
52TMS320C55x目标文件格式 521COFF文件的基本单元一段 522汇编器对段的处理 523链接器对段的处理 524链接器对程序的重新定位 525cOFF文件中的符号 12
5.2 TMS320C55x目标文件格式 ◼ 5.2.1 COFF文件的基本单元—段 ◼ 5.2.2 汇编器对段的处理 ◼ 5.2.3 链接器对段的处理 ◼ 5.2.4 链接器对程序的重新定位 ◼ 5.2.5 COFF文件中的符号 12