Reply
Highlighted
Posts: 7
Registered: ‎02-28-2014

Add the SDCC compiler to simplicity studio

Hello Community,

 

I just installed simplicity studio on my computer. However now I'm trying to add the SDCC (3.3.0) compiler as toolchain but simplicity studio doesn't recognize it. The older "Silicon Laboratories IDE" did recognize it so now I'm wondering why I can't add it.

 

Thanks in advance,

 

Tim Bots

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

just curious, as you get a free FULL Keil, why would you want to do that

erik
Posts: 7
Registered: ‎02-28-2014

Re: Add the SDCC compiler to simplicity studio

Simple, I have a lot of code written for the SDCC compiler and I don't want to invest the time to port it to the Keil compiler at this time.

Posts: 7
Registered: ‎02-28-2014

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

A 2nd reason why I don't want to use the Keil compiler straight away is that my software is now working and in production. If I swap the compiler I could face all sort of compiler optimizations that cause my code to behave unexpected.

a new post since I couldn't edit my original post

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Super Star</font></font> </a> HWH
Posts: 3
Registered: ‎03-16-2014

Re: Add the SDCC compiler to simplicity studio

Did you get SDCC  working with simplicity?

Posts: 7
Registered: ‎02-28-2014

Re: Add the SDCC compiler to simplicity studio

No, I'm still waiting for Silabs to respond to this question.

Posts: 118
Registered: ‎04-25-2013

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

Sorry you did not get a reply yet.  At the current time, only the Keil compiler is directly supported for 8051 development with Simplicity Studio v2, so it will not detect SDCC when you attempt to add toolchains.

 

Simplicity Studio v2 has much deeper integration with toolchains than the legacy IDE, so it's not trivial to support new toolchains -- but we are open to adding support for more later, depending on user demand and engineering resources. 

 

-- Ed

Posts: 7
Registered: ‎02-28-2014

Re: Add the SDCC compiler to simplicity studio

Ok

 

So the current counter for "user demand" can be set to 2 (me and HWH) Smiley Wink

 

So the remaining question becomes: where can other users that would like to see SDCC supported ask for support and thus raise the "user demand" counter.

 

By posting in this thread?

Posts: 118
Registered: ‎04-25-2013

Re: Add the SDCC compiler to simplicity studio

Yes, it would be good to have individuals reply to this thread.

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

another wievpoint

 

I would like to see the "SILabs macros" to are there only to support multiple toolchains disappear and see "Keil native" code which would be readable.

 

Whenever I use snippets of SILabs code it is a pain in the butt to "demacronize" it and for professional presentations that is a requirement.

 

I mainly deal with volume users and none of my clients use SDCC

erik
Posts: 2,968
Registered: ‎02-07-2002

Re: Add the SDCC compiler to simplicity studio

As developer of SDCC I would certainly like to see SDCC supported in the SiLabs tools.

I have offered my help on several occasions but got no response.

 

Maarten Brock

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

As developer of SDCC I would certainly like to see SDCC supported in the SiLabs tools.

I have offered my help on several occasions but got no response.

 

if you can do that without making SILabs use the annoying macros, then god bless

erik
Posts: 203
Registered: ‎02-04-2013

Re: Add the SDCC compiler to simplicity studio

erikm,

 

  The chances of us using stock Keil code are almost none. While Keil is the dominant compiler there are a significant number of users for other compilers. Trying to support hundreds of examples of examples across multiple compilers is just not possible without some level of compiler abstraction. 

  Further more to have any chance at all of getting a library usable on both the 8 and 32 bit product lines we also need a level of compiler abstraction. It remains to be seen if we will ever actually achieve that, but it's something we are looking into.

 

  It does seem like it should be fairly trivial to write a python script that does the job of the pre-processor and performs macro replacement in a file. Then you could just run a script to translate from macros to stock Keil. Unfortunately I don't see us being able to write it anytime soon (adding devices, enabling new compilers, fixing bugs, etc.. are going to take priority for at least the next year).

