




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章汇编语言 6 1汇编语言格式 TMS320汇编语言源程序由源语句组成 源语句包括汇编指令 伪指令 宏指令 源语句的一般格式为 标号 助记符 操作数1 操作数2 注释 标号域助记符域操作数域注释域注 表示该项可缺省 例6 1SYM1 set2 符号SYM1等于2BEGIN LDPSYM1 将2装入DP word016h 初始化一个字为16h 1 标号域 标号包含1 32个字母 数字 字符 A Z a 2 0 9 及 可识别符号的大小写 且规定第一个字符不能是数字 标号可以后随冒号 冒号并不作为标号的一部分被处理 如果不使用标号 则第一个字必须是空格或分号或星号 当选用标号时 其值是段程序计数器 SPC 的当前值 标号指向与它们相关联的语句 例如 如果用 word伪指令初始化几个字 那么标号将指向第一个字 行号SPC目标代码源语句100040000ASTART word0Ah 3 70041000300420007标号也可以单独出现在行中 此时它指向下一行中的指令 如 30050HERE 400500003 word3 此行SPC无增量 2 助记符域 助记符是源语句中的关键部分 不能缺省 它表示本指令的操作类型 助记符不能从源语句的第一列开始 如果从第一列开始 将被解释为标号 助记符包括下列操作码之一 1 汇编指令 例如ABS MPY SPH 2 伪指令 例如 data fist set 3 宏指令 例如 macro mexit 3 操作数域 操作数域是跟在助记符域后面的操作数列表 可缺省 如果多于两个操作数 则只用逗号隔开 操作数可以是常数 符号和表达式 4 注释域 注释域可以从源语句行的任一列开始并直至本行的末尾 即仅包括注释的源语句是有效的 如果它从第一列开始则可以用分号 或星号 开始 在行的其他地方开始的注释 必须以分号开始 上述各个域必须用一个或多个空格分开 6 1 1常数 字符串和符号 1 二进制整数 以字母B 或b 结尾 由二进制数字 0 1 组成的数字串 数字串长度长度最多可达16个二进制数字 如01000110B 2 八进制整数 以字母Q 或q 结尾 由八进制数字 0 7 组成的数字串 数字串长度最多可达6个八进制数字 如100000Q 3 十进制整数 以字母D 或d 结尾 也可缺省 十进制整数由0 9数字组成 范围从 32678 65535 如 30000 4 十六进制整数 以字母H 或h 结尾 由十六进制数字0 9和A F 或a f 组成的数字串 数字串长度最多可达4个十六进制数字 5 字符常数 包含在单引号中的一个或两个字符的串 每个字符表示为8位ASCII码 如 a 定义字符a 并在内部用61H表示 6 汇编时间常数 用 set伪指令对符号进行赋值 赋值的内容不同 汇编时符号所表达的含义也就不同 1 常数 例如 用 set向符号赋值 则符号成为常数 为了在表达式中使用此常数 赋予它的值必须是绝对值 SHIFT set3LACC SHIFT AR1也可用 set将寄存器名赋予符号常数 此时符号与寄存器为同一词 如 AUXR1 setAR1LACC 0 AUXR1 2 字符串 字符串是包含在双引号内的一串字符 双引号是字符串的一部分 串的最大长度是变化的 并由每一个使用字符串的伪指令定义 字符在内部被表示为8位ASCII字符 如 sampleprogram 定义13个字符的字符串sampleprogram 字符串用于下列场合 1 copy filename 中的文件名 2 sect sectionname 中的段名 3 byte chasing 中数据初始化伪指令 4 string伪指令的操作数 字符串与字符常数不同 字符常数代表一个单独的整数值 而字符串是字符的列表 3 符号 符号被用做标号 常数及替代符号 符号名最多可由32个字母和数字混合组成 A Z a z 0 9 和 符号的第一个字符不能是数字 符号内不能有空格 用户定义的符号分大小写 例如汇编时ABC Abc及abc被识别为3个不同的符号 表达式由运算符 常数和符号组成 有效表达式值的范围是 32768 32767 6 1 2表达式和运算符 表达式内使用的运算符的优先级见下表 高 6 2宏指令 为了简化汇编语言源程序的书写 常常将一些频繁出现的程序段定义为宏指令 TMS320系列DSP汇编器支持宏语言 使用宏的过程要经过以下3个步骤 1 定义宏 用户在使用宏之前必须先定义宏 在程序的任何地方都可以定义一个宏 一般是在源文件开始处定义 或者在 include copy文件中定义 或者在宏库中定义 宏定义语句格式如下 宏名 macro 形式参数1 形式参数2 形式参数n mexit endm 2 调用宏 在定义了宏以后 就可以在源程序中将宏的名字作为操作码来调用 格式 宏名 实参数1 实参数2 实参数n 3 展开宏 汇编器在对源文件进行汇编时 对调用的宏进行展开 在展开过程中 汇编器用宏体取代宏调用语句 宏体中的形式参数 替代符号 用实际参数代替 如果某个形式参数没有对应的实参数为其赋值 该形式参数将被空串 代替 如果实参数的个数多于形式参数 则余下的实参数将赋给最后一个形式参数 用逗号隔开 如果要把一串变量赋给一个形式参数 或者把一个逗号 或分号 传给一个形式参数 就必须用引号将它们引起来 汇编时 汇编器先用实参数代替形式参数并展开宏 然后把源语句汇编为目标代码 并输出到列表文件中 例宏定义 parms macrox y za xb yc z endm调用宏 汇编时展开宏parms100 200 a 100 b 200 c parms 100 200 300 55 66 77 a 100 200 300 b 55 c 66 77 6 3通用目标文件格式 CCS开发环境可以看成是一个大的软件包 里面包含了源代码编辑器 以及工程文件组织 编译和调试等一切功能模块 该软件包里 shell程序可以完成3个功能 编译 汇编和链接 shell程序缺省在C盘安装时 被安装在C ti c2400 cgtool子目录下 对应的文件名为dspcl exe 1 编辑器 包括分析器 优化器 代码产生器 把C语言程序编译成汇编语言程序 2 汇编器 把汇编语言源代码或C语言已经编译成汇编语言代码进行汇编 以产生COFF目标文件 3 链接器 将文件链接 产生可执行的目标文件 使用汇编器可以将汇编语言源程序汇编为目标文件 用链接器将若干个目标文件连接成 个可被芯片执行的可执行文件 这些目标文件的格式称为通用目标文件格式 COFF CommonObjectFileFormat 通用目标文件格式的核心是使程序员在编写DSP程序时基于代码块和数据块的概念 而不是一条条指令或一个个数据 基于这种文件格式编写的DSP程序可读性强 可移植性好 在COFF文件中 将代码块和数据块称为Section 编译器 汇编器和链接器都提供了有关的命令来创建块和对块进行处理 编译器 汇编器创建的块的名称有些是已经定义好的 程序员也可以自己定义块名 6 3 1块 目标文件的最小单位被称为块 它是在存储器中占有连续空间的一块代码或数据 目标文件中的每一个块都是独立的 一般地 COFF目标文件应包含3个缺省的块 text块 通常包含可执行代码 data块 通常包含已初始化的数据 bss块 通常为未初始化的变量保留空间 此外 汇编器和连接器允许用户建立和链接自定义的块 这些块与 text data类似 所有的块可以分为两类 已初始化块 包含程序代码和数据 如 text和 data及用 sect或 asect汇编器命令创建的块 未初始化块 为未初始化数据在存储器映像中保留空间 bss段和用 usect汇编器命令创建的块是未初始化的段 6 3 2汇编器对块的处理 汇编器对块的处理功能主要是确定汇编语言程序的各部分属于哪个特定的块 汇编器有六个命令来完成这种功能 bss usect text data sect及 asect 其中 bss和 usect命令创建未初始化块 而 text data sect及 asect命令则建立已初始化块 如果在程序中未用任何命令来指示 汇编器将把所有程序块或数据块统一汇编至 text中 1 未初始化块 未初始化块主要用来在存储器中保留空间 它们通常分配在RAM中 这些块在目标文件中没有实际内容 只是保留空间而已 程序可以在运行时利用这些空间建立和存储变量 未初始化数据块是通过使用 bss和 usect汇编器命令来建立 bss命令在 bss块中保留空间 而 usect命令在自定义块中保留空间 格式为 bss符号 字数符号 usect 块名 字数 其中 符号指向由 bss或 usect保留的第一个字 它对应于为变量保留空间的变量名 可以在其他任何块中被访问 也可以用 global定义为全局符号 字数表示空间的大小 块名是程序员自己定义的名字 汇编器遇到 text data sect和 asect命令时立即停止汇编至当前块中且开始汇编至相应块中 汇编器遇到 bss或 usect命令并不结束当前块开始一个新块 它们只是暂时离开当前块 2 已初始化块 已初始化块包含可执行代码或已初始化数据 块的内容存储在目标文件中 当程序装入时存放在DSP存储器中 每个已初始化块可以独立地进行重定位 且可访问在其他块中定义的符号 链接器可自动解决块与块之间符号访问的问题 有四个命令通知汇编器将代码或数据存放在严格块中 格式为 text data sect 块名 asect 块名 地址上述命令中 text和 data建立的块名就是 text和 data 而后两命令建立的是自定义块 其中 asect建立的块有绝对地址 一般不建议使用 当汇编器遇到上述命令时 立即停止汇编至当前块中 且开始将随后的代码或数据汇编至相应的块中 块是通过迭代过程建立的 如 当汇编器首次遇到一个 data命令 data块是空的 data后面的语句被汇编到 data块中 直到遇到一个 text sect或 asect命令为止 如果汇编器在后面又遇到 data命令 则将 data后面的语句加到已存在于 data块中语句的后面 这样建立的唯一的 data块可以在存储器中分配一个连续的空间 3 自定义块 自定义块就是程序员自己建立的块 与缺省的 text data和 bss块一样使用 但它与缺省块分开汇编 如 重复使用 text命令在目标文件中只建立一个 text块 链接后这个 text块也作为一个单位分配到存储器中 有时候程序员想把一部分程序放至不同于 text的存储器中 则须使用自定义块 对数据也可同样处理 有三条指令可建立自定义块 usect sect和 asect 其中 usect建立的块用法类似于 bss 是在RAM中为变量保留空间 而 sect和 asect建立包含代码或数据的块 用法类似于 text和 data sect建立的块是可重定位的 而 asect建立具有绝对地址的块 符号 usect 块名 字数 sect 块名 asect 块名 地址 例此例表示如何用 usect伪指令定义两个未初始化的命名段var1和var2 符号ptr指向var1段中保留的第一个字 符号array指向var1段中100个字块内的第一个字 符号dflag指向var1段中50个字块内的第一个字 符号vec指向Var2段中保留的第一个字 0000 text 汇编到 text段00002003LAC03h0000ptr usect var1 1 在var1段保留1个字0001array usect var1 100 在var1段保留100个字00010037ADD037h 还在 text段0065dflag usect var1 50 在var1段保留50个字00020065ADDdflag 还在 text段0000vec usect var2 100 在var2段保留100个字00030000ADDvec 还在 text段 globalarray 将array定义为外部符号名 6 3 3链接器对块的处理 链接器对块的处理有两个功能 首先 将COFF目标文件中的块用来建立程序块或数据块 将输入块组合起来以建立可执行的COFF输出模块 其次 链接器为输出块选择存储器地址 链接器提供两个命令完成上述功能 MEMORY和SECTION MEMORY命令定义目标系统的存储器 程序员可定义每一块存储器 指定每一块的起始地址和长度 SECTION命令告诉链接器如何组合输入块以及在存储器何处存放输出块 若不用这两个命令 则链接器采用缺省的分配算法 若要用这两条命令 则一般需要建立一个链接命令文件 扩展名为 cmd 6 3 4程序的重定位 汇编器对每块汇编时都假定其起始地址为0 每块中所有的重定位符号 标号 都是相对于0地址而言的 当然 实际上并不是所有块在存储器中都是以0地址定位的 因此链接器必须通过下列方法对每块进行重定位 1 分配块至存储器 使各块有合适的起始地址 2 调整符号值 使之对应于新的块地址 3 调整重定位后符号的参考值 以反映调整后的符号值 链接器利用重定位项来调整符号的参考值 汇编器每次在可重定位符号被参考时建立一个重定位项 链接器则在符号被重定位之后利用这些项来修正参考值 COFF目标文件中的每一块都有一个重定位项目表 表中包含了块中每一个可重定位参考的一个重定位项 链接器在使用完重定位项后将其去除以防止对输出块再次重定位 产生重定位项的代码 1 refX20000 text30000FF80BX 产生一个重定位项00010000 40002D001LALKY 产生一个重定位项0003000450004CEIFY IDLE 链接后 假定X重定位至地址100h 且 text块重定位到起始地址200h 则Y重定位后的地址为204h 链接器利用这两个重定位项在目标代码中补上这两个参考 FF80BX变为FF8000000100D001LALKY变为D00100040204 有时 一块程序装入在某块存储器中但需在另一块存储器中运行 如 程序中的一段关键代码装在ROM中 但需在速度更高的RAM中运行 此时 必须进行运行时的重定位 实现运行时的重定位的方法 可在链接器命令文件的SECTION中将块分配两次 一次设定装入地址 另一次则设定运行地址 如 text load ROM run ROM0 6 3 5COFF中的符号 COFF中包含一个存储程序中符号信息的信息表 链接器在进行重定位时要用到这个符号表 在一个模块中定义在另一个模块中引用的符号称为外部符号 一般可用 def ref global等命令来标明某一符号为外部符号 在一个源模块中 外部符号可以用 def ref global来定义 1 定义 def 在当前模块中定义 在其他模块中引用 2 参考 ref 在当前模块中引用 在其他模块中定义 3 全局 global 包含上两者 globleX X在本模块中定义 可在其他模块中引用 globleY Y在其他模块中定义 在本模块中引用X ADD056h 定义XMPYY 引用Y 6 4链接命令文件 链接器的缺省分配算法是 1 程序存储器的起始地址是0 x1000h 长度为0 xEFFF 2 数据存储器的起始地址是0 x300h 长度为0 xFCFF 3 将 text分配到起始地址为0 x1000h的程序存储器中 4 将 data分配到紧跟在 text的程序存储器中 5 将 cinit分配到紧跟在 data的程序存储器中 6 将自定义的已初始化块分配到紧跟在 data的存储器中 若自定义块不止1个 则按自定义块在输入文件的先后顺序存放 7 将 bss分配到起始地址为0 x300h的数据存储器中 8 将自定义的未初始化块分配到紧跟在 bss的存储器中 若自定义块不止1个 则按自定义块在输入文件的先后顺序存放 1 MEMORY伪指令 MEMORY伪指令的一般语句格式为 MEMORY PAGE0 存储器名1 属性 origin 常数 length 常数 PAGEn 存储器名n 属性 origin 常数 length 常数 1 PAGE 定义一个存储器空间 用户可以定义多达255页 通常PAGE0定义程序存储器 PAGE1定义数据存储器 如果用户没有使用PAGE选项 那么连接器把段定位到PAGE0 每个PAGE代表一个完全独立的地址空间 在PAGE0上已配置的存储器可以和在PAGE1上已配置的存储器重叠 2 存储器名 命名存储器范围 存储器名由1 8个字符组成 有效的字符包括A Z a z 及 名字对于连接器没有特殊的意义 仅指明存储器的区域 在不同页上存储器范围可以有相同的名字 而在同一页 所有的存储器范围不能有相同的名字 且不能重叠 3 属性 对于已命名的范围有1 4个属性 属性是可选项 当被使用时 必须用括号括起来 属性把输出段的定位限制在某些存储器范围内 如果用户不使用任何属性 则输出段即可以定位到任何范围内 有效的属性包括 R 规定存储器可以被读出 W 规定存储器可以被写入 I 规定存储器可以被初始化 4 origin 指定一个存储器区域的起始地址 也可以写成org或0 这个值是以字节规定的16位常数 也可以是十进制 八进制或十六进制 5 length 指定一个存储器的长度 也可以写成len或1 数值的表示方法与origin相同 例 MEMORY指令举例 SampleCommandfilewithMEMORYdirective file1 objfile2 Obj oprog outMEMORY PAGE0 ROM ORIGIN 0h LENGTH 1000hPAGE1 B2 ORIGIN 60h LENGTH 20hB0B1 ORIGIN 200h LENGTH 200h SECTIONS伪指令的一般语法形式是 SECTIONS 段名1 特性1 特性2 段名2 特性1 特性2 2 SECTION伪指令 特性列表的选项 块所具备的特性 有以下几种 1 装载地址 规定块将被装载在存储器中的位置 语法 load allocation或allocation或 allocationallocation是MEMORY伪指令所定义的范围内地址 包括ROM RAM 实际地址值 16位常数 等 2 运行地址 定义块在存储器内运行的位置 语法 run allocation或run allocation如果在一个块中load和run的地址相同 run可以省略 3 调准地址 规定块应在地址边界上开始 调准可以使连接器把输出块放在位于n字边界的地址 其中 2是2的幂 语法 align n或align n 如 textalign 128 即将 text段定位于页边界 4 块地址 规定块必须装在两个地址边界之间 它把块定位在大小为n的块内任何地方 如果块大于大小为的n块 那么块将从该边界开始 和调准一样 n必须是2的幂 语法 block n或block n 如 bssload block 0 x80 定位 bss块使其包含在单个128字的页内或者从新页开始 用户可以单独使用调准或块 也可以和装入地址 运行地址结合在一起使用 但是调准和块不能一起使用 5 输入块 定义组成输出块的输入块 语法 input sections 输入文件中的块组合起来形成输出块 连接器按照所列出的输入块的次序连接并组合它们 输出块的大小是组成它的输入块的大小之和 通用类型的块的规格说明中没有输入块 如SECTIONS text data bss 此时链接器从输入文件取出所有 text块并把它们组合到 text输出块内 链接器按照它在输入文件中遇到的次序连接 text输入块 对 data和 bss块的操作与 text相同 例 SECTIONS text 创建 text输出段 f1 obj text 从f1 obj输入文件中连接 text段 f2 obj sec1 从f2 obj输入文件中连接 sec1段 f3 obj 连接f3 obj输入文件中所有的段 f4 obj text sec2 从f4 obj输入文件中连接 text和 sec1段 6 块类型 定义特殊块类型的标志 语法 type COPY或type DSECT或type NOLOAD用户可以把这3种特殊的类型赋予输出块 用COPY和DSECT创建的块是一个虚块 它不包括在输出块存储器分配内 也不占据存储器空间 不包括在存储器映象列表中 但在虚块中定义的全局符号可以被其他输入块引用 COPY段可以将块的内容 重定位信息及行号信息放在输出模块中 而DSECT块则不放置 NOLOAD创建的块不将块的内容 重定位信息及行号信息放在输出模块中 但链接器为其分配空间并包括在存储器映象列表中 例SETIONS伪指令的使用file1 objfile2 obj 输入文件 oprog out 输出文件 SECTIONS text load ROMrun 0800h const load ROM bss load ROMVectors load 0h t1 obj intvec1 t2 obj intvec2 endvec 将vectors段的最后连接地址赋给endvec符号 data align 16 7 填充值 定义用于填充初始化空位的数值 语法 file value或name value当初始化输出块内有空位存在时 链接器必须提供原始数据以填充它值填充空位 该数值在存储器内复制直至它填满空位为止 程序存储器 地址范围内容0000 0FFF片内ROMFF00 FFFF片内RAM块B0数据存储器 地址范围内容0000 0005I O寄存器0060 007F片内RAM块B20300 03FF片内RAM块B1 3 链接器举例 命令文件exmp cmd 定义连接器选项 eSETUP 定义程序入口 oexmp out 命名输出文件 mexmp map 创建一个输出列表文件 定义输入文件 exmp obj 连接三个目标文件 fft objtables obj 定义存储器配置 MEMORY PAGE0 ROM ORIGIN 0000h LENGTH 1000hRAM B0 ORIGIN FF00h LENGTH 100hPAGE1 IO ORIGlN 0000h LENGTH 06hRAM B2 ORIGIN 0060h LENGTH 20hRAM B1 ORIGIN 0300h LENGTH 100hRAM ORIGIN 0400h LENGTH FC00h 定义输出段SECTIONS text ROM PAGE 0 将包含在exmp obj和fft obj中的 text块链接到ROM中 int vecs load 0 PAGE 0 将来自table obj中int vecs块的一组中断矢量连接到ROM中的0地址处 data file 7A1Ch load RAM B0 PAGE 0 将tabales obj和fft obj中的 data块链接到程序存储器RAM块B0中 并在其后创建256字的空位 用7Alh填充 tables obj data fft obj data l00h fftvars RAM B2 page 1 创建新块fftvars 并将来自fft obj的 bss块链入数据存储器RAM块的B2中 fft obj bss bss RAM B1 PAGE 1 FILL 0FFFFh exmp obj中的 bss块链接到RAM块B1中 RAM的未用部分被初始化为FFFh 命令文件结束 然后用下列命令调用连接器 dsplnkexmp cmd这样将生成一个名为exmp out的输出文件 可以在TMS320上运行 同时还生成一个列表文件exmp map 6 5程序举例 在程序设计时 如果需要在多个模块中使用相同的设置和中断处理 通常将芯片中映射至I O空间的寄存器地址及标号 预置变量和常数的空间等设置语句集中在一个文件中 称为I O寄存器头文件 如init h 将转移中断矢量地址的指令集中在一个文件中 称为中断矢量头文件 如vector h 将定义程序 数据和I O空间地址块大小和位置的伪指令集中在一个文件中 称为命令文件 如F206 cmd 这3个文件称为公用文件 用户在编写自己的应用程序时 用 copy或 include伪指令将I O寄存器头文件和中断矢量头文件复制到该应用程序中 形成一个汇编源程序 如delay asm 由汇编器进行汇编后生成一个目标文件 如delay obj 再由连接器把该目标文件和命令文件相连接 生成一个可执行文件 如delay out 对于简单的单个应用程序也可不使用这两个头文件 直接在应用程序中对用到的I O寄存器和中断转移地址进行设置 1 公用文件 该文件可为LF2407芯片定义程序 数据和I O空间地址块的大小和位置 用于和汇编后的TMS320C2000文件 obj 相连接 输出文件名为 out 对于其他芯片 应对该文件作相应的修改 File LF2407 PM cmdMEMORY PAGE0 程序存储空间 PM ORIGIN 0h LENGTH 0044h 中断矢量 PVECS ORIGIN 0044h LENGTH 0100h 外设中断矢量 PROG ORIGIN 0150h LENGTH 7EAFh 以上为32K字片内闪速存储器 0000h 8000h SARAM P ORIGIN 8000h LENGTH 0800h 程序空间上的2K字SARAM EX1 PM ORIGIN 8800h LENGTH 7600h 外部RAM B0 PM ORIGIN 0FF00h LENGTH 0100h 如果CNF 1为片上DARAM 否则为外部B0 FF00h FFFFh 1 命令文件LF2407 PM cmd PAGE1 数据存储空间 REGS ORIGIN 0h LENGTH 60h 内存映射寄存区和保留地址 BLK B2 ORIGIN 60h LENGTH 20h 块B2 BLK B0 ORIGIN 200h LENGTH 100h 块B0 如果CNF 0为片内DARAM BLK B1 ORIGIN 300h LENGTH 100h 片内存储器块B1 SARAM D ORIGIN 0800h LENGTH 0800h 数据空间2K字SARAM PERIPH ORIGIN 7000h LENGTH 1000h 外设寄存器空间 EX1 DM ORIGIN 8000h LENGTH 0800h 数据空间2K字SARAM PAGE2 I O存储空间 IO EX ORIGIN 0000h LENGTH 0FFF0h 外部I O映射空间 IO EX ORIGIN 0FFF0h LENGTH 0Fh 片内的I O映射空间 SECTIONS vectors PMPAGE0 pvecs PVECSPAGE0 text PROGPAGE0 bss BLK B2PAGE1 data BLlBlPAGEl 2 240 x寄存器头文件240 xA h Fllename 240 xA h 240 xCPU核寄存器IMR set0004h 中断屏蔽寄存器IFR set0006h 中断标志寄存器 系统配置和中断寄存器SCSR1 set7018h 系统控制和状态寄存器lSCSR2 set7019h 系统控制和状态寄存器2DINR set701Ch 器件版本号寄存器PIVR set701Eh 外部中断矢量寄存器PIRQR0 set7010h 外部中断请求寄存器0PIRQR1 set7011h 外部中断请求寄存器1PIRQR2 set7012h 外部中断请求寄存器2 该文件包含了240 x芯片所有外部寄存器的地址 标号 预置变量和常数 在片内 所有外部寄存器都被映射到数据空间 该文件还定义了看门狗宏指令 可用 copy或 include伪指令将240 xA h复制到应用程序中 PIACKR0 set7014h 外部中断响应寄存器0PIACKR1 set7015h 外部中断响应寄存器1PIACKR2 set7016h 外部中断响应寄存器2 外部中断配置寄存器XINT1CR set7070h 外部中断1控制寄存器XINT2CR set7071h 外部中断2控制寄存器 数据I O寄存器MCRA set7090h I O复用控制寄存器AMCRB set7092h I O复用控制寄存器BMCRC set7094h I O复用控制寄存器CPADATDIR set7098h I O口A数据和方向寄存器PBDATDIR set709Ah I O口B数据和方向寄存器PCDATDIR set709Ch I O口C数据和方向寄存器PDDATDIR set709Eh I O口D数据和方向寄存器PEDATDIR set7095h I O口E数据和方向寄存器PFDATDIR set7096h I O口F数据和方向寄存器 看门狗 WD 寄存器WDCNTR set7023h WD计数器寄存器WDKEY set7025h WD复位关键字寄存器WDCR set7029h WD定时器控制寄存器 模数转换 ADC 寄存器ADCCTRL1 set70A0h ADC控制寄存器1ADCCTRL2 set70A1h ADC控制寄存器2MAXCONV set70A2h 最大转换通道个数寄存器CHSELSEQ1 set70A3h 通道选择排序控制寄存器1CHSELSEQ2 set70A4h 通道选择排序控制寄存器2CHSELSEQ3 set70A5h 通道选择排序控制寄存器3CHSELSEQ4 set70A6h 通道选择排序控制寄存器4AUTOSEQ SR set70A7h 自动排序状态寄存器RESULT0 set70A8h A D转换结果寄存器0RESULT1 set70A9h A D转换结果寄存器1RESULT2 set70AAh A D转换结果寄存器2RESULT3 set70ABh A D转换结果寄存器3RESULT4 set70ACh A D转换结果寄存器4 RESULT5 set70ADh A D转换结果寄存器5RESULT6 set70AEh A D转换结果寄存器6RESULT7 set70AFh A D转换结果寄存器7RESULT8 set70B0h A D转换结果寄存器8RESULT9 set70B1h A D转换结果寄存器9RESULTl0 set70B2h A D转换结果寄存器10RESULT11 set70B3h A D转换结果寄存器11RESULT12 set70B4h A D转换结果寄存器12RESULT13 set70B5h A D转换结果寄存器13RESULT14 set70B6h A D转换结果寄存器14RESULT15 set70B7h A D转换结果寄存器15CALIBRATION set70B8h 校准结果寄存器 串行外设接口 SPI 寄存器SPICCR set7040h 配置控制寄存器SPICTL set7041h 操作控制寄存器SPISTS set7042h 状态寄存器SPIBRR set7044h 波特率控制寄存器SPIEMU set7046h 仿真缓冲寄存器 SPIRXBUF set7047h 串行接收缓冲寄存器SPITXBUF set7048h 串行发送缓冲寄存器SPIDAT set7049h 串行数据寄存器SPIPRI set704Fh 中断优先级控制寄存器 串行通信接口SCICCR set7050h SCI通信控制寄存器SCICTL1 set7050h SCI控制寄存器1SCIHBAUD set7050h SCI波特率高位字节寄存器SCILBAUD set7050h SCI波特率低位字节寄存器SCICTL2 set7050h SCI控制寄存器2SCIRXST set7050h SCI接收状态寄存器SCIRXEMU set7050h SCI接收数据缓冲寄存器SCIRXBUF set7050h SCI仿真数据缓冲寄存器SCITXBUF set7050h SCI发送数据缓冲寄存器SCIPRI set7050h SCl中断优先级控制寄存器 事件管理器A EVA 寄存器GPTCONA set7400h 全局通用定时器控制寄存器AT1CNT set7401h 通用定时器1计数寄存器T1CMPR set7402h 通用定时器1比较寄存器T1PR set7403h 通用定时器1周期寄存器T1CON set7404h 通用定时器1控制寄存器T2CNT set7405h 通用定时器2计数寄存器T2CMPR set7406h 通用定时器2比较寄存器T2PR set7407h 通用定时器2周期寄存器T2CON set7408h 通用定时器2控制寄存器COMCONA set7411h 比较控制寄存器AACTRA set7413h 全比较操作控制寄存器ADBTCONA set7415h 死区时间控制寄存器ACMPR1 set7417h 全比较单元1比较寄存器CMPR2 set7418h 全比较单元2比较寄存器CMPR3 set7419h 全比较单元3比较寄存器 CAPCONA set7420h 捕获控制寄存器ACAPFIFOA set7422h 捕获FIFO状态寄存器ACAP1FIFO set7423h 捕获1FIFO栈项寄存器CAP2FIFO set7424h 捕获2FIFO栈顶寄存器CAP3FIFO set7425h 捕获3FIFO栈顶寄存器CAP1FBOT set7427h 捕获1FIFO栈底寄存器CAP2FBOT set7428h 捕获2FIFO栈底寄存器CAP3FBOT set7429h 捕获3FIFO栈底寄存器EVAIMRA set742Ch EVA中断屏蔽寄存器AEVAIMRB set742Dh EVA中断屏蔽寄存器BEVAIMRC set742Eh EVA中断屏蔽寄存器CEVAIFRA set742Fh EVA中断标志寄存器AEVAIFRB set7430h EVA中断标志寄存器BEVAIFRC set7431h EVA中断标志寄存器C 事件管理器B EVB GPTCONB set7500h 全局通用定时器控制寄存器BT3CNT set7501h 通用定时器3计数寄存器T3CMPR set7502h 通用定时器3比较寄存器T3PR set7503h 通用定时器3周期寄存器T3CON set7504h 通用定时器3控制寄存器T4CNT set7505h 通用定时器4计数寄存器T4CMPR set7506h 通用定时器4比较寄存器T4PR set7507h 通用定时器4周期寄存器T4CON set7508h 通用定时器4控制寄存器COMCONB set7511h 比较控制寄存器BACTRB set7513h 全比较操作控制寄存器BDBTCONB set7515h 死区时间控制寄存器BCMPR4 set7517h 全比较单元比较寄存器4CMPR5 set7518h 全比较单元比较寄存器5CMPR6 set7519h 全比较单元比较寄存器6CAPCONB set7520h 捕获控制寄存器BCAPFIFOB set7522h 捕获FIFO状态寄存器B CAP4FIFO set7523h 捕获4FIFO栈项寄存器CAP5FIFO set7524h 捕获5FIFO栈顶寄存器CAP6FIFO set7525h 捕获6FIFO栈顶寄存器CAP4FBOT set7527h 捕获4FIFO栈底寄存器CAP5FBOT set7528h 捕获5FIFO栈底寄存器CAP6FBOT set7529h 捕获6FIFO栈底寄存器EVBIMRA set752Ch EVB中断屏蔽寄存器AEVBIMRB set752Dh EVB中断屏蔽寄存器BEVBIMRC set752Eh EVB中断屏蔽寄存器CEVBIFRA set752Fh EVB中断标志寄存器AEVBIFRB set7530h EVB中断标志寄存器BEVBIFRC set7531h EVB中断标志寄存器C CAN寄存器CANMDER set7100h CAN邮箱方向 使能寄存器CANTCR set7101h CAN发送控制寄存器CANRCR set7102h CAN接收控制寄存器CANMCR set7103h CAN主控制寄存器CANBCR2 set7104h CAN位配置寄存器2CANBCR1 set7105h CAN位配置寄存器1CANESR set7106h CAN错误状态寄存器CANGSR set7107h CAN全局状态寄存器CANCEC set7108h CAN传送和接收错误计数器CANIFR set7109h CAN中断标志寄存器CANIMR set710ah CAN中断屏蔽寄存器CANLAM0H set710bh CAN本地接收屏蔽高位字寄存器 MBX0 1 CANLAM0L set710ch CAN本地接收屏蔽低位字寄存器 MBX0 1 CANLAM1H set710dh CAN本地接收屏蔽高位字寄存器 MBX2 3 CANLAM1L set710eh CAN本地接收屏蔽低位字寄存器 MBX2 3 CANMSGIDOL set7200h CAN邮箱0消息标识符 低16位字 CANMSGIDOH set7201h CAN邮箱0消息标识符 高16位字 CANMSGCTRl0 set7202h CAN邮箱0消息控制域寄存器CANMBX0A set7204h CAN邮箱0中邮箱RAM的2个字节CANMBX0B set7205h CAN邮箱0中邮箱RAM的2个字节CANMBX0C set7206h CAN邮箱0中邮箱RAM的2个字节CANMBX0D set7207h CAN邮箱0中邮箱RAM的2个字节CANMSGID1L set7208h CAN邮箱1消息标识符 低16位字 CANMSGID1H set7209h CAN邮箱1消息标识符 高16位字 CANMSGCTRL1 set720Ah CAN邮箱1消息控制域寄存器CANMBX1A set720Ch CAN邮箱1中邮箱RAM的2个字节CANMBX1B set720Dh CAN邮箱1中邮箱趾M的2个字节CANMBX1C set720Eh CAN邮箱1中邮箱RAM的2个字节CANMBX1D set720Fh CAN邮箱1中邮箱RAM的2个字节CANMSGID2L set7210h CAN邮箱2消息标识符 低16位字 CANMSGID2H set7211h CAN邮箱2消息标识符 高16位字 CANMSGCTRL2 set7212h CAN邮箱2消息控制域寄存器 CANMBX2A set7214h CAN邮箱2中邮箱RAM的2个字节CANMBX2B set7215h CAN邮箱2中邮箱RAM的2个字节CANMBX2C set7216h CAN邮箱2中邮箱RAM的2个字节CANMBX2D set7217h CAN邮箱2中邮箱RAM的2个字节CANMSGID3L set7218h CAN邮箱3消息标识符 低16位字 CANMSGID3H set7219h CAN邮箱3消息标识符 高16位字 CANMSGCTRL3 set721Ah CAN邮箱3消息控制域寄存器CANMBX3A set721Ch CAN邮箱3中邮箱RAM的2个字节CANMBX3B set721Dh CAN邮箱3中邮箱RAM的2个字节CANMBX3C set721Eh CAN邮箱3中邮箱RAM的2个字节CANMBX3D set721Fh CAN邮箱3中邮箱RAM的2个字节CANMSGID4L set7220h CAN邮箱4消息标识符 低16位字 CANMSGID4H set7221h CAN邮箱4消息标识符 高16位字 CANMSGCTRL4 set7222h CAN邮箱4消息控制域寄存器CANMBX4A set7224h CAN邮箱4中邮箱RAM的2个字节CANMBX4B set7225h CAN邮箱4中邮箱RAM的2个字节 CANMBX4 2 set7226h CAN邮箱4中邮箱RAM的2个字节CANMBX4D set7227h CAN邮箱4中邮箱RAM的2个字节CANMSGID5L set7228h CAN邮箱5消息标识符 低16位字 CANMSGID5H set7229h CAN邮箱5消息标识符 高16位字 CANMSGCTRL5 set722Ah CAN邮箱5消息控制域寄存器CANMBX5A set722Ch CAN邮箱5中邮箱RAM的2个字节CANMBX5B set722Dh CAN邮箱5中邮箱RAM的2个字节CANMBX5C set722Eh CAN邮箱5中邮箱RAM的2个字节CANMBX5D set722Fh CAN邮箱5中邮箱RAM的2个字节 代码安全模块 CSM 寄存器 数据存储器 KEY3 set77F0h 64位KEY寄存器高16位字KEY2 set77F1h 64位KEY寄存器第3个字KEY1 set77F2h 64位KEY寄存器第2个字KEY0 set77F3h 64位KEY寄存器低16位字 代码安全模块 CSM 寄存器 程序存储器 PWL3 set0040h 64位密码第3个字PWL2 set0041h 64位密码第2个字PWL1 set0042h 64位密码低字PWL0 set0043h 64位密码高字 I O空间映射寄存器WSGR setFFFFh 等待状态产生控制寄存器FCMR setFF0Fh 闪烁控制模式寄存器 位测试指令的位代码 BIT BITl5 set0000h 位代码15BITl4 set0001h 位代码14BIT13 set0002h 位代码13BIT12 set0003h 位代码12BIT11 set0004h 位代码11BIT10 set0005h 位代码10BIT9 set0006h 位代码9BIT8 set0007h 位代码8BIT7 set0008h 位代码7BIT6 set0009h 位代码6BIT5 set000Ah 位代码5BIT4 set000Bh 位代码4BIT3 set000Ch 位代码3B1T2 set000Dh 位代码2BIT1 set000Eh 位代码1BIT0 set000Fh 位代码0 KICK DOG macro 定义看门狗宏指令 看门狗复位 LDP 00E0h 设置DP 00E0h 则地址为7000h 707Fh 系统配置寄存器SCSR1 看门狗寄存器 SCI寄存器均映射在该范围内SPLK 05555h WDKEY 写入看门狗关键字SPLK 0AAAAh WDKEYLDP 0h 设置DP 0 则地址为0000h 007Fh endm 3 240 xA的中断矢量说明头文件240 xAvector h 该文件定义了C240X的各种中断矢量 可用 copy或 include伪指令将其复制到应用程序中 Filename 240 xAvector h sect vectors 定义主矢量段RSVECTB c into 复位矢量 复位INT1BGISR1 中断优先级lINT2BGISR2 中断优先级2INT3BGISR3 中断优先级3INT4BGISR4 中断优先级4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入股店铺协议合同范本
- 卤菜小吃培训合同范本
- 个人入资合同范本
- 国外中介劳务合同范本
- 承接内墙抹灰合同范本
- 武汉装饰装修合同范本
- 经济适用购房合同范本
- 室内电缆施工合同范本
- 新加坡别墅拍卖合同范本
- 消防家电安全知识培训课件
- 宗教事务条例解读课件
- 2025-2026学年接力版(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年发展对象考试题题库及答案
- 2025年医疗质量安全核心制度及病历书写规范考核试题(附答案)
- 2025年电力交易员(高级工)考试复习题库(含答案)
- 2025北京广播电视台校园招聘17人笔试备考题库及参考答案详解
- 冷库安全基本知识培训课件
- DB11T 1481-2024 生产经营单位安全事故应急预案评审规范
- 澄海玩具行业出口中存在的问题及对策分析
- MIR睿工业:2025年中国协作机器人产业发展蓝皮书
- 工业园区集中供热配套建设项目可行性研究报告
评论
0/150
提交评论