SDCC - Small Device C Compiler

Previous NEWS

May 20th, 2013: Small Device C Compiler 3.3.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, HC08 and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 and x64 MS Windows and x86 and PPC Mac OS X are available.

SDCC 3.3.0 Feature List:

  • Many small improvements in code generation for the z80-related ports - merged smallopts branch
  • lospre (currently enabled for z80-related and hc08-related ports only) - merged lospre branch
  • More efficient initialization of globals in z80, z180, r2k and r3ka ports.
  • Inclusion of tests from the gcc test suite into the sdcc regression test suite led to many bugs being found and fixed.
  • Split sdas390 from sdas8051
  • Merged big parts of ASxxxx v5 into sdas
  • New pic devices (synchronization with MPLABX 1.60). (Except for very old MCU-s.)
  • New script which disassembles those hex files, in which MCS51 code there is. (mcs51-disasm.pl)
  • Added the PIC16F1788 and PIC16F1789 devices.
  • C11 _Alignof operator.
  • C11 _Alignas alignment specifier.
  • C11 _Static_Assert static assertion.

Numerous feature requests and bug fixes are included as well.

You can download the release from:
https://sourceforge.net/projects/sdcc/files/

May 12th, 2013: SDCC 3.3.0 RC3 released.

SDCC 3.3.0 Release Candidate 3 source, doc and binary packages for x86 Linux, 32 bit Windows, 64 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

May 11th, 2013: SDCC 3.3.0 RC2 released.

SDCC 3.3.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows, 64 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

May 5th, 2013: SDCC 3.3.0 RC1 released.

SDCC 3.3.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

July 9th, 2012: Small Device C Compiler 3.2.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, Z180, Rabbit 2000, HC08 and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.

SDCC 3.2.0 Feature List:

  • Named address spaces with optimal placement of bank selection calls.
  • _Noreturn.
  • --std-c11 command line option for ISO C11.
  • ucsim support for the LR35902 (gameboy CPU).
  • The gbz80 port is alive again, there were many bug fixes and the generated code is much better now.
  • Pic 14 enhanced core libraries are included in sdcc builds by default
  • Added pic 14 enhanced core devices: 16f1503, 16f1508, 16f1509, 16f1516, 16f1517, 16f1518, 16f1519, 16f1526, 16f1527, 16f1946, 16f1947
  • PIC14/PIC16: Implemented __critical; PIC14 __critical function cannot have arguments for now, though
  • inclusion of some tests from the gcc test suite into the sdcc regression test suite led to many bugs being found and fixed.
  • Many macros with previously non-standard-compliant names have been renamed (SDCC_REVISION to __SDCC_REVISION, etc).
  • setjmp() / longjmp() for the z180 and r2k ports.
  • Added sdar archive managing utility. sdar and sdranlib are derived from GNU binutils package
  • Added support for pic 14 core devices: 16f720, 16f721, 16f882, 16f883, 16f884, 16f747, 16f946
  • sdcpp synchronized with GNU cpp 4.6.3
  • Added support for pic 18f1230/18f1330 device family
  • Implemented #pragma config for pic16 target
  • sdcc now works on Debian GNU/Hurd.
  • New register allocator for the hc08 port, resulting in better code being generated.
  • New s08 port.
  • New r3ka port.
  • Many small improvements in the z80, hc08 and r2k code generation, reducing code size.
  • Shift, multiplication, division and returning of long long are now supported (modulo for long long is still missing, integer literals of type long long are broken).

Numerous feature requests and bug fixes are included as well.

You can download the release from:
https://sourceforge.net/projects/sdcc/files/

July 6th, 2012: SDCC 3.2.0 RC4 released.

SDCC 3.2.0 Release Candidate 4 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

June 29th, 2012: SDCC 3.2.0 RC3 released.

SDCC 3.2.0 Release Candidate 3 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

June 24th, 2012: SDCC 3.2.0 RC2 released.

SDCC 3.2.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

June 16th, 2012: SDCC 3.2.0 RC1 released.

SDCC 3.2.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available in corresponding folders at: http://sourceforge.net/projects/sdcc/files/.