----------------------------
Josh Norem
Senior Applications Engineer
Silicon Labs
Posts: 2,968
Registered: ‎02-07-2002

Re: Add the SDCC compiler to simplicity studio

Since I'm not getting any further through a question to Technical Support and was redirected here, I'll ask here again.

 

What does it take to add support for SDCC in Simplicity Studio? Ed Swartz stated that it is not trivial, but doesn't say what it would take or where to start. I've seen some xml files that require modification and I think there are also some java jar files that require updating. Is this right? Is there any document describing what is needed? Maybe this is generic eclipse stuff, I don't know.

 

I'm sorry I have to put this in a public conversation, but Brian Lampkin asked me to.

 

Maarten Brock

SDCC Developer

Posts: 203
Registered: ‎02-04-2013

Re: Add the SDCC compiler to simplicity studio

Maarten,

 

  Well, this probability isn't' the solution you are looking for, but it is A solution and hopefully it will tide you over till we get SDCC support in place. 

 

  When Simplicity IDE 'builds' it automatically generates make files which are called to execute the actual build. You can see them in the Build folder. 

 

  If you go to the project properties (R-click->properties) and then to C/C++ Build you will find a check box for 'Generate Makefiles automatically'. If you uncheck that then the IDE will no longer edit the make files before a build. At that point you can replace the make file contents with whatever you wish.

  On the one hand you are basically writing your own make file and will need to update it whenever you add files. However, it will be integrated into the tools so that when you issue a build or clean from the IDE (or click the debug button) your make file gets run.

 

  I would recommend starting with a normal Keil build before you disable makefile generation. That way you can start with the standard make file. In many cases you may just need to update the commands being called to compile (and some switches). 

 

  I believe that you can take this a step further and un-check the 'Use Default Build command' and replace it with whatever you want. For example './myBuild.bat'. I haven't actually tried it but it seems reasonable. 

 

  Note that Studio does not have linker command files or startup files for other toolchains, you will need to copy those in from elsewhere (old IDE) if your project uses them. 

 

 

 

----------------------------
Josh Norem
Senior Applications Engineer
Silicon Labs
Posts: 6
Registered: ‎04-28-2014

Re: Add the SDCC compiler to simplicity studio

Keil cut me off a few years ago when I replaced my PC, so I moved to SDCC. I have a few dozen projects, all with SDCC. Even though most of them are small, I really don't want to go back. SDCC has become a LOT better over the years, plenty enough for me.

I'll vote for SDCC.

Posts: 7
Registered: ‎07-30-2005

Re: Add the SDCC compiler to simplicity studio

Please add yet another user request for SDCC, as this is litte Endian, and one does not have to swap bytes when one transfer structures to PCs

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Super Star</font></font> </a> plo
Posts: 7
Registered: ‎05-05-2014

Re: Add the SDCC compiler to simplicity studio

I have been trying to use Simplicity Studio with the franklin c51 tools without any luck.  I have disabled "Use default build command" to utilize my build tools but I get the following error message:  "Cannot run program "make": The directory name is invalid.

 

I am able to setup eclipse to support the franklin c51 tool with no problems, but using the same settings in Simplicity Studio I am unable to compile.  So I'd like to see this fixed. 

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

first there is no such thing as "Franklin tools", some were mutilated Keil, some were mutilated Raisonance, some were ...

 

second Franklin (thankfully) has not been around for ages, so requesting support for antiques is not likely to get the desired response

 

also, since Franklin has always been buggy, I think you would be far better off porting to the free Keil

erik
Posts: 4
Registered: ‎07-25-2008

Re: Add the SDCC compiler to simplicity studio

Please count me and my three technicians in also for the support of SDCC.

 

Thanks

Claus

Posts: 1
Registered: ‎08-25-2014

Re: Add the SDCC compiler to simplicity studio

Please count me too - I have also a lot of code written in SDCC and want migrate to Simplicity studio.

Ondrej

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Super Star</font></font> </a> wss
Posts: 14
Registered: ‎03-22-2009

