c55x汇编语言,TMS320C55x汇编语言编程A.ppt

TMS320C55x汇编语言编程A

例4-17,无效定义的表达式。 .global Y ; 定义Y为全局外部符号 badsym1.set Y ; Y在当前文件中未定义 badsym2.set 50h + Y ; 无效的表达式 badsym3.set 50h + Z ; 无效的表达式,Z还未定义 Z .set 60h; 定义Z,但应在表达式使用之前 表4-9 汇编源程序表达式中的运算符 序号 符 号 运算操作 求值顺序 1 + - ~ ! 取正、取负、按位求补、逻辑负 从右至左 2 * / % 乘法、除法、求模 从左至右 3 + - 加法、减法 从左至右 4 << >> 左移、右移 从左至右 5 < <= 小于、小于等于 从左至右 6 > >= 大于、大于等于 从左至右 7 != = 不等于、等于 从左至右 8 & 按位与运算 从左至右 9 ∧ 按位异或运算 从左至右 10 | 按位或运算 从左至右 4.5.5 内建数学函数 汇编器支持如表4-10所示的内建数学函数 函数中的表达式必须为常数 表4-10 汇编器内建数学函数 4.6 TMS320C55x链接器 链接器的运行 链接器命令文件的编写与使用 MEMORY指令 SECTIONS指令 4.6.1 概述 TMS320C55x链接器有两个功能强大的指令,即MEMORY和SECTIONS。 MEMORY指令允许用户定义一个目标系统的存储器映射,可以命名存储器的各个部分,并且指定开始地址和大小。 SECTIONS指令告诉链接器合成输入段为输出段,并且告诉链接器把这些输出段放在存储器的某个位置。 4.6.2 链接器的运行 键入命令:lnk55 键入命令: lnk55 a.obj b.obj -o link.out 键入命令:lnk55 linker.cmd 1、C55x链接器的三种运行方法: 链接器会提示如下信息: Command files:(要求键入一个或多个命令文件) Object files [.obj]:(要求键入一个或多个需要链接的目标文件) Output Files [a.out]:(要求键入一个链接器所生成的输出文件名) Options:(要求附加一个链接选项) 在命令行中指定选项和文件名: 目标文件: a.obj、b.obj 命令选项: -o 输出文件: link.out linker.cmd: 链接命令文件。 在执行上述命令之前,需将链接的目标文件、链接命令选项以及存储器配置要求等编写到链接命令文件linker.cmd中 例4-18,链接器命令文件举例。 将两个目标文件a.obj和b.obj进行链接,生成一个映像文件prog.map和一个可执行的输出文件prog.out。 a.obj /* 第一个输入文件 */ b.obj /*第二个输入文件*/ –o prog.out /* 产生.out文件选项 */ –m prog.map /*产生.map文件选项 */ 2.链接命令选项 选 项 含 义 -a 生成一个绝对地址的、可执行的输出模块。如果既不用-a选项,也不用-r选项,链接器就像规定-a选项那样处理。 -ar 生成一个可重新定位、可执行的目标模块。这里采用了-a和-r两个选项(可以分开写成-a -r,也可以连在一起 写作-ar),与-a选项相比,-ar选项还在输出文件中保留有重新定位信息。 -c 使用TMS320C55x C/C++编译器的ROM自动初始化模型所定义的链接约定 -cr 使用TMS320C55x C/C++编译器的RAM自动初始化模型所定义的链接约定 -e global_symbol 定义一个全局符号,该符号指定输出模块的入口地址 -f fill_vale 对输出模块各段之间的空单元设置一个16位数值(fill_value),如果不用-f选项,则这些空单元都置0。 -h 使所有全局符号均为静态的 选 项 含 义 -help 或? 显示链接器所有命令行选项列表 –heap size 设置存储器heap块的大小(用于C/C++程序中动态存储器分配),缺省值为2000字节 -i dir 更改搜索文档库算法,先到dir(目录)中搜索。此选项必须出现在-l选项之前。 -l filename 命名一个文档库文件作为链接器的输入文件;filename为文档库的某个文件名。此选项必须出现在-i选项之后。 -m filename 生成一个.map映像文件,filename是映像文件的文件名。.map文件中说明存储器配置、输入、输出段布局以及外部符号重定位之后的地址等。 -o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值