Proposing an idea for mentoring in this Google Summer of Code discussion among mentors and developers from the BeagleBoard community.
The PRU is one such peripheral which differentiates the BeagleBoard from almost any other development platform out there and has given rise to many awesome projects. However:
(i) Entry barrier is high
(ii) There are many libraries out there like libpruio, libprussdrv and others that intend to make the PRU more accessible. However with no common infrastructure each application ends up defining a shared memory pool (which is limited to 8 MB at most) and defines a protocol according to the need or situation. As such, code reusage is quite difficult.
(iii) The remoteproc infrastructure is promising but has a very high entry barrier (Having worked with it to develop BeagleLogic last year) and there is as such no definite interface to userspace. There is a virtio based serial port solution but comes with its overhead.
The idea proposes development of a language-agnostic framework for the PRU - from the kernel driver to userspace libraries.
Please have a look at this Wiki page entry for more information and design goals as of now:
http://elinux.org/BeagleBoard/GSoC/Ideas#PRUSS_Support_for_the_newer_kernels
I open this idea to discussion from prospective students, developers and the BeagleBoard community to help in drafting the proposal and defining how you would want the API to be while also limiting the scope so that the vision can be achieved over this GSoC and the times to come.
Best Regards
Abhishek
[cc: The BeagleBoard Discussion group]