Re: Add the SDCC compiler to simplicity studio

We had been using Silabs IDE with SDCC since 2007 in teaching and student projects with silabs 8051 MCUs. SDCC has been a solid alternative to commercial ones. A lot of library codes were created. Have to stick to the old version of IDE.

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Star</font></font> </a> wsm
Posts: 1
Registered: ‎09-19-2014

Re: Add the SDCC compiler to simplicity studio

Please count me also - I have also a lot of code written in SDCC and want migrate to Simplicity studio and use the free SDCC.

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

use the free SDCC.

a full Keil is free as well with SS

erik
Posts: 442
Registered: ‎01-18-2004

Re: Add the SDCC compiler to simplicity studio


erikm wrote:

use the free SDCC.

a full Keil is free as well with SS


Except that they don't want to migrate the code.

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

sure, however there is no reason to mention the free SDCC which could lead some unsuspecting beginner to believe that SDCC was the only free option

erik
Posts: 1
Registered: ‎10-21-2014

Re: Add the SDCC compiler to simplicity studio

Count me in too. I would like to see SDCC supported in SS. For legacy code base reasons mainly but also I just like the SDCC compiler and you can fix it if it is broken, you can't do that with the Keil compiler.

Posts: 298
Registered: ‎04-19-2006

Re: Add the SDCC compiler to simplicity studio

Count me in too - especially that legacy SiLabs IDE is no longer available to download.

Posts: 147
Registered: ‎04-23-2013

Re: Add the SDCC compiler to simplicity studio

Posts: 298
Registered: ‎04-19-2006

Re: Add the SDCC compiler to simplicity studio

Indeed. I was browsing for it through the SiLabs page and couldn't find it, thanks!

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> jmg
Posts: 1,134
Registered: ‎04-27-2004

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

What does it take to add support for SDCC in Simplicity Studio? Ed Swartz stated that it is not trivial, but doesn't say what it would take or where to start.


I've just checked SS v3 with SDCC, and other tool flows too.

You can get a partly workable solution, (it is really quite close to working fully) by creating a new shell project,then editing the

Debug Configurations to get Keil 'out of the way'. by

Click Disable Auto Build, and use

Browse to select executable (.OMF) file.

 

Under your Build batch, copy SourceFile.c to SOURCEFILE. as the OMF from sdcc is all upper case, and trims the extension. (at least the one I tested with was )

 

When you Click Debug, it will download [OMF & HEX] (seems to need both) and you are now connected in Debug.

DisAsm shows Source and ASM interleaved and breakpoints can be set in DisAsm.

Source-level step works.

Breakpoints in the source seem to be almost there, the OMF pane shows the Source Line # and the Address, but SS somehow fails to connect the final dots in the editor pane.

 

That seems minor oversight, and should be easy for Silabs to fix.

 

Also, the SS FlashPGM button works when pointed to 3rd party OMF files.

 

OMF symbols that used to show in older IDE are missing, so watch is not working.

Silabs need to fix that, and add Endian control.

 

Suggestions for simple changes to SDCC:

* Preserve Case in the OMF file, so when symbol view is fixed in SS, SDCC is ready

* Try output of the "Filebame.c" in OMF header, so the copy minus extension step is not needed.

(Silabs should also add the natural try obvious extensions if FileName. is not found )

 

Addit: I think SDCC is missing a proper FileName OMF record, relative to other OMF files I check, so adding that will likely help get the ducks in a row.

Some programs insert a full filepath, and others just a file name.

Posts: 25
Registered: ‎07-16-2014

Re: Add the SDCC compiler to simplicity studio

I'll throw another vote in for SDCC.  I have a lot of legacy projects that presently use command line compilation under Cygwin.  It would be nice if I could use the SS IDE, especially since I am actually in the process of porting one of them from an 8051 part to a Cortex-M part (both SiLabs) and it would be swell if I could have them both open in the IDE at once...

Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio

+1 for SDCC support.

 

