320 likes | 432 Views
TMS320C30 软件编程与仿真. ASSEMBLER SOURCE. ASSEMBLER. OBJECT FILES. OBJECT FILES. OBJECT FILES. LINKER. OBJECT FORMAT CONVERTER. EXECUTABLE OBJECT FILE. SIMULATOR. TMS320C30. XDS EMULATOR. EPROM PROGRAMMR. 一 . 程序编写流程. 1. 流程图. 2. 各步骤说明. (1). 源程序的编写 编写环境: EDIT, 写字板,各种文本编辑器
E N D
ASSEMBLER SOURCE ASSEMBLER OBJECT FILES OBJECT FILES OBJECT FILES LINKER OBJECT FORMAT CONVERTER EXECUTABLE OBJECT FILE SIMULATOR TMS320C30 XDS EMULATOR EPROM PROGRAMMR • 一.程序编写流程 1.流程图
2.各步骤说明 (1).源程序的编写 编写环境:EDIT,写字板,各种文本编辑器 以及程序编辑器。 注意:保存时文件的后缀名应为.ASM (2).汇编 工具:ASM30.EXE (VERSION3.00) 源文件*.ASM经过汇编生成目标文件*.OBJ。
作用: 将汇编语言源文件翻译成机器语言目标文件。源文件中可以包含指令,控制汇编译码的伪指令和宏命令。
(3).链接 工具:LNK30.EXE (VERSION3.00)。 机器码目标文件*.OBJ经链接生成*.OUT文件 作用:将各目标文件结合成一个单一的,可执行的目标模块。
ASSEMBLER SOURCE ASSEMBLER OBJECT FILES OBJECT FILES OBJECT FILES LINKER OBJECT FORMAT CONVERTER EXECUTABLE OBJECT FILE SIMULATOR TMS320C30 XDS EMULATOR EPROM PROGRAMMR
以上各过程的目的是产生一个能在包含TMS320C30器件的软硬件开发系统中被执行的可执行模块以上各过程的目的是产生一个能在包含TMS320C30器件的软硬件开发系统中被执行的可执行模块 注意
ASSEMBLER SOURCE ASSEMBLER OBJECT FILES OBJECT FILES OBJECT FILES LINKER OBJECT FORMAT CONVERTER EXECUTABLE OBJECT FILE SIMULATOR TMS320C30 XDS EMULATOR EPROM PROGRAMMR
二.SIMULATOR 简介: SIMULATOR是一种可以模仿TMS320C30操作的软件程序。他具有以下特点: .模拟整个TMS320C30数字信号处理器的指令系统。 .模拟TMS320C30关键的外围功能(DMA,定时器,串口) .用户可以自己编制标准接口
.通过反汇编可对源语句作编辑和重新汇编。 .存储器可以被显示为: -16进制的32位数 -经过汇编的源码 .可以方便的定义跟踪表达式 .可在执行程序时对时钟周期进行计数
三.存储器的配置 1.TMS320C30的总存储空间为16M×32位,程序、数据、I/O空间均包含其中,各种系数、表、程序代码或数据既可存于RAM又可存于ROM。 2.存储器图 P.157 图5-5
3.应注意的事项: (1).SIMULATOR中默认:TMS320C30为微机算机模式,即MC/MP=1,仿真存储空间为: 0000H~0FFFH(ROM,4K×32), 809800H~809BFFH(RAM1,1K×32), 809C00H~809FFFH(RAM2,1K×32)。 仿真器中存储空间可以按用户需求配置!
(2).00H~0BFH的192单元为TMS320C30的复位矢量,中断矢量,陷阱矢量,以及保留单元的默认空间,在程序执行中对保留单元的操作将会使系统停止运行,故程序至少应从0C0H开始。(2).00H~0BFH的192单元为TMS320C30的复位矢量,中断矢量,陷阱矢量,以及保留单元的默认空间,在程序执行中对保留单元的操作将会使系统停止运行,故程序至少应从0C0H开始。 (3).处理器复位时处理器结束正在执行的程序并在PC中置入复位矢量(即存储器0单元的内容) ,复位矢量通常为系统初始化程序的地址。
四.具体编程及仿真方法 汇编源程序的编写: 1.目标文件的格式:目标文件中最小的单位称之为节(SECTION),在一节中包含的代码和数据将会最终占据存储器中相邻的存储空间。 在一个COFF(COMMON OBJECT FILE FORMAT)目标文件中通常包含以下三个部分:
.text-可执行代码部分 .data-初始化数据部分 .bss -未初始化变量的保留空间 如果当我们不应用任何译码指令,程序在链接生成目标文件时就会将所有指令编入.text中,如果不应用存储器和节的特殊译码指令,编译器将应用默认方式:
00H .text low .data .bss high .usect .sect (1).认为存储单元从00H开始; (2).将.text从00H开始分配空间; (3).将.data置于.text后开始分配空间; (4).将.bss置于.data后开始分配空间; (5).将自定义的节置于.bss后开始分配空间。
2.常用伪指令: 伪指令:汇编程序对源程序进行汇编期间指导汇编程序操作的一系列指令。 我们可以应用伪指令来进行数据定义,分配存储器,指示程序结束等一系列操作。
(1) .data 格式:.data 功能:指引编译器开始.data节的编译,并将 源代码编入当前.data节。
(2) .text 格式: .text 功能:指引编译器开始.text节的编译,并将 源代码编入当前.text节。
(3) .sect 格式:.sect “section name” 功能:自定义一个新的节,这一节可包含数 据和代码,在汇编时他将与其他的节 相独立。 .sect “new_section”
(4) .bss .usect 格式: .bss symbol,size symbol .usect “section name”,size 功能:为未初始化的变量预留空间。Symbol 指向预留空间的起始地址,所以可以 看作是为变量symbol预留的空间。
.bss array,100 array .usect ”var1”, 100
(5) .space 格式:.space size 功能:在当前节预留size个字的存储空间,并 且置零。 .space 100
(6) .global 格式:.global symbol1[,symbol2,……] 功能:定义全局标号global,这种标号可以 在不同模块中访问。 .global INIT
(7) .set 格式:symbol .set value 功能:将一个有意义的符号等价于一个常量。 PI .set 3.14159
(8) .word 格式: .word value1[,value2,……] 功能:将32bit的整数值分配在连续的存储空 间内 .word 13,45h,’AB’
(9) .float 格式: .float value1[,value2,……] 功能:将32bit的单精度浮点数分配在连续的 存储空间内。 .float 3.1415
(10) .end 格式:.end 功能:结束汇编,在此指令之后的任何代码 将不会得到汇编。
2.源程序的汇编: 3.目标文件的链接:
4.SIMULATOR仿真: (1).仿真器环境介绍。(VERSION1.1) (2).具体程序的仿真。