New board added
To have another MCU, I've added Arduino Pro Mini board with ATmega328. It is available now in the "Module" drop-down menu.
Of course it's not complete and has flaws. Bugfixes will be done, this is still just at a proof-of-concept level.
User can now select between "pin layout" and "generated code" views
The layout view is the default which was available before.
The code view allows the user to see what will the generated code exactly be. Of course it is not editable, but is instantly updated if settings are modified.
For now nearly nothing is implemented, and it has only one code flavour: Arduino-FreeRTOS. This decision was made to test if I can make an application code which runs a RTOS "blink" task, and this very same code could run on an ATmega328 and ESP32. It was a success, however needed a bit of thinking, and handling colliding things, like minimal stack size for different MCUs. (Made the ESP32 go into reset-loop because of too small stack)
The generated code has an Arduino flavour, so those who are used to the Arduino coding style can use familiar methods on other MCUs as well, with RTOS additions. The intention is not to replace Arduino, because other MCUs have virtual Arduino core. Of course "vanilla Arduino" flavour will be added as well.
For now I would like this to act also as an educational tool to easily understand and start coding an RTOS application.
A "Download mps.zip" button was also added, in order to quickly download the whole generated code.
Next steps
- I intend to make an introductory video with the stuff already done. It's simpler to show what my intention is.
- I've found a nice UML to code generator tool, will try it out, and if works well, it could be used together with my tool, simplifying the whole application creation even more. I believe that with visual tools, efficiency of education can be boosted.
- I'll have access to a Maple Mini, I will add also that one, so I'll have also an ARM based MCU in the tool.
- Define a more complex project, with I2C, SPI, ADC, inputs/outputs, several different tasks, event queues, and of course do it using the MCU pin setup, and optionally an UML to application code generator tool. It does not need to be fully cross-MCU, 8-bit and 32-bit cores are really different.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.