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:
https://github.com/micropython/micropython/wiki/FAQ
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:
https://www.adafruit.com/product/3727
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
P.S.
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
Ulrich
--
Cheers,
Kein-Hong Man (esq.)
Selangor, Malaysia
_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel