3 ms·
SDCC – Small Device C Compiler
- jrmg 7d agoI wonder if this is the most active (or last?...) still-under-development project on SourceForge?
- khrbtxyz 7d agoThere are probably several other projects. I remember coming across OpenOCD recently https://openocd.org/pages/repos.html https://openocd.org/pages/repos.html
- jdboyd 7d agoqBittorrent is still on SF and seems to be more popular in terms of downloads over the prior week, and also looks after with a release earlier this month. 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.
- fiatpandas 7d agoTIL about Dallas Semiconductor from this page. Love Silicon Prairie lore.
- dmitrygr 7d agoSDCC has the best OSS 8051 compiler. It is buggy as hell, but it is free. Sometimes that is good enough.
- hacker_homie 7d agoI used it for some toy projects never ran into "bugs" as in this is just broken, but it's quirky for sure.
- dmitrygr 7d agowhen you have large code, bugs will find you. for example two uint16 vars globally declared one after another. adding them together to each other will produce an access to garbage memory after 5-6 additions. dumb code but a simple repro. i ran into its bug when working on eInk price tags a while back.
- raphman 7d agoAs a student, 20 years ago, I felt like I was going crazy when using SDCC for pic16. Being new to microcontrollers and C, SDCC seemed cursed - even simple 'blink LED' test cases pseudo-randomly worked or didn't. It turned out that the compiler optimized away some 'empty' loops a little bit too aggressively without realizing that these loops were setting output pins. These bugs have long been fixed but still live on in my long-term memory.
- technothrasher 7d agoI still run across this to this day with GCC and Cortex-M code. The optimizer will occasionally decide to blow away loops that are clearly doing something.
- uecker 7d agoPlease file a bug report, if you haven't done so.
- lelanthran 7d ago> that the compiler optimized away some 'empty' loops a little bit too aggressively without realizing that these loops were setting output pins. Doesn't sounds like a bug in the compiler, sounds more like `volatile` was not used (unless, of course, `volatile` was not being honoured).
- MobiusHorizons 7d agoHas worked well enough for me on 8051 and stm8
- rurban 7d agostm8 array access is suboptimal.
- blackfawn 7d agoSDCC has been a nice resource for a variety of MCUs. I wish it had support for some of the 8-bit PIC chips like the PIC10 and PIC12... maybe one day!
- pjmlp 7d agoIf it has not to be SDCC, Mikroe compilers have support for them across C, BASIC and Pascal compilers, if I am not mistaken.
- Joel_Mckay 7d agoThe PIC compiler options were never standards compliant up until around when Microchip purchased AVR. There are great chips now that have free gcc support, reasonable power draw, and 32bit float support (ATSAM3X8E current prices are not worth it in many cases.) 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
- dragontamer 7d agoESP32 and RP2350 have pretty crap or nearly non-existent analog. I don't think they even come with a comparator, let alone rarer analog parts like a DAC. 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)
- Joel_Mckay 7d agoIn general, most DAC and ADC colocated on/near a digital chip rail has a list of noise issues anyway, as even an external Vref chip may be unable to help repeatably hit the claimed bit resolution with oversampling. At $9.28/pc for a mcu chip that should cost under $2... runs out of excuses pretty quickly. 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
- deleted 7d ago[deleted]
- deleted 7d ago[deleted]
- woadwarrior01 7d agoI have fond memories of using it for PIC16 as a teenager, ~25 years ago. It was a huge step up from writing assembly. My parents bought me a Microchip PICSTART Plus, but refused to pay for a Hitech-C compiler license. :)
- riedel 6d agoCool, I actually applied for a diploma thesis for doing the PIC 16 port around 2004. Raphael Neider actually was quicker then me, so he maintained the port for our lab at the Uni Karlsruhe (i am still in the same lab). We needed the port because was needed to allow people to compile our OS for our sensor nodes at the time. Still did a lot of testing of the PIC 16 port at the time because my thesis was about implementing a filesystem and a REST like API for the nodes.
- andrewstuart 7d agoI use SDCC for 8051. 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.
- sehugg 7d agoI initially added the MOS 6502 support by hacking the HC08 backend. It was awful, someone else (Gabriele Gorla) cleaned it up and got it merged to the mainline. There are other options these days for optimized 6502, like llvm-mos or Oscar64.
- phatbmt4444 6d agoDidn't expect to see SDCC being discussed here today. Spent quite a bit of time tinkering with it back then definitely a nostalgic feeling.
- vkaku 6d agoIt's great they do C23. I'd love to get three-four projects worth of things merged together for a good reason: - 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.
- a96 5d agoI have a few Rabbit boards stashed away that I never got around to toying with, mostly because of the obscure horror IDE. At some point I noticed that SDCC might work and there might even have been a flasher. So, now it's only a matter of having the time and motivation. Which tends to be pointed at many other things.