Small Device C Compiler

Last updated
Small Device C Compiler
Developer(s) Sandeep Dutta and others
Stable release
4.0.0 / January 30, 2020;0 days ago (2020-01-30)
Repository OOjs UI icon edit-ltr-progressive.svg
Operating system Microsoft Windows, OS X, Linux
Type C compiler
License GPL

The Small Device C Compiler (SDCC) is a free-software, partially retargetable [1] C compiler for 8-bit microcontrollers. It is distributed under the GNU General Public License. The package also contains a linker, assembler, simulator and debugger. As of March 2007, SDCC is the only open-source C compiler for Intel 8051-compatible microcontrollers. [2] [3] [4] [ citation needed ] In 2011 the compiler was downloaded on average more than 200 times per day. [5]


Supported hosts

Sources, documentation, and binaries are available for Linux (32-bit and 64-bit), macOS (PPC and 64-bit), and Windows (32-bit and 64-bit).

Supported targets

The following include binary compatible derivatives...

Work is in progress on:

SDCC suite is a collection of several components derived from different sources with different FOSS licenses.

See also

Related Research Articles

Microprocessor Computer processor contained on an integrated-circuit chip

A microprocessor is a computer processor that incorporates the functions of a central processing unit on a single integrated circuit (IC), or sometimes up to 8 integrated circuits. The microprocessor is a multipurpose, clock driven, register based, digital integrated circuit that accepts binary data as input, processes it according to instructions stored in its memory and provides results as output. Microprocessors contain both combinational logic and sequential digital logic. Microprocessors operate on numbers and symbols represented in the binary number system.

Microcontroller small computer on a single integrated circuit

A microcontroller is a small computer on a single metal-oxide-semiconductor (MOS) integrated circuit chip. In modern terminology, it is similar to, but less sophisticated than, a system on a chip (SoC); a SoC may include a microcontroller as one of its components. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.

Zilog Z80 8-bit microprocessor

The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were delivered in March 1976, and it was officially introduced on the market in July 1976. With the revenue from the Z80, the company built its own chip factories and grew to over a thousand employees over the following two years.

Intel MCS-51 microcontroller chip

The Intel MCS-51 is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. The architect of the instruction set of the Intel MCS-51 was John H. Wharton. Intel's original versions were popular in the 1980s and early 1990s and enhanced binary compatible derivatives remain popular today. It is an example of a complex instruction set computer, and has separate memory spaces for program instructions and data.

Zilog, Inc. is an American manufacturer of 8-bit and 16-bit microcontrollers. Its most famous product is the Z80 series of 8-bit microprocessors that were compatible with the Intel 8080 but significantly cheaper. The Z80 was widely used during the 1980s in many popular home computers such as the TRS-80 and the ZX Spectrum, as well as arcade games such as Pac-Man. The company also made 16- and 32-bit processors, but these did not see widespread use. From the 1990s, the company focused primarily on the microcontroller market.

Z88DK is a Small-C-derived cross compiler for a long list of Z80 based computers. The name derives from the fact that it was originally developed to target the Cambridge Z88. Z88DK is much developed from Small-C and it accepts many features of ANSI C with the notable exception of multi-dimensional arrays and prototyped function pointers. Later version also supports SDCC as compiler.

Atmel Corporation was a designer and manufacturer of semiconductors before being acquired by Microchip Technology in 2016. It was founded in 1984. The company focuses on embedded systems built around microcontrollers. Its products include microcontrollers radio frequency (RF) devices including Wi-Fi, EEPROM, and flash memory devices, symmetric and asymmetric security chips, touch sensors and controllers, and application-specific products. Atmel supplies its devices as standard products, application-specific integrated circuits (ASICs), or application-specific standard product (ASSPs) depending on the requirements of its customers.

PIC microcontrollers series of microprocessors

PIC is a family of microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to Peripheral Interface Controller, and is currently expanded as Programmable Intelligent Computer. The first parts of the family were available in 1976; by 2013 the company had shipped more than twelve billion individual parts, used in a wide variety of embedded systems.

