微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM汇编程序设计之:ARM汇编编译器的使用

ARM汇编程序设计之:ARM汇编编译器的使用

时间:09-30 来源:互联网 点击:

编命令,可使汇编器输出所有可用选项类别。

armasm–help

10.4.2过程调用标准AAPCS

为了使不同编译器编译的程序之间能够相互调用,必须为子程序间的调用规定一定的规则。AAPCS就是这样一个标准。所谓AAPCS,其英文全称为ProcedureCallStandardfortheARMArchitecture(AAPCS),即ARM体系结构过程调用标准。它是ABI(ApplicationBinaryInterface(ABI)fortheARMArchitecture(basestandard)[BSABI])标准的一部分。

可以使用“--apcs”选项告诉编译器将源代码编译成符号AAPCS调用标准的目标代码。

注意

使用“--apcs”选项并不影响代码的产生,编译器只是在各段中放置相应的属性,标识用户选定的AAPCS属性。

与AAPCS相关的编译/汇编选项有以下几种。

·none:指定输入文件不使用AAPCS规则。

·/interwork:指定输入文件符合ARM/Thumb交互标准。

·/nointerwork:指定输入文件不能使用ARM/Thumb交互。这是编译器默认选项。

·/ropi:指定输入文件是位置无关只读文件。

·/noropi:指定输入文件是非位置无关只读文件。这是编译器默认选项。

·/pic:同/ropi。

·/nopic:同/noropi。

·/rwpi:指定输入文件是位置无关可读可写文件。

·/norwpi:指定输入文件是非位置无关可读可写文件。

·/pid:同/rwpi。

·/nopid:同/norwpi。

·/fpic:指定输入文件编译成位置无关只读代码。代码中地址是FPIC地址。

·/swstackcheck:编译过程中对输入文件使用堆栈检测。

·/noswstackcheck:编译过程中对输入文件不使用堆栈检测。这是编译器默认选项。

·/swstna:如果汇编程序对于是否进行数据栈检查无所谓,而与该汇编程序连接的其他程序指定了选项/swst或选项/noswst,这时该汇编程序使用选项/swstna。

10.4.3浮点模式选项

“--fpmodemodel”选项指定所选的浮点模式。可使用的浮点模式有以下几种。

·ieee_full:所有的浮点操作符号IEEE标准,其中包括单精度浮点操作和双精度浮点操作。浮点模式可以在使用时动态选择。使用该选项,编译器将使用下面的预定义符号。

__FP_IEEE;

__FP_FENV_EXCEPTIONS;

__FP_FENV_ROUNDING;

__FP_INEXACT_EXCEPTION。

·ieee_fixed:符合IEEE标准的浮点运算异常处理规则。使用该选项,编译器将使用下面的预定义符号。

__FP_IEEE;

__FP_FENV_EXCEPTIONS。

·ieee_no_fenv:和JAVA兼容的浮点运算算法选择。预定义的符号为__FP_IEEE。

·std:和C和C++兼容的浮点运算算法选择。这是编译器默认选项。

·fast:快速浮点运算选项。使用该选项将影响浮点运算的精度。

10.4.4为CPU命名选项

使用“--cpuname”选项为目标程序使用的CPU命名。其中name的取值为4T、5TE或6T2。编译器的默认值为ARM7TDMI。

下面的选项使编译器列出所有当前可使用的CPU名。

armasm--cpulist

10.4.5为FPU命名选项

选项“--FPU”指定所使用的浮点运算单元的结构。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top