5 ms·
This is very promising for embedded control applications. Bootstrapping this with a simple allocator and even something as basic as FreeRTOS [1] combined with C
by alhirzel 4y ago
This is very promising for embedded control applications. Bootstrapping this with a simple allocator and even something as basic as FreeRTOS [1] combined with CBinding.jl [2] for portability would be game-changing for many applications, and directly compete with e.g. MathWorks' Arduino Simulink target [3]. ESP8266/32 next, once LLVM support [4] lands?
[1]: https://microcontrollerslab.com/use-freertos-arduino/ https://microcontrollerslab.com/use-freertos-arduino/
[2]: https://github.com/analytech-solutions/CBinding.jl https://github.com/analytech-solutions/CBinding.jl
[3]: https://www.mathworks.com/help/supportpkg/arduino/run-on-target-hardware.html https://www.mathworks.com/help/supportpkg/arduino/run-on-tar...
[4]: https://github.com/espressif/llvm-project https://github.com/espressif/llvm-project
- Sukera 4y agoI didn't know about FreeRTOS, interesting! I don't think CBinding.jl is an option, since the whole point of the arduino is that the julia runtime can't run there (and doesn't fit in the first place - there's not enough RAM and swapping to the SD seems bad). Linking with C created .o files should work though? I don't own any ESP32, but if that happens, yes I'd very much like to try!
- pjmlp 4y agoESP32 should be quite capable, it is much better than many MS-DOS PCs.
- alhirzel 4y agoWould you accept an ESP32 for your edification? No strings attached. Email me I think CBinding.jl could be helpful if one wanted to write a target-specific shim library in C and link against it. I would expect that some of the glue is going to be easier to write in C than in Julia, and you can play some tricks with macros to create bare modules [1] within some kind of `@arduino_setup`/`@arduino_loop`-style blocks. Edit: By the way, those target-specific shims might already exist as part of the Arduino IDE. PlatformIO [2] is also another possible collider of these types of platform-specific glues. [1]: https://docs.julialang.org/en/v1/manual/modules/#Default-top-level-definitions-and-bare-modules https://docs.julialang.org/en/v1/manual/modules/#Default-top... [2]: https://docs.platformio.org/en/latest/boards/index.html https://docs.platformio.org/en/latest/boards/index.html
- Sukera 4y agoThat'd be awesome, sure! I'll shoot you an email. PlatformIO is nice, yes - I've already been suggested linking/using that, but I haven't looked into it yet. I also haven't worked with that before, so it'd be completely new territory for me.
- kurosknight 4y agoHey! Would you be interested in collaborating on this? I have a wide selection of hardware I'd be happy to contribute as well. You can reach me at my username at gmail dot com.
- Sukera 4y agoTook a while, but email is sent - thanks again, and I hope shipping will work itself out!