By Forrest Cook
April 1, 2008
SDCC
is a multi-platform, multi-target C cross compiler that was
originally written by Sandeep Dutta and has been further improved by
a number of
other people:
SDCC is a retargetable, 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, retargetable 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.
The SDCC package
components include the sdcc compiler, the sdcpp C preprocessor,
assemblers and linkers for the supported target processors,
a simulator for the 8051 processor, the sdcdb source debugger
and the packihx Intel hex file packing tool.
Version 2.8.0 of SDCC was
announced
on March 30, 2008, it includes the following changes:
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.
Your author
downloaded SDCC 2.8.0 as a .tar.bz2 file onto a machine running
Ubuntu 7.04 "Feisty Fawn".
The file was uncompressed, and untared. The configure script
was run and one package dependency issue was resolved by installing
flex.
The second run of configure worked, as did the make
and make install steps.
Running sdcc -v produced the expected result:
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.8.0 #5117 (Apr 1 2008) (UNIX).
A few
test cases were compiled and assembled using the default MCS51 target,
then using the -mz80 switch to produce output for a
Z80 processor. All of the tests seemed to work, and produced
readable Intel Hex files that appear to be suitable for movement
to a development platform. Your author recognized
the hex C30001 at the beginning of the code as a Z80 jump instruction,
activate the wayback machine.
This may be a long way from developing a working embedded application
on real hardware using SDCC, it does show that the system builds
and is stable enough to consider using as a development platform.
The Z80
and mcs51
microprocessors have been around since the
late 1970s, newer versions are still being produced.
The Microchip
PIC microcontroller family and the Atmel
AVR
family are currently very popular microcontroller platforms.
The AVR is the processor used in the recently
featured Arduino
open hardware microprocessor design, although that uses a
different development system.
SDCC allows microprocessor applications to be written in C,
and that greatly expands the range of problems that can be
solved by small embedded machines. The field of C cross-compilers
has traditionally been dominated by proprietary Windows-based
software. SDCC allows one to develop embedded microprocessor
designs using open-source software under Linux.
Comments (9 posted)
System Applications
Backup Software
Version 0.03 of GPB has been
announced.
"
GPB can be a ready to use out of the box backup solution or it can be the foundation for you to build and improve upon. The core and the power of GPB lies in the use of Bash scripting.
I just released version 0.03 of the GPB backup software. This version is a cleanup of the 0.02 code."
Comments (none posted)
Database Software
The March 30, 2008, 2008 edition of the Postgres Weekly News
is online with the latest PostgreSQL DBMS articles and resources.
Full Story (comments: none)
Interoperability
Version 4.0.0alpha3 of Samba has been announced.
"
Samba 4 is the ambitious next version of the Samba suite that is being
developed in parallel to the stable 3.0 series. The main emphasis in
this branch is support for the Active Directory logon protocols used
by Windows 2000 and above.
Samba 4 is currently not yet in a state where it is usable in
production environments."
Full Story (comments: none)
Mail Software
Version 0.69 of libdomainkeys has been
announced.
The software is:
"
A general purpose set of tools, C library and CPAN modules to help DomainKeys developers. The goal is that these tools and library can be easily adopted by all MTAs, LDAs and possibly MUAs. This project is about conforming to the DomainKeys standard, Here is a maintenance release. Nothing major, just some old patches that were sent in and a fix for a policy bug."
Comments (none posted)
Networking Tools
Version 3.1.5 of PowerDNS Recursor has been announced.
"
We would like to thank Amit Klein of Trusteer for bringing a serious
vulnerability to our attention which would enable a smart attacker to
'spoof' previous versions of the PowerDNS Recursor into accepting possibly
mal[]icious data.
Details can be found on
http://www.trusteer.com/docs/powerdnsrecursor.html.
It is recommended that all users of the PowerDNS Recursor upgrade to 3.1.5
as soon as practicable, while we simultaneously note that busy servers are
less susceptible to the attack, but not immune."
Full Story (comments: none)
Version 8.0 of the Twisted networking framework
has been released by Twisted Matrix Laboratories.
"
Twisted 8.0 is a major feature release, with several new features and
a great number of bug fixes. Some of the highlights follow.
- The IOCP reactor is now much improved and many bugs have been resolved.
- Twisted is now easy_installable.
- Many improvements were made to Trial, Twisted's unit testing system.
- A new memcache client protocol implementation was added.
- So much more!"
Full Story (comments: none)
Security
Version 4.9 of OpenSSH has been announced, it includes a number of new features, bug fixes and the following security fix:
"
Disable execution of ~/.ssh/rc for sessions where a command has been
forced by the sshd_config ForceCommand directive. Users who had
write access to this file could use it to execute abritrary commands.
This behaviour was documented, but was an unsafe default and an extra
hassle for administrators."
Full Story (comments: none)
Desktop Applications
Audio Applications
Version 2.4 of Ardour, a multi-track audio workstation,
has been
announced.
"
Well, its over a month later than expected, but Ardour 2.4 is finally released. Right now, there is a source tarball and an Intel native version (details on IRC). A respectable list of new features, many small improvements and an important set of bug fixes make up the news for this one. "
Comments (none posted)
Desktop Environments
Version 0.7 of xmonad has been announced, this release includes improved
GNOME support and more.
"
xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising
screen use. Window manager features are accessible from the keyboard: a
mouse is optional. xmonad is extensible in Haskell, allowing for
powerful customisation. Custom layout algorithms, key bindings and other
extensions may be written by the user in config files. Layouts are
applied dynamically, and different layouts may be used on each
workspace. Xinerama is fully supported, allowing windows to be tiled on
several physical screens."
Full Story (comments: none)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
KDE 4.0.3 is out. This is primarily a maintenance release, but a number of
improvements and optimizations have been folded in as well. See
the
changelog for details.
Full Story (comments: 8)
KDE.News
looks at what's happening with Digikam. "
There are many improvements including a cleaner user interface, improved
performance, a new thumbnail bar, XMP support, ability to run on Mac OS X,
GPS tagging using Google Maps, multiple album collections supporting
collections on network shares and removable media, and auto gamma and white
balance with RAW. Digikam is also the first open source photography tool with
16-bit colour depth support." Lots of screenshots included.
Comments (none posted)
KDE Software Announcements
The following new KDE software has been announced this week:
You can find more new KDE software releases at
kde-apps.org.
Comments (none posted)
The following new Xorg software has been announced this week:
More information can be found on the
X.Org Foundation wiki.
Comments (none posted)
Desktop Publishing
Inkscape 0.46 is available; this release has a long list of new features,
many of which were apparently developed by 2007 Google Summer of Code
participants. "
Inkscape can now directly import vector PDF files,
and PDF export is greatly
improved. Thus, Inkscape 0.46 provides an easy, open source tool for editing
and creating PDF documents."
Full Story (comments: 1)
Electronics
Version 0.0.2 of the gEDA Binary Suite, a collection of electronic design
tools, has been
announced.
"
I am pleased to announce the second official release (v0.0.2) of the gEDA
Binary Suite for x86 GNU/Linux. I fixed some reported installation issues
(thanks for all the reports) and I have linked this release on the gEDA
download page."
Comments (none posted)
Encryption Software
Version 1.4.9 of the GnuPG encryption package has been announced,
it features a fix for a possible security vulnerability that was introduced
in version 1.4.8.
"
Note that this version is from the GnuPG-1 series and thus smaller
than those from the GnuPG-2 series, easier to build and also better
portable. In contrast to GnuPG-2 (e.g version 2.0.8) it comes with no
support for S/MIME or other tools useful for desktop environments.
Fortunately you may install both versions alongside on the same system
without any conflict."
Full Story (comments: none)
Instant Messaging
KDE.News
covers
a recent sprint that was aimed at improving the Akonadi PIM
framework.
"
Last weekend a group of developers gathered in Berlin at the KDAB office for an Akonadi sprint. The goal was simple, getting Akonadi in shape for the first public release of Akonadi when KDE 4.1 is released. In the couple of days they met, they made an amazing amount of 270 modifications to the KDE repository, and worked on average from 10am to 3am to make a big step into reaching that goal."
Comments (none posted)
Mapping Software
Version 0.5 beta of eWorld has been
announced.
"
eWorld is a framework to import mapping data from providers, such as OpenStreetMap.org (OSM), visualize it, edit and enrich it with events or annotational attributes and pass it to traffic simulators, such as SUMO or VanetMobiSim.
The old eWorld team is proud to announce its last release: 0.5 beta. Many bugs were fixed and eWorld has a new, shiny visualizer interface to be used from other applications."
Comments (none posted)
Music Applications
Version 5.08 of
Csound,
a music synthesis system, has been announced.
"
The Csound team are pleased to announce that v5.08 finally made it to
the download site. Largely a bug-fixing release, it does include an(other)
internationalisation scheme, together with new opcodes, better line
number tracking and the usual gratuitous changes."
Full Story (comments: none)
Office Suites
AbiWord 2.6.0 is out. See
the release notes for a long list of new features, including wider language support, Gnumeric integration, collaborative real-time editing and, inevitably, an OOXML import filter.
Comments (4 posted)
OpenOffice.org 2.4 is out. "
Users will appreciate changes such as usability improvements in
printing, and further enhancements to PDF handling (OpenOffice.org
creates PDF files 'out of the box' to ISO standard). The default font is
now DejaVu, which supports more languages/localisations than the
previous BitStream Vera -part of a raft of localisation improvements
covering languages from Hiligaynon to Quechua." See the
announcement for more details on new features and improvements.
Full Story (comments: 34)
The March, 2008 edition of the OpenOffice.org Newsletter
is out with the latest OO.o office suite articles and events.
Full Story (comments: none)
Web Browsers
MozillaZine has
announced the release of Mozilla Firefox 3 Beta 5.
"
Mozilla Firefox 3 Beta 5 has been released for testing. The fifth beta of the next major Firefox version offers over 750 bug fixes over Beta 4, including improvements in user interface, location bar autocomplete, bookmark backup and restore, full page zoom and other new features based upon user feedback."
Comments (none posted)
Languages and Tools
BASIC
Version 0.18.4b of FreeBASIC, an open-source 32-bit compiler with
MS-QuickBASIC syntax, has been
announced. Changes include:
"
new fblite dialect, restructured installation on Linux (/usr/local),
improved QB compatibility, bug fixes, bug fixes, bug fixes."
Comments (1 posted)
C
The March 31, 2008 GCC 4.2.4 Status Report has been published.
"
The GCC 4.2 branch is open for commits under normal release branch
rules. All fixes going on that branch should first have gone on trunk
and 4.3 branch.
GCC 4.2.4 was due around 2008-04-02, which we will miss by at least
a week. No release manager did yet volunteer to handle this release."
Full Story (comments: none)
The GCC 4.3.1 Status Report for March 31, 2008 has been published.
"
GCC 4.3.1 is due around 2008-05-05. If a workaround for the
x86 direction flag issue is agreed and committed then 4.3.1-rc1
may come around a week after such a workaround is committed to the
branch, with the release following about a week later subject to no
problems requiring 4.3.1-rc2 to be built."
Full Story (comments: none)
Caml
The April 1, 2008 edition of the Caml Weekly News
is out with new articles about the Caml language.
Full Story (comments: none)
Perl
The March 16-22, 2008 edition of
This Week on perl5-porters is out with the latest Perl 5 news.
has been published.
Comments (none posted)
Python
Version 0.8.0 of CodeInvestigator is out with a change to the
directory setting screen.
"
CodeInvestigator is a tracing tool for Python programs.
Running a program through CodeInvestigator creates a recording.
Program flow, function calls, variable values and conditions are all
stored for every line the program executes.
The recording is then viewed with an interface consisting of the
code. The code can be clicked: A clicked variable displays its value,
a clicked loop displays its iterations."
Full Story (comments: none)
Tcl/Tk
The March 29, 2008 edition of the Tcl-URL! is online with new
Tcl/Tk articles and resources.
Full Story (comments: none)
Build Tools
Version 2.6.0 Beta CMake of has been
announced.
"
Please try this version of CMake on your projects and report any issues
to the list or the bug tracker ( I have added a CMake-2-6 version ).
The biggest change by far is the new new cmake policies."
(Thanks to Alexander Neundorf).
Comments (none posted)
Editors
Version 22.2 of GNU Emacs has been
announced.
"
Emacs version 22 has a wide variety of new features, including GTK+ toolkit support, enhanced mouse support, a new keyboard macro system, improved Unicode support, and drag-and-drop operation on X, plus many new modes and packages including a graphical user interface to GDB, Python mode, the mathematical tool Calc, and the remote file editing system Tramp."
Full Story (comments: 1)
Version Control
Version 1.5.4.5 of the GIT distributed version control system
has been announced.
"
Among many fixes, a notable one is a regression we introduced in 1.5.4
that changed the behaviour of "git fetch there" when you have the URL
information for "there" in .git/branches/there. Such a fetch should have
updated your local branch "there", but 1.5.4 and later didn't. This
should fix the breakage."
Full Story (comments: none)
Miscellaneous
Kernel hacker Rusty Russell has
some thoughts on how to make APIs hard to misuse. The idea is that in addition to making APIs easier to use, that they also be made
hard to misuse. "
So I've created a 'best' to 'worst' list: my hope is that by putting 'hard to misuse' on one axis in our mental graphs, we can at least make informed decisions about tradeoffs like 'hard to misuse' vs 'optimal'."
Comments (29 posted)
Page editor: Forrest Cook
Next page: Linux in the news>>