I'm currently evaluating EFM8BB1 as replace replacements in a few projects. sdcc support would make all the difference for us. We use makefiles, text editors and git under Unix and avoid gui's as far as possible. Currently, wine is required and using makefiles seem to be difficult as the Kiel compiler licensing fails under make.

 

I think we're not alone in this situation. Silab would probably benefit from providing an open source alternative.

 

/Mike

 

 

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

We use makefiles, text editors and git under Unix and avoid gui's as far as possible. Then, why do you want Simplicity Studio which, for all practical purposes, is a GUI

erik
Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio

@erikm, that was not a very helpful answer (or was it a question missing a question mark?). Perhaps, if you know, you can point me to a toolchain that we can use instead of Kiel, with debug support? 

 

/Mike

<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> jmg
Posts: 1,134
Registered: ‎04-27-2004

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

 

I'm currently evaluating EFM8BB1 as replace replacements in a few projects. sdcc support would make all the difference for us. 

 


What sort of support ? - you can use SDCC with command line tool flows, now.

 


 We use makefiles, text editors and git under Unix and avoid gui's as far as possible. Currently, wine is required and using makefiles seem to be difficult as the Kiel compiler licensing fails under make.

 


I've not seen issues with Keil command line use re license, but I could believe wine and unix could add layers that make it less reliable.

 


+1 for SDCC support.

 

I'm currently evaluating EFM8BB1 as replace replacements in a few projects. sdcc support would make all the difference for us. 

I think we're not alone in this situation. Silab would probably benefit from providing an open source alternative.

 


If you want full symbolic Clean Debug, there are some fundamental issues with SDCC, they seem strangely disinterested in correcting.

* SDCC OMF filename is trimmed, not a full name, so Debuggers cannot find the source.

* SDCC makes all VAR NAMES UPPERCASE in the OMF file.

 

I rechecked SS v3,0, released since my earlier post above, and some  details seem to have gone backwards.

 

You can load an OMF file and Step in DisAsm.

 

SS now has a Find Source popup, but that flashes, then popups again.

It seems almost right, and may be issues in the highlighter not the OMF reader

The shown Debug Line #, Code Adr and Source are all correct, just the view is missing.

Fix should be simple ?

 

VAR names can  find under Watch, but you need to type UPPERCASE variants, and the SS display value is the address, not the contents. The latter is a simple bug.

 

Either SDCC needs to fix the UPPERCASE strangeness, (looks like they copied an ancient intel Assembler OMF, not a HLL OMF ) or SiLabs needs to allow case-alias on the Watch vars.

 

Of course, if you avoid gui's as far as possible none of the above may matter, and you may be ok just programming and running the code.

 

The good news is the OMF file reading itself does not look broken, it is what comes later that needs fixes.

I've passed examples to SiLabs, so maybe the next release will have less issues.

Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio

thanks @jmg for all good pointers :-)

 

With support i mean; build projects via make, debug in gdb - or if not supported, debug in gui. 

 

Did you get licensing to work at the cli under Linux? Then it's probably me doing something wrong.

 

Ok, i found that sdcc issue. Apparently, the sdcc dev's rather follow the map than the terrain, so probably better to patch sdcc.

 

We have a few prototype boards coming in next week. Will give it another shot then.

 

Thanks for your help!

 

/Mike

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

I think this should be held off till debug of Keil works fully.  Why expand 'capabilities' that do not work.

 

It serves no purpose to announce all the things you 'handle' when it only 'works'.

 

There have been many requests for including more devices in SS I hope (and believe) that the moderate speed in this is due to making sure what is there works more than throwing a lot of badly made stuff in.

erik
<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> jmg
Posts: 1,134
Registered: ‎04-27-2004

Re: Add the SDCC compiler to simplicity studio


  Why expand 'capabilities' that do not work.

 


The support for OMF51 (BL51) as opposed to Extended OMF51 (LX51) is new in SS 3.1, and so the expansion part is already done.

 

The ability for users to point to a Source file is also new, and required for those tool chains with truncated Filenames (or just  Module names) in the OMF files.

 

