|
|
What is SDCC?
SDCC is a retargettable, optimizing ANSI - C compiler that
targets the Intel 8051, Maxim 80DS390, Zilog Z80
and the Motorola 68HC08 based MCUs.
Work is in progress on supporting the Microchip
PIC16 and PIC18 series. SDCC is Free Open Source Software, distributed under GNU General Public License (GPL).
Some of the features include:
- ASXXXX and ASLINK, a Freeware, retargettable
assembler and
linker.
- extensive MCU specific language extensions,
allowing effective use of the underlying hardware.
- a host of standard optimizations such as global
sub expression
elimination, loop optimizations (loop invariant, strength reduction of
induction
variables and loop reversing ), constant folding and
propagation,
copy propagation, dead code elimination and jump tables for 'switch'
statements.
- MCU specific optimizations, including a global
register allocator.
- adaptable MCU specific backend that should be well
suited for other 8
bit MCUs
- independent rule based peep hole optimizer.
- a full range of data types:
char (8 bits, 1 byte), short (16
bits, 2
bytes), int (16 bits, 2 bytes), long
(32 bit, 4
bytes)
and
float (4 byte IEEE).
- the ability to add inline assembler code anywhere in
a function.
- the ability to report on the complexity of a function
to help decide what
should be re-written in assembler.
- a good selection of automated regression tests.
SDCC
also comes with the source level debugger
SDCDB, using the current version of Daniel's s51 simulator.
SDCC was written by Sandeep Dutta
and released under a GPL
license. Since its
initial release there have been numerous bug fixes and improvements. As
of
December 1999, the code was moved to SourceForge where all the "users
turned
developers" can access the same source tree. SDCC is constantly being
updated
with all the users' and developers' input.
AVR
and gbz80
targets are no longer maintained.
News
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
What Platforms are Supported?
Linux - x86, Microsoft Windows - x86 and Mac OS X
are the primary, so called "officially supported" platforms.
SDCC compiles natively on Linux and Mac OS X
using using gcc. Windows release and snapshot builds are made by cross compiling to mingw32 on a Linux host.
Windows 9x/NT/2000/XP users are
recommended to use Cygwin (http://sources.redhat.com/cygwin/)
or may try the unsupported Borland C compiler or Microsoft Visual C++ build
scripts.
Downloading SDCC
See the Sourceforge
download page for the last released version including source
and binary packages for Linux - x86,
Microsoft Windows - x86 and Mac OS X.
SDCC is known to compile from the source code also on Linux - x86_64,
Linux - Alpha,
Linux - IBM Power5,
and SUN Solaris - Sparc.
SDCC is always under active development. Please consider
downloading one of the snapshot builds
if you have
run across a bug, or if the above release is more than two months old.
Debian packages (many thanks to Aurelien Jarno):
RPM packages (thanks to Mandrake, Conectiva and PLD
Linux
distributions):
The latest development source code can be accessed using
Subversion. The following will fetch the latest sources:
svn co https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc sdcc
... will create the sdcc directory in your current directory and place all
downloaded code there. You can browse the Subversion repository
here.
SourceForge has further documentation on accessing the Subversion repository
here.
Before reporting a bug, please check your SDCC version
and build
date using the -v option, and be sure to include the full version
string in
your bug report. For example:
sdcc/bin > sdcc -v
SDCC : mcs51/gbz80/z80/avr/ds390/pic14/TININative/xa51 2.3.8 (Feb 10
2004) (UNIX)
Support for SDCC
SDCC and the included support
packages come with fair amounts of documentation
and examples. When they aren't enough, you can find help in the
places listed below. Here is a short check list of tips to greatly
improve your
chances of obtaining a helpful response.
- Attach the code you are compiling with SDCC. It
should compile "out of the box". Snippets must compile and must include
any required header files, etc.
Incomplete information will hamper your chance of a timely response.
- Specify the exact command you use to run SDCC, or
attach your Makefile.
- Specify the SDCC version (type "sdcc -v"), your
platform and operating system.
- Provide an exact copy of any error message or
incorrect output.
Please attempt to include these 4 important
parts,
as applicable, in all requests
for support or when reporting any problems or bugs with SDCC. Though
this will make your
message lengthy, it will greatly improve your chance that SDCC users
and developers will
be able to help you. Some SDCC developers are frustrated by bug reports
without code
provided that they can use to reproduce and ultimately fix the problem,
so please be
sure to provide sample code if you are reporting a bug!
- Web
Page , you are (X) here.
- Mailing list: [use "BUG REPORTING" below if you
believe you have found a
bug.]
- Bug
Reporting - if you have a problem using SDCC, we need to
hear about it. Please attach code to reproduce the problem,
and be sure to provide your email address so a developer can contact
you if they need more information to investigate and fix the bug.
- Website/Documentation
Issues - Please report erroneous,
missing or outdated information
- SDCC
Message Forum - an account on Sourceforge is needed if you're
going to post and reply. Short
easy online fill-in the blanks.
- Open
Knowledge Web Site - Run by Thorsten Godau
Who is SDCC?
- Sandeep
Dutta <sandeep.AT.users.sourceforge.net>
- original author (SDCC's version of Torvalds)
- Jean
Loius-VERN <jlvern.AT.writeme.com> -
substantial improvement in the back-end code generation.
- Daniel
Drotos <drdani.AT.mazsola.iit.uni-miskolc.hu>
- Freeware simulator for 8051.
- Kevin
Vigor <kevin.AT.vigor.nu>
- numerous enhancements and bug fixes to the Dallas ds390 tree.
- Johan Knol
<johan.knol.AT.users.sourceforge.net>
- testing and patching ds390 tree, bug stompper extrodanaire
- Scott
Dattalo <scott.AT.dattalo.com> -
sdcc for Microchip PIC controller target
- Karl
Bongers <karl.AT.turbobit.com> - mcs51
support, winbin builds, and an occasional bug.
- Bernhard
Held <bernhard.AT.bernhardheld.de>
- snpshot builds and general housekeeping
- Frieder
Ferlemann <Frieder.Ferlemann.AT.web.de>
- contributions to the documentation and last stages of code generation
- Jesus
Calvino-Fraga <jesusc.AT.ece.ubc.ca>
- math functions, AOMF51, linker improvements
- Borut
Ražem <borut.razem.AT.siol.net>
- WIN32 MSC, cygwin and mingw ports, NSIS installer, preprocessor and front end
improvements, bug fixing, snapshot builds on Distibuted Compile Farm, ...
- Vangelis
Rokas <vrokas.AT.otenet.gr>
- PIC16 taget development for Microchip PIC18F microcontrollers
- Erik
Petrich <epetrich.AT.users.sourceforge.net>
- Bug fixes and improvements for the front end, 8051, z80 and hc08
- Dave
Helton <dave.AT.kd0yu.com>
- website design
- Paul
Stoffregen <paul.AT.pjrc.com> - mcs51
optimizations and website maintenance.
- Michael
Hope <michaelh.AT.juju.net.nz> - initial Z80
target, additional coding and bug fixes.
- Maarten
Brock <sourceforge.brock.AT.dse.nl> - several
bug fixes and improvements, esp. for mcs51 target
- Raphael
Neider <RNeider.AT.web.de> - bug fixes and
optimizations for PIC16, completion of the PIC14 target
- Philipp Klaus
Krause <pkk AT spth.de> - z80 and gbz80 bug fixes
and optimizations
SDCC has had help from a number of external sources,
including:
Past news
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.
Previous News
This site is hosted by  |

 |
Webmaster |
Last updated:
March 29, 2008 10:48:26. |
|