版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1主要内容主要内容第四章第四章 程序编写和调试环境简介程序编写和调试环境简介24 41.1. 汇编语言汇编语言 汇编语言包括汇编指令、伪指令和宏指令。由汇编语言汇编语言包括汇编指令、伪指令和宏指令。由汇编语言编写的编写的汇编语言源程序汇编语言源程序经过汇编器汇编成经过汇编器汇编成机器语言目标程序机器语言目标程序,再由链接器将多个目标程序连接成一个单一的再由链接器将多个目标程序连接成一个单一的可执行程序可执行程序。1.1.汇编指令:即指令系统,该类指令在汇编时将产生一一对汇编指令:即指令系统,该类指令在汇编时将产生一一对应的目标代码。应的目标代码。2.2.伪指令:在汇编和链接时提供控制信息和数据
2、,但不产生伪指令:在汇编和链接时提供控制信息和数据,但不产生目标代码。目标代码。3.3.宏指令:是用户自己创建的宏指令:是用户自己创建的“指令指令”,在汇编时将其展开,在汇编时将其展开并汇编成对应的目标代码。并汇编成对应的目标代码。 (定义宏、调用宏、展开宏)(定义宏、调用宏、展开宏)4 41 1 程序的编写程序的编写3汇编语言格式:汇编语言格式: 标号标号: 助记符助记符 操作数操作数1 1,操作数,操作数2 2,;注释;注释 (1 1)标号区标号区:供本程序的其他部分或其他程序调用。标号是任:供本程序的其他部分或其他程序调用。标号是任选项,标号后可以加也可不加选项,标号后可以加也可不加“:
3、”。标号必须从第。标号必须从第1 1列写起,列写起,最多最多3232个字符,但第一个字母不能以数字开头。个字符,但第一个字母不能以数字开头。(2 2)助记符助记符:可以是汇编语言指令、汇编伪指令、宏指令,一:可以是汇编语言指令、汇编伪指令、宏指令,一般大写;汇编伪指令和宏指令,以英文句号般大写;汇编伪指令和宏指令,以英文句号“.”“.”开始,且为小开始,且为小写。写。注:指令和汇编命令不能写在第注:指令和汇编命令不能写在第1 1列,否则会被认为是标号。列,否则会被认为是标号。(3 3)操作数操作数:指令中的操作数或汇编伪指令中定义的内容。操:指令中的操作数或汇编伪指令中定义的内容。操作数之间必
4、须用逗号作数之间必须用逗号“,”分开。分开。(4 4)注释注释:注释从分号:注释从分号“;”开始。注释是任选项,如果注释开始。注释是任选项,如果注释从第从第1 1列开始,也可以用列开始,也可以用“* *”开始。开始。4开发工具名称及功能开发工具名称及功能: : 1.1.汇编器汇编器(Assembler)(Assembler):将汇编语言源文件转换成机器语言:将汇编语言源文件转换成机器语言COFFCOFF目标文件。目标文件。 (. .OBJOBJ)2.2.链接器(链接器(LinkerLinker):将汇编产生的、可重新定位的):将汇编产生的、可重新定位的COFFCOFF目目标文件结合成一个可执行
5、的目标模块。标文件结合成一个可执行的目标模块。(.(.OUT)OUT)3.C3.C编译器(编译器(C CompilerC Compiler):将):将C/C+C/C+源程序转换成源程序转换成24X24X的汇的汇编语言源程序。编语言源程序。54 41.1. 几个常用汇编伪指令介绍几个常用汇编伪指令介绍 汇编伪指令可以实现以下功能汇编伪指令可以实现以下功能:汇编代码和数据到指定的段;汇编代码和数据到指定的段;为未定义的变量保存空间;为未定义的变量保存空间;控制列表文件;控制列表文件;汇编条件块;汇编条件块;定义全局变量;定义全局变量;指定汇编器能得到的宏;指定汇编器能得到的宏;检查符号调试信息。检
6、查符号调试信息。6伪指令分为伪指令分为8 8类:类:1.1.定义段的伪指令定义段的伪指令2.2.初始化常数伪指令初始化常数伪指令3.3.调准段程序计数器的伪指令调准段程序计数器的伪指令4.4.引用其他文件的伪指令引用其他文件的伪指令5.5.条件汇编伪指令条件汇编伪指令6.6.汇编时符号伪指令汇编时符号伪指令7.7.输出列表伪指令输出列表伪指令8.8.其他伪指令其他伪指令71.1.定义段的伪指令定义段的伪指令:把汇编语言程序的各部分与适当的段联系:把汇编语言程序的各部分与适当的段联系起来。包括起来。包括.bss, .data, .text, .sect, .usect.bss, .data, .
7、text, .sect, .usect,.asect.asect。基本单元基本单元段段:所谓段(所谓段(sectionssections)是指连续占有存储空间的一个数据或代码)是指连续占有存储空间的一个数据或代码块。编写汇编源程序时,程序按段组织,每行汇编语言都从属块。编写汇编源程序时,程序按段组织,每行汇编语言都从属一个段,并由段汇编伪指令标明该段的属性。一个段,并由段汇编伪指令标明该段的属性。源程序按代码块、数据块格式编写,通常包含以下源程序按代码块、数据块格式编写,通常包含以下3 3个默认段:个默认段:l.text.text段(文本段):通常包含可执行代码;段(文本段):通常包含可执行代
8、码;l.data.data段(数据段):通常包含初始化的数据;段(数据段):通常包含初始化的数据;l.bss.bss(保留空间段):通常为没有初始化的变量保留空间。(保留空间段):通常为没有初始化的变量保留空间。此外,还可建立自定义段,如此外,还可建立自定义段,如.sect.sect段,段,.usect.usect段。段。8有两种基本类型的段:有两种基本类型的段:(1 1)初始化段:包含数据或代码,包括段)初始化段:包含数据或代码,包括段.text.text、段、段.data.data以以及由及由.sect.sect产生的自定义段。产生的自定义段。(2 2)未初始化段:为没有初始化的数据保留存
9、储空间,包)未初始化段:为没有初始化的数据保留存储空间,包括括.bss.bss段和段和.usect.usect产生的自定义段。产生的自定义段。段:指在存储器中占有连续空间的代码块和数据块,它是目标段:指在存储器中占有连续空间的代码块和数据块,它是目标 文件中的最小单位。文件中的最小单位。9(1 1)定义初始化命名段伪指令)定义初始化命名段伪指令.sect.sect句法:句法:.sect “.sect “段名段名”说明:说明: .sect.sect伪指令定义初始化命名段。段名必须用引号引伪指令定义初始化命名段。段名必须用引号引起。起。 .sect.sect段中可包括代码或数据,类似于段中可包括代
10、码或数据,类似于.text.text和和.data.data伪伪指令的命名段。指令的命名段。(2 2)在存储器中为变量保留空间伪指令)在存储器中为变量保留空间伪指令.bss.bss句法:句法: .bss .bss 符号,字长符号,字长 ,块标志,块标志 说明:该指令为没有初始化的变量保留空间,通常是在说明:该指令为没有初始化的变量保留空间,通常是在RAMRAM中中保留空间。保留空间。10(3 3)定义代码段伪指令)定义代码段伪指令.text.text句法:句法:.text.text说明:说明: 该伪指令定义该伪指令定义.text.text段中的代码部分。该部分为可执段中的代码部分。该部分为可执
11、行代码。行代码。 .text.text段是默认段,如果没有使用任何段伪指令,段是默认段,如果没有使用任何段伪指令,则汇编器将把所有内容都汇编进则汇编器将把所有内容都汇编进.text.text段。段。(4 4)为未命名段中的变量保留空间伪指令)为未命名段中的变量保留空间伪指令.usect.usect句法:符号名句法:符号名 .usect “.usect “段名段名”,字长,字长 ,块边界,块边界 说明:说明: .usect.usect伪指令为一个未命名段中的变量保留空间。类伪指令为一个未命名段中的变量保留空间。类似于似于.bss.bss伪指令,但是它允许用户与段伪指令,但是它允许用户与段.bss
12、.bss分开保留空间。分开保留空间。112.2.初始化常数的伪指令初始化常数的伪指令:该类指令为当前段汇编数值。包:该类指令为当前段汇编数值。包括括.bes, .space, .byte, .field, .float.bes, .space, .byte, .field, .float,.bfloat.bfloat,. t,.word, .long.word, .long,.blong.blong,.string.string。(1 1)预留存储器位伪指令)预留存储器位伪指令.bes.bes和和.space.space句法:句法:.bes .bes 位数位数 .space .sp
13、ace 位数位数说明:说明: 这两条指令在当前段内保留一个指定数目的位数,并这两条指令在当前段内保留一个指定数目的位数,并用用0 0填充。用位数(填充。用位数(n n* *1616)可以保留)可以保留n n个字单元。个字单元。当用当用.bes.bes定义时,相应的标号指向保留位的最后定义时,相应的标号指向保留位的最后1 1个字;个字;当用当用.space.space定义时,相应的标号指向保留位的第定义时,相应的标号指向保留位的第1 1个字。个字。12(2 2)存储)存储8 8位值伪指令位值伪指令.byte.byte句法:句法: 标号标号 .byte .byte 数值数值11,数值,数值2 2,
14、数值,数值nn说明:说明: .byte.byte指令将一个或多个指令将一个或多个8 8位的值置入当前段的连续字位的值置入当前段的连续字中。该指令类似于中。该指令类似于.word.word伪指令,区别在于每个值宽度是伪指令,区别在于每个值宽度是8 8位。位。(3 3)给当前字赋值伪指令)给当前字赋值伪指令.field.field句法:句法: .field .field 数值数值 ,位长度,位长度 说明:说明: .field.field伪指令将一个数值置入当前字中,该值占据的伪指令将一个数值置入当前字中,该值占据的位由位由“位长度位长度”指定。指定。位长度是一个可选参数,它指定位长度是一个可选参数
15、,它指定1-161-16位的数字,用以说明数值位的数字,用以说明数值在区域中的位数。若缺省,默认为在区域中的位数。若缺省,默认为1616位。若数值表示的位超出位。若数值表示的位超出位长度,则截断高位,并提出警告。位长度,则截断高位,并提出警告。13(4 4)存储)存储3232位浮点数伪指令位浮点数伪指令.float.float和和.bfloat.bfloat句法:句法: .float .float 数值数值 .bfloat .bfloat 数值数值说明:说明: .float.float和和.bfloat.bfloat伪指令将一个单精度伪指令将一个单精度3232位位IEEEIEEE浮点浮点数存储
16、在当前段的两个连续的字中,先存储低字,后存储高数存储在当前段的两个连续的字中,先存储低字,后存储高字。字。 .bfloat.bfloat保证定义的浮点数不跨越页边界。保证定义的浮点数不跨越页边界。(5 5)存储)存储1616位字伪指令位字伪指令.和和.word.word句法:句法: .int .int 数值数值11,,数值数值nn .word .word 数值数值11,,数值数值nn说明:说明: .和和.word.word伪指令将一个和多个伪指令将一个和多个1616位数值或表达式置位数值或表达式置入当前段的连续字中。入当前段的连续字中。14(6 6)存储)存储323
17、2位字伪指令位字伪指令.long.long和和.blong.blong句法:句法: .long .long 数值数值11,,数值数值nn .blong .blong 数值数值11,,数值数值nn说明:说明: .long.long和和.blong.blong将一个或多个将一个或多个3232位的数值置入当前段中位的数值置入当前段中的连续两个字中(的连续两个字中( 先存放低位字,后存放高位字)。先存放低位字,后存放高位字)。 .blong.blong保证使目标不跨越页边界。保证使目标不跨越页边界。(7 7)存放字符串伪指令)存放字符串伪指令.string.string句法:句法: .string “
18、.string “字符串字符串1”1”,,“,“字符串字符串n”n”说明:说明: .string.string伪指令把字符串中的字符放入当前段中,除了伪指令把字符串中的字符放入当前段中,除了把两个字符组装入每一个字外,这个伪指令类似于把两个字符组装入每一个字外,这个伪指令类似于.byte.byte。153.3.调准段程序计数器的伪指令调准段程序计数器的伪指令:该类指令可使段程:该类指令可使段程序计数器序计数器SPCSPC指向预定的位置。包括指向预定的位置。包括.align, .even.align, .even。段程序计数器(段程序计数器(SPCSPC):汇编器为每个段设置了一个汇编器为每个段
19、设置了一个独立的程序计数器。独立的程序计数器。SPCSPC代表代码或数据段内的当前代表代码或数据段内的当前地址。起始时汇编器把每个地址。起始时汇编器把每个SPCSPC设置为设置为0 0,即每个段,即每个段地址从地址从0 0开始,当汇编器用代码或数据填充段时,会开始,当汇编器用代码或数据填充段时,会使相应的使相应的SPCSPC增加。增加。16(1 1)重置)重置SPCSPC伪指令伪指令.align.align句法:句法:.align.align说明:说明: .align.align重置段程序计数器(重置段程序计数器(SPCSPC),使其指向下一个),使其指向下一个页边界,以确保后面的代码从一个数
20、据页开始。汇编器将未页边界,以确保后面的代码从一个数据页开始。汇编器将未用的空间用含用的空间用含NOPNOP指令的字填满,直至页边界。指令的字填满,直至页边界。(2 2)对)对SPCSPC进行排列伪指令进行排列伪指令.even.even句法:句法:.even.even说明:说明: .even.even伪指令对伪指令对SPCSPC进行排列,使其指向完整的字。进行排列,使其指向完整的字。用过用过.field.field伪指令后应该用伪指令后应该用.even.even伪指令,如果伪指令,如果.field.field没有填没有填满一个字,满一个字, .even.even将用将用0 0填充未填满的位,然
21、后填充未填满的位,然后SPCSPC增加,指增加,指向下一个地址。向下一个地址。174.4.引用其他文件的伪指令引用其他文件的伪指令:该类指令为文件提供信息或提供:该类指令为文件提供信息或提供这些文件的信息。包括这些文件的信息。包括.copy, .include,.global,.copy, .include,.global,.def,.ref,.mlib.def,.ref,.mlib。(1 1)复制文件伪指令)复制文件伪指令.copy.copy和和.include.include句法:句法:.copy “ .copy “ 文件名文件名” .include “ .include “ 文件名文件名
22、”说明:说明: .copy.copy和和.include .include 伪指令告诉汇编器从其他文件中读伪指令告诉汇编器从其他文件中读入源语句。从入源语句。从.copy.copy伪指令读入的源语句将在列表文件中列出,伪指令读入的源语句将在列表文件中列出,从从.include.include伪指令中读入的源语句不在列表文件中列出。伪指令中读入的源语句不在列表文件中列出。18(2 2)定义全局符号伪指令)定义全局符号伪指令.global,.def.global,.def和和.ref.ref句法:句法: .global .global 符号符号11,符号,符号nn .def .def 符号符号11
23、,符号,符号nn .ref .ref 符号符号11,符号,符号nn说明:说明: .global,.def .global,.def和和.ref.ref伪指令所指定的符号为全局符号,伪指令所指定的符号为全局符号,这些全局符号可以在外部定义或在外部被引用。这些全局符号可以在外部定义或在外部被引用。.def.def指定在当前模块中定义且可以在其他模块中使用的符号。指定在当前模块中定义且可以在其他模块中使用的符号。.ref.ref指定一个或多个在当前模块中使用但在其他模块中定义的符指定一个或多个在当前模块中使用但在其他模块中定义的符号。号。.global.global同时具备同时具备.def.def和
24、和.ref.ref的功能,需要时可代替这两条指令。的功能,需要时可代替这两条指令。195.5.条件汇编伪指令条件汇编伪指令:该类指令使汇编器根据表达式求值结果的:该类指令使汇编器根据表达式求值结果的真或假来汇编代码的某些段。包括真或假来汇编代码的某些段。包括.if, .elseif,.else,.if, .elseif,.else,.endif,.loop,.break,.endloop.endif,.loop,.break,.endloop。(1 1)条件汇编伪指令)条件汇编伪指令.if,.elseif,.else.if,.elseif,.else和和.endif.endif.if expr
25、ession .if expression 标志条件块的开始,如果标志条件块的开始,如果.if.if条件为条件为 真,那么汇编该表达式后面的代码块。真,那么汇编该表达式后面的代码块。.elseif expression .elseif expression 如果如果.if.if条件为假且条件为假且.elseif.elseif为真,为真, 那么汇编那么汇编.elseif.elseif表达式后面的代码块。表达式后面的代码块。.else .else 如果如果.if.if为假,那么汇编此代码块。为假,那么汇编此代码块。.endif .endif 标志条件汇编块的末尾并结束该块。标志条件汇编块的末尾并结
26、束该块。 20(2 2)重复汇编伪指令)重复汇编伪指令.loop,.break.loop,.break和和.endloop.endloop.1oop expression .1oop expression 标志可重复代码块的开始。标志可重复代码块的开始。.break expression .break expression 告诉汇编器当告诉汇编器当.break.break表达式为假时表达式为假时 继续重复汇编;如果表达式为真,继续重复汇编;如果表达式为真, 那么转移到紧接在那么转移到紧接在.endloop.endloop之后的之后的 代码。代码。.endloop .endloop 标志可重复代
27、码块的末尾。标志可重复代码块的末尾。 216.6.汇编时符号伪指令汇编时符号伪指令:该类指令使定义的符号名等同于常数值:该类指令使定义的符号名等同于常数值或字符串。包括或字符串。包括.asg.asg,.eval.eval,.set.set,.equ.equ,.struct.struct,.endstruck.endstruck,.newblock.newblock。(1 1)赋字符串指令)赋字符串指令.asg.asg句法:句法: .asg “ .asg “ 字符串字符串 ”,替代符号,替代符号说明:说明: .asg.asg伪指令将字符串赋给替代符号,该指令与伪指令将字符串赋给替代符号,该指令与
28、.set.set指指令相似。不同的是令相似。不同的是.set.set指令将一个常数赋给一个字符(且不能指令将一个常数赋给一个字符(且不能重复定义),而重复定义),而.asg.asg将字符串赋给一个字符(可以重复定义)。将字符串赋给一个字符(可以重复定义)。22(2 2)赋值指令)赋值指令.set.set和和.equ.equ句法:句法: 符号符号 .set .set 数值数值 符号符号 .equ .equ 数值数值说明:说明: .set.set或或.equ.equ伪指令为一个符号定义一个常数值,两伪指令为一个符号定义一个常数值,两条指令功能相同。条指令功能相同。(3 3)定义数据结构元素伪指令)
29、定义数据结构元素伪指令.struct,.tag.struct,.tag和和.endstruct.endstruct说明:说明: .struct.struct和和.endstruct.endstruct伪指令类似伪指令类似C C语言的结构定义,语言的结构定义,用这种方法使用户能把类似的元素组合在一起,然后把元用这种方法使用户能把类似的元素组合在一起,然后把元素偏移量的计算留给汇编器。素偏移量的计算留给汇编器。.tag.tag伪指令将结构的特征赋给一个标号,从而简化了结构伪指令将结构的特征赋给一个标号,从而简化了结构的符号描述,并提供了一种定义结构的能力。的符号描述,并提供了一种定义结构的能力。2
30、3(4 4)赋表达式结果伪指令)赋表达式结果伪指令.eval.eval句法:句法: .eval .eval 明确的表达式,替代符号明确的表达式,替代符号说明:说明: .eval.eval指令对表达式求值把结果转化为字符,并把指令对表达式求值把结果转化为字符,并把字符赋给替代符号。字符赋给替代符号。247.7.其他伪指令其他伪指令:具有其他功能和特性的伪指令。包:具有其他功能和特性的伪指令。包括括.end, .label.end, .label,.mmregs.mmregs,.port.port,.sblock.sblock,.version.version,.emsg.emsg,.wmsg.w
31、msg。(1 1)终止源程序汇编伪指令)终止源程序汇编伪指令.end.end说明:说明: .end.end伪指令终止源程序汇编,它是一个程序的最后一伪指令终止源程序汇编,它是一个程序的最后一条源语句。汇编器将条源语句。汇编器将.end.end后面的所有源语句都忽略掉。后面的所有源语句都忽略掉。(2 2)定义段装入地址的符号伪指令)定义段装入地址的符号伪指令.label.label说明:说明: .label.label伪指令定义特定的标号,它表示当前段内装载伪指令定义特定的标号,它表示当前段内装载时的地址。时的地址。(3 3)定义汇编代码伪指令)定义汇编代码伪指令.version.version
32、说明:说明: .version.version告诉汇编器该代码适用于哪一种处理器。有告诉汇编器该代码适用于哪一种处理器。有效的器件号是效的器件号是1010,1616,2020,2525,和,和5050。.version.version伪指令必须出伪指令必须出现在指令之前,否则将出错。现在指令之前,否则将出错。 254 41.3 31.3 3种基本的文件种基本的文件 1.1.汇编语言文件:后缀为汇编语言文件:后缀为.ASM ,.ASM ,书写该文件所用指令为书写该文件所用指令为LF2407LF2407支持的汇编语言指令。在该程序中实现支持的汇编语言指令。在该程序中实现DSPDSP要完成的功要完成
33、的功能。能。 2. 2. 头文件:后缀为头文件:后缀为.H.H,定义,定义DSPDSP系统用到的一些寄存器映射系统用到的一些寄存器映射地址,用户用到的常量和用户自定义的寄存器都在该文件中地址,用户用到的常量和用户自定义的寄存器都在该文件中定义。格式为定义。格式为.include “.include “文件名文件名.H”.H”。3. 3. 命令文件:后缀为命令文件:后缀为.CMD.CMD,该文件实现对程序存储器空间和,该文件实现对程序存储器空间和数据存储器空间的分配。该文件常用到的伪指令有数据存储器空间的分配。该文件常用到的伪指令有MEMORYMEMORY伪伪指令和指令和SECTIONSSECT
34、IONS伪指令。伪指令。 26伪指令伪指令MEMORYMEMORY和和SECTIONSSECTIONS:1.MEMORY1.MEMORY伪指令:用来标示实际存在目标系统中且可被使用的存伪指令:用来标示实际存在目标系统中且可被使用的存储器范围,每个存储器范围具有名字,起始地址和长度。储器范围,每个存储器范围具有名字,起始地址和长度。MEMORYMEMORY伪指令的一般语法为:伪指令的一般语法为: MEMORY MEMORY PAGEOPAGEO:namel(attr)namel(attr):origin=constantorigin=constant,length=constantlength=
35、constant PAGEn PAGEn:namen(attr)namen(attr):origin=constantorigin=constant,length=constantlength=constant 27PAGEPAGE:标示存储器空间,每一个:标示存储器空间,每一个PAGEPAGE代表一个完全独立的代表一个完全独立的地址空间。用户规定可以多达地址空间。用户规定可以多达255255页,通常页,通常PAGE0PAGE0规定程序规定程序存储器,存储器,PAGElPAGEl规定数据存储器。规定数据存储器。namename:命名存储器。存储器名可以是:命名存储器。存储器名可以是1 18 8
36、个字符。在不同个字符。在不同页上的存储器名可以具有相同的名字,但是在一页之内所页上的存储器名可以具有相同的名字,但是在一页之内所有的存储器名必须具有惟一的名字且必须不重叠。有的存储器名必须具有惟一的名字且必须不重叠。attrattr:这是一个任选项,为命名区规定这是一个任选项,为命名区规定1 14 4个属性。未规个属性。未规定属性的存储器具有所有定属性的存储器具有所有4 4个属性。个属性。originorigin:规定存储器范围的起始地址。:规定存储器范围的起始地址。lengthlength:规定存储器范围的长度。:规定存储器范围的长度。 PAGEnPAGEn:namen(attr)namen
37、(attr):origin=constantorigin=constant,length=constantlength=constant28伪指令伪指令MEMORYMEMORY和和SECTIONSSECTIONS:2.2.SECTIONSECTION伪指令:描述输入段怎样被组合到输出段内;在可执伪指令:描述输入段怎样被组合到输出段内;在可执行程序内定义输出段;规定在存储器内何处放置输出段;允许重行程序内定义输出段;规定在存储器内何处放置输出段;允许重命名输出段。命名输出段。 SECTIONSSECTIONS伪指令的一般语法是:伪指令的一般语法是:SECTIONSSECTIONS name na
38、me:propertyproperty,property,propertyproperty,property, name name:propertyproperty,propertyproperty,propertyproperty, name name:propertyproperty,propertyproperty,property property , 29name(name(段名段名) ):说明定义了一个输出段。:说明定义了一个输出段。在段名之后是在段名之后是特性列表特性列表,定义段的内容以及它们是怎样被分,定义段的内容以及它们是怎样被分配的。配的。装载位置,规定段将被装载在存储器内
39、何处;装载位置,规定段将被装载在存储器内何处;运行位置,定义段将在存储器内何处运行;运行位置,定义段将在存储器内何处运行;输入段,定义组成输出段的输入段;输入段,定义组成输出段的输入段;段类型,定义特定段类型的标志;段类型,定义特定段类型的标志;填充值,定义用于填充未初始化空位的数值。填充值,定义用于填充未初始化空位的数值。 namename:propertyproperty,property,propertyproperty,property,注:有了这注:有了这3 3种基本文件之后,就可在调试环境里将汇编源程种基本文件之后,就可在调试环境里将汇编源程序编译、链接最后生成可执行文件进行仿真调
40、试。序编译、链接最后生成可执行文件进行仿真调试。304 42 2 调试环境代码编译器调试环境代码编译器CCCC简介简介 写好汇编语言程序之后,调试程序需要连接调试环境。在写好汇编语言程序之后,调试程序需要连接调试环境。在系统上安装好代码编译器软件系统上安装好代码编译器软件CC4CC41010之后,在桌面上出现之后,在桌面上出现两个快捷方式,一个是两个快捷方式,一个是“Setup CCC2000Setup CCC2000,另一个是,另一个是“CC CC C2000”C2000”。1.1.“Setup CCC2000”“Setup CCC2000”用来对该编译器的运行环境进行配用来对该编译器的运行
41、环境进行配置。在保证仿真器和实验板之间连接正确后,给实验板供电,置。在保证仿真器和实验板之间连接正确后,给实验板供电, 双击快捷键双击快捷键“SetupCCC2000”SetupCCC2000”之后出现界面如图之后出现界面如图4-14-1所示。所示。本实验板采用的是本实验板采用的是C24x XDS510C24x XDS510硬件仿真器。选择该仿真器硬件仿真器。选择该仿真器并将其添加到系统配置中,其他选项使用缺省设置后,保存并将其添加到系统配置中,其他选项使用缺省设置后,保存后就可退出该程序。后就可退出该程序。 31322.“2.“CC C2000CC C2000”为程序调试仿真环境。完成对系统
42、的配置之为程序调试仿真环境。完成对系统的配置之后,在给实验板供电的情况下,双击快捷键后,在给实验板供电的情况下,双击快捷键“CCC2000”“CCC2000”,就可进入图就可进入图 4 42 2所示的集成调试环境。所示的集成调试环境。 图图4 42 2所示的集成调试环境由所示的集成调试环境由3 3部分组成:部分组成:1.1.顶部为集成调试环境的标题栏顶部为集成调试环境的标题栏(C24xEmulat(C24xEmulator(Texas or(Texas Instruments)Instruments)CPU_1-C2XX Code Composer)CPU_1-C2XX Code Compos
43、er),2.2.第第2 2行为菜单栏行为菜单栏(File(File、EditEdit、ProProject)ject);3.3.下面部分为工作窗口区下面部分为工作窗口区(Files(Files、DisDis-Assembly-Assembly、CPU)CPU)33344 42 21 1 主要菜单及功能介绍主要菜单及功能介绍 1 1Project(Project(工程工程) )菜单菜单ProjectProjectNewNew:新建一个工程,将该工程保存至新建工程的:新建一个工程,将该工程保存至新建工程的文件夹里面。文件夹里面。ProjectProjectOpenOpen:打开一个已有的工程。:打
44、开一个已有的工程。ProjectProjectAdd Files to ProjectAdd Files to Project:将文件添加到该工程中。:将文件添加到该工程中。添入工程的文件扩展名可以有:添入工程的文件扩展名可以有:* *.C.C,* *.ASM.ASM,* *.OBJ.OBJ或或* *.LIB.LIB,* *.CMD.CMD。ProjProjectectCloseClose:将一个已打开的工程关闭。:将一个已打开的工程关闭。 35ProjectProjectCompile FilesCompile Files:对工程中的文件进行编译。:对工程中的文件进行编译。ProjectPr
45、ojectBuildBuild:对工程进行编译、汇编和连接,生成可执:对工程进行编译、汇编和连接,生成可执行文件行文件OUTOUT。ProjectProjectRebuildRebuild:对工程进行再一次编译、汇编和连接,:对工程进行再一次编译、汇编和连接,生成可执行文件生成可执行文件.OUT.OUT。ProjectProjectStop BuildStop Build:停止对工程的编译、汇编和连接。:停止对工程的编译、汇编和连接。ProjectProjectShow DependenciesShow Dependencies:显示该工程中用到的所有文:显示该工程中用到的所有文件和所需的库文
46、件。件和所需的库文件。ProjectProjectScan All DependenciesScan All Dependencies:细看该工程中用到的所:细看该工程中用到的所有文件和所需的库文件。有文件和所需的库文件。ProjectProjectOptionsOptions:对:对BuildBuild过程中的一些选项进行配置;通过程中的一些选项进行配置;通常在常在BuildBuild时采用默认设置。时采用默认设置。ProjectProjectRecent Project FilesRecent Project Files:显示最近打开过的工程。:显示最近打开过的工程。 362 2View(
47、View(观察观察) )菜单栏菜单栏ViewViewDis-AssemblyDis-Assembly:观察汇编程序窗口;可在此窗口中:观察汇编程序窗口;可在此窗口中对汇编程序进行修改。对汇编程序进行修改。ViewViewMemoryMemory:观察存储器窗口;可选择观察的存储器类:观察存储器窗口;可选择观察的存储器类型型( (程序存储器、数据存储器和程序存储器、数据存储器和I IO O空间空间) )和存储器的起始和存储器的起始地址。地址。ViewViewCPU RegistersCPU Registers:观察调试过程中:观察调试过程中CPUCPU寄存器的和各寄存器的和各个状态位的变化情况。
48、个状态位的变化情况。ViewViewWatch WindowWatch Window:观察调试过程中的变量,:观察调试过程中的变量,C C表达式,表达式,地址和寄存器的值。地址和寄存器的值。ViewViewMixed Source and ASMMixed Source and ASM:在调试过程中即观察:在调试过程中即观察C C程序程序又观察汇编程序。又观察汇编程序。 373 3Debug(Debug(调试调试) )菜单栏菜单栏DebugDebugBreakpointsBreakpoints:将光标放在要设置断点的程序处,选择:将光标放在要设置断点的程序处,选择DebugDebugBreak
49、pointsBreakpoints可在程序中设置断点;程序运行到断点处可在程序中设置断点;程序运行到断点处自动停止。自动停止。DebugDebugProbe PointsProbe Points:在程序中设置探测点。:在程序中设置探测点。DebugDebugStepIntoStepInto:单步执行程序并进人调用的子程序。:单步执行程序并进人调用的子程序。DebugDebugStepOverStepOver:单步执行程序,但不进入调用的程序:单步执行程序,但不进入调用的程序( (子程子程序、中断服务程序序、中断服务程序) ),即该命令一步执行完被调用的程序。,即该命令一步执行完被调用的程序。D
50、ebugDebugStepOutStepOut:跳出子程序。:跳出子程序。DebugDebugRunRun:执行程序到断点、探测点或用户中断:执行程序到断点、探测点或用户中断(ESC)(ESC)。 DebugDebugHaltHalt:当执行:当执行RunRun时,用时,用HaltHalt来停止程序的执行。来停止程序的执行。DebugDebugReset DSPReset DSP:对处理器进行复位。:对处理器进行复位。DebugDebugRestartRestart:将程序指针指向程序的起始地址,从程序最:将程序指针指向程序的起始地址,从程序最开始处执行程序。开始处执行程序。 38 4 42
51、22 2 工作窗口区工作窗口区在在CCCC集成环境中,常用工作窗口有集成环境中,常用工作窗口有Files(Files(文件文件) )窗口、窗口、Dis-Dis-Assembly(Assembly(汇编文件汇编文件) )窗口、窗口、CPUCPU窗口、窗口、Memory(Memory(存储器存储器) )窗口以窗口以及及Watch(Watch(观察观察) )窗口等。窗口等。1 1Files(Files(文件文件) )窗口窗口 该程序包括当前系统用到的该程序包括当前系统用到的GElGEl文件和工程。通常在文件和工程。通常在GELGEL文件里包括缺省的文件里包括缺省的initinitgelgel文件。在
52、工程里包括用户用到文件。在工程里包括用户用到的头文件,用的头文件,用includeinclude定义的引用文件和用户在建立工程或定义的引用文件和用户在建立工程或后来添加到工程中的后来添加到工程中的C C源文件源文件* *C C,汇编源文件,汇编源文件* *ASMASM, ,,目,目标或库文件标或库文件* *OBJOBJ,* *.LIB.LIB和链接命令文件和链接命令文件* *CMDCMD。 392 2Dis-Assembly(Dis-Assembly(反汇编程序反汇编程序) )窗口窗口该窗口用来显示汇编程序和程序存储器的内容。在这些程序中,该窗口用来显示汇编程序和程序存储器的内容。在这些程序中
53、,用一横条来表示当前指针。同时可用鼠标点击汇编语句的方法用一横条来表示当前指针。同时可用鼠标点击汇编语句的方法来设置断点,再点击一次,取消断点。来设置断点,再点击一次,取消断点。3 3CPUCPU寄存器窗口寄存器窗口该窗口显示在程序调试过程中该窗口显示在程序调试过程中CPUCPU寄存器的内容,它包括:程寄存器的内容,它包括:程序指针序指针PCPC、累加器、累加器ACCACC、乘积寄存器、乘积寄存器PREGPREG、临时寄存器、临时寄存器TREGTREG、状态寄存器状态寄存器ST0ST0和和STlSTl、重复计数器、重复计数器RPTCRPTC、堆栈指针、堆栈指针TOSTOS、辅助、辅助寄存器寄存
54、器AROAROAR7AR7、中断屏蔽寄存器、中断屏蔽寄存器IMRIMR和中断标志寄存器和中断标志寄存器IFRIFR以以及全局数据存储器配置寄存器及全局数据存储器配置寄存器GREGGREG。用户可通过。用户可通过CPUCPU寄存器窗寄存器窗口来监视程序的执行过程。改变寄存器内容,可用鼠标点击需口来监视程序的执行过程。改变寄存器内容,可用鼠标点击需改变的寄存器,输入值后回车即可。改变的寄存器,输入值后回车即可。 404 4状态寄存器窗口状态寄存器窗口该窗口将状态寄存器中的各个状态位该窗口将状态寄存器中的各个状态位ARPARP、OVOV、OVMOVM、INTMINTM、DPDP、ARBARB、CNFCNF、TCTC、SXMSXM、C C、SXFSXF和和PMPM位单独显示,通过该窗口用户位单独显示,通过该窗口用户可以很清楚的看到程序执行过程中各状态位的变化情况。改变可以很清楚的看到程序执行过程中各状态位的变化情况。改变状态位内容,可用鼠标点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 债转股谅解备忘录格式
- 云南省怒江傈僳族自治州(2024年-2025年小学五年级语文)人教版期中考试(上学期)试卷及答案
- INPAQ Company Profile 20220621一级代理分销经销KOYUELEC光与电子
- 2024年驾驶员之选:专业交通标志课件
- 2024年全球经济展望:疫情后的复苏与挑战
- 《青玉案元夕》教案革新:2024教育理念的融入
- 2024年《婚姻法》课件制作:精美设计助力法律教学效果提升
- 2024年高校PFC课件制作与实践探讨
- 2024年视觉表达与创意呈现培训教程
- 课件制作技巧:以2024年为时间节点解析《炉中煤》
- 医院感染监测标准考试试题附有答案
- 高血压病三级预防策略 医学类模板 医学课件
- DL∕T 523-2017 化学清洗缓蚀剂应用性能评价指标及试验方法
- 食品营养学选择试题库(附参考答案)
- 北师大版二年级数学上册第五单元《2~5的乘法口诀》(大单元教学设计)
- 2024年入团知识考试题库及答案
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识(2023版)解读
- 《新能源汽车概论》课件-6新能源汽车空调系统结构及工作原理
- 2024年共青团入团考试题库(附答案)
- 田径运动会各种记录表格
- 产科新生儿疫苗接种课件
评论
0/150
提交评论