Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C8051 support #7

Open
spth opened this issue May 18, 2018 · 1 comment
Open

C8051 support #7

spth opened this issue May 18, 2018 · 1 comment

Comments

@spth
Copy link

spth commented May 18, 2018

SiLab's C8051 family is a relatively popular MCS-51 derivative. SDCC was popular in the C8051 community in the past, and is still used to some degree. But SiLabs dropped support for SDCC when they released their new "Simplicity Studio" IDE and now only recommends the use of Keil (and provides Keil licenses to developers at no monetary cost). Their older IDE with SDCC support was still available for a while, but AFAIK does not support their newer µCs.

It would be nice to have support for some C8051 boards in platformio. Many C8051 µCs are already supported reasonably well by free tools, see e.g. the tutorials at:
http://www.colecovision.eu/mcs51/

Philipp

@zerog2k
Copy link
Contributor

zerog2k commented Jun 20, 2018

Hi Philipp, I think it would be interesting to have sdcc support, but I think the fact that Simplicity Studio is pretty integrated ide, which works on Mac, Linux, and Windows, along w/ the debugging tools (usb debug tool hw), and the fact that keil is licensed free, makes interest in maintaining parallel support for sdcc low.

I think sdcc (coupled w/ platformio) is better at supporting the 8051 mcu families which have no free and/or cross-platform support from vendor.
Looking at recent sdcc include/mcs51 folder, i'm seeing lots of C8051 family specific headers, e.g. C8051F920.h, so for the determined, it should be pretty easy to add in (basic, raw) support on platform-mcs51 (with no extra libs/frameworks like you get with vendor toolchain/ide) - just need to add board jsons for each of these..
https://github.com/platformio/platform-mcs51/tree/master/boards

On another topic, i have found sdcc optimization poor in a number of areas (i.e., some basic patterns don't leverage 8051 instruction set well, e.g. decrement loop pattern; struct access patterns are bloated, etc), and obviously keil ($$$) does much better job at this. I'm no compiler/assembler guru, so I can't be much help in improving - only noticing/reporting some of the obvious optimization stuff, as I try to squeeze the most out of 4k of code space w/ C with free compiler;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants