SDCC is primarily developed by unpaid volunteer work; though once in a
while there was some outside support, in particular by university
employees being allowed to work on SDCC a bit during paid time, and SDCC
developers receiving hardware samples from microcontroller vendors.
However, sometimes the limitations of this are felt. In particular when
I've had a few free hours to work on SDCC, started working on a feature
or bug, but was not able to finish the work during the time I had, or
simply was not able to even fully track down the cause of the bug. And
when it took a long time until I could work again on that feature or
bug, it took extra time or effort to get into it again. Sometimes I
would instead start work on another aspect of SDCC instead. Having
funding available for working on SDCC is IMO really helpful in these
situations - instead of having to stop work on SDCC to go back to other
paid work, I can just keep working on the feature or bug, since this
then is paid work.
SDCC developers have been applying for funding for SDCC projects, and we
are happy to announce that two important such applications succeeded
recently.
The NGI0 Commons Fund (https://nlnet.nl/commonsfund/) donates to improve
SDCC support for various target hardware, as well as implement
machine-independent improvements to make SDCC more competitive vs.
non-free compilers
(https://sourceforge.net/p/sdcc/wiki/NGI0-Commons-SDCC).
Hardware-specific improvements planned include improving support for
Padauk's popular low-cost microcontrollers, improving support for the
Rabbit microcontrollers common in older IoT devices, and improving
support for Toshiba TLCS microcontrollers. The focus for
machine-independent improvements will be in enhancing support for recent
ISO C standards, an optimization to reduce memory usage for local
variables, and implementing a link-time optimization to optimize out
unused functions and objects. The latter is the one feature
most-requested by SDCC users in recent years. This project in done
jointly by five SDCC developers.
The Sovereign Tech Fund (https://www.sovereign.tech/programs/fund)
comissioned work on improving SDCC for safety and security of embedded
firmware (https://sourceforge.net/p/sdcc/wiki/STF-SDCC). We will improve
support for aspects of modern C standards and dialects relevant to
safety and security, get SDCC ready for post-quantum cryptography, work
on mitigations for potential side-channel attacks and improve the
reliability of SDCC via extended testing also covering less-commonly
used command-line parameter combinations. This project is done by one
SDCC developer.
We can imagine all this coming together e.g. when writing firmware for
an IoT device based on an eZ80 or Rabbit 4000 SoC. The SDCC user writing
this firmware will benefit from the improved support for the target
architecture, modern C features for efficiency and convenience, general
high level optimizations (all part of the NGI0 Commons project), modern
C features relevant for safety and security, to help avoid bugs in the
user-written code, efficient side-channel-free code generated for modern
cryptography algorithms (all part of the STF project). And thanks to
improved testing and fixed compiler bugs, the firmware will compile and
work very reliably (depending on the details part of the STF or the NGI0
project).
Philipp
P.S.: See https://sourceforge.net/p/sdcc/wiki/Funding for a full list of
funded projects that involved SDCC.
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user