ECE497 BeagleBone PRU

Team members: Mark A. Yoder, Bryan Correll, Andrew Miller, Peter Ngo, James Popenhagen

Executive Summary
Give two sentence intro to the project.

Give two sentences telling what works.

Give two sentences telling what isn't working.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Installation Instructions
Give step by step instructions on how to install your project on the SPEd2 image.


 * Include your github path as a link like this: https://github.com/MarkAYoder/gitLearn.
 * Include any additional packages installed via opkg.
 * Include kernel mods.
 * If there is extra hardware needed, include links to where it can be obtained.

User Instructions
Always run the following before doing anything with the PRU: beagle$ modprobe uio_pruss

GPIO_PWM_PRU Example
This example is located in the GPIO_PWM_PRU directory in the AM335x_PRU_BeagleBone git repository, and can be pulled with the following: git clone git://github.com/millerap/AM335x_PRU_BeagleBone

This example uses the gpio and delay loops to approximate a PWM using the user LEDs on the BeagleBone. It is based on an example provided by Lyren Brown and documented by boxysean at http://blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/

In GPIO_PWM_PRU all of the complicated Makefiles and directories used to make a multitude of examples at once have been stripped away to allow the user to compile one individual program that will run on the PRU.

The readme.txt file in the GPIO_PWM_PRU directory provides a walkthrough for compiling and running blinker on the BeagleBone.

The first step to compiling a program for the PRU is to make sure prussdrv.c is made and up to date. This is the file provided by TI that contains all of the C functions that allow for communication with the PRU. To do this, do the following: cd /AM335x_PRU_BeagleBone/GPIO_PWM_PRU/interface make CROSS_COMPILE=""

CROSS_COMPILE is specified as "" because this is running on the BeagleBone itself and the Makefile is setup to defaultly cross compile the code from another linux machine.

Once this is completed, the pasm_source must be set for the BeagleBone's linux operating system: cd ../utils/pasm_source ./linuxbuild

Note: The above instructions need to be done for every time the BeagleBone boots up and these directories should be included with any code that you write for the PRU

Now, the BeagleBone is ready to compile the example code. Navigate to the example's root directory again: cd ../../ make CROSS_COMPILE=""

This will compile the blinker.c file and output it to the bin folder. After this point, the assembly file needs to be compiled into a .bin file. This is done in the bin folder. cd bin make

Now, there should be a blinker.bin file in the folder. running the blinker executabile will put the blinker.bin file on the PRU and start it running. Use the following: ./blinker

Highlights
Here is where you brag about what your project can do.

Include a YouTube demo.

Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown
Milestones

10/22: We should have all research done. Update documentation with every Milestone.

10/26: We should be able to show something, an example or simple implementation.

10/29: Ability to send different lengths to turn on an LEDs.

10/31: Ability to send different lengths to multiple LEDs.

11/2: We should be able to demo our overall work, possibly have some things to fix before presentation.

11/4: Finalize presentation

11/6: Presentation

Research

Most of our research has come from internet resources listed below:
 * TI PRU Resources
 * Example for Running Code on the PRU
 * PRU Assembly Instructions
 * Initializing PRU in C
 * AM335X Datasheet

Future Work
Suggest addition things that could be done with this project.

Conclusions
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.