当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

SDCC

小型设备的C编译器
授权协议 GPL
开发语言 C/C++
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 惠野
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

SDCC (Small Device C Compiler)是一个优化的嵌入式ANSI C编译器,它支持的平台包括是英特尔8051、美信80DS390、Zilog Z80、摩托罗拉68HC08和微芯的PIC16及PIC18系列。 SDCC是自由开放源码软件,依照GNU通用公共许可证(GPL)分发。

  • 关于如何使用sdcc编译器,参见 单片机开发,推荐开源跨平台的SDCC编译器,其中较为详细叙述了使用方法和执行效率。 1,IDE基本环境 SDCC在eclipse有一个插件,版本1.0,发表于2006年,较为稳妥的IDE环境是2006年或之前发行的eclipse版本。查看eclipse官网,版本为3.10。在Eclipse Project Archives列出了以往版本,选择3.1下载 Eclip

  • 说明 SDCC:Small Device C Compiler SDCDB:Small Device C Debugger apt安装SDCC 下载sudo apt-get install sdcc 使用 sdcc --version查看sdcc版本号: SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ez80_z80/ds390/TININative/ds

  • 一、存储类型关键字 1.1 sdcc中特殊关键字的使用 sdcc提供和keil一样的特殊关键字来指定变量的存储类型,和keil不同的是,sdcc在使用c51专用的特殊关键字时,要用两个下划线作为前缀,比如申明一个idata存储类型的变量时语句如下。 __idata unsigned char i; 1.2 __data类型 该类型是small存储模式下默认使用的存储类型,对应直接寻址方式。 1.3

  • 安装后把SDCC的bin目录添加到path环境 变量使得你能在任何目录下使用SDCC,使用archlinux和debian系统的没有这一步,安装时已经自动配置好了! 源代码与Keil C的稍许不同 对于已经习惯使用Keil C的用户需要注意一下,SDCC的源代码和Keil C有所不同,需要做一点调整才能编译通过.SDCC比较多的使用像8051.h这样的头文件(include/mcs51目录下也有r

  • 前言 最近打算写一些单片机程序,因此买了一块开发板,打算写一些代码来复习相关的知识。第一块开发板是普通的stc90c51,出于将学习和娱乐分开的目的,我把编码工作放在linux下来进行。 在linux下进行单片机的软件开发,要先安装专用的交叉编译器sdcc。接下来我会阅读sdcc的man文档,再结合一些简单的实验,来了解一下这款编译器。其目的有三,一是复习一些单片机的知识,二是理清sdcc的编译选

  •     很苦恼,真的很苦恼。 SDCC还真的是无法逃避的问题,但是全英文。真的欲哭无泪啊。 开发环境已经定了,硬件平台是CC2530开发板,操作系统是Contiki,软件平台自然是Ubuntu了。 不管怎样,把SDCC的基础使用方法记录下来吧。也是感谢网上众多大牛的分享,我也是东找一点西找一点的拼凑出这些使用方法。因为本身英语水平没法看。。。   SDCC编译C文件的方法:     命令:SDCC

  • 寄存器 Register 寄存器用于数据的临时存储, 其数据可以表示为 用于处理的数据字节 指向数据的地址 寄存器的结构 8051的寄存器几乎都是8位寄存器, 因为8位MCU处理的主要是8位数据, 如果数据大于8位, 则需要拆成多段分别处理. 一个8位的寄存器, 从D7到D0代表起第7位到第0位, D7这端为MSB(most significant bit), D0这端为LSB(least sig

  • 寄存器 Register 寄存器用于数据的临时存储, 其数据可以表示为 用于处理的数据字节 指向数据的地址 寄存器的结构 8051的寄存器几乎都是8位寄存器, 因为8位MCU处理的主要是8位数据, 如果数据大于8位, 则需要拆成多段分别处理. 一个8位的寄存器, 从D7到D0代表起第7位到第0位, D7这端为MSB(most significant bit), D0这端为LSB(least sig

  • 概述 相信很多人对Keil并不陌生,这可能是目前很多初学者接触到的第一个IDE。你点开本文的原因,可能是再也无法忍受Keil一成不变的界面、复古的代码编辑体验;也可能是由于一些需要,必须要摆脱商业软件的环境。 本文将打通编辑、编译、烧录的完整工具链,搭建出一个优雅、开源的51开发环境。 这篇文章主要作用是对关键问题做一个备忘,方便以后自己翻阅,所以写的也比较跳跃。个人水平有限,也没有能力写系统的教

  • 耗时一下午,成功编译.水平过菜,简述心路历程. 前情提要 尝试在单片机跑lua的时候被推送了xmake相关文章.粗略看介绍,感觉挺好的,国人开发,基于lua,功能强大能少装两个软件.留下第一印象.混入项目群里面潜水. 环境概述 硬件环境: N76E003 1T51内核单片机.官方SDK开发板 宿主环境: windows10 21 LTSC/MAC OS Ventura 软件环境: SDCC4.2.

  • 函数1. 函数参数和局部变量 函数里的自动(局部)变量和参数可以分配到堆栈上或者数据空间里。SDCC编译器默认的做法是分配这些变量到内部RAM中(小模式)或者外部RAM (中模式或大模式),即SDCC把函数参数和局部变量分配在固定的地址,每次调用该函数就直接从固定的地址去取参数和局部变量的值,这与其它的编译器不一样,主要是因为8051数据存储空间RAM有限,不能支持大的堆栈。这实际使它们类似于静态

  •     摸索了几天,把STC8A单片机的程序转到了SDCC编译器。如果是刚接触单片机,没用过其他编译器,那么不会感觉有啥难度。如果从其他开发工具转过来,可能需要适应一下新环境。     STC官网给出的头文件和例程基本是基于keil的,这也让许多人选择keil开发环境。keil确实有过人之处,商业软件,比较可信赖。但是keil也有不足:一、它是收费的,免费也可以用,但有代码长度限制。我记得以前ke

 相关资料
  • 我正在为一个特定的设备编程,我无法理解如何设置minsdkversion、compilesdkversion和Target etsdkversion。当我使用API级别25不存在的库时,我想得到一个编译器错误。这是我收集的信息。minsdkversion阻止调用API版本不存在的API。Compilesdkversion应该始终是最新版本。Targetsdkversion是应用程序的测试对象(不明

  • 假设我们在小型设备上有一个简单的网格布局,两列,宽度比例为 25% 和 75%。 提示: 小型设备的定义是屏幕小于 40.0625em。 小型设备上我们使用 .small-* 类。 <div>....</div> <div>....</div> 以下实例设置了两个列,比例为 25% 和 75% (Foundation 是移动优先: 如果没有特别说明,在大型设备上会继承 .small 类的代码)

  • 本文向大家介绍解析C语言与C++的编译模型,包括了解析C语言与C++的编译模型的使用技巧和注意事项,需要的朋友参考一下 首先简要介绍一下C的编译模型: 限于当时的硬件条件,C编译器不能够在内存里一次性地装载所有程序代码,而需要将代码分为多个源文件,并且分别编译。并且由于内存限制,编译器本身也不能太大,因此需要分为多个可执行文件,进行分阶段的编译。在早期一共包括7个可执行文件:cc(调用其它可执行文

  • 正在检查CC的已解析符号链接。..没有符号链接配置:C编译器(位于/mnt/d/ubuntu/ndk/build/tools/toolchain/bin/aarch64-linux-android21-clang)似乎不是所需的gcc编译器。configure:使用--version运行的结果是:“”configure:error:需要gcc编译器。尝试设置--with-tools-dir。使用结

  • 问题内容: 我想知道为什么我们通过编译显示“ Hello,World!”的.c文件得到.o文件。是否大于Java .class文件,该文件也显示“ Hello,World!”? 问题答案: Java使用字节码来独立于平台并进行“预编译”,但是字节码由解释器使用并且被提供为足够紧凑,因此您在已编译的C程序中看到的机器代码并不相同。只需看一下Java编译的完整过程即可: 这是Java程序到机器代码转换

  • 从一个PHP程序猿,到一个想为PHP开发扩展的程序猿,此间的进化有一步是跳不过去的,那就是你必须熟知如何编译PHP的源码。 *nix Tools C语言的编译器是我们使用C语言的必备工具,你的系统应该已经自带了一种C语言的编译器,而且它极有可能是大名鼎鼎的GCC。通过检测你本机gcc或者cc程序的版本,可以很方便的知道你机器上是否已经安装的某种C语言的编译器。 walu@walu-ThinkPad