Go Down

Topic: Simba - An RTOS and Build Framework (Read 3381 times) previous topic - next topic

eerimoq

Hello all,

the Simba and Pumbaa (Python) projects have been ported to the ESP32, and the
Nano32 board in particular. Simba is an embedded OS with a bunch or drivers, file systems, networking and other useful modules. Pumbaa is MicroPython on top of Simba, with similar features as listed for Simba.

Both projects can be installed, built and uploaded with the Arduino IDE and PlatformIO, so it's easy to get started!

Simba getting started: http://simba-os.readthedocs.io/en/latest/getting-started.html
Pumbaa getting started: http://pumbaa.readthedocs.io/en/latest/getting-started.html

Check out this video for some great Pumbaa footage and tunes: https://youtu.be/R4SLIyBysfg

Enjoy!

JavierGG

Hello,

Thanks for all the work.

I have one question about your framework: Is it possible to use existing Arduino libraries when working over your framework?

Allow me to explain myself with an example:

Let's say my board is connected to an NFC controller such as the PN532 through I2C or a TFT screen controlled by an ILI-9341 through SPI. The Arduino framework has libraries for both modules that allows to interact with either of them more or less out-of-the-box.
-Would it be possible to use these same libraries directly (e.g. just by #include-ing them?
-Would they need to be ported? Perhaps there's a wrapper available?


To be honest, the main reason why I use Arduino is to have access to the cornucopia of available libraries and drivers for all sorts of peripherals.

eerimoq

#17
Feb 06, 2017, 03:21 pm Last Edit: Feb 06, 2017, 05:52 pm by eerimoq
Hi,

there is currently no implementation of the Arduino API in Simba, so if the libarary uses that API the compilation will fail. I'm sure many users are in your situation and an implementaion of the API would be very useful.

I guess a Simba thread will be used to poll the library for events, and act on them, Arduino style.

A list of potential problems using an Arduino library with Simba (other than the Arduino API):

1. Simba uses one hardware timer for the system tick. No other hardware resources are used by the kernel. Of course, that timer may not be used by a library, or there is a conflict and the system will likely crash.

2. If the Arduino IDE build system works with Simba + Arduino libraries has not been tested by me. Maybe it already works. Maybe it has to be modified. The make based build system I usually use for Simba can easily build the libraries. Just add the source files to the make variable SRC, and required inclution paths to INC.

3. I've not used libc malloc/free functions, and they will likely not work as there is no heap region defiend in the linker script (that I'm aware of). This applies to C++ new/delete as well.

JavierGG

Hi,

Thank you very much for the very informative reply.

eerimoq

New release, 13.0.1!

A new release has been created with a lot of new functionality and a few bug fixes.

GitHub: https://github.com/eerimoq/simba/tree/13.0.1
Documentation: http://simba-os.readthedocs.io/en/13.0.1

Changes

- Added HTTPS server.
- Added SSL client side.
- Filesystem write commad with paste mode (drops data if UART RX buffer is too small).
- ESP32 UART refactoring.
- Less chatty Emacs protocol.
- Added a TFTP server.
- Added the upgrade module (HTTP, TFTP and Kermit protocols).
- Added a signal analyzer example application.
- Added board SPC56D-Discovery.

Bug fixes

- HTTP server buffer overflow on big requests.

Enjoy!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy