• Home
  • Download
  • Elettro::Wiki
  • Sitemap
  • Feedback

Elettrolinux

Categories

  • Acquire & Measure
  • Analyze & Visualize
  • Authoring
  • CAN - FlexRay - LIN
  • Hardware drivers
  • Home automation
  • IC Layout Editor
  • IDE
  • RTOS
  • SCADA - PLC
  • Scientific computation
  • Simulation
  • T-CAD/CAM - EDA
  • Utilities

Open Software Projects

  • Bio Conductor
  • CERN Libraries
  • My Open Bticino
  • Open Avionics
  • Open Bio Foundation
  • Open CASCADE
  • OpenCFD - OpenFOAM
  • OpenCores
  • Orocos Project
  • OSGeo
  • Player Project
  • R-Project
  • VLSI & ASIC Technology

Open HW/FW Projects

  • Baloon Project
  • FreeCores
  • LinuxBIOS
  • OpenBIOS
  • SquidBee
SDCC - A C compiler for embedded systems E-mail
Saturday, 31 July 2010 19:53
SDCC (Small Device C Compiler) is free open source, retargettable, optimizing ANSI-C compiler designed for 8 bit Microprocessors. The current version targets Intel MCS51 based Microprocessors (8031, 8032, 8051, 8052, etc.), Dallas DS80C390 variants, Freescale (formerly Motorola) HC08 and Zilog Z80 based MCUs. It can be retargeted for other microprocessors, support for Microchip PIC, Atmel AVR is under development. The entire source code for the compiler is distributed under GPL. SDCC uses a modified version of ASXXXX & ASLINK, free open source retargetable assembler and linker. SDCC has extensive language extensions suitable for utilizing various microcontrollers and underlying hardware effectively. In addition to the MCU specific optimizations SDCC also does a host of standard optimizations like:
  • Global sub expression elimination;
  • Loop optimizations (loop invariant, strength reduction of induction variables and loop reversing);
  • Constant folding & propagation;
  • Copy propagation;
  • Dead code elimination;
  • Jump tables for switch statements.
For the back-end SDCC uses a global register allocation scheme which should be well suited for other 8 bit MCUs. Supported data-types are: bool (1 bit), char (8 bits - 1 byte), short (16 bits - 2 bytes), int (16 bits - 2 bytes), long (32 bits - 4 bytes), float (4 bytes IEEE 754) and pointer (1, 2, 3 or 4 bytes). The compiler also allows inline assembler code to be embedded anywhere in a function. In addition, routines developed in assembly can also be called. But SDCC is not just a compiler, it's a collection of tools by various developers. These include linkers, assemblers, simulators and other components. SDCC grows to include support for other processors, here is a summary of some of the components:
  • sdcc: the compiler;
  • sdcpp: the C preprocessor;
  • sdas8051: the assembler for 8051 type processors;
  • sdasz80 and sdasgb: the Z80 and GameBoy Z80 assemblers;
  • sdas6808: the 6808 assembler;
  • sdld: the linker for 8051 type processors;
  • sdldz80 and sdldgb: the Z80 and GameBoy Z80 linkers;
  • sdld6808: the 6808 linker;
  • s51: the ucSim 8051 simulator;
  • sdcdb: the source debugger;
  • packihx: a tool to pack (compress) Intel hex file;
  • makebin: a tool to convert Intel Hex file to a binary and GameBoy binary image file format.
For more information about SDCC click here.
 

Font Size Changer

GNU/Linux distributions

  • Fedora Electronic Lab
  • GXSM DVD
  • OSADL
  • Physics
  • RTAI Knoppix 1.2
  • Scientific Linux
  • Slack RTAI
  • XtreemOS

Feed

  • LinuxDevices.com
  • LinuxToday.com
  • Linux-Watch.com
  • LWN.net
  • LXer.com
  • Unixmen

Top 100 Joomla

Clicca qui per votare
www.joomla.it

Polls

What is/are your interest section/s?
 
Powered by ElettroLinux. Copyright (c) 2007-2010 ElettroLinux. Based on template by Siteground. Hosted on Host Invent. Many thanks to LezioniOnLine.

valid xhtml valid css