GSoC 2021 Python for PRU

Hi everyone!!
I hope everyone is safe and in good health in the wake of prevailing COVID-19.

My name is Saransh Surinder and I am a 3rd-year Computer Science undergraduate student at Shri Mata Vaishno Devi University. I have been working with Python for a couple of years now and have in-depth knowledge of it. I would like to contribute to beagleboard as part of GSoC 2021.

It would be a great assistance if anyone could suggest how to get started.



Have you read over ? The topic title seems to indicate you have, but your question doesn’t seem to indicate you’ve looked around much yet.

Have you ever built the Python language from the C source?

If it’s of any interest, I also have a pure-python library for uio in general and uio_pruss in particular that lets you

  • load raw binaries produced by pasm
  • load ELF executables produced by clpru (no support for the resource table yet, though I have some work done for that)
  • control and debug the pru cores, including single-stepping (and one of the examples shows how to set breakpoints) and accessing their registers whenever it’s halted (as simple as core.r0 = 42)
  • not just read and write PRU memory, but also directly map shared PRU data structures into python as ctypes objects
  • configure the pruss interrupt controller and receive interrupts in python (asyncio example is included)
  • directly access various PRUSS peripherals in python, e.g. to inspect their state for debugging or to perform their setup so the PRU program doesn’t have to. (currently eCAP, the UART, and the subsystem config module are supported; IEP is still on the to-do list)
1 Like