SDCC – Small Device C Compiler
sdcc.sourceforge.net
sdcc.sourceforge.net
Doesn't sounds like a bug in the compiler, sounds more like `volatile` was not used (unless, of course, `volatile` was not being honoured).
EDIT: but SDCC indeed ignored 'volatile': https://sourceforge.net/p/sdcc/bugs/436/
But I wrote non-trivial code with sdcc regardless. My favorite 8051 targets are FX2LP USB boards from aliexpress. :)
> two simulators used for testing, sim51 (a plain 8051) and minitel_sim
Narrator: No, he was not.
Whereas sdcc works brilliantly for z80 lineage processors. I wrote quite a lot of C for Gameboy recently and didn't find a single compiler bug in sdcc which revised my opinion of it upwards greatly.
PIC does still have a few key use-cases, but most people will hit the stack depth limits pretty quickly in C. A pic12 Assembly project is fun, but the limitations cut deep these days.
STM32/ESP32/RP2350 or nRF for low power stuff are far less effort these days, and give much better value. =3
If you need a DAC, Comparator, ADC, and a couple of logic gates, its hard to beat an AVR DD (4x arbitrary gates called CCL. 1x DAC. Differential SAC ADC. I believe 2x Comparators and multiple "internal DACs" so you don' have to spend your 1x external DAC on internal parts). Also 1.8V to 5.5V support, as well as dual-power supply support (PortC is run off a 2nd power supply, but all the logic is compatible. This means PortC can run at 5V while everything else runs at 1.8V, or vice versa, making the AVR DD also a built-in level shifter)
It is not about whether something is "crap", because they are all mostly "crap" at analog in different scenarios. Just some vendors have chosen not to polish their "turd" in Marketing. These days many DAC are part of a Class D amplifier, as battery life took priority over the noise floors. These have also become less "crap" over the years.
Best of luck =3
"Literally and completely nonexistant" is about as bad as you can get.
Like the reason to reach for a PIC or AVR these days is because of 4-20mA protocol or other such mixed-signal tasks. Read a current between 4-20mA (voltage A - voltage B, so you need a differential ADC) -> MCU -> Logic -> DAC -> controls OpAmp -> controls transistor (BJT or MOSFET) -> outputs a current 4-20mA.
-------
Of the three chips you described (STM32, RP2350, and ESP32), only some STM32 can do the jobs that PICs / AVRs are specialized in.
https://github.com/codaris/picovga-cmake
The sync'd DMA is so fast it also often replaces hard to find PROM chips with simple emulation (could pull this off in a fgpa for 10x the price too):
https://www.youtube.com/watch?v=GAh021jgGgs
Most of the ESP32 family includes a dedicated audio i2s interface bus, and doesn't drop out on interrupt like most mcu DAC naive polling offers. It also hits well over 16MHz SPI transfers with ease.
STM32 is in most volume equipment now for a reason. Microchip screwed everyone on long-term pricing, and clown priced themselves out of key markets.
Note, an inaccurate LLM-proxy reply makes people sound lazy. =3
By the time you add that SPI-DAC to your design, you've spent more than any TI (MSP430, MSP erm... whatever cortex-M0+ version was), AVR, STM32 or PIC MCU. There's a lot of chips designed to do this, and they're all on the SDCC compiler for a reason. That's where the niche has been carved out.
Look, I know a lot of people like RP2350 but there's a lot of jobs that chip is just wholly unsuited for.
> STM32 is in most volume equipment now for a reason. Microchip screwed everyone on long-term pricing, and clown priced themselves out of key markets.
AVR16DD14 is 68-cents on Digikey, Mouser, and direct-order from Microchip right now (qty 100 or more). If you need more analog power, the AVR*DB line is closer to $1.20 but comes with 2x or 3x OpAmps (AVR32DB28 I think was 2x OpAmps)
- TinyCC, SDCC, Musl and Cosmopolitan Libc
Reason is that I require a quick fast portable compiler with a decent runtime that can also be embedded into a larger runtime, like the way Bun does - while keeping runtime small and portable.
SDCC does not need the same amount of bloat - having decent small C runtime is a job in itself. Fixing it once could allow a better compiler that isn't quite as bloated as LLVM nor as small like TinyCC.
That gap isn't solved.
I have started to notice that programming with an LLM it seems to make little difference if I get it to write the entire program in assembly language rather than c.
Skipping past two projects that consist of repackaging existing projects, or a corporate project that I suspect uses SF only for distribution, the next large community project is CrystalDiskInfo, with a release earlier this summer.
Apache OpenOffice is still popular, but doesn't look particularly active.
Then we have KePass followed by Ventoy.
Even when they are active projects, and maybe not even all that old, they feel like they have a vintage feel to them. Part of me wonders if it is using SF that makes it feel that way, but when I look at the home pages for some of these projects that have their home page off SF, they still have that vintage/old school feel.
Love Silicon Prairie lore.