November 27th, 2011: Small Device C Compiler 3.1.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and universal Mac OS X are available.

SDCC 3.1.0 Feature List:

  • include/pic, non-free/include/pic, lib/pic, non-free/lib/pic renamed to */pic14
  • implemented --fomit-frame-pointer for mcs51
  • support for use of sdcc in z88dk (--reserve-regs-iy and --no-optsdcc-in-asm options; smallc calling convention)
  • new register allocator in the z80 and gbz80 ports (optimal when using --opt-code-size and a sufficiently high value for --max-allocs-per-node for the z80 port)
  • C99 designated initializers
  • added strxfrm() and strcoll() functions; strerror() is the only string handling function still missing
  • added support for pic18f2xk22/pic18f4xk22 family (requires gputils > 0.14.0 and --enable-new-pics configure flag)
  • added support for enhanced core pic14 devices (requires gputils > 0.14.0 and --enable-new-pics configure flag)
  • setjmp() / longjmp() for the z80 port
  • _Bool / bool for the hc08, pic16 and pic14 ports
  • sdcpp synchronized with GNU cpp 4.6.1
  • z180 port
  • very basic (no integer constants, multiplication, division, shifts or use as return value) support for data types long long, unsigned long long, int_fast64_t, int_least64_t, int64_t, uint_fast64_t, uint_least64_t, uint64_t in the z80, z180, r2k and gbz80 ports
  • r2k port for the Rabbit 2000 and Rabbit 3000

Numerous feature requests and bug fixes are included as well.

You can download the release from:
http://sourceforge.net/projects/sdcc/files/


November 22nd, 2011: SDCC 3.1.0 RC3 released.

SDCC 3.1.0 Release Candidate 3 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sourceforge.net/projects/sdcc/files/snapshot_builds/sdcc-3.1.0-rc3.


November 18th, 2011: SDCC 3.1.0 RC2 released.

SDCC 3.1.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sourceforge.net/projects/sdcc/files/snapshot_builds/sdcc-3.1.0-rc2.


November 6th, 2011: SDCC 3.1.0 RC1 released.

SDCC 3.1.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sourceforge.net/projects/sdcc/files/snapshot_builds/sdcc-3.1.0-rc1.


November 1st, 2010: Small Device C Compiler 3.0.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and universal Mac OS X are available.

