Amazon Best VPN GoSearch

OnWorks 网站图标

sdcc - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 sdcc

这是 sdcc 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


sdcc - 小型设备 C 编译器

概要


SDCC [选项] 文件名

警告


本手册页中的信息摘自 SDCC 的完整文档,并且是
仅限于选项的含义。

有关完整和最新的文档,请参阅 SDCC 编译器 用户 产品指南.

商品描述


SDCC 是免费的开源、可重定向、优化的 ANSI-C 编译器,专为 8 位设计
微处理器。 当前版本针对基于 Intel MCS51 的微处理器(8031、
8032、8051、8052 等)、达拉斯 DS80C390 变体、飞思卡尔(原摩托罗拉)HC08 和
基于 Zilog Z80 的 MCU(z80、z180、gbz80、Rabbit 2000/3000)。 它可以重新定位到其他
微处理器,对 Microchip PIC 的支持正在开发中。

SDCC 使用 ASXXXX & ASLINK 的修改版本,免费开源可重定向汇编器 &
链接器。

SDCC 具有广泛的语言扩展,适用于使用各种微控制器和
底层硬件有效。

SDCC 使用 澳交所 & 华联科技,一个免费软件,可重定向的汇编器和链接器。 SDCC 具有
广泛的语言扩展,适用于使用各种微控制器和
底层硬件有效。

编译器还允许将内联汇编代码嵌入到函数的任何位置。 在
此外,还可以调用在汇编中开发的例程。

处理器 选择 配置


-mmcs51
为 MCS51 (8051) 系列处理器生成代码。 这是默认的
处理器目标。

-MDS390
为 DS80C390 处理器生成代码。

-MDS400
为 DS80C400 处理器生成代码。

-mz80 为 Z80 系列处理器生成代码。

-mhc08 为 GameBoy Z80 处理器生成代码。

-mz80 为 Zilog Z80 系列处理器生成代码。

-mz180 为 Zilog Z180 系列处理器生成代码。

-mr2k 为 Rabbit 2000 / Rabbit 3000 系列处理器生成代码。”

-mr3ka 为 Rabbit 2000 / Rabbit 3000 系列处理器生成代码。 检查XXXXX”

-mgbz80
为 GameBoy Z80 处理器生成代码(未积极维护)。

-mpic14
为 Microchip PIC 14 位处理器(p16f84 和变体)生成代码。在
开发,未完成)。

-mpic16
为 Microchip PIC 16 位处理器(p18f452 和变体)生成代码。在
开发,未完成)。

-mtlcs900h
为东芝 TLCS-900H 处理器生成代码(未维护,不完整)。

-MXA51 为 Phillips XA51 处理器生成代码(未维护,不完整)。

-mstm8 为 STM8 处理器生成代码。

预处理器 配置


-I
预处理器将在其中查找“<..h>”或“..h”的附加位置
文件。

-D
宏的命令行定义。 传递给预处理器。

-M 告诉预处理器输出一个适合描述的规则
每个目标文件的依赖关系。 对于每个源文件,预处理器输出
一个生成规则,其目标是该源文件的目标文件名,并且其
依赖项是其中包含“#include”的所有文件。 此规则可以是单行或
如果它很长,可以用 `\'-newline 继续。 规则列表印在
标准输出而不是预处理的 C 程序。 '-M' 暗示 '-E'.

-C 告诉预处理器不要丢弃注释。 与 '-E' 选项。

-MM 喜欢 '-M' 但输出只提到了包含的用户头文件
`#include“文件”'。 `#include 包含的系统头文件' 被省略。

-A 问题(答案)
断言问题的答案,以防使用预处理器进行测试
条件,例如`#if #question(answer)'。 '-A-' 禁用标准
通常描述目标机器的断言。

-A
(answer) 断言问题的答案答案,以防它被测试
预处理器条件,例如`#if #question(answer)'。 '-A-' 禁用
通常描述目标机器的标准断言。

-Umacro
取消定义宏宏。 '-U' 选项毕竟是评估的 '-D' 选项,但
在任何之前 `-包括'`-imacros' 选项​​。

-dM 告诉预处理器只输出一个宏定义列表
预处理结束时的效果。 与 '-E' 选项。

-DD 告诉预处理器将所有宏定义传递到输出中,在它们的
输出其余部分的正确顺序。

