Hi,

I think I may like to have micropython work again on NuttX.

Where can I find the latest efforts on this project, to try my hand on it?

Sebastien


Le 26/10/2021 à 04:16, Tomasz CEDRO a écrit :
On Mon, Oct 25, 2021 at 7:45 PM Xiang Xiao wrote:
On Mon, Oct 25, 2021 at 11:37 PM Tomasz CEDRO wrote:
On Mon, Oct 25, 2021 at 4:44 PM Alan Carvalho de Assis wrote:
Hi Tomasz,
MicroPython was integrated in NuttX at some time ago, but it started
to crash and was removed.
Yup, I saw some websites stating it work here but I could not find
among interpreters. Thanks for the hint Alan :-)

I think someone started a discussion about it on discord, but I don't
know what happened later.
I would prefer to keep critical discussions here on the list as they
are easier to find later on and may give hints to the others :-) Stuff
like IRC or Discord I may prefer for short term tasks :-)


As I told you ESP32-C3 has a good support on NuttX and Xiaomi is
already using it internally (it passed on their certification
process).
Yup :-) NuttX claims full support for ESP32-C3 while Zephyr lags
behind in this area (only GPIO, UART and BLE is currently
implemented). I know that already, thanks :-)

But my question was closely related to MicroPython and NuttX and SoC
driver support / architecture that is still unknown to me, sorry,
maybe this will clarify:

1. Is there some sort of HAL in NuttX that when driver for a SoC is
ported makes it available freely for every other functionality already
implemented (like in Zephyr)?

No, NuttX doesn't like HAL, but NuttX defines many device driver
interfaces(from uart, i2c, spi to gpio...).
All expose their functionality as device files(e.g. /dev/ttyS0, /dev/gpio).
Other complex devices expose through:

    1. File system API(e.g. block device, flash, mtd...)
    2. Socket API(e.g. ethernet, WiFi, CAN...)
Thank you Xiao! Looks more and more like Unix on MCU :-)


2. Would dedicated functionalities, like MicroPython, require separate
implementation of drivers for each SoC or will it use existing
drivers?

Since all above functionality is exposed to userspace through the standard
interface. MicroPython port can be done in a general way which means that
once you finish the porting, all boards supported by NuttX will get the
same functionality freely.
BTW, since NuttX is very similar to Unix/Linux, it's very easy to start the
porting from the Unix/Linux version. Actually, My colleague(Chao An)
finished MicroPython initial NuttX porting in one week three years ago. But
since we switch to JavaScript as our high level language later, our porting
stops the maintenance after that.
Good news thank you! One port to rule them all :-) I start to love
NuttX even more! Can't wait the day when it runs on my 8-bit Atari :-)
:-)

 From what I can see the current MicroPython port is initial, needs to
be able to run test suite as the current task, will look into it in my
free time, duty noted :-)

I just need to make some working prototype in few days quickly, I
thought that MicroPython could be the way, but it will require more
work / time with ESP32-C3 + NuttX, however I believe it will be worth
working on it :-)

I got MicroPython working on ESP32 boards out of the box, so that
would be good place to learn it and get some experience in the first
place before porting :-)

I have allergy to JavaScript and any framework related to it to the
point that I am considering porting (Micro)Python + LVGL as the cross
platform mobile development framework. Thus my research into
MicroPython. We have lost so much time and effort and heart to build
on React Native + Expo. I never would have even guess such slow heavy
self-incompatible thing with a life cycle shorter than yogurt could
get so much world wide traction. On the other hand we have web backend
written in Python Django that is clean small elegant efficient
scalable and can run even on a small networked embedded system. Maybe
"Apples and Oranges"^TM but I am definitely a Python fan :-P

Thank you for all the hints folks! :-)
Tomek

Reply via email to