eerimoq:
first of all. I'm the main author of Simba which makes me very subjective on this matter.
Wow, didn't expect the author to chime in
Thanks for an interesting project 
eerimoq:
Simba is a fairly active project on GitHub, with a handful of contributors. I've used it in a few projects, and it has been working very well, I must say. That said, other users may very well have a different opinion (which I don't know about, the little feedback I've received has been positive).
Good to know it has not been abandoned 
eerimoq:
There are some discussions on GitHub and PlatformIO about Simba, but very few shares their projects and gives feedback.
Here are a few of my "bigger" project using Simba:
I'll check them out, thanks.
eerimoq:
As for drivers, there are two alternatives of how to implement them:
-
Build the driver on top of an existing driver, for example the UART driver. Existing driver API:s can easily be extended to add missing functionality. Sometimes even non-backwards compatible changes are accepted.
-
Perform hardware register accesses directly from the driver. This is not recommended since it makes the code less portable to other boards.
As you pointed out there are numerous drivers written for Arduino. These have to be rewritten in Simba, I'm afraid. It's theoretically possible to provide the Arudino API in Simba, but there are no plans on doing so.
Feel free to submit a pull request if you implement any drivers. They are very welcome! =)
And last, it should be possible to mix C++ and C in Simba. I've done it once or twice.
Specifically I need to implement, at the very least, the XBee driver. For the most part it just sits on top of the Serial driver - but since the serial driver looks different in Simba vs Arduino - I imagine there will need to be some rewrite of the existing libs, but much of the code should end up being same... And I imagine it would be useful though to many people...
But before I get that far I need to get it to work and right now I can't even get the examples to compile
proper. I am trying to compile
/var/folders/ls/l_9lw6yn0232t9gzgmkzdzkm0000gn/T/arduino_build_562770/preproc/ctags_target_for_gcc_minus_e.cpp:43:115: error: storage class specifiers invalid in parameter declarations
static int cmd_hello_world_cb(int argc,
^
/var/folders/ls/l_9lw6yn0232t9gzgmkzdzkm0000gn/T/arduino_build_562770/preproc/ctags_target_for_gcc_minus_e.cpp:43:115: error: storage class specified for parameter 'cmd_hello_world_cb'
/var/folders/ls/l_9lw6yn0232t9gzgmkzdzkm0000gn/T/arduino_build_562770/preproc/ctags_target_for_gcc_minus_e.cpp:43:116: error: expected ')' before ';' token
static int cmd_hello_world_cb(int argc,
^
/var/folders/ls/l_9lw6yn0232t9gzgmkzdzkm0000gn/T/arduino_build_562770/preproc/ctags_target_for_gcc_minus_e.cpp:44:31: error: expected unqualified-id before 'void'
const char *argv[],
^
/Users/hichhiker/Library/Arduino15/packages/Simba/hardware/avr/14.0.0/libraries/Simba/examples/shell/shell.ino:34:28: warning: 'cmd_hello_world' defined but not used [-Wunused-variable]
static struct fs_command_t cmd_hello_world;
^
/Users/hichhiker/Library/Arduino15/packages/Simba/hardware/avr/14.0.0/libraries/Simba/examples/shell/shell.ino:36:23: warning: 'shell' defined but not used [-Wunused-variable]
static struct shell_t shell;
^
/Users/hichhiker/Library/Arduino15/packages/Simba/hardware/avr/14.0.0/libraries/Simba/examples/shell/shell.ino:41:12: warning: 'int cmd_hello_world_cb(int, const char**, int (*)(int, const char**, void*, void*, void*, void*))' declared 'static' but never defined [-Wunused-function]
static int cmd_hello_world_cb(int argc,
^
exit status 1
Error compiling for board Arduino Mega.
I fixed the immediate issue (use of "static" but it just chained down to other issues)
I am compiling on OSX using Arduino IDE 1.8.1, in case that matters.
I guess the first question - is it supposed to work?
The other immediate question/concern is over the lack of Arduino API - is there still access to pins and things like that? That seems like basic stuff, but I am not sure what qualifies as "Arduino API" in this case.
Thanks,
-HH