您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR GCC 中文手册 正文
AVR GCC 中文手册

AVR GCC 中文手册

点击数:7798 次   录入时间:03-04 11:49:09   整理:http://www.55dianzi.com   AVR单片机
msvr3 
打开(`-msvr4')或关闭(`-msvr3')和System V第四版(SVr4)相关的 编译器扩展.效果如下: 
   * 
输出哪种汇编语法(你可以使用`-mversion-03.00'选项单独选择). 
   * 
`-msvr4'使C预处理器识别`#pragma weak'指令 
   * 
`-msvr4'使GCC输出额外的声明指令(declaration directive),用于SVr4. 
除了SVr4配置, `-msvr3'是所有m88K配置的默认选项. 


-mtrap-large-shift 
-mhandle-large-shift 
包含一些指令,用于检测大于31位的位移(bit-shift);根据相应的选项,对这样的位移发出自陷 (trap)或执行适当的处理代码.默认情况下, GCC对大位移不做特别处理. 

-muse-div-instruction 
很早以前的88K型号没有(div)除法指令,因此默认情况下GCC避免产生这条指令.而这个选项告诉GCC该指令是 安全的. 

-mversion-03.00 
在DG/UX配置中存在两种风格的SVr4.这个选项修改-msvr4 ,选择hybrid-COFF或 real-ELF风格.其他配置均忽略该选项. 

-mwarn-passed-structs 
如果某个函数把结构当做参数或结果传递, GCC发出警告.随着C语言的发展,人们已经改变了传递结构的约定, 它往往导致移植问题.默认情况下, GCC不会发出警告. 

下面的选项用于IBM RS6000: 

-MFP-in-toc 

-mno-FP-in-toc 
控制是否把浮点常量放到内容表(TOC)中,内容表存放所有的全局变量和函数地址.默认情况下, GCC把浮点常量放到 这里;如果TOC溢出, `-mno-fp-in-toc'选项能够减少TOC的大小,这样就可以避免溢出. 

下面的`-m'选项用于IBM RT PC: 

-min-line-mul 
对于整数乘法使用嵌入代码.这是默认选项. 
-mcall-lib-mul 
对于整数乘法使用lmul$$ . 
-mfull-fp-bLOCks 
生成全尺寸浮点数据块,包括IBM建议的最少数量的活动空间(scratch sPACe).这是默认选项. 
-mminimum-fp-blocks 
不要在浮点数据块中包括额外的活动空间.这样就产生较小但是略慢的可执行程序,因为活动空间必须动态分配. 
-mfp-arg-in-fpregs 
采用不兼容IBM调用约定的调用序列,通过浮点寄存器传送浮点参数.注意,如果指定了这个选项, varargs.h和stdargs.h将无法支持浮点单元. 

-mfp-arg-in-gregs 
使用正常的调用约定处理浮点参数.这是默认选项. 

-mhc-struct-return 
通过内存返回大于一个字的结构,而不是通过寄存器.用于兼容MetaWare HighC (hc)编译器.使用 `-fpcc-struct-return'选项可以兼容Portable C编译器(pcc). 

-mnohc-struct-return 
如果可以,通过寄存器返回某些大于一个字的结构.这是默认选项.如果打算兼容IBM提供的编译器,请使用 `-fpcc-struct-return'或`-mhc-struct-return'选项. 

下面的`-m'选项用于MIPS家族的计算机: 

-mcpu=cpu-type 
生成指令的时候,假设默认的机器类型是cpu-type .默认情况下的cpu-type是 default, GCC将选取任何机型上都是最长周期时间的指令,这样才能使代码在所有的MIPS处理器上以合理 的速度运行. cpu-type的其他选择是r2000, r3000, r4000,和  r6000.虽然选定某个cpu-type后, GCC将针对选定的芯片安排对应的工作,但是如果 不指定?? -mips2或-mips3选项,编译器不会输出任何不符合MIPS ISA (instruction set architecture)一级的代码. 

-mips2 
输出MIPS ISA二级指令(可能的扩展,如平方根指令). -mcpu=r4000或-mcpu=r6000 选项必须和-mips2联用. 

-mips3 
输出MIPS ISA三级指令(64位指令). -mcpu=r4000选项必须和-mips2联用. (译注:疑为-mips3) 

-mint64 
-mlong64 
-mlonglong128 
这些选项目前不起作用. 

-mmips-as 
产生用于MIPS汇编器的代码,同时使用mips-tfile添加普通的调试信息.对于大多数平台这是 默认选项,除了OSF/1参考平台,它使用 OSF/rose目标格式.如果打开了任一个-ggdb, -gstabs,或-gstabs+选项开关, mips-tfile程序就把stab封装在 MIPS ECOFF里面. 

-mgas 
产生用于GNU汇编器的代码.在OSF/1参考平台上这是默认选项,它使用OSF/rose目标格式. 

-mrnames 
-mno-rnames 
-mrnames开关选项告诉输出代码使用MIPS软件名称说明寄存器,而不是硬件名称(就是说,用 a0代替$4). GNU汇编器不支持-mrnames选项,而MIPS汇编器则运行MIPS C预处理器处理源文件. -mno-rnames是默认选项. 

-mgpopt 
-mno-gpopt 
-mgpopt开关选项要求在正文段中把所有的数据声明写到指令前面,使各种MIPS汇编器对短类型全局 或静态数据项(short global or statIC data itEMS)输出单字内存访问而不是双字内存访问.当打开编译优化 时,这是默认功能. 


-mstats 
-mno-stats 
每次处理完非嵌入函数(non-inline function)后, -mstats开关选项使编译器向标准错误文件 输出一行关于程序的统计资料(保存的寄存器数目,堆栈大小,等等). 

-mmEMCpy 
-mno-mEMCpy 
-mmemcpy开关选项使所有的块移动操作调用适当的string函数(memcpy或 bcopy),而不是生成嵌入代码. 

-mmips-tfile 
-mno-mips-tfile 
当MIPS 汇编器生成mips-tfile文件(用于帮助调试)后, -mno-mips-tfile 开关选项阻止编译器使用mips-tfile后期处理 (postprocess)目标文件.不运行 mips-tfile就没有调试器关注的局部变量.另外, stage2和stage3目标文件将把 临时文件名传递给汇编器,嵌在目标文件中,这意味着不比较目标文件是否相同. 

-mSOFt-float 
输出包含浮点库调用. 警告: 所需库不是GNU CC的一部分.一般说来使用该机型本地C编译器的相应部件, 但是不能直接用于交叉编译,你必须自己安排,提供交叉编译适用的库函数. 

-mhard-float 
输出包含浮点指令.如果编译器没有被改动,这就是默认选项. 

-mfp64 
编译器认为状态字的FR置位(on),也就是说存在32 64-bit浮点寄存器,而不是32 32-bit 浮点寄存器.同时必须打开-mcpu=r4000和-mips3开关. 

-mfp32 
认为存在32 32-bit浮点寄存器.这是默认选项. 

-mabicalls 

-mno-abicalls 
输出(或不输出) .abicalls, .cpload,和.cprestore伪指令,某些 System V.4版本用于位置无关代码. 

-mhalf-pic 
-mno-half-pic 
-mhalf-pic开关选项要求把外部引用的指针放到数据段,并且载入内存,而不放到正文段.该选项目前 不起作用. 

-G num 
把小于等于num字节的全局或静态数据放到小的数据段或bss段,而不是普通的数据段或bss段. 这样汇编器可以输出基于全局指针(gp或$28),的单字内存访问指令而非普通的双字指令.默认情况下, 用MIPS汇编器时num是8,而GNU汇编器则为0.另外, -Gnum选项也被传递 给汇编器和连接器.所有的模块必须在相同的-Gnum值下编译. 

-nocpp 
汇编用户汇编文件(带有`.s'后缀)时,告诉MIPS汇编器不要运行预处理器. 

下面的`-m'选项用于Intel 80386族计算机: -m486 

-mno-486 
控制是否生成对486优化的代码. 

-msoft-float 
输出包含浮点库调用. 警告: 所需库不是GNU CC的一部分.一般说来使用该机型本地C编译器的相应部件, 但是不能直接用于交叉编译,你必须自己安排,提供交叉编译适用的库函数. 
在函数把浮点返回值放在80387寄存器栈的机器上,即使设置了`-msoft-float'选项,也可能会发出 一些浮点操作码. 


-mno-fp-ret-in-387 
不用FPU寄存器返回函数值. 
通常函数调用约定把float和double的返回值放在FPU寄存器中,即使不存在FPU. 这种作法的理念是操作系统应该仿真出FPU. 

而`-mno-fp-ret-in-387'选项使浮点值通过普通的CPU寄存器返回. 


下面的`-m'选项用于HPPA族计算机: 

-mpa-risc-1-0 
生成PA 1.0处理器的目标码. 
-mpa-risc-1-1 
生成PA 1.1处理器的目标码. 

-mkernel 
生成适用于内核的目标码.特别要避免add指令,它有一个参数是DP寄存器;用adDIL 代替add指令.这样可以避免HP-UX连接器的某个严重bug. 

-mshared-libs 
生成能够连接HP-UX共享库的目标码.该选项还没有实现全部功能,对PA目标默认为关闭.使用这个选项会导致 编译器生成错误的目标码. 

-mno-shared-libs 

[1] [2] [3]  下一页


本文关键字:中文  AVR单片机单片机-工控设备 - AVR单片机