Hi! I found out about GSoC and RTEMS a bit late, so I decided to try and take on a more recently added project. I’ve completed my getting started proof of work and written up a proposal draft.
@TheSamPrice I updated the proposal and I would like to hear your thoughts on my changes. Here’s a summary of what changed:
I clarified that to use asp’s native CMake build system. Then make RTEMS aware of the asp engine afterwards.
In my midterm evaluation, the focus is getting asp to build, cross-compile, and for the scripts to execute properly in RTEMS.
After midterms, the focus is to expose the RETMS-specific functions such as yield, uptime, and GPIO, and to get the asp scripts to successfully compile and execute with these functions.
I updated the deliverables to reflect these changes in the timeline
I looked more deeply into uptime and I realized that unlike sleep, which uses clock(), uptime specifically needs to use the RTEMS get_uptime because we want the track system uptime, not the script uptime.
POSIX CLOCK_MONOTONIC is generally equivalent to uptime and portable. Google found RedHat documentation saying this and it is the same on RTEMS. If there is anywhere it isn’t equivalent, that would require conditionals. But it has to have comments explaining that assumption.
I probably wouldn’t be able to include this in the proposal, but I’d like some guidance on where I should look for the general purpose input output (GPIO) capabilities that RTEMS currently has so I can think about how to also extend these capabilities to asp.
I’ve been exploring the RTEMS source tree to better understand the GPIO side of the asp integration project. I found what looks like a generic rtems_gpio_* abstraction layer in bsps/shared/dev, but when I looked at individual BSPs I could only find one GPIO header (an i.MX-specific one under bsps/arm). Most BSPs I checked didn’t seem to have one.
I’m not sure if I’m looking in the right places, so I wanted to ask: what does GPIO support actually look like for the target hardware this project has in mind, and is the generic rtems_gpio_* layer the right thing to target for the asp wrapper?
This question probably belongs in another topic thread, but basically the GPIO support is not fully ported throughout RTEMS, I think it is really been mainly implemented for the arm raspberrypi and beaglebone black boards.