A simple initial codes (a MCS51 keyboard and an AVR led samples) has been published here:
The latest source codes release has been published here:
The first source codes release has been published here:
This is the first stable release (v1.0.0) of sdfirm.
1. USB: Including full USB device protocol stack.
2. SCS: Including full ISO7816 protocol stack.
3. SCSI: Including full USB/MSD protocol stack.
4. HID: Including full USB/HID protocol stack and a keyboard report protocl stack.
5. Time: Including tickless and hard-realtime-tick support.
6. 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 also designed to be high idle residency firmware, thus is a very
good demonstration as a low power consumption implementation. In its task
context (foreground), only idle is executed, while every functionality is
executed in its IRQ context (background).
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