[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Joining Tiny C Compiler with ItsyBitsy M0 Express

From: KHMan
Subject: Re: [Tinycc-devel] Joining Tiny C Compiler with ItsyBitsy M0 Express
Date: Sat, 21 Apr 2018 13:03:23 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2

On 4/21/2018 12:45 AM, Ulrich Althöfer wrote:
Dear Developers,
is it possible to implement the TCC on an awsome microcontroller board?

If you want to compile on the MCU itself, then data RAM will be an issue. See MicroPython FAQ here:


So 32KB will still be an issue for any non-trivial MicroPython script. See any number of forum postings on people running smack into this. If "tcc compile on MCU" inconveniences coders, then it will hurt adoption. Then for tcc you will need to expend effort on on-chip memory usage issues, or mitigate with library linking or dynamic linking.

Next, if you plan to target beginners and grow a community, you are up against a whole horde of similar beginner-MCU-board initiatives. Some might even have corporate (Sparkfun, AdaFruit and others are all eyeing the education pie) or crowdfunding backing. Assume you want to 'sell' tcc to beginners. Who are you targeting, what skill level, what age, etc. If you target experienced coders, then they will measure the thing versus their usual toolchain. For example, I for one have zero urge to move from my usual C toolchains to MicroPython -- I already have thousands of lines of working code that I can draw from. So the target demographic can be an issue.

Also, I have not come across any MicroPython projects during casual browsing on electronics projects -- it has not lit up the scene like Arduino (whose popularity may be partly due to many libraries and a lot of code that folks can cut and paste). Where are all the non-trivial projects done with MicroPython? I don't remember coming across any.

This is not to say it's a bad idea, but there may be significant barriers or issues, depending on your objectives. Also, early adoptees might not appear unless you already have a prototype that works and is useful -- often someone has to do the initial implementation.

I am fascinated by the very compact microcontroller board 'ItsyBitsy M0 Express'. It is equipped with the ARM Cortex M0+ processor (with 256KB Flash and 32 KB RAM builtin) running at 48 MHz and 2 MB SPI FLASH on board - hence called 'Express'. The USB board is developed by Adafruit Industries (Owner 'Ladyada'). Look at the website:

The particular feature of the ItsyBitsy is in my opinion the builtin Python interpreter in combination with the external accessible FAT file system. The USB interface is implemented native - without a separate processor. The Python interpreter is condensed to 'MicroPython'. The 'CircuitPython' is Adafruit's open source derivative of MicroPython especially prepared for Atmels ARM M0 type 'SAMD21'. Although the CircuitPython interpreter runs in this little ARM chip it shows 19696 bytes of free memory.

The intended benefits of joining the TCC with the ItsyBitsy:
- Faster execution time than with the Python interpreter.
- Better energy efficiency because of direct command execution.
- Better deterministic characteristic.
- C as an additional educational language to Python.
- The self-contained C source (equivalent to the interpreter version).

The last point (the self-contained C source) on such a compact embedded board is very fun, because you get independent from the usual Operating Systems, proprietary chains and local situations: just pull the USB board off and you have the whole development information with you.

Let's do IT:
- Information Technology
- Interdisciplinary Thinking

Actually the ItsyBitsy M4 Express is advertised.
The ARM CORTEX M4 with 192k of RAM and 512k flash @ 120 MHz is builtin.

Greetings from Germany

Kein-Hong Man (esq.)
Selangor, Malaysia

reply via email to

[Prev in Thread] Current Thread [Next in Thread]