This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BEAGLEBK: Where is the latest documentation and code example resources for PRU and Sitara SOCs?

Part Number: BEAGLEBK

Hi all,

Currently, I can only find this page, and links from it to get one started in using the PRU on the BeagleBone Black and other Sitara CPUs with the PRU subsystem (also for BeableBone AI later):

https://processors.wiki.ti.com/index.php/PRU-ICSS

There is a big red banner at the top of each of the pages saying that they will be deleted at the end of this year (2020).

What is the next set of resources for us to use?

I'm hoping for: PDF docs and accompanying code examples.

I'm hoping to learn:

The latest linux framework and methods to control the PRU cores by loading firmware, passing information and doing low level peripheral control and interupts.

I know that they effectively are 2 separate processor systems in one chip (ARM and PRU which is likely similar to C2000) and the main thing is the communication options between them.

There are some training videos etc on TI's site, but they aren't in-depth.

Its been a few years since I've done basic code to test a few things in the PRU on the BeagleBone Black, and now I need to get back into it.

I've read somewhere that there used to be the "mailbox" system in Linux, and now it has changed to a different framework.

I've come across a few GitHub pages:

https://github.com/MarkAYoder/PRUCookbook

github.com/.../pru-pid-motor

Please may someone send me some great links

Thank you,

Fisher

  • Hello Fisher,

    I am currently working on migrating the PRU wiki pages. Before the end of the year, all PRU wiki pages should be migrated to either the Linux & RTOS SDK documentation or to App Notes on the associated product page.

    Linux PRU documentation is here
    RTOS PRU documentation is still being created
    AM3358 App Notes will show up here (search titles for PRU)

    The Beaglebone community also has great PRU resources. Since their code and documentation is not written by TI, you will need to go to the Beaglebone forums if you have questions about it.

    I would start by reading the PRU-ICSS Getting Started Guide on Linux.

    There are multiple ways you can implement inter-processor communication (IPC) between ARM and PRU. What you decide to implement depends on your design needs (e.g., are there latency requirements? Throughput requirements?). Feel free to create a separate thread to discuss IPC subjects.

    Regards,

    Nick

  • Hi Nick,

    Thanks a lot for the information, yes, that's going to help a lot.

    I didn't see PDF documents as part of the SDK pages, does one have to take a snapshot themself?

    Is there anything which links to the SDK page you linked to?  This is so in future I can know how to search for other architectures and other information this SDK documentation may cover.

    The processor wiki pages which expire at the end of this year come up as the most common when searching online, so, I think the SDK ones you've linked aren't as well known and if its easier to find them, then people can switch.

    Its probably a good idea to link to the SDK pages from from the wiki pages so people can transition easier, I was trying to find links near the red banner at the top.

    If all goes well, I'll likely be attempting to get Simulink to put PRU code onto the Beaglebone black or other board, likely using S-Functions if that's possible.

    The BeagleBone Black is reasonably well supported for Linux and ARM in Simulink, but I think the C2000 families are a lot better supported for low level IO and hardware blocks.

    Thankfully, the TI compiler tools are used as plugins, so if one gets to know them well, it will be a lot easier for custom things.

    Do you have an advice for guides for PRU and Simulink integration?

    Thanks,

    Fisher

  • Hi Nick,

    I've looked further, and have seen that the link you sent is for the "AM335X" architecture, when one attempts to get to the same page without your link, it seems to take one to something that is either generic for most architectures, or it may be for your most advanced families, but there isn't a mention of what architecture it represents.

    Here's the link I found, and I can't find how to select the architecture one needs:

    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_PRU-ICSS_PRU_ICSSG.html

    Below is what you sent me, and has the architecture in the link, not like the general one above which I found:

    software-dl.ti.com/.../Foundational_Components_PRU-ICSS_PRU_ICSSG.html

    For code and application examples, are they in the SDK when you download it?  I've seen the page you sent me links to the "PRU hands on labs" wiki page which will later be deleted.

    Thanks,

    Fisher

  • Hello Fisher,

    There are options to use Simulink to program the ARM core of the AM335x. I am not aware of any tools to develop firmware for the PRU core using Simulink.

    As per http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_PRU-ICSS_PRU_ICSSG.html :  "The PRU Software Support Package is built into the Linux Processor SDK in the ‘<%SDK_INSTALL_DIR%>/example-applications/’ folder". Alternatively, here is the PSSP git repo.

    PRU-ICSS / PRU_ICSSG Feature Comparison Across Devices discusses the differences in PRU subsystems across different devices.

    Regards,

    Nick

  • Hi Nick,

    Thanks a lot, I think you've answered about all my questions.

    My last one is how to find the docs for different architectures.

    Your link has for AM335x, how do I find others, a list of them for different professor families (not just the PRU, but all other stuff the SDK pages cover)?

    Thanks,

    Fisher

  • Hello Fisher,

    Software: Most of our PRU getting started examples and labs were developed on AM335x. You can find other PRU software in the PRU Software Support Package (PSSP) under examples/am437x (or am57xx, am65x, etc). The PSSP in Linux Processor SDK 6.3 and later includes new getting started labs under the labs/ folder. The Getting Started Labs are not quite published yet, but they also include code for different processors.

    Hardware: Check out the PRU chapter of each processor's technical reference manual for in depth documentation of each processor's implementation of PRU-ICSS/ICSSG. You can find applicable app notes for each processor in the processor's product page under "Technical Documentation" - search for PRU to find PRU-related documents. I would start by looking at the feature comparison app note and the Migration Guide app note.

    Regards,

    Nick

  • Unless you were asking about where to get SDK documentation for each part. Go to the part's software download page (e.g., AM437x Linux SDK), and search for "SDK Documentation".

    Regards,

    Nick

  • Hi Nick,

    Great, yes, your last answer is what I was looking for.  It would be a lot easier if one was able to select the processor family on the SDK documentation page, instead of going through the SDK downloads page.

    Thanks, I've chosen the BeagleBone AI, and now know where to find the SDK documentation for it.

    I'll also see the native Linux tools available, it seems there is an onboard PRU compiler as part of the Linux distro, at least examples are shown for the BeagleBone Black in the PRU Cookbook.

    Thanks,

    Fisher