cancel
Showing results for 
Search instead for 
Did you mean: 

2020 STM8 compiler comparison

Philipp Krause
Senior II

This is not a question, so it doesn't really belong here, but the community forum is still broken, so there is no other place to post this.

I just redid my comparison of the 4 most important STM8 C compilers (previous comparisons were in 2016 and 2018). Again this is a comparison of the compilers only, not considering the IDEs:

http://www.colecovision.eu/stm8/compilers.shtml

Quick summary of what happened since 2018: Raisonance didn't even release a new version. IAR did some small bugfixes only. Cosmic substantially improved code size, without much other change. SDCC substantially improved code size, code speed and made further progress in standard compliance.

Quick summary of current situation: Raisonance is still best in code size, and still worst in every other way. IAR is still best in ISO C99 standard compliance and has good code speed. SDCC still is best overall (getting top results in every category except code size, where Raisonance is still better). Cosmic is doing okay in every category, but doesn't really have a particular strong point.

9 REPLIES 9
Cristian Gyorgy
Senior III

Hi Philipp, and thanks for the updated comparison.

It would be interesting to have a statistic about how many users each compiler has and how many don't use a Windows environment.

A question: is SDCC using the asst8 assembler as it is (in the latest version 5.31?) or it also aplies some patches?

AFAIK, there are no such statistics. For SDCC, one can guess from Sourceforge download statistics, which are reasonable to use for Windows, but are probably miss a lot of GNU/Linux, OpenBSD, etc users that just use the version that comes with their distribution. Even for Windows we only have download numbers, so users that don't always update to the latest version immediately are somewhat underepresented.

Debian has package usage statistics (participation is opt-in, so the Debian numbers will be much less than real usage on Debian).

Another approach is to look at stm8 projects in public source repositories on GitHub, SourceForge, etc. AFAIK, most code there these days is written for SDCC, with Cosmic close behind, some for IAR, and nearly no code for Raisonance.

Philipp Krause
Senior II

The assembler SDCC uses was forked from the asxxxx assemblers long ago (in GPLv2 times), and added some features. Then upstream asxxxx changed their license to something incompatible, so for a few years it wasn't possible to synchronize (development continued on both sides, also with support for additional architectures). Later upstream switched to GPLv3, so there is no license issue anymore, but the fork has diverged quite a bit, and synchronizing now would be quite some work. There is an open feature request, but I don't know if someone is currently working on it.

At the time asxxxx was forked originally, it didn't have an stm8 backend. The current stm8 assemblers in asxxxx and the one in the SDCC fork were developed independently.

P.S.: This was meant as a reply to the question by Cristian Gyorgy above; if some admin sees it, please move it. Thanks.

Thanks for the info. I thought SDCC uses the asst8 from asxxxx.

Then, I guess the stm8 assembler from SDCC can generate and use the "cpw" instruction, because asst8 still cannot, even in it's latest version, 5.31.

Yes, the assembler supports cpw (the compiler actually emits cpw).

M.R.Abedini
Associate II

Hello, thanks for the updated comparison.

I want to install sdcc+stm32cubeide(or eclipse) in windows10.

I installed sdcc of:

https://sourceforge.net/projects/sdcc/

and installed :

https://github.com/gnu-mcu-eclipse/windows-build-tools/releases

I worked the GPIO,But I couldn't work with the etc. 

makefile downloaded of internet.

please help me

The ST IDE currently only supports the Cosmic and Raisonance compilers, but neither SDCC nor IAR. IMO, it would be good if ST added support for SDCC and IAR.

For Eclipse, there is an SDCC plugin, but AFAIK, it is somewhat out-of-date and I don't know how well it works with current SDCC and Eclipse.

If you want to use an IDE, I'd suggest to have a look at Code::Blocks, which has SDCC support (when installing Code::Blocks, an existing SDCC installation will be detected).

thanks for reply

I think it's possible to add sdcc because STIDE is based on eclipse,Of course I did this to some extent for gpio.

(Software IAR-stm8 has a boring environment)

(please create topic for this)

I'll send you the files

 http://8upload.ir/uploads/f880377312.jpg

 http://8upload.ir/uploads/f156972770.rar

project