ziutek / emgo

Emgo: Bare metal Go (language for programming embedded systems)
BSD 3-Clause "New" or "Revised" License
1.07k stars 69 forks source link

Question: Whad do you thing about tinygo? #19

Open Aukstkalnis opened 5 years ago

Aukstkalnis commented 5 years ago

There is other project to bring GO to microcontrollers: https://github.com/aykevl/tinygo. Have you seen it? What is your opinion about it? I am just curious because you try to do the same thing but from different approach. Maybe you can work together for more productive results?

ziutek commented 5 years ago

Yes I seen it. Its very interesting project, so I starred it a few weeks/month sago.

Emgo is mainly library (HAL) that supports STM32 and nRF5 MCUs. I use it for almost all my embedded programming.

Of course the main thing in Emgo is egc compiler that I write. It is based on ARM gcc embedded toolchain. I'm not a compiler scientist/developer so I use Go to C translation approach using existing proved ARM toolchain. It works well but has some shortcomings. If Tinny Go evolves enough I will be happy to replace egc with tinnygo compiler (the whole library that I rely on will stay mainly unmodified).

I've already done some tests but without much success. I need add some futures to the tinygo to support my existing code. But the LLVM is big piece of software, probably too big for me for now and it compiles for hours on my PC. I need to study it more.

For now egc is much smaller, much faster to compile and supports much more things that I need so I will stay with it for now.