It just needs a clean up pass to get Source view - that is very close as the tag-heading is right, just the screen is not showing the nominated source file.

 

Right now, for SDCC Code download and break at DisAsm works, and Function names show in DisAsm, and you can now capture any memory to an editor (that bug was fixed 98% and a j-link updates fixes 100%)

Fixing Source step I'd call very close, and Var watch is a little further away.

 

For someone wanting to avoid GUI and use only scripts, another pathway to consider is SiUtil.dll (- not sure if that works under WINE?), but that would give a primitive download/run/stop/capture memory images, GUI less.

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

The support for OMF51 (BL51) as opposed to Extended OMF51 (LX51) is new in SS 3.1, and so the expansion part is already done.

 

OK one expansion, why more expansions (SDCC) before what exist works?

erik
<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> jmg
Posts: 1,134
Registered: ‎04-27-2004

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

erikm wrote:

The support for OMF51 (BL51) as opposed to Extended OMF51 (LX51) is new in SS 3.1, and so the expansion part is already done.

 

OK one expansion, why more expansions (SDCC) before what exist works?


SDCC generates OMF51, so there is no 'more expansions' - from what I can deduce, the OMF51 reading is fine, on a SDCC OMF51 file.

The new User Find Source feature also tries to work, but stumbles with a screen flash, and back to the Select-Source prompt. ie for some reason fails to stick.

 

No new expansions are needed, just the ones already there need fixing, to then give SDCC Source-Level Step.Break.

 

Watch also needs support for Endian, & yes, that may be an expansion, but byte & bit vars should watch fine with fixes only.

 

Addit:  I checked this, and the DisAsm step is actually HLL granular (with tone highlights as it steps) and the Debug window Status Line (just under .OMF name) shows

 SDCCNAME : LineNumber CodeAddress

and that updates correctly with each step.

 

ie the system actually is HLL stepping, it just drops the ball at the show-the-user-the-source, step  Robot Happy

 

You can manually track this, by reading LineNumber and applying in a Source window.

The MAP file can be used to derive where to place breakpoints in the DisAsm code.

 

All that is missing, is the (manual) source remap of SDCCNAME to SourceFile.C

to give the expected automated tracking,

( & longer term, SDCC needs to replace  SDCCNAME with SourceFile.C when it creates the OMF)

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

No new expansions are needed, just the ones already added need fixing

 

exactly my point.

 

now, instead if fixing what was, expansions were added and now they need fixing.  making the 'fixing budget' larger maybe resulting in the much needed fixes to SS/Keil being pushed back 

erik
Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio

@erikm, i can see your point. I have no previous experience with Silab mcs and tools, but reading this makes me wonder if Silab has sufficient QA in their development process? Are your statements a consequence of long time frustration with Silabs tools? This is an important parameter for us.

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

I have used 4 different free IDE's

 Are your statements a consequence of long time frustration with Silabs tools?

 Are your statements a consequence of long time frustration with Freescale tools?

 Are your statements a consequence of long time frustration with Atmel tools?

 Are your statements a consequence of long time frustration with Renesas tools?

 

yes to all the above.

 

SILabs is no worse than the bunch, maybe even a tad better and all the above are useable.  My basic statement re free software, especially debuggers is "useable crap".

You do not state whether you are doing '51 or ARM, for the '51 SILabs has the best compiler (a free full Keil) and, if free software is an issue that should be the clincher., All the above otherwise use Eclipse and GCC so no difference there except in the debugging where all have shortcomings.

 

if free software is not an issue, both Keil and IAR have excellent offerings, (if '51 go SILabs free anyhow, you get the same for nothing)

 

one thing  about the SILabs SW: of the above it is the only one that not forced me to reboot

 

My choice of the above is SILabs

erik
<a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Hero</font></font> </a> jmg
Posts: 1,134
Registered: ‎04-27-2004

Re: Add the SDCC compiler to simplicity studio


Did you get licensing to work at the cli under Linux? Then it's probably me doing something wrong.

 


I've not tested that, but if you need to get stuff done, I'd suggest first running a windows install while you get the feel for how the tools work, then try port to other OS.

 


Ok, i found that sdcc issue. Apparently, the sdcc dev's rather follow the map than the terrain, so probably better to patch sdcc.

 

We have a few prototype boards coming in next week. Will give it another shot then.



 Which MCUs ?

 

 That SDCC link seems quite old, (it is now Version 3.5.0) but it does illuminate their mindset with this :

re. 3) The OMF specification states that all symbols must be uppercase Robot Sad

 That 'specification' dates from Assembler Only days, & no one else interprets a 30 year old document  so literally.

 Of course, OMF does not collapse if you preserve case, and most flows have done so for many years.

 

 I did some more tests with Simplicity Studio and SDCC Version 3.5.0 and found some 'rules'.

 

a) SS uses both OMF51 and .HEX files, SDCC defaults to .IHX on Hex so an explicit command line is needed to output .hex

 With that, Download, Run and Reset all work.

 

b) SDCC creates a useful .RST listing file, which is a relocated absolute listing. This shows source code and Code address, and those values can be used to manually set breakpoints in the DisAsm window.

 

c) After a Break, Step in DisAsm window actually is HLL Source line granular, and the status line (just below OMF file name) updates with correct live MODULE: Line# Address, which can correlate with the RST info.

 

That can give a workaround, until SiLabs sort the user locate Source wrinkles.

Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio


erikm wrote:

I have used 4 different free IDE's

 Are your statements a consequence of long time frustration with Silabs tools?

 Are your statements a consequence of long time frustration with Freescale tools?

 Are your statements a consequence of long time frustration with Atmel tools?

 Are your statements a consequence of long time frustration with Renesas tools?

 

yes to all the above.

 

My choice of the above is SILabs


Thanks for the suggestion, valuable knowledge.


erikm wrote:

 

SILabs is no worse than the bunch, maybe even a tad better and all the above are useable.  My basic statement re free software, especially debuggers is "useable crap".

You do not state whether you are doing '51 or ARM, for the '51 SILabs has the best compiler (a free full Keil) and, if free software is an issue that should be the clincher., All the above otherwise use Eclipse and GCC so no difference there except in the debugging where all have shortcomings.

 

if free software is not an issue, both Keil and IAR have excellent offerings, (if '51 go SILabs free anyhow, you get the same for nothing)

 

one thing  about the SILabs SW: of the above it is the only one that not forced me to reboot


We're targeting EFM8BB.

 

We have been working a lot with Microchip, and their tool chain is quite good. It works natively under Linux with cli support. They also respond quickly to bug reports, including silicon errors. Apparently, Silab is way after Microchip here.

 

Open source is not a requirement, we just want something that works under Linux and cli. However, our experience with open source is different from yours.

 

Native Linux binaries is really helping. I find it awkward that Kiel don't offer a Linux solution. Virtually all embedded solutions run under Linux, so why should one have to install Windows and have mixed environments for development? Makes no sense to me.

 

/Mike

Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio


jmg wrote:

I've not tested that, but if you need to get stuff done, I'd suggest first running a windows install while you get the feel for how the tools work, then try port to other OS.



I did just that, but used the Linux version of Simplicity Studio which works fine when building from the gui. I run into trouble when trying to build on cli from the same install. I tried to use the make files the gui creates, but the licensing fails then. So, i saw no point in trying to integrate (or rewrite) the make files in our build environment (it's a complex thing with verilog/fpga build and other devices).

 


jmg wrote:

 Which MCUs ?

 That SDCC link seems quite old, (it is now Version 3.5.0) but it does illuminate their mindset with this :

re. 3) The OMF specification states that all symbols must be uppercase Robot Sad

 That 'specification' dates from Assembler Only days, & no one else interprets a 30 year old document  so literally.

 Of course, OMF does not collapse if you preserve case, and most flows have done so for many years.

 I did some more tests with Simplicity Studio and SDCC Version 3.5.0 and found some 'rules'.

a) SS uses both OMF51 and .HEX files, SDCC defaults to .IHX on Hex so an explicit command line is needed to output .hex

 With that, Download, Run and Reset all work.

