PRU programming - how to initialise and upload?

There is a lot of useful stuff regarding PRU out there, unfortunately it is not very useful for me. These examples/documentation all make use of Linux and a PRU-library doing many “magic” stuff - initialising PRU, uploading the PRU-program and starting it.

Since I’m not using Linux/PRU-library but try to program everything for my own, I have to start a bit earlier and need to understand the whole intitialisation and upload stuff.

I already tried it with AM3358 TRM which is very detailled, there I fail to understand the working principle. Means TRM tells me what registers are there and what they are doing, but it does not give me the whole picture what has to be done in which order to have it running correctly.

Next I tried it with the existing Linux-drivers and PRU-libraries but don’t have been very successful with reverse-engineering of it (there are too much dependencies to understand it and to get a full picture there).

So…is there any description/getting started/cookbook out there that is helpful when one wants to program PRU from scratch and without the help of existing drivers/libraries?


Hi Karl,

Have a look how I solved that problem in: The file pruss.c is the one you want. This code is from 'before' the PRU-library, but has proven stable since the BeagleBone white.

-- Bas

Sounds great…I’ll have a look at it!