SDCC 3.0.0 Feature List:

  • sdcpp synchronized with GNU cpp 4.5.0
  • changed z80 and gb targets object file extension to .rel
  • special sdcc keywords which are not preceded by a double underscore are deprecated in sdcc version 3.0.0 and higher. See section ANSI-Compliance in sdccman
  • xa51 and avr targets are disabled by default in sdcc version 3.0.0 and higher
  • introduced new memory model huge for mcs51 to use bankswitching for all functions
  • removed generation of GameBoy binary image file format, rrgb map file format and no$gmb sym file format from sdld linker. Utility makebin generates GameBoy binary image file format, utility as2gbmap utility converts sdas map file to rrgb map and no$gmb sym file formas.
  • implemented __builtin_offsetof
  • asxxxx / aslink renamed to sdas / sdld and synchronized with ASXXXX V2.0
  • majority of sdcc run time library released under GPL+LE license (see http://sourceforge.net/apps/trac/sdcc/wiki/Files%20and%20Licenses)
  • introduced --use-non-free command line option
  • non free (non GPL compatible) header and library files moved to non-free directory
  • deprecated --no-pack-iram command line option

Numerous feature requests and bug fixes are included as well.

You can download the release from:
http://sourceforge.net/projects/sdcc/files/


October 22nd, 2010: SDCC 3.0.0 RC2 released.

SDCC 3.0.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sourceforge.net/projects/sdcc/files/snapshot_builds/sdcc-3.0.0-rc2.


October 10th, 2010: SDCC 3.0.0 RC1 released.

SDCC 3.0.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sourceforge.net/projects/sdcc/files/snapshot_builds/sdcc-3.0.0-rc1.


March 22th, 2009: Small Device C Compiler 2.9.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and universal Mac OS X are available.

SDCC 2.9.0 Feature List:

  • sdcpp synchronized with GNU cpp 4.3.3
  • Integer constants written in binary (prefix 0b or 0B, followed by a sequence of 0 and 1digits) are now supported as a SDCC extension.
  • pic16 *printf() library functions return int
  • disabled support of undocumented and not standard compliant 'b' binary format specifier ("%b", "%hb" and "%lb") in pic16 *printf() and printf_tiny() library functions
  • fixed initialization of unnamed bitfields members of objects of structure and union type
  • many optimizations to reduce code size and increase speed in the Z80 backend
  • added support for ar format libraries to adcc asxxxx
  • libraries, included in sdcc packages, are in ar format
  • sdcc asxxxx license changed to GPLv3
  • added support for many PIC16 devices

Numerous feature requests and bug fixes are included as well.

You can download the release from:
http://sourceforge.net/project/showfiles.php?group_id=599


March 15th, 2009: SDCC 2.9.0 RC2 released.

SDCC 2.9.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sdcc.sourceforge.net/snap.php.


March 1st, 2009: SDCC 2.9.0 RC1 released.

SDCC 2.9.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sdcc.sourceforge.net/snap.php.


March 30th, 2008: Small Device C Compiler 2.8.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and universal Mac OS X are available.

SDCC 2.8.0 Feature List:

  • added predefined preprocessor macro SDCC_REVISION holding SDCC's subversion revision number
  • added preprocessor macros SDCC_PARMS_IN_BANK1, SDCC_FLOAT_REENT and SDCC_INT_LONG_REENT
  • sdcpp synchronized with GNU cpp 4.2.3
  • multiple infiles for sdcclib
  • added option --acall-ajmp: replaces lcall/ljmp with acall/ajmp
  • added support for many PIC devices
  • sdcc executables on Mac OS X are built as universal binaries, so that they can run on both ppc and i386 Mac OS X
  • added --Werror command line option
  • Windows installer enhancements
  • generation of cdb debug info for as-z80 and link-z80
  • generation of cdb debug info for variables in pdata for mcs51
  • Tail call optimization for functions that take no parameters on Z80
  • Improved multiplication of unsigned chars on Z80
  • ISO/IEC 9899 standard compliant integer promotion of integer function arguments if --std-cXX is defined in command line

Numerous feature requests and bug fixes are included as well.

You can download the release from:
http://sourceforge.net/project/showfiles.php?group_id=599


March 23th, 2008: SDCC 2.8.0 RC2 released.

SDCC 2.8.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.8.0-rc2 and http://sdcc.sourceforge.net/snap.php.


March 9th, 2008: SDCC 2.8.0 RC1 released.

SDCC 2.8.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and universal Mac OS X are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.8.0-rc1 and http://sdcc.sourceforge.net/snap.php.


May 31st, 2007: Small Device C Compiler 2.7.0 released.

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, HC08, and PIC microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 MS Windows and PPC Mac OS X are available.


May 26th, 2007: SDCC 2.7.0 RC3 released.

SDCC 2.7.0 Release Candidate 3 source, doc and binary packages for x86 Linux, 32 bit Windows and ppc Mac OS X are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.7.0-rc3 and http://sdcc.sourceforge.net/snap.php.


May 22nd, 2007: SDCC 2.7.0 RC2 released.

SDCC 2.7.0 Release Candidate 2 source, doc and binary packages for x86 Linux, 32 bit Windows and ppc Mac OS X are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.7.0-rc2 and http://sdcc.sourceforge.net/snap.php.


May 21st, 2007: Circuit Cellar made the Sandeep's article "Anatomy of a Compiler A Retargetable ANSI-C Compiler" publically available

Sandeep's article "Anatomy of a Compiler A Retargetable ANSI-C Compiler", published in Circuit Cellar, issue 121, is now publicly available at: http://www.circuitcellar.com/SA/Articles2/Dutta-121.pdf.


May 10th, 2007: SDCC 2.7.0 RC1 released.

SDCC 2.7.0 Release Candidate 1 source, doc and binary packages for x86 Linux, 32 bit Windows and ppc Mac OS X are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.7.0-rc1 and http://sdcc.sourceforge.net/snap.php.


July 31th, 2006: Small Device C Compiler 2.6.0 released

A new release of SDCC, the portable optimizing compiler for 8051, DS390, Z80, PIC, and HC08 microprocessors is now available (http://sdcc.sourceforge.net). Sources, documentation and binaries compiled for x86 Linux, x86 Microsoft Windows and PPC Mac OS X are available.

This release improves the compiler's conformance to the C standard. Significant progress was also made on the PIC (both 14- and 16-bit) backends. For the 8051 SDCC has seen the addition of a new memory model, code banking and bit variables. Numerous feature requests and bug fixes are included as well.

Since 2.5.0 the ChangeLog has grown by more than 3000 lines so all changes are simply too numerous to name.

You can download the this release from:
http://sourceforge.net/project/showfiles.php?group_id=599


July 28th, 2006: SDCC 2.6.0 RC2 released.

SDCC 2.6.0 Release Candidate 2 packages for x86 Linux, 32 bit Windows, ppc MacOSX and doc packages are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.6.0-rc1 and http://sdcc.sourceforge.net/snap.php.


July 12th, 2006: SDCC 2.6.0 RC1 released.

SDCC 2.6.0 Release Candidate 1 packages for x86 Linux, 32 bit Windows, ppc MacOSX and doc packages are available at: http://sdcc.sourceforge.net/snapshots/sdcc-2.6.0-rc1 and http://sdcc.sourceforge.net/snap.php.


April 19th, 2006: SDCC migrated from CVS to Subversion version control system.


May 12th, 2005: SDCC 2.5.0 released.

Source code and binaries Microsoft Windows and Linux are available from the Sourceforge download page.


February 26th, 2004 - SDCC 2.4.0 released

Source code and binaries for Mac OS X, Microsoft Windows, and Linux are available from the Sourceforge download page. SDCC has been tested on Mandrake 9.2, Windows 98, and Mac OS X with the gcc 3.3 update.


September 29, 2001 - Version 2.3.0 released

Version 2.3.0 is now available. This is the first official release in some time, and includes many bug fixes and significantly improved Z80 support.


July 11, 2001 - Winbin updates

Recently, Karl Bongers has put together a beta for win32 using pre-built cygwin and Borland bins. You can download it here. Remember this is a beta build and will change from time to time. Updates will be posted in the Download section as they become available. There will be a link in the Download section for this and all future builds. Please *DO NOT* email Karl directly with problems. Any questions or fixes you have can be directed to the mailing list, see the link in the Support section below.

If you run a win32 box I recommend installing Karl's build, if only for the ease of install. If you are a native Linux user, use the CVS tree. Completely remove the old source dir and do a fresh checkout.

As always, there is lots going on in CVS. There are a LOT of changes to the documentation. This has been and always will be a short side of OSS, SDCC included. The developers have added a lot of new command line switches and made changes to the old ones. The mcs51 header files have been removed and replaced with a common one. RTFM and then ask questions. The Z80 port has been updated as well. Scott has fallen off the face of the earth and has not been heard from for a while ;-) We'll hear of his adventures when he returns. Meanwhile the PIC port has remained static. Michael has been working on an automated build for SDCC. If you download the source files, this should help tremendously.

There are a few bugs left that are keeping the developers from releasing v2.2.2. This has been said now for a long time now. You just can't rush quality ;-) An official release should happen in the next few months.

Special thanks to Johan Knol for keeping the ball rolling while everyone is working their paying jobs.


April 24, 2001 - Notes

There has been a lot of updates to v2.2.2 CVS lately. v2.2.1 is comparatively old and we recommend you download a binary build from the OKR or update your sources from CVS. Mitja Kukovec has sent the mailing list some short instructions on installing Cygwin on a Win32 box, the link to the text is in the SUPPORT section.


February 20, 2001 - Pic Port

Scott has been making great strides on the pic port. There are a lot of issues with bringing his work into other branches of SDCC, so you will not see all of the features of his port in the avr and mcs51 trees. Scott has been working on generating intermediate 'pcode' that will be used for code optimizations and linker features. This is a major step and there are bound to be problems... on the cutting edge you might get cut every once in a while. This has not been implemented in any of the other trees, but if he pulls this off, you will see better and more flexible code come out of SDCC. We think it's just a matter of time ;-) Tip-o-the-hat to Scott.

Sandeep's daytime job keeps him from doing as much as he would like, but he pops in from time to time with fixes and other contributions. Everyone involved with the project has been very active lately, we are a lot closer to an official 2.2.2 release. As always, the above can be had from cvs. It would be a good idea to do a fresh check-out from cvs rather than an update as a LOT of things have changed. Binary builds from recent cvs sources can be downloaded from the OKR .


January 25, 2001 -- SDCC v2.2.2 is still in CVS

Due to numerous additions to SDCC to support the Dallas DS'390, Version 2.2.2 has been delayed until more bugs are squashed. Kevin and Johan are working on them all the time ;-) Lots of help from the user and development mailing lists too.

Some (if not all) of SDCC users will be glad to know that Scott Dattalo has been porting SDCC to the 14bit versions of the Microchip PIC controller. His port is still in its early stages and needs a lot of work but it does compile programs. His code has been committed to cvs on sourceforge and is included when you update your cvs directories.


SDCC v2.2.1 is out!!! Check it out in the download section

This is a milestone release for the development group.
New stuff includes:

  • bug fixes (always bug fixes)
  • better support for the Dallas '390, flat memory model is a lot better than before, not perfect.
  • changes to the assembler
  • better documentation
  • faster compile times
  • and more...

There are more new command line switches to SDCC.. PAY ATTENTION! Read the documentation!

There have been additions to the SDCC developer team, we would like to welcome

Kevin Vigor and Johan Knol
And now... Scott Dattalo


V2.2.1 is in CVS

(Sept 17,2000) The latest version SDCC is in CVS at the moment. Michael Schmitt has been making releases and posting them to the supporting web sites, specifically the OKR . As always... the most recent source code is here on Sourceforge. A lot of work is going into the flat 24bit model and the Dallas '390 processor by Kevin Vigor. Kevin has been committing updates and fixes almost on a daily basis. '390 support is looking good. As soon as all the "known" bugs have been squashed, a release will be posted here in the download section.

If you are using SDCC on a win32/Cygwin platform, be aware you will also need 'binutils' from the CVS tree.
Once logged into CVS do: cvs -z3 co binutils-avr

Some users are experiencing problems with win32/Cygwin logging into cvs. Compatibility issues on Cygwin and win32 versions of cvs will be posted soon. I will be contacting Cygnus to see if we can post the known working version of Cygwin here on Sourceforge.

AVR support is continuing. Sandeep expects a usable build sometime before the end of October.


V2.2.0 is now released.

(Feb 27,2000) SDCC v2.2.0 is coming soon. As of February 27, 2000, work on v2.2.0 is moving along but there are still a few compile problems to be worked out. This will be a big step in the development of SDCC as it will now support the Z80 with support for the Atmel AVR right behind it. The next few 2.x releases will be mostly bug fixes (if there are any ;-) and speed improvements.

SDCC now has limited support for the Dallas DS80C390 microprocessor using the --model-flat24 option. This is a processor from Dallas Semiconductor which starts up in 8051 code compatible mode, but has a new mode which allows direct, non-paging use of up to 4 megabytes of code and data space.The TINI board from Dallas uses this processor and includes 512kbytes flash, ram + Ethernet on a small simm stick board for $50.00. See http://www.ibutton.com TINI for details.

As of the first week in April, Systronics is now shipping backorders for the STEP, STEP+, and the TINI. (Dallas must be selling a ton of the TINI's. I have one of the STEP+TINI kits and love it... I just finished getting an http server up and running on it)

Previous Versions

Released March 27, 2000

Released January 20, 2000

All are gzipped tar archives.


This site is hosted by SourceForge.net Logo Valid XHTML 1.0 Transitional
Valid CSS!

Webmaster

Last updated:
April 12, 2014 09:30:51.