README.md
# Pru
## BeagleBone Black PRU helper library for [Nerves](http://nerves-project.com)
Basic library that enables easy interaction with the PRU cores present
in the BeagleBone Black.
## Installation
[From Hex](https://hex.pm/docs/publish), the package can be installed
by adding `pru` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:pru, "~> 0.1.0"}
]
end
```
## Basic Usage
In a Nerves project module
```elixir
require Pru
```
Then within your functions you can call the following to control the
operation of the PRU cores.
```elixir
Pru.init_pins # Enables pins to be used as inputs and outputs
Pru.pin_in 'P8_11' # Allows PRUs to access P8_11 as an input
Pru.pin_out 'P8_12' # Allows PRUs to access P8_12 as an output
Pru.halt 1 # Halts PRU core 1
Pru.boot 1 # Boots PRU core 1
# Boot will fail if firmware is not loaded to /lib/firmware/am335x-pru1-fw
Pru.reboot 0 # Reboots PRU core 0
# Boot will fail if firmware is not loaded to /lib/firmware/am335x-pru0-fw
```
## TODO
Add RPMsg messaging support
## Docs
Documentation can be found at [https://hexdocs.pm/pru](https://hexdocs.pm/pru).