b) SDCC creates a useful .RST listing file, which is a relocated absolute listing. This shows source code and Code address, and those values can be used to manually set breakpoints in the DisAsm window.

c) After a Break, Step in DisAsm window actually is HLL Source line granular, and the status line (just below OMF file name) updates with correct live MODULE: Line# Address, which can correlate with the RST info.

That can give a workaround, until SiLabs sort the user locate Source wrinkles.


We're targeting EFM8BB.

 

Yeah, sdcc developers follows the spec, no matter what the world is doing :-) I will probably make a patch for that, i think it's a no brainer. But perhaps you have already cracked this, so maybe i just follow your work above, thanks :-)

 

/Mike

 

 

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

 I find it awkward that Kiel don't offer a Linux solution. Virtually all embedded solutions run under Linux, so why should one have to install Windows and have mixed environments for development? Makes no sense to me.

 

It may be 'awkward' but there is a reason: the more 'universal' (e.g. using Java) you make your software the slower it becomes. I still remember the days when you went for a cup of coffee when you started a compile and do not want to get there again.  Even as it is a SS/Keil compile of a program takes waaaay longer than it would if the code had been written for efficiency instead of concern for other factors.

 

Virtually all embedded solutions run under Linux,  Rather "all Eclipse/GCC based ..."

The 'professional' tools AFAIK are all windows only

 

Yes, I'm a speed freak (not referring to illegal substances) both in what I want from the tools and the critical parts of the code I write.

erik
Posts: 18
Registered: ‎08-08-2015

Re: Add the SDCC compiler to simplicity studio


erikm wrote:

It may be 'awkward' but there is a reason: the more 'universal' (e.g. using Java) you make your software the slower it becomes. I still remember the days when you went for a cup of coffee when you started a compile and do not want to get there again.  Even as it is a SS/Keil compile of a program takes waaaay longer than it would if the code had been written for efficiency instead of concern for other factors.


The industry have been cross compiling compilers for 40+ years, and performance is seldom an issue due to porting. Nor is portability for well written code. Most likely Kiel C compilers are written in C or C++, which is highly portable. Todays compilers (i.e. llvm, gcc and friends) does a much better job in optimizing than most humans do, given that the code is will written. There's very little conditional code required to optimize for specific OS, if any at all. Sure, if the developers are stupid enough to write a compiler in Java things will be unbearabel slow, but if Kiel is the best c51 compiler on the market they are probably to bright to do something like that. 

 


erikm wrote:

Virtually all embedded solutions run under Linux,  Rather "all Eclipse/GCC based ..."


Linux is dominant on embedded consumer devices. I have no figure, but a guess would be over 75%. I think that would make a good case for Kiel, Silab and others that has gotten stuck on Windows to take the step over to Linux. I'm sure this will happen, just don't understand why they move so slow. Perhaps corporate culture. There are no technical reasons not to.

 


erikm wrote:

The 'professional' tools AFAIK are all windows only


The majority of compilers and development tools are cross platform today. There are still some that are not, unfortunately. Microchip compilers supports Linux natively, ARM's DS-5 is Linux based, Xilinx Vivado is Linux based (ported to Windows). Alteras Quartus is Linux based... and the list is growing. The world is simply going this way, and those who wont adapt will fade away.

 

Posts: 8,065
Registered: ‎08-13-2003

Re: Add the SDCC compiler to simplicity studio

[ Edited ]

Linux is dominant on embedded consumer devices

 

nit bitching, just observing;

irrelevant, all compilers I know of are cross-compilers and, as such compile for Linux just fine. 

The issue is what does the cross-compiler run on and there the natural choice is the most popu widespread OS.

 

another issue may be that all commercial development I have seen as a consultant (my clients combined use 10M+ uCs annually) run on windows.

erik