-dN 喜欢 '-dD'除了省略宏参数和内容。 只有`#define
name' 包含在输出中。

链接器 配置


-L, -lib 路径<绝对值 额外 图书馆>
此选项传递给链接编辑器的附加库搜索路径。 这
路径名必须是绝对的。 额外的库文件可以在
命令行。 有关更多详细信息,请参阅编译程序部分。

--xram-loc
外部ram的起始位置,默认值为0。输入的值可以
是十六进制或十进制格式,例如: --xram-loc 0x8000 or --xram-loc 32768.

--代码定位
代码段的起始位置,默认值为0。注意当该选项为
使用的中断向量表也重定位到给定地址。 价值
输入可以是十六进制或十进制格式,例如: --代码定位 0x8000 or - 代码-
32768.

--stack-loc
堆栈指针的初始值。 堆栈指针的默认值为
0x07 如果只使用寄存器组 0,如果使用其他寄存器组,则
堆栈指针被初始化到所使用的最高寄存器组上方的位置。
例如。 如果使用寄存器组 1 和 2,则堆栈指针将默认为位置
0x18. 输入的值可以是十六进制或十进制格式,例如。 --stack-loc
0x20 or --stack-loc 32. 如果使用所有四个寄存器组,堆栈将是
放在数据段之后(相当于 --数据后堆栈)

--数据后堆栈
该选项将导致堆栈位于数据后的内部 ram 中
分割。

--数据定位
内部ram数据段的起始位置,默认值为 0x30。 该
输入的值可以是十六进制或十进制格式,例如。 --数据定位 0x20 or
--数据定位 32.

--idata-loc
间接寻址内部ram的起始位置,默认值为
0x80. 输入的值可以是十六进制或十进制格式,例如。 --idata-loc
0x88 or --idata-loc 136.

--out-fmt-ihx
链接器输出(最终目标代码)采用 Intel Hex 格式。 (这是默认的
选项)。

--out-fmt-s19
链接器输出(最终目标代码)采用 Motorola S19 格式。

MCS51 配置


--模型-大
为大型模型程序生成代码,请参阅内存模型部分了解更多详细信息。
如果使用此选项,则项目中的所有源文件都应使用此选项进行编译
选项。 另外标准库例程是用小模型编译的,
它们将需要重新编译。

--模型小
为小模型程序生成代码,请参阅内存模型部分了解更多详细信息。
这是默认模型。

DS390 / DS400 配置


--模型-flat24
生成 24 位平面模式代码。 这是唯一一个 ds390 代码
生成器现在支持,使用时默认 -MDS390.

--protect-sp-更新
在 ESP:SP 更新期间禁用中断。

_---stack-10bit
为达拉斯 DS10C80 部分的 390 位堆栈模式生成代码。 这是
唯一一个 ds390 代码生成器现在支持,并且是默认的
运用 -MDS390. 在这种模式下,堆栈位于内部的低 1K
RAM,映射到 0x400000 . 请注意,支持是不完整的,因为它
仍然使用单个字节作为堆栈指针。 这意味着只有较低的 256
潜在的 1K 堆栈空间的字节将被实际使用。 然而,这确实
允许您回收宝贵的 256 字节低 RAM 用于数据和
IDATA 段。 编译器不会生成任何代码将处理器放入
10 位堆栈模式。 确保处理器处于此模式很重要
在调用使用此选项编译的任何可重入函数之前。 原则上,
这应该与 --堆栈自动 选项,但这还没有经过测试。 这是
不兼容 --xstack 选项。 它也只有在处理器是
在 24 位连续寻址模式中(请参阅 --模型-flat24 选项)。

Z80 可选项


--被调用者保存 bc
强制被调用的函数总是保存 BC。

--无-std-crt0
链接时,跳过标准 crt0.o 目标文件。 您必须提供自己的
链接时为您的系统使用 crt0.o。

优化 配置


--诺格塞
不会做全局子表达式消除,这个选项可能在
编译器创建了不希望有的大堆栈/数据空间来存储编译器临时文件。
发生这种情况时将生成警告消息,编译器将
指示它分配的额外字节数。 建议这个选项
不得使用, #pragma 高考 可用于关闭全局子表达式
仅对给定函数进行消除。

--不变量
不会做循环不变优化,这可能出于某些原因被关闭
对上一个选项进行了解释。 有关执行的循环优化的更多详细信息
请参阅循环不变量部分。建议不要使用此选项, #pragma
不变式 可用于关闭给定函数的不变优化
只。

--无归纳
不会进行循环归纳优化,请参阅节强度减少了解更多
细节。 建议不要使用此选项, #pragma 无感应
仅用于关闭给定函数的归纳优化。

--nojtbound
执行switch语句时不会产生边界条件检查
使用跳转表。 建议不要使用此选项, #pragma
没有绑定 可用于关闭给定跳转表的边界检查
功能而已。

--noloopreverse
不会做循环反转优化。

其他 配置


-C, --只编译
将编译和汇编源代码,但不会调用链接编辑器。

-E 仅运行 C 预处理器。 预处理指定的所有 C 源文件并输出
结果到标准输出。

--堆栈自动
源文件中的所有函数都会被编译为可重入的,即参数
并且局部变量将被分配在堆栈上。 如果这个选项被全部使用
应使用此选项编译项目中的源文件。

--xstack
在外部 ram 的前 256 个字节中使用伪堆栈进行分配
变量和传递参数。

--被调用者保存 功能1[,功能2][,功能3]....
默认情况下,编译器使用调用者保存约定来保存寄存器
函数调用,但是这会导致不必要的寄存器推送和弹出
从大函数调用小函数。 此选项可用于切换
指定函数名称的寄存器保存约定。 编译器会
调用这些函数时不保存寄存器,不会产生额外的代码
这些函数的入口和出口以保存和恢复这些函数使用的寄存器
功能,这可以 基本上 减少代码并提高运行时性能
生成的代码。 将来,编译器(具有过程间分析)将是
能够确定用于每个函数调用的适当方案。 DO 不是 使用
此选项用于内置功能,例如 _muluint...,如果此选项用于
一个库函数 适当的库函数需要重新编译
相同的选项。 如果项目包含多个源文件,则所有源文件
文件应该用相同的方式编译 --被调用者保存 选项字符串。

-调试
使用此选项时,编译器将生成调试信息,可以是
数据中心. 调试信息收集在一个带有 .cdb 的文件中
延期。

--正则扩展
此选项已过时,不再受支持。

--noregparms
此选项已过时,不再受支持。

--窥视文件
此选项可用于使用窥视孔要使用的附加规则
优化器。

-S 在适当的编译阶段后停止; 不要组装。 输出是一个
指定输入文件的汇编代码文件。

-Wa_asmOption[,asmOption]...]
将 asmOption 传递给汇编程序。

-WL_链接选项[,链接选项]...]
将 linkOption 传递给链接器。

--int-long-reent
整数(16 位)和长(32 位)库已编译为可重入的。 笔记
默认情况下,这些库被编译为不可重入的。

--圈的
此选项将导致编译器为每个
源文件中的函数。 该消息包含一些有关的重要信息
功能。 编译器在控件中检测到的边数和节点数
函数的流程图,最重要的是圈复杂度。

--浮动保留
浮点库被编译为可重入的。

--无覆盖
编译器不会覆盖任何函数的参数和局部变量,参见
有关更多详细信息,请参阅参数和局部变量部分。

--主要返回
当监控程序调用生成的代码时,可以使用此选项。
编译器将在从 'main' 函数返回时生成一个 'ret'。 这
默认选项是锁定,即生成'ljmp'。

--没有窥视
禁用窥视孔优化。

--窥视汇编
通过窥视孔优化器传递内联汇编代码。 这会导致
内联汇编代码的意外更改,请通过窥视孔
源文件树中定义的优化器规则' /peeph.def' 使用前
这个选项。

--iram 大小
使链接器检查内部 ram 使用是否在给定的限制内
计算值。

--nostdicl
这将阻止编译器将默认包含路径传递给
预处理器。

--nostdlib
这将阻止编译器将默认库路径传递给
链接器。

--详细
显示编译器正在执行的各种操作。

-V 显示编译器正在执行的实际命令。

中间 DUMP 配置


提供以下选项用于重新定位和调试
编译器。 这些提供了一种转储由生成的中间代码 (iCode) 的方法。
在编译过程的各个阶段以人类可读的形式编译。

--dumpraw
此选项将导致编译器将中间代码转储到
命名. 转储 就在中间代码完成之后
为函数生成,即在完成任何优化之前。 基本块
在此阶段按深度优先编号排序,因此它们可能不按顺序排列
执行。

--dumpgcse
将在全局子表达式消除后创建 iCode 的转储到文件中
命名.dumpgcse。

--转储死代码
将在消除死代码后创建 iCode 的转储,并将其保存到名为的文件中
.dumpdeadcode。

--转储循环
将在循环优化后创建 iCode 的转储到名为的文件中
文件名>.dumploop。

--转储范围
将在实时范围分析后创建 iCode 的转储到名为的文件中
文件名>.dumprange。

--杜姆兰奇
将转储所有符号的生命范围。

--dumpreg分配
将在寄存器分配后创建 iCode 的转储到名为的文件中
文件名>.dumprassgn。

--dumpl范围
将创建 iTemp 的有效范围的转储

--转储波尔
将导致创建所有上述转储。

复印


编译器的整个源代码在 GNU 通用公共许可证下分发。

使用 onworks.net 服务在线使用 sdcc


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。