A simple initial codes (a MCS51 keyboard and an AVR led samples) has been published here:
The first source codes release has been published here:
This is the first release of sdfirm.
1. USB: Though USB functionalities are completed, the usb_dev.c is not released
due to some license issues.
2. SCS: There are bugs in the ifd.c that might cause a contact chip card reader not working properly.
3. SCSI: scsi functions are completed for a MSD device.
4. Time: There is a plan adding interrupt context timers to meet some
protocol's realtime requirements. Though this has not been done in this revision, other functionalities may be enough for those without
5. DFU: Windows DFU driver is well completed. As bootloader facilities are
not implemented in the firmware, DFU mode is not functioning in the
firmware for this release.
6. MCS51: MCS51 is compiled using SDCC. The loader code is linked from SDCC
which might not be adequate for some boards.
7. AVR: AVR is compiled using GCC, with a full link script support.
8. ARM: ARM is compiled using GCC, with a full link script support.
9. toolchains: There are simple toolchain generation scripts attached in the arch specific script folder.
10.external packages: There are tow external projects' source code embedded in this release: libusb-win32, libnfc. You can find them in
the scripts/libusb, scripts/libnfc, scripts/usbstub folders.
Welcome to sdfirm by ELF!
The ELF (Embedded Linux Force) aims to bring embedded
developers embedded innovations. sdfirm is one of its projects.
The project sdfirm is abbrieviated for Small Device
It was started to build a firmware for a MCS51 chip (AT89C5122).
we call it sdfirm. In the next step, sdfirm was ported to AVR chips
(AT90USB1287 & AT90SCR100) with the gcc compiler support. Recently,
sdfirm has been ported to ARM Cortex-M3 chips (LM3S9B92) with EABI gcc
Unlike other small device firmware architecture (sdcc or avr-libc), sdfirm
does not require a libc to be linked. There is no complete multi-tasking
support in the firmware (though you could find one in the AVR architecture
support), but timing facilities are carefully implemented. Note that,
sdfirm is not a good software architecture for low power consumption, it
will busy polling interrupts with IRQs disabled to gain maximum realtime
capabilities, thus instructions like WAIT/IDLE would have no chance to be
executed. A good solution for power consumption is welcome. Any patches
are welcome to be posted in the developers mailing list.
Our mission is to add following features for this firmware, others are
left for you to extend:
This project is released under GPLv2. Sponsors and developers are welcome