The PL/M programming language (an acronym of Programming Language for Microcomputers) is a high-level language conceived and developed by Gary Kildall in 1973 for Hank Smith at Intel for its microprocessors.

Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, commonly known as embedded systems. It is typically specialized for the particular hardware that it runs on and has time and memory constraints. This term is sometimes used interchangeably with firmware.

The Interactive Disassembler (IDA) is a disassembler for computer software which generates assembly language source code from machine-executable code. It supports a variety of executable formats for different processors and operating systems. It also can be used as a debugger for Windows PE, Mac OS X Mach-O, and Linux ELF executable. A decompiler plug-in for programs compiled with a C/C++ compiler is available at extra cost. The latest full version of IDA Pro is commercial; while an earlier and less capable version is available for download free of charge.

In software engineering, retargeting is an attribute of software development tools that have been specifically designed to generate code for more than one computing platform.

Zilog Z8

The Zilog Z8 is a microcontroller architecture, originally introduced in 1979, which today also includes the Z8 Encore!, eZ8 Encore!, eZ8 Encore! XP, and eZ8 Encore! MC families.

This is a list of assemblers: computer programs that translate assembly language source code into binary programs. Some assemblers are components of a compiler system for a high level language and may have limited or no usable functionality outside of the compiler system. Some assemblers are hosted on the target processor and operating system, while other assemblers (cross-assemblers) may run under an unrelated operating system or processor. For example, assemblers for embedded systems are not usually hosted on the target system since it would not have the storage and terminal I/O to permit entry of a program from a keyboard. An assembler may have a single target processor or may have options to support multiple processor types. Very simple assemblers may lack features, such as macros, present in more powerful versions.

Microchip Technology American company

Microchip Technology Inc. is an American publicly-listed corporation that is a manufacturer of microcontroller, mixed-signal, analog and Flash-IP integrated circuits. Its products include microcontrollers, Serial EEPROM devices, Serial SRAM devices, embedded security devices, radio frequency (RF) devices, thermal, power and battery management analog devices, as well as linear, interface and wireless solutions. Examples of these solutions include USB, zigbee, MiWi, LoRa, SIGFOX and Ethernet.

MPLAB is a proprietary freeware integrated development environment for the development of embedded applications on PIC and dsPIC microcontrollers, and is developed by Microchip Technology.

The DS80C390 is a microcontroller whose architecture is derived from that of the Intel 8051 processor series, introduced by Dallas Semiconductor. It features an increased code memory address space of twenty-two bits, as opposed to the sixteen bit space of the original 8051 processor. It also includes two Controller Area Network (CAN) controllers and a 32-bit integer coprocessor. The open-source Small Device C Compiler (SDCC) supports the processor. It was used in the initial version of the Tiny Internet Interface (TINI) processor module where it was superseded by the DS80C400, a processor that also incorporates an Ethernet port.

XC800 family 8-bit microcontroller family by Infineon

The Infineon XC800 family is an 8-bit microcontroller family, first introduced in 2005, with a dual cycle optimized 8051 "E-Warp" core. The XC800 family is divided into two categories, the A-Family for Automotive and the I-Family for Industrial and multi-market applications.


  1. Rainer Leupers, Peter Marwedel: "Retargetable Compiler Technology for Embedded Systems: Tools and Applications", page 126. Springer, 2001
  2. According to a Google search for: 8051 open source C compiler
  3. Lewin Edwards "Open-Source Robotics and Process Control Cookbook: Designing and Building Robust, Dependable Real-time Systems". 2011. p. 15.
  4. De-Shuang Huang, Phalguni Gupta, Xiang Zhang, Prashan Premaratne. "Emerging Intelligent Computing Technology and Applications". 2012. p. 383.
  5. SourceForge. "Usage Statistics For Small Device C Compiler" . Retrieved 2010-02-16.
  6. Padauk website.
  7. "SDCC - Small Device C Compiler" . Retrieved 2013-01-20.