diff --git a/.gitmodules b/.gitmodules
index 0c170ef15f085e53d111e2b9b65bd7a763ec4456..4d6dbcd60e093de50986935c6af91681765b843e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
 [submodule "books/beaglebone-cookbook/code"]
 	path = books/beaglebone-cookbook/code
 	url = https://git.beagleboard.org/beagleboard/beaglebone-cookbook-code.git
+[submodule "books/pru-cookbook/code"]
+	path = books/pru-cookbook/code
+	url = https://git.beagleboard.org/beagleboard/pru-cookbook-code
diff --git a/books/pru-cookbook/01case/code/blink.sim b/books/pru-cookbook/01case/code/blink.sim
deleted file mode 100644
index 212a21689e76170ad44112b926a0c4300e0c03a4..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/blink.sim
+++ /dev/null
@@ -1,7 +0,0 @@
-/* From: https://simppru.readthedocs.io/en/latest/examples/led_blink/ */
-while : 1 == 1 {
-    digital_write(P1_31, true);
-    delay(250);     /* Delay 250 ms */
-    digital_write(P1_31, false);
-    delay(250);
-}
diff --git a/books/pru-cookbook/01case/code/circle.py b/books/pru-cookbook/01case/code/circle.py
deleted file mode 100755
index 1feb41cc089af343f1f2c490deef92853965bee4..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/circle.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python3
-
-"""A demo client for Open Pixel Control
-http://github.com/zestyping/openpixelcontrol
-
-Runs an LED around in a circle
-
-"""
-
-import time
-import opc
-
-ADDRESS = 'localhost:7890'
-
-# Create a client object
-client = opc.Client(ADDRESS)
-
-# Test if it can connect
-if client.can_connect():
-    print('connected to %s' % ADDRESS)
-else:
-    # We could exit here, but instead let's just print a warning
-    # and then keep trying to send pixels in case the server
-    # appears later
-    print('WARNING: could not connect to %s' % ADDRESS)
-
-# Send pixels forever
-STR_LEN=16
-for i in range(STR_LEN):
-    leds = [(0, 0, 0)] * STR_LEN
-leds[0] = (0, 127, 0)
-
-while True:
-    tmp = leds[0]
-    for i in range(STR_LEN-1):
-        leds[i] = leds[i+1]
-    leds[-1] = tmp
-    if client.put_pixels(leds, channel=0):
-        print('sent')
-    else:
-        print('not connected')
-    time.sleep(0.1)
-
diff --git a/books/pru-cookbook/01case/code/e1.31-test.py b/books/pru-cookbook/01case/code/e1.31-test.py
deleted file mode 100755
index 6016c9eb9e879a6d21f8ccf8fd20ed32bd4c45b3..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/e1.31-test.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python3
-# Controls a NeoPixel (WS2812) string via E1.31 and FPP
-# https://pypi.org/project/sacn/
-# https://github.com/FalconChristmas/fpp/releases
-import sacn
-import time
-
-# provide an IP-Address to bind to if you are using Windows and want to use multicast
-sender = sacn.sACNsender("192.168.7.1")
-sender.start()							# start the sending thread
-sender.activate_output(1)		# start sending out data in the 1st universe
-sender[1].multicast = False # set multicast to True
-sender[1].destination = "192.168.7.2"  # or provide unicast information.
-sender.manual_flush = True # turning off the automatic sending of packets
-# Keep in mind that if multicast is on, unicast is not used
-LEDcount = 24
-# Have green fade is as it goes
-data = []
-for i in range(LEDcount):
-	data.append(0)		# Red
-	data.append(i)		# Green
-	data.append(0)		# Blue
-sender[1].dmx_data = data
-sender.flush()
-time.sleep(0.5)
-
-# Turn off all LEDs
-data=[]
-for i in range(3*LEDcount):
-	data.append(0)
-sender.flush()
-sender[1].dmx_data = data
-time.sleep(0.5)
-
-# Have red fade in
-data = []
-for i in range(LEDcount):
-	data.append(i)
-	data.append(0)
-	data.append(0)
-sender[1].dmx_data = data
-sender.flush()
-time.sleep(0.25)
-
-# Make LED circle 5 times
-for j in range(15):
-	for i in range(LEDcount-1):
-		data[3*i+0] = 0
-		data[3*i+1] = 0
-		data[3*i+2] = 0
-		data[3*i+3] = 0
-		data[3*i+4] = 64
-		data[3*i+5] = 0
-		sender[1].dmx_data = data
-		sender.flush()
-		time.sleep(0.02)
-# Wrap around
-	i = LEDcount-1
-	data[0] = 0
-	data[1] = 64
-	data[2] = 0
-	data[3*i+0] = 0
-	data[3*i+1] = 0
-	data[3*i+2] = 0
-	sender[1].dmx_data = data
-	sender.flush()
-	time.sleep(0.02)
-    
-time.sleep(2)  # send the data for 10 seconds
-sender.stop()  # do not forget to stop the sender
diff --git a/books/pru-cookbook/01case/code/encoder_setup.sh b/books/pru-cookbook/01case/code/encoder_setup.sh
deleted file mode 100755
index ffc4ad68842fb6314173b523425295893cd05fc1..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/encoder_setup.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-# Configure the pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-
-# Configure eQEP pins
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_92 P9_27 P8_35 P8_33 P8_12 P8_11 P8_41 P8_42"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_31 P2_34 P2_10 P2_24 P2_33"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin qep
-    config-pin -q $pin
-done
-
-##########################################
-# Configure PRU pins
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P8_16 P8_15"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_09 P2_18"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruin
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/01case/code/fire.fseq b/books/pru-cookbook/01case/code/fire.fseq
deleted file mode 100644
index 4bad5ae76476a87bb7bb71e853e3412b1fc63f29..0000000000000000000000000000000000000000
Binary files a/books/pru-cookbook/01case/code/fire.fseq and /dev/null differ
diff --git a/books/pru-cookbook/01case/code/logic_install.sh b/books/pru-cookbook/01case/code/logic_install.sh
deleted file mode 100644
index 7fb76122b55b55da9e50ea2a084b1242b8e30b78..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/logic_install.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-# Instructions for installing BeagleLogic
-# https://beaglelogic.readthedocs.io/en/latest/index.html
-# From: https://github.com/abhishek-kakkar/BeagleLogic/wiki
-
-# beaglelogic is installed on the 4.9 kernel, but not the 4.14, so
-# if you are running 4.14, switch to 4.9
-sudo /opt/scripts/tools/update_kernel.sh --lts-4_9
-sudo reboot
-
-git clone https://github.com/abhishek-kakkar/BeagleLogic
-cd BeagleLogic
-sudo ./install.sh
-sudo reboot
-
-# Now the kernel driver headers
-sudo apt install linux-headers-`uname -r`
-
-modinfo beaglelogic
-modprobe beaglelogic
-
-# From: https://beaglelogic.readthedocs.io/en/latest
-
-# Here's what works from abhishek
-git clone https://github.com/abhishek-kakkar/BeagleLogic
-cd BeagleLogic
-# 1. Get the dts file from this gist (https://gist.github.com/abhishek-kakkar/0761ef7b10822cff4b3efd194837f49c)
-
-# 2. cd to 'BeagleLogic/kernel' directory. Put the dts file there. (edited)
-# 3. Run 'make overlay'
-# 4. Run 'sudo cp -v beaglelogic-00A0.dtbo /lib/firmware/' (edited)
-# 5. Run 'sudo update-initramfs -u -k ``uname -r``' (edited)
-# (single backticks only, apparently Slack treats single backtick as code) (edited)
-# 6. Reboot
-# 7. Browse to bone:4000
diff --git a/books/pru-cookbook/01case/code/main_pru1.c b/books/pru-cookbook/01case/code/main_pru1.c
deleted file mode 100644
index 8d751b3e65e06a8dd4e47c9ef6f28f370d60ca24..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/main_pru1.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Source Modified by Zubeen Tolani < ZeekHuge - zeekhuge@gmail.com >
- * Based on the examples distributed by TI
- *
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-				  
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_pru1.h"
-
-// The function is defined in pru1_asm_blinky.asm in same dir
-// We just need to add a declaration here, the defination can be
-// seperately linked
-extern void start(void);
-
-void main(void)
-{
-    /* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	start();
-}
-
diff --git a/books/pru-cookbook/01case/code/my-config.json b/books/pru-cookbook/01case/code/my-config.json
deleted file mode 100644
index d1534cfff15f46bbabb10068c01542bb721583c4..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/my-config.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-	"outputMode": "ws281x",
-	"outputMapping": "original-ledscape",
-	"demoMode": "fade",
-	"ledsPerStrip": 16,
-	"usedStripCount": 1,
-	"colorChannelOrder": "BRG",
-	"opcTcpPort": 7890,
-	"opcUdpPort": 7890,
-	"enableInterpolation": false,
-	"enableDithering": false,
-	"enableLookupTable": true,
-	"lumCurvePower": 2.0000,
-	"whitePoint": {
-		"red": 0.9000,
-		"green": 1.0000,
-		"blue": 1.0000
-	}
-}
diff --git a/books/pru-cookbook/01case/code/opc.py b/books/pru-cookbook/01case/code/opc.py
deleted file mode 100755
index 36a3bbd6b76e7ff8e6660ea7b163da2271bbe696..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/opc.py
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/bin/env python
-
-"""Python Client library for Open Pixel Control
-http://github.com/zestyping/openpixelcontrol
-
-Sends pixel values to an Open Pixel Control server to be displayed.
-http://openpixelcontrol.org/
-
-Recommended use:
-
-    import opc
-
-    # Create a client object
-    client = opc.Client('localhost:7890')
-
-    # Test if it can connect (optional)
-    if client.can_connect():
-        print('connected to %s' % ADDRESS)
-    else:
-        # We could exit here, but instead let's just print a warning
-        # and then keep trying to send pixels in case the server
-        # appears later
-        print('WARNING: could not connect to %s' % ADDRESS)
-
-    # Send pixels forever at 30 frames per second
-    while True:
-        my_pixels = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]
-        if client.put_pixels(my_pixels, channel=0):
-            print('...')
-        else:
-            print('not connected')
-        time.sleep(1/30.0)
-
-"""
-
-import socket
-import struct
-import sys
-
-SET_PIXEL_COLOURS = 0  # "Set pixel colours" command (see openpixelcontrol.org)
-
-
-class Client(object):
-    def __init__(self, server_ip_port, long_connection=True, verbose=False):
-        """Create an OPC client object which sends pixels to an OPC server.
-
-        server_ip_port should be an ip:port or hostname:port as a single string.
-        For example: '127.0.0.1:7890' or 'localhost:7890'
-
-        There are two connection modes:
-        * In long connection mode, we try to maintain a single long-lived
-          connection to the server.  If that connection is lost we will try to
-          create a new one whenever put_pixels is called.  This mode is best
-          when there's high latency or very high framerates.
-        * In short connection mode, we open a connection when it's needed and
-          close it immediately after.  This means creating a connection for each
-          call to put_pixels. Keeping the connection usually closed makes it
-          possible for others to also connect to the server.
-
-        A connection is not established during __init__.  To check if a
-        connection will succeed, use can_connect().
-
-        If verbose is True, the client will print debugging info to the console.
-
-        """
-        self.verbose = verbose
-
-        self._long_connection = long_connection
-
-        self._ip, self._port = server_ip_port.split(':')
-        self._port = int(self._port)
-
-        self._socket = None  # will be None when we're not connected
-
-    def _debug(self, m):
-        if self.verbose:
-            print('    %s' % str(m))
-
-    def _ensure_connected(self):
-        """Set up a connection if one doesn't already exist.
-
-        Return True on success or False on failure.
-
-        """
-        if self._socket:
-            self._debug('_ensure_connected: already connected, doing nothing')
-            return True
-
-        try:
-            self._debug('_ensure_connected: trying to connect...')
-            self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-            self._socket.settimeout(1)
-            self._socket.connect((self._ip, self._port))
-            self._debug('_ensure_connected:    ...success')
-            return True
-        except socket.error:
-            self._debug('_ensure_connected:    ...failure')
-            self._socket = None
-            return False
-
-    def disconnect(self):
-        """Drop the connection to the server, if there is one."""
-        self._debug('disconnecting')
-        if self._socket:
-            self._socket.close()
-        self._socket = None
-
-    def can_connect(self):
-        """Try to connect to the server.
-
-        Return True on success or False on failure.
-
-        If in long connection mode, this connection will be kept and re-used for
-        subsequent put_pixels calls.
-
-        """
-        success = self._ensure_connected()
-        if not self._long_connection:
-            self.disconnect()
-        return success
-
-    def put_pixels(self, pixels, channel=0):
-        """Send the list of pixel colors to the OPC server on the given channel.
-
-        channel: Which strand of lights to send the pixel colors to.
-            Must be an int in the range 0-255 inclusive.
-            0 is a special value which means "all channels".
-
-        pixels: A list of 3-tuples representing rgb colors.
-            Each value in the tuple should be in the range 0-255 inclusive. 
-            For example: [(255, 255, 255), (0, 0, 0), (127, 0, 0)]
-            Floats will be rounded down to integers.
-            Values outside the legal range will be clamped.
-
-        Will establish a connection to the server as needed.
-
-        On successful transmission of pixels, return True.
-        On failure (bad connection), return False.
-
-        The list of pixel colors will be applied to the LED string starting
-        with the first LED.  It's not possible to send a color just to one
-        LED at a time (unless it's the first one).
-
-        """
-        self._debug('put_pixels: connecting')
-        is_connected = self._ensure_connected()
-        if not is_connected:
-            self._debug('put_pixels: not connected.  ignoring these pixels.')
-            return False
-
-        # build OPC message
-        command = SET_PIXEL_COLOURS
-        header = struct.pack('>BBH', channel, SET_PIXEL_COLOURS, len(pixels)*3)
-        pieces = [struct.pack(
-                      'BBB',
-                      min(255, max(0, int(r))),
-                      min(255, max(0, int(g))),
-                      min(255, max(0, int(b)))
-                  ) for r, g, b in pixels]
-        if bytes is str:
-            message = header + ''.join(pieces)
-        else:
-            message = header + b''.join(pieces)
-
-        self._debug('put_pixels: sending pixels to server')
-        try:
-            self._socket.send(message)
-        except socket.error:
-            self._debug('put_pixels: connection lost.  could not send pixels.')
-            self._socket = None
-            return False
-
-        if not self._long_connection:
-            self._debug('put_pixels: disconnecting')
-            self.disconnect()
-
-        return True
diff --git a/books/pru-cookbook/01case/code/pru1-servo.asm b/books/pru-cookbook/01case/code/pru1-servo.asm
deleted file mode 100644
index c8e66e5234214137be6c7f7a781083c21061190e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/pru1-servo.asm
+++ /dev/null
@@ -1,162 +0,0 @@
-;*
-;* Copyright (C) 2016 Zubeen Tolani <ZeekHuge - zeekhuge@gmail.com>
-;*
-;* This file is as an example to show how to develope
-;* and compile inline assembly code for PRUs
-;*
-;* This program is free software; you can redistribute it and/or modify
-;* it under the terms of the GNU General Public License version 2 as
-;* published by the Free Software Foundation.
-
-
-	.cdecls "main_pru1.c"
-
-DELAY	.macro time, reg
-	LDI32	reg, time
-	QBEQ	$E?, reg, 0
-$M?:	SUB	reg, reg, 1
-	QBNE	$M?, reg, 0
-$E?:	
-	.endm
-	
-
-	.clink
-	.global start
-start:
-	LDI 	R30, 0xFFFF
-	DELAY 	10000000, r11
-	LDI		R30, 0x0000
-	DELAY 	10000000, r11
-; 	JMP	start	
-
-; 	HALT
-
-
-; these pin definitions are specific to SD-101C Robotics Cape
-    .asg    r30.t8,     CH1BIT  ; P8_27
-	.asg    r30.t10,    CH2BIT	; P8_28
-	.asg    r30.t9,     CH3BIT	; P8_29
-	.asg	r30.t11,	CH4BIT	; P8_30
-	.asg	r30.t6,		CH5BIT	; P8_39
-	.asg	r30.t7,		CH6BIT	; P8_40
-	.asg	r30.t4,		CH7BIT	; P8_41
-	.asg	r30.t5,		CH8BIT	; P8_42
-
-	.asg    C4,     CONST_SYSCFG         
-	.asg    C28,    CONST_PRUSHAREDRAM   
- 
-	.asg	0x22000,	PRU0_CTRL
-	.asg    0x24000,    PRU1_CTRL       ; page 19
-	.asg    0x28,       CTPPR0          ; page 75
- 
-	.asg	0x000,	OWN_RAM
-	.asg	0x020,	OTHER_RAM
-	.asg    0x100,	SHARED_RAM       ; This is so prudebug can find it.
-
-	LBCO	&r0, CONST_SYSCFG, 4, 4		; Enable OCP master port
-	CLR 	r0, r0, 4					; Clear SYSCFG[STANDBY_INIT] to enable OCP master port
-	SBCO	&r0, CONST_SYSCFG, 4, 4
-	
-; Configure the programmable pointer register for PRU0 by setting c28_pointer[15:0]
-	LDI     r0, SHARED_RAM              ; Set C28 to point to shared RAM
-	LDI32   r1, PRU1_CTRL + CTPPR0		; Note we use beginning of shared ram unlike example which
-	SBBO    &r0, r1, 0, 4				;  page 25
-	
-	LDI		r9, 0x0				; erase r9 to use to use later
-	
-	LDI 	r0, 0x0				; clear internal counters
-	LDI 	r1, 0x0	
-	LDI 	r2, 0x0
-	LDI 	r3, 0x0
-	LDI 	r4, 0x0
-	LDI 	r5, 0x0
-	LDI 	r6, 0x0
-	LDI32 	r7, 0x0
-	LDI 	r30, 0x0				; turn off GPIO outputs
-	
-
-; Beginning of loop, should always take 48 instructions to complete
-CH1:			
-	QBEQ	CLR1, r0, 0						; If timer is 0, jump to clear channel
-	SET		r30, CH1BIT						; If non-zero turn on the corresponding channel
-	SUB		r0, r0, 1						; Subtract one from timer
-	CLR		r9, r9.t1						; waste a cycle for timing
-	SBCO	&r9, CONST_PRUSHAREDRAM, 0, 4	; write 0 to shared memory
-CH2:			
-	QBEQ	CLR2, r1, 0
-	SET		r30, CH2BIT
-	SUB		r1, r1, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 4, 4
-CH3:			
-	QBEQ	CLR3, r2, 0
-	SET		r30, CH3BIT
-	SUB		r2, r2, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 8, 4
-CH4:			
-	QBEQ	CLR4, r3, 0
-	SET		r30, CH4BIT
-	SUB		r3, r3, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 12, 4
-CH5:			
-	QBEQ	CLR5, r4, 0
-	SET		r30, CH5BIT
-	SUB		r4, r4, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 16, 4
-CH6:			
-	QBEQ	CLR6, r5, 0
-	SET		r30, CH6BIT
-	SUB		r5, r5, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 20, 4
-CH7:			
-	QBEQ	CLR7, r6, 0
-	SET		r30, CH7BIT
-	SUB		r6, r6, 1
-	CLR		r9, r9.t1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 24, 4
-CH8:			
-	QBEQ	CLR8, r7, 0
-	SET		r30, CH8BIT
-	SUB		r7, r7, 1
-	SBCO	&r9, CONST_PRUSHAREDRAM, 28, 4
-
-	QBA		CH1								; return to beginning of loop
-	; no need to waste a cycle for timing here because of the QBA above
-	
-		
-CLR1:
-	CLR		r30, CH1BIT						; turn off the corresponding channel
-	LBCO	&r0, CONST_PRUSHAREDRAM, 0, 4	; Load new timer register
-	QBA		CH2
-CLR2:
-	CLR		r30, CH2BIT
-	LBCO	&r1, CONST_PRUSHAREDRAM, 4, 4
-	QBA		CH3
-CLR3:
-	CLR		r30, CH3BIT
-	LBCO	&r2, CONST_PRUSHAREDRAM, 8, 4
-	QBA		CH4
-CLR4:
-	CLR		r30, CH4BIT
-	LBCO	&r3, CONST_PRUSHAREDRAM, 12, 4
-	QBA		CH5
-CLR5:
-	CLR		r30, CH5BIT
-	LBCO	&r4, CONST_PRUSHAREDRAM, 16, 4
-	QBA		CH6
-CLR6:
-	CLR		r30, CH6BIT
-	LBCO	&r5, CONST_PRUSHAREDRAM, 20, 4
-	QBA		CH7
-CLR7:
-	CLR		r30, CH7BIT
-	LBCO	&r6, CONST_PRUSHAREDRAM, 24, 4
-	QBA		CH8
-CLR8:
-	CLR		r30, CH8BIT
-	LBCO	&r7, CONST_PRUSHAREDRAM, 28, 4
-	QBA		CH1								; return to beginning of loop
diff --git a/books/pru-cookbook/01case/code/servo-test.c b/books/pru-cookbook/01case/code/servo-test.c
deleted file mode 100644
index 1f94e274e573223dcf84b4bd111f9a3df16ac867..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/servo-test.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* 
- *
- *  servo tester
- *  (c) Copyright 2016
- *  Mark A. Yoder, 20-July-2016
- *
- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include "robotics_cape_defs.h"
-
-#define PRU_ADDR		0x4A300000		// Start of PRU memory Page 184 am335x TRM
-#define PRU_LEN			0x80000			// Length of PRU memory
-#define PRU_SHAREDMEM	0x10000			// Offset to shared memory
-
-unsigned int	*prusharedMem_32int_ptr;	// Points to the start of the shared memory
-
-/*******************************************************************************
-* int send_servo_pulse_us(int ch, int us)
-* 
-* Sends a single pulse of duration us (microseconds) to a single channel (ch)
-*******************************************************************************/
-int send_servo_pulse_us(int ch, int us) {
-	// Sanity Checks
-	if(ch<1 || ch>SERVO_CHANNELS){
-		printf("ERROR: Servo Channel must be between 1&%d\n", SERVO_CHANNELS);
-		return -1;
-	} if(prusharedMem_32int_ptr == NULL){
-		printf("ERROR: PRU servo Controller not initialized\n");
-		return -1;
-	}
-	// PRU runs at 200Mhz. find #loops needed
-	unsigned int num_loops = ((us*200.0)/PRU_SERVO_LOOP_INSTRUCTIONS); 
-	// printf("num_loops: %d\n", num_loops);
-	// write to PRU shared memory
-	prusharedMem_32int_ptr[ch-1] = num_loops;
-	return 0;
-}
-
-int main(int argc, char *argv[])
-{
-	unsigned int	*pru;		// Points to start of PRU memory.
-	int	fd;
-	printf("Servo tester\n");
-	
-	fd = open ("/dev/mem", O_RDWR | O_SYNC);
-	if (fd == -1) {
-		printf ("ERROR: could not open /dev/mem.\n\n");
-		return 1;
-	}
-	pru = mmap (0, PRU_LEN, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PRU_ADDR);
-	if (pru == MAP_FAILED) {
-		printf ("ERROR: could not map memory.\n\n");
-		return 1;
-	}
-	close(fd);
-	printf ("Using /dev/mem.\n");
-	
-	prusharedMem_32int_ptr = pru + PRU_SHAREDMEM/4;	// Points to start of shared memory
-
-	// while(1) {
-	// 	printf("value to store: ");
-	// 	scanf("%d", &value);
-	// 	printf("Storing: %d in %lx\n", value, addr);
-	// 	pru[addr/4] = value;
-	// }
-	
-	int i;
-	while(1) {
-		for(i=1; i<=SERVO_CHANNELS; i++) {
-			send_servo_pulse_us(i, 10*i);
-		}
-		usleep(200);
-	}
-	
-	if(munmap(pru, PRU_LEN)) {
-		printf("munmap failed\n");
-	} else {
-		printf("munmap succeeded\n");
-	}
-}
-
diff --git a/books/pru-cookbook/01case/code/servos_setup.sh b/books/pru-cookbook/01case/code/servos_setup.sh
deleted file mode 100755
index 330e8f34e30d7fd97d9368861ded65817222e903..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/01case/code/servos_setup.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P8_27 P8_28 P8_29 P8_30 P8_39 P8_40 P8_41 P8_42"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_35 P1_35 P1_02 P1_04"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
\ No newline at end of file
diff --git a/books/pru-cookbook/02start/code/Makefile b/books/pru-cookbook/02start/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/02start/code/ai.notes b/books/pru-cookbook/02start/code/ai.notes
deleted file mode 100644
index d11ac1d4288af4ac3f1cd5a5aa1ac6cec14cb97f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/ai.notes
+++ /dev/null
@@ -1,59 +0,0 @@
-Here are some differences between the AI and the Black for the PRU.
-
-Black
-/sys/devices/platform/ocp/
-    4a326004.pruss-soc-bus/
-        4a300000.pruss/
-            4a334000.pru/remoteproc/remoteproc1
-            4a338000.pru/remoteproc/remoteproc2
-        
-        
-AI
-/sys/devices/platform/44000000.ocp/
-    4b226004.pruss-soc-bus/
-        4b200000.pruss/
-            4b234000.pru/remoteproc/remoteproc0
-            4b238000.pru/remoteproc/remoteproc1
-    
-    
-    4b2a6004.pruss-soc-bus/
-        4b280000.pruss/
-            4b2b4000.pru/remoteproc/remoteproc2
-            4b2b8000.pru/remoteproc/remoteproc3
-            
-LED addresses
-https://github.com/beagleboard/BeagleBoard-DeviceTrees/blob/v4.19.x-ti/src/arm/am5729-beagleboneai.dts#L134-L171
-		led0 {
-			label = "beaglebone:green:usr0";
-			gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "heartbeat";
-			default-state = "off";
-		};
-
-		led1 {
-			label = "beaglebone:green:usr1";
-			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "mmc0";
-			default-state = "off";
-		};
-
-		led2 {
-			label = "beaglebone:green:usr2";
-			gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "cpu";
-			default-state = "off";
-		};
-
-		led3 {
-			label = "beaglebone:green:usr3";
-			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "mmc1";
-			default-state = "off";
-		};
-
-		led4 {
-			label = "beaglebone:green:usr4";
-			gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "phy0assoc";
-
-GPIO Addresses:  Page 404 for TRM
\ No newline at end of file
diff --git a/books/pru-cookbook/02start/code/hello.pru0.c b/books/pru-cookbook/02start/code/hello.pru0.c
deleted file mode 100644
index ab61e79eaafed3a7198532358d9ae3415559048f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello.pru0.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	uint32_t *gpio1 = (uint32_t *)GPIO1;
-	
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<10; i++) {
-		gpio1[GPIO_SETDATAOUT]   = USR3;	// The the USR3 LED on
-
-		__delay_cycles(500000000/5);    	// Wait 1/2 second
-
-		gpio1[GPIO_CLEARDATAOUT] = USR3;
-
-		__delay_cycles(500000000/5); 
-
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr3/trigger\0none\0" \
-	"\0\0";
diff --git a/books/pru-cookbook/02start/code/hello.pru1_1.c b/books/pru-cookbook/02start/code/hello.pru1_1.c
deleted file mode 100644
index 8cb8146f74c88ee890a5a251108c19642cdb0c75..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello.pru1_1.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	uint32_t *gpio3 = (uint32_t *)GPIO3;
-	
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<10; i++) {
-		gpio3[GPIO_SETDATAOUT]   = USR3;	// The the USR3 LED on
-
-		__delay_cycles(500000000/5);    	// Wait 1/2 second
-
-		gpio3[GPIO_CLEARDATAOUT] = USR3;
-
-		__delay_cycles(500000000/5); 
-
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr3/trigger\0none\0" \
-	"\0\0";
diff --git a/books/pru-cookbook/02start/code/hello2.pru0.c b/books/pru-cookbook/02start/code/hello2.pru0.c
deleted file mode 100644
index d268d33b637cb9d51a9928589a69ce158101a4e2..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru0.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	uint32_t *gpio1 = (uint32_t *)GPIO1;
-	
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<10; i++) {
-		gpio1[GPIO_SETDATAOUT]   = USR1;			// The the USR3 LED on
-		gpio1[GPIO_CLEARDATAOUT] = USR2;
-		
-		// __R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio1[GPIO_CLEARDATAOUT] = USR1;
-        gpio1[GPIO_SETDATAOUT]   = USR2;
-		
-		// __R30 &= ~gpio;		// Clearn the GPIO pin
-
-		__delay_cycles(500000000/5); 
-
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"\0\0";
diff --git a/books/pru-cookbook/02start/code/hello2.pru1.c b/books/pru-cookbook/02start/code/hello2.pru1.c
deleted file mode 100644
index 15df54495ecf681b3707a42dfaa6dfae65990559..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru1.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	uint32_t *gpio1 = (uint32_t *)GPIO1;
-	
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<10; i++) {
-		gpio1[GPIO_SETDATAOUT]   = USR1;			// The the USR3 LED on
-		gpio1[GPIO_CLEARDATAOUT] = USR2;
-		
-		// __R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio1[GPIO_CLEARDATAOUT] = USR1;
-        gpio1[GPIO_SETDATAOUT]   = USR2;
-		
-		// __R30 &= ~gpio;		// Clearn the GPIO pin
-
-		__delay_cycles(500000000/5); 
-
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"\0\0";
-
diff --git a/books/pru-cookbook/02start/code/hello2.pru1_0.c b/books/pru-cookbook/02start/code/hello2.pru1_0.c
deleted file mode 100644
index 564e1bc9b8c0fe7df8c21df6594f519d92470690..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru1_0.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	// uint32_t *gpio1 = (uint32_t *)GPIO1;
-	// uint32_t *gpio2 = (uint32_t *)GPIO2;
-	uint32_t *gpio3 = (uint32_t *)GPIO3;
-	// uint32_t *gpio4 = (uint32_t *)GPIO4;
-	uint32_t *gpio5 = (uint32_t *)GPIO5;
-	uint32_t *gpio6 = (uint32_t *)GPIO6;
-	// uint32_t *gpio7 = (uint32_t *)GPIO7;
-	uint32_t *gpio8 = (uint32_t *)GPIO8;
-	
-	// Select which pins to toggle.  These are all on pru1_1
-	uint32_t gpio = P9_16 | P8_15 | P8_16 | P8_26;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<100; i++) {
-		gpio5[GPIO_SETDATAOUT]   = USR1;		// Turn the USR1 LED on
-		gpio3[GPIO_CLEARDATAOUT] = USR2;
-		gpio8[GPIO_SETDATAOUT]   = P8_17;
-		gpio6[GPIO_SETDATAOUT]   = P9_25;
-		
-		__R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio5[GPIO_CLEARDATAOUT] = USR1;
-        gpio3[GPIO_SETDATAOUT]   = USR2;
-		gpio8[GPIO_CLEARDATAOUT] = P8_17;
-		gpio6[GPIO_CLEARDATAOUT] = P9_25;
-		
-		__R30 &= ~gpio;		// Clear the GPIO pin
-
-		__delay_cycles(500000000/5); 
-		
-		if((__R31&P8_19) == P8_19) {
-            gpio3[GPIO_CLEARDATAOUT]   = USR3;      // Turn on LED
-        } else
-            gpio3[GPIO_SETDATAOUT]     = USR3;      // Turn off LED
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"/sys/class/gpio/export\0 177\0" \
-	"/sys/class/gpio/gpio177/direction\0out\0" \
-	"\0\0";
-
diff --git a/books/pru-cookbook/02start/code/hello2.pru1_1.c b/books/pru-cookbook/02start/code/hello2.pru1_1.c
deleted file mode 100644
index 564e1bc9b8c0fe7df8c21df6594f519d92470690..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru1_1.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	// uint32_t *gpio1 = (uint32_t *)GPIO1;
-	// uint32_t *gpio2 = (uint32_t *)GPIO2;
-	uint32_t *gpio3 = (uint32_t *)GPIO3;
-	// uint32_t *gpio4 = (uint32_t *)GPIO4;
-	uint32_t *gpio5 = (uint32_t *)GPIO5;
-	uint32_t *gpio6 = (uint32_t *)GPIO6;
-	// uint32_t *gpio7 = (uint32_t *)GPIO7;
-	uint32_t *gpio8 = (uint32_t *)GPIO8;
-	
-	// Select which pins to toggle.  These are all on pru1_1
-	uint32_t gpio = P9_16 | P8_15 | P8_16 | P8_26;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<100; i++) {
-		gpio5[GPIO_SETDATAOUT]   = USR1;		// Turn the USR1 LED on
-		gpio3[GPIO_CLEARDATAOUT] = USR2;
-		gpio8[GPIO_SETDATAOUT]   = P8_17;
-		gpio6[GPIO_SETDATAOUT]   = P9_25;
-		
-		__R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio5[GPIO_CLEARDATAOUT] = USR1;
-        gpio3[GPIO_SETDATAOUT]   = USR2;
-		gpio8[GPIO_CLEARDATAOUT] = P8_17;
-		gpio6[GPIO_CLEARDATAOUT] = P9_25;
-		
-		__R30 &= ~gpio;		// Clear the GPIO pin
-
-		__delay_cycles(500000000/5); 
-		
-		if((__R31&P8_19) == P8_19) {
-            gpio3[GPIO_CLEARDATAOUT]   = USR3;      // Turn on LED
-        } else
-            gpio3[GPIO_SETDATAOUT]     = USR3;      // Turn off LED
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"/sys/class/gpio/export\0 177\0" \
-	"/sys/class/gpio/gpio177/direction\0out\0" \
-	"\0\0";
-
diff --git a/books/pru-cookbook/02start/code/hello2.pru2_0.c b/books/pru-cookbook/02start/code/hello2.pru2_0.c
deleted file mode 100644
index 564e1bc9b8c0fe7df8c21df6594f519d92470690..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru2_0.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	// uint32_t *gpio1 = (uint32_t *)GPIO1;
-	// uint32_t *gpio2 = (uint32_t *)GPIO2;
-	uint32_t *gpio3 = (uint32_t *)GPIO3;
-	// uint32_t *gpio4 = (uint32_t *)GPIO4;
-	uint32_t *gpio5 = (uint32_t *)GPIO5;
-	uint32_t *gpio6 = (uint32_t *)GPIO6;
-	// uint32_t *gpio7 = (uint32_t *)GPIO7;
-	uint32_t *gpio8 = (uint32_t *)GPIO8;
-	
-	// Select which pins to toggle.  These are all on pru1_1
-	uint32_t gpio = P9_16 | P8_15 | P8_16 | P8_26;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<100; i++) {
-		gpio5[GPIO_SETDATAOUT]   = USR1;		// Turn the USR1 LED on
-		gpio3[GPIO_CLEARDATAOUT] = USR2;
-		gpio8[GPIO_SETDATAOUT]   = P8_17;
-		gpio6[GPIO_SETDATAOUT]   = P9_25;
-		
-		__R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio5[GPIO_CLEARDATAOUT] = USR1;
-        gpio3[GPIO_SETDATAOUT]   = USR2;
-		gpio8[GPIO_CLEARDATAOUT] = P8_17;
-		gpio6[GPIO_CLEARDATAOUT] = P9_25;
-		
-		__R30 &= ~gpio;		// Clear the GPIO pin
-
-		__delay_cycles(500000000/5); 
-		
-		if((__R31&P8_19) == P8_19) {
-            gpio3[GPIO_CLEARDATAOUT]   = USR3;      // Turn on LED
-        } else
-            gpio3[GPIO_SETDATAOUT]     = USR3;      // Turn off LED
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"/sys/class/gpio/export\0 177\0" \
-	"/sys/class/gpio/gpio177/direction\0out\0" \
-	"\0\0";
-
diff --git a/books/pru-cookbook/02start/code/hello2.pru2_1.c b/books/pru-cookbook/02start/code/hello2.pru2_1.c
deleted file mode 100644
index 564e1bc9b8c0fe7df8c21df6594f519d92470690..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/hello2.pru2_1.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register unsigned int __R30;
-volatile register unsigned int __R31;
-
-void main(void) {
-	int i;
-
-	// uint32_t *gpio1 = (uint32_t *)GPIO1;
-	// uint32_t *gpio2 = (uint32_t *)GPIO2;
-	uint32_t *gpio3 = (uint32_t *)GPIO3;
-	// uint32_t *gpio4 = (uint32_t *)GPIO4;
-	uint32_t *gpio5 = (uint32_t *)GPIO5;
-	uint32_t *gpio6 = (uint32_t *)GPIO6;
-	// uint32_t *gpio7 = (uint32_t *)GPIO7;
-	uint32_t *gpio8 = (uint32_t *)GPIO8;
-	
-	// Select which pins to toggle.  These are all on pru1_1
-	uint32_t gpio = P9_16 | P8_15 | P8_16 | P8_26;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	for(i=0; i<100; i++) {
-		gpio5[GPIO_SETDATAOUT]   = USR1;		// Turn the USR1 LED on
-		gpio3[GPIO_CLEARDATAOUT] = USR2;
-		gpio8[GPIO_SETDATAOUT]   = P8_17;
-		gpio6[GPIO_SETDATAOUT]   = P9_25;
-		
-		__R30 |= gpio;		// Set the GPIO pin to 1
-
-		__delay_cycles(500000000/5);    // Wait 1/2 second
-
-		gpio5[GPIO_CLEARDATAOUT] = USR1;
-        gpio3[GPIO_SETDATAOUT]   = USR2;
-		gpio8[GPIO_CLEARDATAOUT] = P8_17;
-		gpio6[GPIO_CLEARDATAOUT] = P9_25;
-		
-		__R30 &= ~gpio;		// Clear the GPIO pin
-
-		__delay_cycles(500000000/5); 
-		
-		if((__R31&P8_19) == P8_19) {
-            gpio3[GPIO_CLEARDATAOUT]   = USR3;      // Turn on LED
-        } else
-            gpio3[GPIO_SETDATAOUT]     = USR3;      // Turn off LED
-	}
-	__halt();
-}
-
-// Turns off triggers
-#pragma DATA_SECTION(init_pins, ".init_pins")
-#pragma RETAIN(init_pins)
-const char init_pins[] =  
-	"/sys/class/leds/beaglebone:green:usr1/trigger\0none\0" \
-	"/sys/class/leds/beaglebone:green:usr2/trigger\0none\0" \
-	"/sys/class/gpio/export\0 177\0" \
-	"/sys/class/gpio/gpio177/direction\0out\0" \
-	"\0\0";
-
diff --git a/books/pru-cookbook/02start/code/setup.sh b/books/pru-cookbook/02start/code/setup.sh
deleted file mode 100755
index eaf9943a2c375bc9f16b158994492b1198997dda..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/setup.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-export TARGET=hello.pru0
-
-echo TARGET=$TARGET
diff --git a/books/pru-cookbook/02start/code/setup2.sh b/books/pru-cookbook/02start/code/setup2.sh
deleted file mode 100755
index 76dd6713f4f55d364403bf6a187b68e2e66172b0..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/02start/code/setup2.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-export TARGET=hello2.pru1
-
-echo TARGET=$TARGET
diff --git a/books/pru-cookbook/02start/start.rst b/books/pru-cookbook/02start/start.rst
index e7a40243ee96eba82267cd303db4d6ef9c25da5f..d2188dad281e1ea673a93e4c686c0c4424dce9a9 100644
--- a/books/pru-cookbook/02start/start.rst
+++ b/books/pru-cookbook/02start/start.rst
@@ -278,29 +278,29 @@ You are ready to start playing with the examples and need to find the code.
 Solution
 ---------
 
-You can find the code (and the whole book) on the PRU Cookbook github site: 
-<https://github.com/MarkAYoder/PRUCookbook/tree/master/docs>. Just clone 
-it on your Beagle and then look in the *docs* directory.  
+You can find the code on the PRU Cookbook Code project on git.beagleboard.org: 
+https://git.beagleboard.org/beagleboard/pru-cookbook-code. Just clone 
+it on your Beagle.  
 
-.. code-block::bash
-
-    bone$ *git clone https://github.com/MarkAYoder/PRUCookbook.git*
-    bone$ *cd PRUCookbook/docs/*
-    bone$ *ls -F*
-    01case/     05blocks/  book.adoc  copyright.adoc  index.html  projects.adoc
-    02start/    06io/      book.html  hack.sh*        Makefile    projects.html
-    03details/  07more/    book.pdf   header.adoc     notes.adoc  style.adoc
-    04debug/    08ai/      common/    index.adoc      notes.html  style.html
+.. code-block:: shell-session
 
+    bone$ git clone https://git.beagleboard.org/beagleboard/pru-cookbook-code
+    bone$ cd pru-cookbook-code
+    bone$ ls -F
+    01case/   03details/  05blocks/  07more/  README.md
+    02start/  04details/  06io/      08ai/
 
 Each chapter has its own directory and within that directory 
 is a **code** directory that has all of the code.
 
-.. code-block::bash
+.. code-block:: shell-session
 
-    bone$ *cd 02start/code/*
-    bone$ *ls*
+    bone$ cd 02start/
+    bone$ ls
     hello.pru0.c  hello.pru1_1.c  Makefile  setup.sh
+    ai.notes         hello2.pru1_1.c  hello2.pru2_1.c  Makefile
+    hello2.pru0.c    hello2.pru1.c    hello.pru0.c     setup2.sh*
+    hello2.pru1_0.c  hello2.pru2_0.c  hello.pru1_1.c   setup.sh*
 
 Go and explore.
 
@@ -331,10 +331,10 @@ is some code that blinks the ``USR3`` LED ten times using the PRU.
 Later chapters will go into details of how this code works, but if you want 
 to run it right now do the following.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ *git clone https://github.com/MarkAYoder/PRUCookbook.git*
-    bone$ *cd PRUCookbook/docs/02start/code*
+    bone$ git clone https://git.beagleboard.org/beagleboard/pru-cookbook-code
+    bone$ cd pru-cookbook-code/02start
 
 .. tip::
 
@@ -347,9 +347,9 @@ to run it right now do the following.
 Running Code on the Black or Pocket
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ *make TARGET=hello.pru0*
+    bone$ make TARGET=hello.pru0
     /var/lib/cloud9/common/Makefile:28: MODEL=TI_AM335x_BeagleBone_Black,TARGET=hello.pru0,COMMON=/var/lib/cloud9/common
     /var/lib/cloud9/common/Makefile:147: GEN_DIR=/tmp/cloud9-examples,CHIP=am335x,PROC=pru,PRUN=0,PRU_DIR=/sys/class/remoteproc/remoteproc1,EXE=.out
     -    Stopping PRU 0
@@ -366,9 +366,9 @@ Running Code on the Black or Pocket
 Running Code on the AI
 ~~~~~~~~~~~~~~~~~~~~~~~
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ *make TARGET=hello.pru1_1*
+    bone$ make TARGET=hello.pru1_1
     /var/lib/cloud9/common/Makefile:28: MODEL=BeagleBoard.org_BeagleBone_AI,TARGET=hello.pru1_1
     -    Stopping PRU 1_1
     CC	hello.pru1_1.c
diff --git a/books/pru-cookbook/03details/code/Makefile b/books/pru-cookbook/03details/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/03details/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/03details/code/am335x_pru.cmd b/books/pru-cookbook/03details/code/am335x_pru.cmd
deleted file mode 100644
index 67005475fe282d8711b96425bc05f44d5ed6ad98..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/03details/code/am335x_pru.cmd
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************/
-/*  AM335x_PRU.cmd                                                          */
-/*  Copyright (c) 2015  Texas Instruments Incorporated                      */
-/*                                                                          */
-/*    Description: This file is a linker command file that can be used for  */
-/*                 linking PRU programs built with the C compiler and       */
-/*                 the resulting .out file on an AM335x device.             */
-/****************************************************************************/
-
--cr								/* Link using C conventions */
-
-/* Specify the System Memory Map */
-MEMORY
-{
-      PAGE 0:
-	PRU_IMEM		: org = 0x00000000 len = 0x00002000  /* 8kB PRU0 Instruction RAM */
-
-      PAGE 1:
-
-	/* RAM */
-
-	PRU_DMEM_0_1	: org = 0x00000000 len = 0x00002000 CREGISTER=24 /* 8kB PRU Data RAM 0_1 */
-	PRU_DMEM_1_0	: org = 0x00002000 len = 0x00002000	CREGISTER=25 /* 8kB PRU Data RAM 1_0 */
-
-	  PAGE 2:
-	PRU_SHAREDMEM	: org = 0x00010000 len = 0x00003000 CREGISTER=28 /* 12kB Shared RAM */
-
-	DDR			    : org = 0x80000000 len = 0x00000100	CREGISTER=31
-	L3OCMC			: org = 0x40000000 len = 0x00010000	CREGISTER=30
-
-
-	/* Peripherals */
-
-	PRU_CFG			: org = 0x00026000 len = 0x00000044	CREGISTER=4
-	PRU_ECAP		: org = 0x00030000 len = 0x00000060	CREGISTER=3
-	PRU_IEP			: org = 0x0002E000 len = 0x0000031C	CREGISTER=26
-	PRU_INTC		: org = 0x00020000 len = 0x00001504	CREGISTER=0
-	PRU_UART		: org = 0x00028000 len = 0x00000038	CREGISTER=7
-
-	DCAN0			: org = 0x481CC000 len = 0x000001E8	CREGISTER=14
-	DCAN1			: org = 0x481D0000 len = 0x000001E8	CREGISTER=15
-	DMTIMER2		: org = 0x48040000 len = 0x0000005C	CREGISTER=1
-	PWMSS0			: org = 0x48300000 len = 0x000002C4	CREGISTER=18
-	PWMSS1			: org = 0x48302000 len = 0x000002C4	CREGISTER=19
-	PWMSS2			: org = 0x48304000 len = 0x000002C4	CREGISTER=20
-	GEMAC			: org = 0x4A100000 len = 0x0000128C	CREGISTER=9
-	I2C1			: org = 0x4802A000 len = 0x000000D8	CREGISTER=2
-	I2C2			: org = 0x4819C000 len = 0x000000D8	CREGISTER=17
-	MBX0			: org = 0x480C8000 len = 0x00000140	CREGISTER=22
-	MCASP0_DMA		: org = 0x46000000 len = 0x00000100	CREGISTER=8
-	MCSPI0			: org = 0x48030000 len = 0x000001A4	CREGISTER=6
-	MCSPI1			: org = 0x481A0000 len = 0x000001A4	CREGISTER=16
-	MMCHS0			: org = 0x48060000 len = 0x00000300	CREGISTER=5
-	SPINLOCK		: org = 0x480CA000 len = 0x00000880	CREGISTER=23
-	TPCC			: org = 0x49000000 len = 0x00001098	CREGISTER=29
-	UART1			: org = 0x48022000 len = 0x00000088	CREGISTER=11
-	UART2			: org = 0x48024000 len = 0x00000088	CREGISTER=12
-
-	RSVD10			: org = 0x48318000 len = 0x00000100	CREGISTER=10
-	RSVD13			: org = 0x48310000 len = 0x00000100	CREGISTER=13
-	RSVD21			: org = 0x00032400 len = 0x00000100	CREGISTER=21
-	RSVD27			: org = 0x00032000 len = 0x00000100	CREGISTER=27
-
-}
-
-/* Specify the sections allocation into memory */
-SECTIONS {
-	/* Forces _c_int00 to the start of PRU IRAM. Not necessary when loading
-	   an ELF file, but useful when loading a binary */
-	.text:_c_int00*	>  0x0, PAGE 0
-
-	.text		>  PRU_IMEM, PAGE 0
-	.stack		>  PRU_DMEM_0_1, PAGE 1
-	.bss		>  PRU_DMEM_0_1, PAGE 1
-	.cio		>  PRU_DMEM_0_1, PAGE 1
-	.data		>  PRU_DMEM_0_1, PAGE 1
-	.switch		>  PRU_DMEM_0_1, PAGE 1
-	.sysmem		>  PRU_DMEM_0_1, PAGE 1
-	.cinit		>  PRU_DMEM_0_1, PAGE 1
-	.rodata		>  PRU_DMEM_0_1, PAGE 1
-	.rofardata	>  PRU_DMEM_0_1, PAGE 1
-	.farbss		>  PRU_DMEM_0_1, PAGE 1
-	.fardata	>  PRU_DMEM_0_1, PAGE 1
-
-	.resource_table > PRU_DMEM_0_1, PAGE 1
-	.init_pins > PRU_DMEM_0_1, PAGE 1
-}
\ No newline at end of file
diff --git a/books/pru-cookbook/03details/code/encoder_setup.sh b/books/pru-cookbook/03details/code/encoder_setup.sh
deleted file mode 100755
index ffc4ad68842fb6314173b523425295893cd05fc1..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/03details/code/encoder_setup.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-# Configure the pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-
-# Configure eQEP pins
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_92 P9_27 P8_35 P8_33 P8_12 P8_11 P8_41 P8_42"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_31 P2_34 P2_10 P2_24 P2_33"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin qep
-    config-pin -q $pin
-done
-
-##########################################
-# Configure PRU pins
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P8_16 P8_15"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_09 P2_18"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruin
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/03details/code/gpio_setup.sh b/books/pru-cookbook/03details/code/gpio_setup.sh
deleted file mode 100755
index e676ed7abe2a6beaf62d3ce6c56f5aa151d86700..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/03details/code/gpio_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-export TARGET=gpio.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_11"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_05"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin gpio
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/03details/code/servos_setup.sh b/books/pru-cookbook/03details/code/servos_setup.sh
deleted file mode 100755
index 330e8f34e30d7fd97d9368861ded65817222e903..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/03details/code/servos_setup.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P8_27 P8_28 P8_29 P8_30 P8_39 P8_40 P8_41 P8_42"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_35 P1_35 P1_02 P1_04"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
\ No newline at end of file
diff --git a/books/pru-cookbook/04debug/code/AM335x_PRU.cmd b/books/pru-cookbook/04debug/code/AM335x_PRU.cmd
deleted file mode 100644
index b62f044057bc982dd1a8049eaa41db2f970943a2..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/AM335x_PRU.cmd
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************/
-/*  AM335x_PRU.cmd                                                          */
-/*  Copyright (c) 2015  Texas Instruments Incorporated                      */
-/*                                                                          */
-/*    Description: This file is a linker command file that can be used for  */
-/*                 linking PRU programs built with the C compiler and       */
-/*                 the resulting .out file on an AM335x device.             */
-/****************************************************************************/
-
--cr								/* Link using C conventions */
-
-/* Specify the System Memory Map */
-MEMORY
-{
-      PAGE 0:
-	PRU_IMEM		: org = 0x00000000 len = 0x00002000  /* 8kB PRU0 Instruction RAM */
-
-      PAGE 1:
-
-	/* RAM */
-
-	PRU_DMEM_0_1	: org = 0x00000000 len = 0x00002000 CREGISTER=24 /* 8kB PRU Data RAM 0_1 */
-	PRU_DMEM_1_0	: org = 0x00002000 len = 0x00002000	CREGISTER=25 /* 8kB PRU Data RAM 1_0 */
-
-	  PAGE 2:
-	PRU_SHAREDMEM	: org = 0x00010000 len = 0x00003000 CREGISTER=28 /* 12kB Shared RAM */
-
-	DDR			    : org = 0x80000000 len = 0x00000100	CREGISTER=31
-	L3OCMC			: org = 0x40000000 len = 0x00010000	CREGISTER=30
-
-
-	/* Peripherals */
-
-	PRU_CFG			: org = 0x00026000 len = 0x00000044	CREGISTER=4
-	PRU_ECAP		: org = 0x00030000 len = 0x00000060	CREGISTER=3
-	PRU_IEP			: org = 0x0002E000 len = 0x0000031C	CREGISTER=26
-	PRU_INTC		: org = 0x00020000 len = 0x00001504	CREGISTER=0
-	PRU_UART		: org = 0x00028000 len = 0x00000038	CREGISTER=7
-
-	DCAN0			: org = 0x481CC000 len = 0x000001E8	CREGISTER=14
-	DCAN1			: org = 0x481D0000 len = 0x000001E8	CREGISTER=15
-	DMTIMER2		: org = 0x48040000 len = 0x0000005C	CREGISTER=1
-	PWMSS0			: org = 0x48300000 len = 0x000002C4	CREGISTER=18
-	PWMSS1			: org = 0x48302000 len = 0x000002C4	CREGISTER=19
-	PWMSS2			: org = 0x48304000 len = 0x000002C4	CREGISTER=20
-	GEMAC			: org = 0x4A100000 len = 0x0000128C	CREGISTER=9
-	I2C1			: org = 0x4802A000 len = 0x000000D8	CREGISTER=2
-	I2C2			: org = 0x4819C000 len = 0x000000D8	CREGISTER=17
-	MBX0			: org = 0x480C8000 len = 0x00000140	CREGISTER=22
-	MCASP0_DMA		: org = 0x46000000 len = 0x00000100	CREGISTER=8
-	MCSPI0			: org = 0x48030000 len = 0x000001A4	CREGISTER=6
-	MCSPI1			: org = 0x481A0000 len = 0x000001A4	CREGISTER=16
-	MMCHS0			: org = 0x48060000 len = 0x00000300	CREGISTER=5
-	SPINLOCK		: org = 0x480CA000 len = 0x00000880	CREGISTER=23
-	TPCC			: org = 0x49000000 len = 0x00001098	CREGISTER=29
-	UART1			: org = 0x48022000 len = 0x00000088	CREGISTER=11
-	UART2			: org = 0x48024000 len = 0x00000088	CREGISTER=12
-
-	RSVD10			: org = 0x48318000 len = 0x00000100	CREGISTER=10
-	RSVD13			: org = 0x48310000 len = 0x00000100	CREGISTER=13
-	RSVD21			: org = 0x00032400 len = 0x00000100	CREGISTER=21
-	RSVD27			: org = 0x00032000 len = 0x00000100	CREGISTER=27
-
-}
-
-/* Specify the sections allocation into memory */
-SECTIONS {
-	/* Forces _c_int00 to the start of PRU IRAM. Not necessary when loading
-	   an ELF file, but useful when loading a binary */
-	.text:_c_int00*	>  0x0, PAGE 0
-
-	.text		>  PRU_IMEM, PAGE 0
-	.stack		>  PRU_DMEM_0_1, PAGE 1
-	.bss		>  PRU_DMEM_0_1, PAGE 1
-	.cio		>  PRU_DMEM_0_1, PAGE 1
-	.data		>  PRU_DMEM_0_1, PAGE 1
-	.switch		>  PRU_DMEM_0_1, PAGE 1
-	.sysmem		>  PRU_DMEM_0_1, PAGE 1
-	.cinit		>  PRU_DMEM_0_1, PAGE 1
-	.rodata		>  PRU_DMEM_0_1, PAGE 1
-	.rofardata	>  PRU_DMEM_0_1, PAGE 1
-	.farbss		>  PRU_DMEM_0_1, PAGE 1
-	.fardata	>  PRU_DMEM_0_1, PAGE 1
-
-	.resource_table > PRU_DMEM_0_1, PAGE 1
-}
diff --git a/books/pru-cookbook/04debug/code/Makefile b/books/pru-cookbook/04debug/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/04debug/code/copyright.c b/books/pru-cookbook/04debug/code/copyright.c
deleted file mode 100644
index a34918faa44a789c3624c0e5551704e630017dae..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/copyright.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
diff --git a/books/pru-cookbook/04debug/code/resource_table_empty.h b/books/pru-cookbook/04debug/code/resource_table_empty.h
deleted file mode 100644
index c14bd2b222644e05a84a4a328792a4c8513ff1e8..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/resource_table_empty.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ======== resource_table_empty.h ========
- *
- *  Define the resource table entries for all PRU cores. This will be
- *  incorporated into corresponding base images, and used by the remoteproc
- *  on the host-side to allocated/reserve resources.  Note the remoteproc
- *  driver requires that all PRU firmware be built with a resource table.
- *
- *  This file contains an empty resource table.  It can be used either as:
- *
- *        1) A template, or
- *        2) As-is if a PRU application does not need to configure PRU_INTC
- *                  or interact with the rpmsg driver
- *
- */
-
-#ifndef _RSC_TABLE_PRU_H_
-#define _RSC_TABLE_PRU_H_
-
-#include <stddef.h>
-#include <rsc_types.h>
-
-struct my_resource_table {
-	struct resource_table base;
-
-	uint32_t offset[1]; /* Should match 'num' in actual definition */
-};
-
-#pragma DATA_SECTION(pru_remoteproc_ResourceTable, ".resource_table")
-#pragma RETAIN(pru_remoteproc_ResourceTable)
-struct my_resource_table pru_remoteproc_ResourceTable = {
-	1,	/* we're the first version that implements this */
-	0,	/* number of entries in the table */
-	0, 0,	/* reserved, must be zero */
-	0,	/* offset[0] */
-};
-
-#endif /* _RSC_TABLE_PRU_H_ */
-
diff --git a/books/pru-cookbook/04debug/code/uart1.pru0.c b/books/pru-cookbook/04debug/code/uart1.pru0.c
deleted file mode 100644
index e9b40d5c8c6fe6f1bda4492bb84160a1d4c08b3e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/uart1.pru0.c
+++ /dev/null
@@ -1,88 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/examples/am335x/PRU_Hardware_UART
-
-#include <stdint.h>
-#include <pru_uart.h>
-#include "resource_table_empty.h"
-
-/* The FIFO size on the PRU UART is 16 bytes; however, we are (arbitrarily)
- * only going to send 8 at a time */
-#define FIFO_SIZE	16
-#define MAX_CHARS	8
-
-void main(void)
-{
-	uint8_t tx;
-	uint8_t rx;
-	uint8_t cnt;
-
-	/*  hostBuffer points to the string to be printed */
-	char* hostBuffer;
-	
-	/*** INITIALIZATION ***/
-
-	/* Set up UART to function at 115200 baud - DLL divisor is 104 at 16x oversample
-	 * 192MHz / 104 / 16 = ~115200 */
-	CT_UART.DLL = 104;
-	CT_UART.DLH = 0;
-	CT_UART.MDR = 0x0;
-
-	/* Enable Interrupts in UART module. This allows the main thread to poll for
-	 * Receive Data Available and Transmit Holding Register Empty */
-	CT_UART.IER = 0x7;
-
-	/* If FIFOs are to be used, select desired trigger level and enable
-	 * FIFOs by writing to FCR. FIFOEN bit in FCR must be set first before
-	 * other bits are configured */
-	/* Enable FIFOs for now at 1-byte, and flush them */
-	CT_UART.FCR = (0x8) | (0x4) | (0x2) | (0x1);
-	//CT_UART.FCR = (0x80) | (0x4) | (0x2) | (0x01); // 8-byte RX FIFO trigger
-
-	/* Choose desired protocol settings by writing to LCR */
-	/* 8-bit word, 1 stop bit, no parity, no break control and no divisor latch */
-	CT_UART.LCR = 3;
-
-	/* Enable loopback for test */
-	CT_UART.MCR = 0x00;
-
-	/* Choose desired response to emulation suspend events by configuring
-	 * FREE bit and enable UART by setting UTRST and URRST in PWREMU_MGMT */
-	/* Allow UART to run free, enable UART TX/RX */
-	CT_UART.PWREMU_MGMT = 0x6001;
-
-	/*** END INITIALIZATION ***/
-
-	/* Priming the 'hostbuffer' with a message */
-	hostBuffer = "Hello!  This is a long string\r\n";
-
-	/*** SEND SOME DATA ***/
-
-	/* Let's send/receive some dummy data */
-	while(1) {
-		cnt = 0;
-		while(1) {
-			/* Load character, ensure it is not string termination */
-			if ((tx = hostBuffer[cnt]) == '\0')
-				break;
-			cnt++;
-			CT_UART.THR = tx;
-	
-			/* Because we are doing loopback, wait until LSR.DR == 1
-			 * indicating there is data in the RX FIFO */
-			while ((CT_UART.LSR & 0x1) == 0x0);
-	
-			/* Read the value from RBR */
-			rx = CT_UART.RBR;
-	
-			/* Wait for TX FIFO to be empty */
-			while (!((CT_UART.FCR & 0x2) == 0x2));
-		}
-	}
-
-	/*** DONE SENDING DATA ***/
-
-	/* Disable UART before halting */
-	CT_UART.PWREMU_MGMT = 0x0;
-
-	/* Halt PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/04debug/code/uart1.pru1_0.c b/books/pru-cookbook/04debug/code/uart1.pru1_0.c
deleted file mode 100644
index 4c558bb96e6e21b9c0b05f9acee21f7d7ad3c225..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/uart1.pru1_0.c
+++ /dev/null
@@ -1,90 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/examples/am335x/PRU_Hardware_UART
-// This example was converted to the am5729 by changing the names in pru_uart.h
-// for the am335x to the more descriptive names for the am5729.
-// For example  DLL convertes to DIVISOR_REGISTER_LSB_
-#include <stdint.h>
-#include <pru_uart.h>
-#include "resource_table_empty.h"
-
-/* The FIFO size on the PRU UART is 16 bytes; however, we are (arbitrarily)
- * only going to send 8 at a time */
-#define FIFO_SIZE	16
-#define MAX_CHARS	8
-
-void main(void)
-{
-	uint8_t tx;
-	uint8_t rx;
-	uint8_t cnt;
-
-	/*  hostBuffer points to the string to be printed */
-	char* hostBuffer;
-	
-	/*** INITIALIZATION ***/
-
-	/* Set up UART to function at 115200 baud - DLL divisor is 104 at 16x oversample
-	 * 192MHz / 104 / 16 = ~115200 */
-	CT_UART.DIVISOR_REGISTER_LSB_ = 104;
-	CT_UART.DIVISOR_REGISTER_MSB_ = 0;
-	CT_UART.MODE_DEFINITION_REGISTER = 0x0;
-
-	/* Enable Interrupts in UART module. This allows the main thread to poll for
-	 * Receive Data Available and Transmit Holding Register Empty */
-	CT_UART.INTERRUPT_ENABLE_REGISTER = 0x7;
-
-	/* If FIFOs are to be used, select desired trigger level and enable
-	 * FIFOs by writing to FCR. FIFOEN bit in FCR must be set first before
-	 * other bits are configured */
-	/* Enable FIFOs for now at 1-byte, and flush them */
-	CT_UART.INTERRUPT_IDENTIFICATION_REGISTER_FIFO_CONTROL_REGISTER = (0x8) | (0x4) | (0x2) | (0x1);
-	//CT_UART.FCR = (0x80) | (0x4) | (0x2) | (0x01); // 8-byte RX FIFO trigger
-
-	/* Choose desired protocol settings by writing to LCR */
-	/* 8-bit word, 1 stop bit, no parity, no break control and no divisor latch */
-	CT_UART.LINE_CONTROL_REGISTER = 3;
-
-	/* Enable loopback for test */
-	CT_UART.MODEM_CONTROL_REGISTER = 0x00;
-
-	/* Choose desired response to emulation suspend events by configuring
-	 * FREE bit and enable UART by setting UTRST and URRST in PWREMU_MGMT */
-	/* Allow UART to run free, enable UART TX/RX */
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER = 0x6001;
-
-	/*** END INITIALIZATION ***/
-
-	/* Priming the 'hostbuffer' with a message */
-	hostBuffer = "Hello!  This is a long string\r\n";
-
-	/*** SEND SOME DATA ***/
-
-	/* Let's send/receive some dummy data */
-	while(1) {
-		cnt = 0;
-		while(1) {
-			/* Load character, ensure it is not string termination */
-			if ((tx = hostBuffer[cnt]) == '\0')
-				break;
-			cnt++;
-			CT_UART.RBR_THR_REGISTERS = tx;
-	
-			/* Because we are doing loopback, wait until LSR.DR == 1
-			 * indicating there is data in the RX FIFO */
-			while ((CT_UART.LINE_STATUS_REGISTER & 0x1) == 0x0);
-	
-			/* Read the value from RBR */
-			rx = CT_UART.RBR_THR_REGISTERS;
-	
-			/* Wait for TX FIFO to be empty */
-			while (!((CT_UART.INTERRUPT_IDENTIFICATION_REGISTER_FIFO_CONTROL_REGISTER & 0x2) == 0x2));
-		}
-	}
-
-	/*** DONE SENDING DATA ***/
-
-	/* Disable UART before halting */
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER = 0x0;
-
-	/* Halt PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/04debug/code/uart2.pru0.c b/books/pru-cookbook/04debug/code/uart2.pru0.c
deleted file mode 100644
index 56ca985d5a45d1daeb2efd22b9576047791519bf..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/uart2.pru0.c
+++ /dev/null
@@ -1,126 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/pru_cape/pru_fw/PRU_Hardware_UART
-
-#include <stdint.h>
-#include <pru_uart.h>
-#include "resource_table_empty.h"
-
-/* The FIFO size on the PRU UART is 16 bytes; however, we are (arbitrarily)
- * only going to send 8 at a time */
-#define FIFO_SIZE	16
-#define MAX_CHARS	8
-#define BUFFER		40
-
-//******************************************************************************
-//    Print Message Out
-//      This function take in a string literal of any size and then fill the
-//      TX FIFO when it's empty and waits until there is info in the RX FIFO
-//      before returning.
-//******************************************************************************
-void PrintMessageOut(volatile char* Message)
-{
-	uint8_t cnt, index = 0;
-
-	while (1) {
-		cnt = 0;
-
-		/* Wait until the TX FIFO and the TX SR are completely empty */
-		while (!CT_UART.LSR_bit.TEMT);
-
-		while (Message[index] != NULL && cnt < MAX_CHARS) {
-			CT_UART.THR = Message[index];
-			index++;
-			cnt++;
-		}
-		if (Message[index] == NULL)
-			break;
-	}
-
-	/* Wait until the TX FIFO and the TX SR are completely empty */
-	while (!CT_UART.LSR_bit.TEMT);
-
-}
-
-//******************************************************************************
-//    IEP Timer Config
-//      This function waits until there is info in the RX FIFO and then returns
-//      the first character entered.
-//******************************************************************************
-char ReadMessageIn(void)
-{
-	while (!CT_UART.LSR_bit.DR);
-
-	return CT_UART.RBR_bit.DATA;
-}
-
-void main(void)
-{
-	uint32_t i;
-	volatile uint32_t not_done = 1;
-
-	char rxBuffer[BUFFER];
-	rxBuffer[BUFFER-1] = NULL; // null terminate the string
-
-	/*** INITIALIZATION ***/
-
-	/* Set up UART to function at 115200 baud - DLL divisor is 104 at 16x oversample
-	 * 192MHz / 104 / 16 = ~115200 */
-	CT_UART.DLL = 104;
-	CT_UART.DLH = 0;
-	CT_UART.MDR_bit.OSM_SEL = 0x0;
-
-	/* Enable Interrupts in UART module. This allows the main thread to poll for
-	 * Receive Data Available and Transmit Holding Register Empty */
-	CT_UART.IER = 0x7;
-
-	/* If FIFOs are to be used, select desired trigger level and enable
-	 * FIFOs by writing to FCR. FIFOEN bit in FCR must be set first before
-	 * other bits are configured */
-	/* Enable FIFOs for now at 1-byte, and flush them */
-	CT_UART.FCR = (0x80) | (0x8) | (0x4) | (0x2) | (0x01); // 8-byte RX FIFO trigger
-
-	/* Choose desired protocol settings by writing to LCR */
-	/* 8-bit word, 1 stop bit, no parity, no break control and no divisor latch */
-	CT_UART.LCR = 3;
-
-	/* If flow control is desired write appropriate values to MCR. */
-	/* No flow control for now, but enable loopback for test */
-	CT_UART.MCR = 0x00;
-
-	/* Choose desired response to emulation suspend events by configuring
-	 * FREE bit and enable UART by setting UTRST and URRST in PWREMU_MGMT */
-	/* Allow UART to run free, enable UART TX/RX */
-	CT_UART.PWREMU_MGMT_bit.FREE = 0x1;
-	CT_UART.PWREMU_MGMT_bit.URRST = 0x1;
-	CT_UART.PWREMU_MGMT_bit.UTRST = 0x1;
-
-	/* Turn off RTS and CTS functionality */
-	CT_UART.MCR_bit.AFE = 0x0;
-	CT_UART.MCR_bit.RTS = 0x0;
-
-	/*** END INITIALIZATION ***/
-
-	while(1) {
-		/* Print out greeting message */
-		PrintMessageOut("Hello you are in the PRU UART demo test please enter some characters\r\n");
-	
-		/* Read in characters from user, then echo them back out */
-		for (i = 0; i < BUFFER-1 ; i++) {
-			rxBuffer[i] = ReadMessageIn();
-			if(rxBuffer[i] == '\r') {	// Quit early if ENTER is hit.
-				rxBuffer[i+1] = NULL;
-				break;
-			}
-		}
-	
-		PrintMessageOut("you typed:\r\n");
-		PrintMessageOut(rxBuffer);
-		PrintMessageOut("\r\n");
-	}
-
-	/*** DONE SENDING DATA ***/
-	/* Disable UART before halting */
-	CT_UART.PWREMU_MGMT = 0x0;
-
-	/* Halt PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/04debug/code/uart2.pru1_0.c b/books/pru-cookbook/04debug/code/uart2.pru1_0.c
deleted file mode 100644
index c934ef7d0bd645734aa2c181b5ab68646713755e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/uart2.pru1_0.c
+++ /dev/null
@@ -1,126 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/pru_cape/pru_fw/PRU_Hardware_UART
-
-#include <stdint.h>
-#include <pru_uart.h>
-#include "resource_table_empty.h"
-
-/* The FIFO size on the PRU UART is 16 bytes; however, we are (arbitrarily)
- * only going to send 8 at a time */
-#define FIFO_SIZE	16
-#define MAX_CHARS	8
-#define BUFFER		40
-
-//******************************************************************************
-//    Print Message Out
-//      This function take in a string literal of any size and then fill the
-//      TX FIFO when it's empty and waits until there is info in the RX FIFO
-//      before returning.
-//******************************************************************************
-void PrintMessageOut(volatile char* Message)
-{
-	uint8_t cnt, index = 0;
-
-	while (1) {
-		cnt = 0;
-
-		/* Wait until the TX FIFO and the TX SR are completely empty */
-		while (!CT_UART.LINE_STATUS_REGISTER_bit.TEMT);
-
-		while (Message[index] != NULL && cnt < MAX_CHARS) {
-			CT_UART.RBR_THR_REGISTERS = Message[index];
-			index++;
-			cnt++;
-		}
-		if (Message[index] == NULL)
-			break;
-	}
-
-	/* Wait until the TX FIFO and the TX SR are completely empty */
-	while (!CT_UART.LINE_STATUS_REGISTER_bit.TEMT);
-
-}
-
-//******************************************************************************
-//    IEP Timer Config
-//      This function waits until there is info in the RX FIFO and then returns
-//      the first character entered.
-//******************************************************************************
-char ReadMessageIn(void)
-{
-	while (!CT_UART.LINE_STATUS_REGISTER_bit.DR);
-
-	return CT_UART.RBR_THR_REGISTERS_bit.DATA;
-}
-
-void main(void)
-{
-	uint32_t i;
-	volatile uint32_t not_done = 1;
-
-	char rxBuffer[BUFFER];
-	rxBuffer[BUFFER-1] = NULL; // null terminate the string
-
-	/*** INITIALIZATION ***/
-
-	/* Set up UART to function at 115200 baud - DLL divisor is 104 at 16x oversample
-	 * 192MHz / 104 / 16 = ~115200 */
-	CT_UART.DIVISOR_REGISTER_LSB_ = 104;
-	CT_UART.DIVISOR_REGISTER_MSB_ = 0;
-	CT_UART.MODE_DEFINITION_REGISTER_bit.OSM_SEL = 0x0;
-
-	/* Enable Interrupts in UART module. This allows the main thread to poll for
-	 * Receive Data Available and Transmit Holding Register Empty */
-	CT_UART.INTERRUPT_ENABLE_REGISTER = 0x7;
-
-	/* If FIFOs are to be used, select desired trigger level and enable
-	 * FIFOs by writing to FCR. FIFOEN bit in FCR must be set first before
-	 * other bits are configured */
-	/* Enable FIFOs for now at 1-byte, and flush them */
-	CT_UART.INTERRUPT_IDENTIFICATION_REGISTER_FIFO_CONTROL_REGISTER = (0x80) | (0x8) | (0x4) | (0x2) | (0x01); // 8-byte RX FIFO trigger
-
-	/* Choose desired protocol settings by writing to LCR */
-	/* 8-bit word, 1 stop bit, no parity, no break control and no divisor latch */
-	CT_UART.LINE_CONTROL_REGISTER = 3;
-
-	/* If flow control is desired write appropriate values to MCR. */
-	/* No flow control for now, but enable loopback for test */
-	CT_UART.MODEM_CONTROL_REGISTER = 0x00;
-
-	/* Choose desired response to emulation suspend events by configuring
-	 * FREE bit and enable UART by setting UTRST and URRST in PWREMU_MGMT */
-	/* Allow UART to run free, enable UART TX/RX */
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER_bit.FREE = 0x1;
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER_bit.URRST = 0x1;
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER_bit.UTRST = 0x1;
-
-	/* Turn off RTS and CTS functionality */
-	CT_UART.MODEM_CONTROL_REGISTER_bit.AFE = 0x0;
-	CT_UART.MODEM_CONTROL_REGISTER_bit.RTS = 0x0;
-
-	/*** END INITIALIZATION ***/
-
-	while(1) {
-		/* Print out greeting message */
-		PrintMessageOut("Hello you are in the PRU UART demo test please enter some characters\r\n");
-	
-		/* Read in characters from user, then echo them back out */
-		for (i = 0; i < BUFFER-1 ; i++) {
-			rxBuffer[i] = ReadMessageIn();
-			if(rxBuffer[i] == '\r') {	// Quit early if ENTER is hit.
-				rxBuffer[i+1] = NULL;
-				break;
-			}
-		}
-	
-		PrintMessageOut("you typed:\r\n");
-		PrintMessageOut(rxBuffer);
-		PrintMessageOut("\r\n");
-	}
-
-	/*** DONE SENDING DATA ***/
-	/* Disable UART before halting */
-	CT_UART.POWERMANAGEMENT_AND_EMULATION_REGISTER = 0x0;
-
-	/* Halt PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/04debug/code/uart_setup.sh b/books/pru-cookbook/04debug/code/uart_setup.sh
deleted file mode 100644
index db11d1f4fb5226a1f66482d5262809085dfc0ea9..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/04debug/code/uart_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-export TARGET=uart1.pru0
-echo TARGET=$TARGET
-
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    # Configure tx
-    config-pin P9_24 pru_uart
-    # Configure rx
-    config-pin P9_26 pru_uart
-elif [ $machine = "AI" ]; then
-    echo " Found"
-    echo "See AI chapter for configuring via device tree"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    # Configure tx
-    config-pin P1_06 pru_uart
-    config-pin P2_09 pru_uart
-    # Configure rx
-    config-pin P1_12 pru_uart
-    config-pin P2_11 pru_uart
-else
-    echo " Not Found"
-    pins=""
-fi
diff --git a/books/pru-cookbook/05blocks/code/Makefile b/books/pru-cookbook/05blocks/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/05blocks/code/copyright.c b/books/pru-cookbook/05blocks/code/copyright.c
deleted file mode 100644
index a34918faa44a789c3624c0e5551704e630017dae..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/copyright.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
diff --git a/books/pru-cookbook/05blocks/code/input.pru0.c b/books/pru-cookbook/05blocks/code/input.pru0.c
deleted file mode 100644
index 9ed5d3b759eb866fdbaa57fed9258c71ed32263e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/input.pru0.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t led;
-	uint32_t sw;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	led = 0x1<<0;	// P9_31 or P1_36
-	sw  = 0x1<<7;	// P9_25 or P1_29
-		
-	while (1) {
-		if((__R31&sw) == sw) {
-			__R30 |= led;		// Turn on LED
-		} else
-			__R30 &= ~led;		// Turn off LED
-	}
-}
-
diff --git a/books/pru-cookbook/05blocks/code/input_setup.sh b/books/pru-cookbook/05blocks/code/input_setup.sh
deleted file mode 100755
index 35a0d9c3598288c14894a90907a69d62009eed1f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/input_setup.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-#
-export TARGET=input.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    config-pin P9_31 pruout
-    config-pin -q P9_31
-    config-pin P9_25 pruin
-    config-pin -q P9_25
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    config-pin P1_36 pruout
-    config-pin -q P1_36
-    config-pin P1_29 pruin
-    config-pin -q P1_29
-else
-    echo " Not Found"
-    pins=""
-fi
diff --git a/books/pru-cookbook/05blocks/code/module/.gitignore b/books/pru-cookbook/05blocks/code/module/.gitignore
deleted file mode 100644
index 9b6dfc433724ec94f8905520931dcf33d409ea87..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.ko
diff --git a/books/pru-cookbook/05blocks/code/module/Makefile b/books/pru-cookbook/05blocks/code/module/Makefile
deleted file mode 100644
index 9ca05d057c153a2d9b653fc64f5504a2d5aeea2e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile for compiling out-of-tree
-# From Free Electrons
-# If on the Bone run apt install linux-headers-`uname -r`
-
-KDIR := /lib/modules/$(shell uname -r)/build
-
-obj-m += rpmsg_client_sample.o
-obj-m += rpmsg_pru.o
-
-all:
-	$(MAKE) -C $(KDIR) M=$$PWD
-	
-install:
-	scp hello*.ko bone:.
-
-print:
-	@echo KERNELRELEASE= $(KERNELRELEASE)
-	@echo CONFIG_EXAMPLES= $(CONFIG_EXAMPLES)
-	@echo obj-m= $(obj-m)
-	
-clean:
-	rm -rf .tmp_versions *.o 
-	rm -rf .rpmsg_client_sample* rpmsg_client_sample*.mod.c
-	rm -rf .rpmsg_pru* rpmsg_pru*.mod.c
-	rm modules.order Module.symvers .built-in.o.cmd 
\ No newline at end of file
diff --git a/books/pru-cookbook/05blocks/code/module/install.sh b/books/pru-cookbook/05blocks/code/module/install.sh
deleted file mode 100755
index 89f497f038396b8bfaddcec73330b74255e0c5ab..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/install.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# This is a example of ARM to PRU communication from Lab 5 of
-# http://processors.wiki.ti.com/index.php/PRU_Training:_Hands-on_Labs#LAB_5:_RPMsg_Communication_between_ARM_and_PRU
-
-sudo apt install linux-headers-`uname -r`
-
-wget https://github.com/beagleboard/linux/raw/4.9/drivers/rpmsg/rpmsg_pru.c
diff --git a/books/pru-cookbook/05blocks/code/module/rpmsg_client_sample.c b/books/pru-cookbook/05blocks/code/module/rpmsg_client_sample.c
deleted file mode 100644
index 72b24524c626cca0291d93b5d765ecf515dac0f3..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/rpmsg_client_sample.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Remote processor messaging - sample client driver
- *
- * Copyright (C) 2011 Texas Instruments, Inc.
- * Copyright (C) 2011 Google, Inc.
- *
- * Ohad Ben-Cohen <ohad@wizery.com>
- * Brian Swetland <swetland@google.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/rpmsg.h>
-
-#define MSG		"hello world!"
-#define MSG_LIMIT	10
-
-struct instance_data {
-	int rx_count;
-};
-
-static int rpmsg_sample_cb(struct rpmsg_device *rpdev, void *data, int len,
-						void *priv, u32 src)
-{
-	int ret;
-	struct instance_data *idata = dev_get_drvdata(&rpdev->dev);
-
-	dev_info(&rpdev->dev, "incoming msg %d (src: 0x%x)\n",
-		 ++idata->rx_count, src);
-
-	print_hex_dump(KERN_DEBUG, __func__, DUMP_PREFIX_NONE, 16, 1,
-		       data, len,  true);
-
-	/* samples should not live forever */
-	if (idata->rx_count >= MSG_LIMIT) {
-		dev_info(&rpdev->dev, "goodbye!\n");
-		return 0;
-	}
-
-	/* send a new message now */
-	ret = rpmsg_send(rpdev->ept, MSG, strlen(MSG));
-	if (ret)
-		dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
-
-	return 0;
-}
-
-static int rpmsg_sample_probe(struct rpmsg_device *rpdev)
-{
-	int ret;
-	struct instance_data *idata;
-
-	dev_info(&rpdev->dev, "new channel: 0x%x -> 0x%x!\n",
-					rpdev->src, rpdev->dst);
-
-	idata = devm_kzalloc(&rpdev->dev, sizeof(*idata), GFP_KERNEL);
-	if (!idata)
-		return -ENOMEM;
-
-	dev_set_drvdata(&rpdev->dev, idata);
-
-	/* send a message to our remote processor */
-	ret = rpmsg_send(rpdev->ept, MSG, strlen(MSG));
-	if (ret) {
-		dev_err(&rpdev->dev, "rpmsg_send failed: %d\n", ret);
-		return ret;
-	}
-
-	return 0;
-}
-
-static void rpmsg_sample_remove(struct rpmsg_device *rpdev)
-{
-	dev_info(&rpdev->dev, "rpmsg sample client driver is removed\n");
-}
-
-static struct rpmsg_device_id rpmsg_driver_sample_id_table[] = {
-	{ .name	= "rpmsg-client-sample" },
-	{ },
-};
-MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_sample_id_table);
-
-static struct rpmsg_driver rpmsg_sample_client = {
-	.drv.name	= KBUILD_MODNAME,
-	.id_table	= rpmsg_driver_sample_id_table,
-	.probe		= rpmsg_sample_probe,
-	.callback	= rpmsg_sample_cb,
-	.remove		= rpmsg_sample_remove,
-};
-module_rpmsg_driver(rpmsg_sample_client);
-
-MODULE_DESCRIPTION("Remote processor messaging sample client driver");
-MODULE_LICENSE("GPL v2");
diff --git a/books/pru-cookbook/05blocks/code/module/rpmsg_pru.c b/books/pru-cookbook/05blocks/code/module/rpmsg_pru.c
deleted file mode 100644
index 5a96b20965035e5b12139f391a41529c94ff0dbc..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/rpmsg_pru.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * PRU Remote Processor Messaging Driver
- *
- * Copyright (C) 2015-2017 Texas Instruments Incorporated - http://www.ti.com/
- *	Jason Reeder <jreeder@ti.com>
- *	Suman Anna <s-anna@ti.com>
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#include <linux/kernel.h>
-#include <linux/rpmsg.h>
-#include <linux/slab.h>
-#include <linux/fs.h>
-#include <linux/init.h>
-#include <linux/cdev.h>
-#include <linux/module.h>
-#include <linux/kfifo.h>
-#include <linux/uaccess.h>
-#include <linux/mutex.h>
-#include <linux/poll.h>
-#include <linux/rpmsg/virtio_rpmsg.h>
-
-#define PRU_MAX_DEVICES				(8)
-/* Matches the definition in virtio_rpmsg_bus.c */
-#define RPMSG_BUF_SIZE				(512)
-#define MAX_FIFO_MSG				(32)
-#define FIFO_MSG_SIZE				RPMSG_BUF_SIZE
-
-/**
- * struct rpmsg_pru_dev - Structure that contains the per-device data
- * @rpdev: rpmsg channel device that is associated with this rpmsg_pru device
- * @dev: device
- * @cdev: character device
- * @locked: boolean used to determine whether or not the device file is in use
- * @devt: dev_t structure for the rpmsg_pru device
- * @msg_fifo: kernel fifo used to buffer the messages between userspace and PRU
- * @msg_len: array storing the lengths of each message in the kernel fifo
- * @msg_idx_rd: kernel fifo read index
- * @msg_idx_wr: kernel fifo write index
- * @wait_list: wait queue used to implement the poll operation of the character
- *             device
- *
- * Each rpmsg_pru device provides an interface, using an rpmsg channel (rpdev),
- * between a user space character device (cdev) and a PRU core. A kernel fifo
- * (msg_fifo) is used to buffer the messages in the kernel that are
- * being passed between the character device and the PRU.
- */
-struct rpmsg_pru_dev {
-	struct rpmsg_device *rpdev;
-	struct device *dev;
-	struct cdev cdev;
-	bool locked;
-	dev_t devt;
-	struct kfifo msg_fifo;
-	u32 msg_len[MAX_FIFO_MSG];
-	int msg_idx_rd;
-	int msg_idx_wr;
-	wait_queue_head_t wait_list;
-};
-
-static struct class *rpmsg_pru_class;
-static dev_t rpmsg_pru_devt;
-static DEFINE_MUTEX(rpmsg_pru_lock);
-static DEFINE_IDR(rpmsg_pru_minors);
-
-static int rpmsg_pru_open(struct inode *inode, struct file *filp)
-{
-	struct rpmsg_pru_dev *prudev;
-	int ret = -EACCES;
-
-	prudev = container_of(inode->i_cdev, struct rpmsg_pru_dev, cdev);
-
-	mutex_lock(&rpmsg_pru_lock);
-	if (!prudev->locked) {
-		prudev->locked = true;
-		filp->private_data = prudev;
-		ret = 0;
-	}
-	mutex_unlock(&rpmsg_pru_lock);
-
-	if (ret)
-		dev_err(prudev->dev, "Device already open\n");
-
-	return ret;
-}
-
-static int rpmsg_pru_release(struct inode *inode, struct file *filp)
-{
-	struct rpmsg_pru_dev *prudev;
-
-	prudev = container_of(inode->i_cdev, struct rpmsg_pru_dev, cdev);
-	mutex_lock(&rpmsg_pru_lock);
-	prudev->locked = false;
-	mutex_unlock(&rpmsg_pru_lock);
-	return 0;
-}
-
-static ssize_t rpmsg_pru_read(struct file *filp, char __user *buf,
-			      size_t count, loff_t *f_pos)
-{
-	int ret;
-	u32 length;
-	struct rpmsg_pru_dev *prudev;
-
-	prudev = filp->private_data;
-
-	if (kfifo_is_empty(&prudev->msg_fifo) &&
-	    (filp->f_flags & O_NONBLOCK))
-		return -EAGAIN;
-
-	ret = wait_event_interruptible(prudev->wait_list,
-				       !kfifo_is_empty(&prudev->msg_fifo));
-	if (ret)
-		return -EINTR;
-
-	ret = kfifo_to_user(&prudev->msg_fifo, buf,
-			    prudev->msg_len[prudev->msg_idx_rd], &length);
-	prudev->msg_idx_rd = (prudev->msg_idx_rd + 1) % MAX_FIFO_MSG;
-
-	return ret ? ret : length;
-}
-
-static ssize_t rpmsg_pru_write(struct file *filp, const char __user *buf,
-			       size_t count, loff_t *f_pos)
-{
-	int ret;
-	struct rpmsg_pru_dev *prudev;
-	static char rpmsg_pru_buf[RPMSG_BUF_SIZE];
-
-	prudev = filp->private_data;
-
-	if (count > RPMSG_BUF_SIZE - sizeof(struct rpmsg_hdr)) {
-		dev_err(prudev->dev, "Data too large for RPMsg Buffer\n");
-		return -EINVAL;
-	}
-
-	if (copy_from_user(rpmsg_pru_buf, buf, count)) {
-		dev_err(prudev->dev, "Error copying buffer from user space");
-		return -EFAULT;
-	}
-
-	ret = rpmsg_send(prudev->rpdev->ept, (void *)rpmsg_pru_buf, count);
-	if (ret)
-		dev_err(prudev->dev, "rpmsg_send failed: %d\n", ret);
-
-	return ret ? ret : count;
-}
-
-static unsigned int rpmsg_pru_poll(struct file *filp,
-				   struct poll_table_struct *wait)
-{
-	int mask;
-	struct rpmsg_pru_dev *prudev;
-
-	prudev = filp->private_data;
-
-	poll_wait(filp, &prudev->wait_list, wait);
-
-	mask = POLLOUT | POLLWRNORM;
-
-	if (!kfifo_is_empty(&prudev->msg_fifo))
-		mask |= POLLIN | POLLRDNORM;
-
-	return mask;
-}
-
-static const struct file_operations rpmsg_pru_fops = {
-	.owner = THIS_MODULE,
-	.open = rpmsg_pru_open,
-	.release = rpmsg_pru_release,
-	.read = rpmsg_pru_read,
-	.write = rpmsg_pru_write,
-	.poll = rpmsg_pru_poll,
-};
-
-static int rpmsg_pru_cb(struct rpmsg_device *rpdev, void *data, int len,
-			void *priv, u32 src)
-{
-	u32 length;
-	struct rpmsg_pru_dev *prudev;
-
-	prudev = dev_get_drvdata(&rpdev->dev);
-
-	if (kfifo_avail(&prudev->msg_fifo) < len) {
-		dev_err(&rpdev->dev, "Not enough space on the FIFO\n");
-		return -ENOSPC;
-	}
-
-	if ((prudev->msg_idx_wr + 1) % MAX_FIFO_MSG ==
-		prudev->msg_idx_rd) {
-		dev_err(&rpdev->dev, "Message length table is full\n");
-		return -ENOSPC;
-	}
-
-	length = kfifo_in(&prudev->msg_fifo, data, len);
-	prudev->msg_len[prudev->msg_idx_wr] = length;
-	prudev->msg_idx_wr = (prudev->msg_idx_wr + 1) % MAX_FIFO_MSG;
-
-	wake_up_interruptible(&prudev->wait_list);
-
-	return 0;
-}
-
-static int rpmsg_pru_probe(struct rpmsg_device *rpdev)
-{
-	int ret;
-	struct rpmsg_pru_dev *prudev;
-	int minor_got;
-
-	prudev = devm_kzalloc(&rpdev->dev, sizeof(*prudev), GFP_KERNEL);
-	if (!prudev)
-		return -ENOMEM;
-
-	mutex_lock(&rpmsg_pru_lock);
-	minor_got = idr_alloc(&rpmsg_pru_minors, prudev, 0, PRU_MAX_DEVICES,
-			      GFP_KERNEL);
-	mutex_unlock(&rpmsg_pru_lock);
-	if (minor_got < 0) {
-		ret = minor_got;
-		dev_err(&rpdev->dev, "Failed to get a minor number for the rpmsg_pru device: %d\n",
-			ret);
-		goto fail_alloc_minor;
-	}
-
-	prudev->devt = MKDEV(MAJOR(rpmsg_pru_devt), minor_got);
-
-	cdev_init(&prudev->cdev, &rpmsg_pru_fops);
-	prudev->cdev.owner = THIS_MODULE;
-	ret = cdev_add(&prudev->cdev, prudev->devt, 1);
-	if (ret) {
-		dev_err(&rpdev->dev, "Unable to add cdev for the rpmsg_pru device\n");
-		goto fail_add_cdev;
-	}
-
-	prudev->dev = device_create(rpmsg_pru_class, &rpdev->dev, prudev->devt,
-				    NULL, "rpmsg_pru%d", rpdev->dst);
-	if (IS_ERR(prudev->dev)) {
-		dev_err(&rpdev->dev, "Unable to create the rpmsg_pru device\n");
-		ret = PTR_ERR(prudev->dev);
-		goto fail_create_device;
-	}
-
-	prudev->rpdev = rpdev;
-
-	ret = kfifo_alloc(&prudev->msg_fifo, MAX_FIFO_MSG * FIFO_MSG_SIZE,
-			  GFP_KERNEL);
-	if (ret) {
-		dev_err(&rpdev->dev, "Unable to allocate fifo for the rpmsg_pru device\n");
-		goto fail_alloc_fifo;
-	}
-
-	init_waitqueue_head(&prudev->wait_list);
-
-	dev_set_drvdata(&rpdev->dev, prudev);
-
-	dev_info(&rpdev->dev, "new rpmsg_pru device: /dev/rpmsg_pru%d",
-		 rpdev->dst);
-
-	return 0;
-
-fail_alloc_fifo:
-	device_destroy(rpmsg_pru_class, prudev->devt);
-fail_create_device:
-	cdev_del(&prudev->cdev);
-fail_add_cdev:
-	mutex_lock(&rpmsg_pru_lock);
-	idr_remove(&rpmsg_pru_minors, minor_got);
-	mutex_unlock(&rpmsg_pru_lock);
-fail_alloc_minor:
-	return ret;
-}
-
-static void rpmsg_pru_remove(struct rpmsg_device *rpdev)
-{
-	struct rpmsg_pru_dev *prudev;
-
-	prudev = dev_get_drvdata(&rpdev->dev);
-
-	kfifo_free(&prudev->msg_fifo);
-	device_destroy(rpmsg_pru_class, prudev->devt);
-	cdev_del(&prudev->cdev);
-	mutex_lock(&rpmsg_pru_lock);
-	idr_remove(&rpmsg_pru_minors, MINOR(prudev->devt));
-	mutex_unlock(&rpmsg_pru_lock);
-}
-
-/* .name matches on RPMsg Channels and causes a probe */
-static const struct rpmsg_device_id rpmsg_driver_pru_id_table[] = {
-	{ .name	= "rpmsg-pru" },
-	{ },
-};
-MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_pru_id_table);
-
-static struct rpmsg_driver rpmsg_pru_driver = {
-	.drv.name	= KBUILD_MODNAME,
-	.id_table	= rpmsg_driver_pru_id_table,
-	.probe		= rpmsg_pru_probe,
-	.callback	= rpmsg_pru_cb,
-	.remove		= rpmsg_pru_remove,
-};
-
-static int __init rpmsg_pru_init(void)
-{
-	int ret;
-
-	rpmsg_pru_class = class_create(THIS_MODULE, "rpmsg_pru");
-	if (IS_ERR(rpmsg_pru_class)) {
-		pr_err("Unable to create class\n");
-		ret = PTR_ERR(rpmsg_pru_class);
-		goto fail_create_class;
-	}
-
-	ret = alloc_chrdev_region(&rpmsg_pru_devt, 0, PRU_MAX_DEVICES,
-				  "rpmsg_pru");
-	if (ret) {
-		pr_err("Unable to allocate chrdev region\n");
-		goto fail_alloc_region;
-	}
-
-	ret = register_rpmsg_driver(&rpmsg_pru_driver);
-	if (ret) {
-		pr_err("Unable to register rpmsg driver");
-		goto fail_register_rpmsg_driver;
-	}
-
-	return 0;
-
-fail_register_rpmsg_driver:
-	unregister_chrdev_region(rpmsg_pru_devt, PRU_MAX_DEVICES);
-fail_alloc_region:
-	class_destroy(rpmsg_pru_class);
-fail_create_class:
-	return ret;
-}
-
-static void __exit rpmsg_pru_exit(void)
-{
-	unregister_rpmsg_driver(&rpmsg_pru_driver);
-	idr_destroy(&rpmsg_pru_minors);
-	mutex_destroy(&rpmsg_pru_lock);
-	class_destroy(rpmsg_pru_class);
-	unregister_chrdev_region(rpmsg_pru_devt, PRU_MAX_DEVICES);
-}
-
-module_init(rpmsg_pru_init);
-module_exit(rpmsg_pru_exit);
-
-MODULE_AUTHOR("Jason Reeder <jreeder@ti.com>");
-MODULE_ALIAS("rpmsg:rpmsg-pru");
-MODULE_DESCRIPTION("PRU Remote Processor Messaging Driver");
-MODULE_LICENSE("GPL v2");
diff --git a/books/pru-cookbook/05blocks/code/module/setup.sh b/books/pru-cookbook/05blocks/code/module/setup.sh
deleted file mode 100755
index 3b313b366052438b0db8e7a7c0f00a04313b8687..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/module/setup.sh
+++ /dev/null
@@ -1 +0,0 @@
-insmod rpmsg_pru.ko
diff --git a/books/pru-cookbook/05blocks/code/neo-colors.py b/books/pru-cookbook/05blocks/code/neo-colors.py
deleted file mode 100755
index 736a47b3c7e6ae2507da296fdae5ac01be7f7a14..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo-colors.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/python3
-from time import sleep
-import math
-
-length = 24
-max = 25
-
-# Open a file
-fo = open("/dev/rpmsg_pru30", "wb", 0)
-
-colors = [[1,0,0],[1,1,0],[0,1,0],[0,1,1],[0,0,1],[1,0,1]]# colors = [[1,0,0],[1,0,0]]
-
-oldr=0
-oldb=0
-oldg=0
-
-while True:
-    for color in colors:
-        newr = color[0]
-        newg = color[1]
-        newb = color[2]
-        maxtime=20
-        for time in range(0, maxtime):
-            r = (max*oldr+(newr-oldr)*max*time/maxtime)
-            g = (max*oldg+(newg-oldg)*max*time/maxtime)
-            b = (max*oldb+(newb-oldb)*max*time/maxtime)
-            for i in range(0, length):
-                fo.write(b"%d %d %d %d\n" % (i, r, g, b))
-                # print("0 0 127 %d" % (i))
-            fo.write(b"-1 0 0 0\n");    # Send colors to LEDs
-            
-            # print (r,g,b)
-            
-            sleep(0.05)
-            
-        oldr=newr
-        oldg=newg
-        oldb=newb
-
-# Close opened file
-fo.close()
\ No newline at end of file
diff --git a/books/pru-cookbook/05blocks/code/neo-rainbow.py b/books/pru-cookbook/05blocks/code/neo-rainbow.py
deleted file mode 100755
index ffd706a643a9c71609e8b8893b6ff91b53cde08b..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo-rainbow.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/python3
-from time import sleep
-import math
-
-len = 24
-amp = 12
-f = 25
-shift = 3
-phase = 0
-
-# Open a file
-fo = open("/dev/rpmsg_pru30", "wb", 0)
-
-while True:
-    for i in range(0, len):
-        r = (amp * (math.sin(2*math.pi*f*(i-phase-0*shift)/len) + 1)) + 1;
-        g = (amp * (math.sin(2*math.pi*f*(i-phase-1*shift)/len) + 1)) + 1;
-        b = (amp * (math.sin(2*math.pi*f*(i-phase-2*shift)/len) + 1)) + 1;
-        fo.write(b"%d %d %d %d\n" % (i, r, g, b))
-        # print("0 0 127 %d" % (i))
-
-    fo.write(b"-1 0 0 0\n");
-    phase = phase + 1
-    sleep(0.05)
-
-# Close opened file
-fo.close()
\ No newline at end of file
diff --git a/books/pru-cookbook/05blocks/code/neo1.pru0.c b/books/pru-cookbook/05blocks/code/neo1.pru0.c
deleted file mode 100644
index 5f2ce8248d73706b8f78c7b76e5df9009ffd4b02..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo1.pru0.c
+++ /dev/null
@@ -1,44 +0,0 @@
-// Control a ws2812 (NeoPixel) display, All on or all off
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_29				// output pin
-
-#define ONE
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	uint32_t i;
-	for(i=0; i<STR_LEN*3*8; i++) {
-#ifdef ONE
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(oneCyclesOn-1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(oneCyclesOff-2);
-#else
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(zeroCyclesOn-1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(zeroCyclesOff-2);
-#endif
-	}
-	// Send Reset
-	__R30 &= ~gpio;	// Clear the GPIO pin
-	__delay_cycles(resetCycles);
-	
-	__halt();
-}
diff --git a/books/pru-cookbook/05blocks/code/neo1.pru1_1.c b/books/pru-cookbook/05blocks/code/neo1.pru1_1.c
deleted file mode 100644
index 2ad8d56d1cff431ab3c006788440454083b26e96..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo1.pru1_1.c
+++ /dev/null
@@ -1,44 +0,0 @@
-// Control a ws2812 (NeoPixel) display, All on or all off
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_16				// output pin
-
-#define ONE
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	uint32_t i;
-	for(i=0; i<STR_LEN*3*8; i++) {
-#ifdef ONE
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(oneCyclesOn-1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(oneCyclesOff-2);
-#else
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(zeroCyclesOn-1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(zeroCyclesOff-2);
-#endif
-	}
-	// Send Reset
-	__R30 &= ~gpio;	// Clear the GPIO pin
-	__delay_cycles(resetCycles);
-	
-	__halt();
-}
diff --git a/books/pru-cookbook/05blocks/code/neo2.pru0.c b/books/pru-cookbook/05blocks/code/neo2.pru0.c
deleted file mode 100644
index a30077ceb090f7e3722cb0fe1a61162bdde9bb9d..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo2.pru0.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// Control a ws2812 (neo pixel) display, green, red, blue, green, ...
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 3
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_29				// output pin
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-	uint32_t color[STR_LEN] = {0x0f0000, 0x000f00, 0x0000f};	// green, red, blue
-	int i, j;
-
-	for(j=0; j<STR_LEN; j++) {
-		for(i=23; i>=0; i--) {
-			if(color[j] & (0x1<<i)) {
-				__R30 |= gpio;		// Set the GPIO pin to 1
-				__delay_cycles(oneCyclesOn-1);
-				__R30 &= ~gpio;		// Clear the GPIO pin
-				__delay_cycles(oneCyclesOff-2);
-			} else {
-				__R30 |= gpio;		// Set the GPIO pin to 1
-				__delay_cycles(zeroCyclesOn-1);
-				__R30 &= ~gpio;		// Clear the GPIO pin
-				__delay_cycles(zeroCyclesOff-2);
-			}
-		}
-	}
-	// Send Reset
-	__R30 &= ~gpio;	// Clear the GPIO pin
-	__delay_cycles(resetCycles);
-	
-	__halt();
-}
diff --git a/books/pru-cookbook/05blocks/code/neo2.pru1_1.c b/books/pru-cookbook/05blocks/code/neo2.pru1_1.c
deleted file mode 100644
index 6b243dcfb53c2139f44d4a2aabd113a274c331e8..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo2.pru1_1.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// Control a ws2812 (neo pixel) display, green, red, blue, green, ...
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 3
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_16				// output pin
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-	uint32_t color[STR_LEN] = {0x0f0000, 0x000f00, 0x0000f};	// green, red, blue
-	int i, j;
-
-	for(j=0; j<STR_LEN; j++) {
-		for(i=23; i>=0; i--) {
-			if(color[j] & (0x1<<i)) {
-				__R30 |= gpio;		// Set the GPIO pin to 1
-				__delay_cycles(oneCyclesOn-1);
-				__R30 &= ~gpio;		// Clear the GPIO pin
-				__delay_cycles(oneCyclesOff-2);
-			} else {
-				__R30 |= gpio;		// Set the GPIO pin to 1
-				__delay_cycles(zeroCyclesOn-1);
-				__R30 &= ~gpio;		// Clear the GPIO pin
-				__delay_cycles(zeroCyclesOff-2);
-			}
-		}
-	}
-	// Send Reset
-	__R30 &= ~gpio;	// Clear the GPIO pin
-	__delay_cycles(resetCycles);
-	
-	__halt();
-}
diff --git a/books/pru-cookbook/05blocks/code/neo3.pru0.c b/books/pru-cookbook/05blocks/code/neo3.pru0.c
deleted file mode 100644
index 8c1a9f1323d564d7894b299f1bd4f8a4020bc5e8..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo3.pru0.c
+++ /dev/null
@@ -1,67 +0,0 @@
-// Control a ws2812 (neo pixel) display, green, red, blue, green, ...
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_29				// output pin
-
-#define SPEED 20000000/5		// Time to wait between updates
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t background = 0x00000f;
-	uint32_t foreground = 0x000f00;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-	uint32_t color[STR_LEN];	// green, red, blue
-	int i, j;
-	int k, oldk = 0;;
-	// Set everything to background
-	for(i=0; i<STR_LEN; i++) {
-		color[i] = background;
-	}
-	
-	while(1) {
-		// Move forward one position
-		for(k=0; k<STR_LEN; k++) {
-			color[oldk] = background;
-			color[k]    = foreground;
-			oldk=k;
-
-			// Output the string
-			for(j=0; j<STR_LEN; j++) {
-				for(i=23; i>=0; i--) {
-					if(color[j] & (0x1<<i)) {
-						__R30 |= gpio;		// Set the GPIO pin to 1
-						__delay_cycles(oneCyclesOn-1);
-						__R30 &= ~gpio;		// Clear the GPIO pin
-						__delay_cycles(oneCyclesOff-2);
-					} else {
-						__R30 |= gpio;		// Set the GPIO pin to 1
-						__delay_cycles(zeroCyclesOn-1);
-						__R30 &= ~gpio;		// Clear the GPIO pin
-						__delay_cycles(zeroCyclesOff-2);
-					}
-				}
-			}
-			// Send Reset
-			__R30 &= ~gpio;	// Clear the GPIO pin
-			__delay_cycles(resetCycles);
-
-			// Wait
-			__delay_cycles(SPEED);
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/neo3.pru1_1.c b/books/pru-cookbook/05blocks/code/neo3.pru1_1.c
deleted file mode 100644
index ee8dd63859680a930b3dca6c8c61895a87051ac9..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo3.pru1_1.c
+++ /dev/null
@@ -1,67 +0,0 @@
-// Control a ws2812 (neo pixel) display, green, red, blue, green, ...
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on 700ns
-#define oneCyclesOff	800/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	600/5
-#define resetCycles		60000/5	// Must be at least 50u, use 60u
-#define gpio P9_16				// output pin
-
-#define SPEED 20000000/5		// Time to wait between updates
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t background = 0x00000f;
-	uint32_t foreground = 0x000f00;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-	uint32_t color[STR_LEN];	// green, red, blue
-	int i, j;
-	int k, oldk = 0;;
-	// Set everything to background
-	for(i=0; i<STR_LEN; i++) {
-		color[i] = background;
-	}
-	
-	while(1) {
-		// Move forward one position
-		for(k=0; k<STR_LEN; k++) {
-			color[oldk] = background;
-			color[k]    = foreground;
-			oldk=k;
-
-			// Output the string
-			for(j=0; j<STR_LEN; j++) {
-				for(i=23; i>=0; i--) {
-					if(color[j] & (0x1<<i)) {
-						__R30 |= gpio;		// Set the GPIO pin to 1
-						__delay_cycles(oneCyclesOn-1);
-						__R30 &= ~gpio;		// Clear the GPIO pin
-						__delay_cycles(oneCyclesOff-2);
-					} else {
-						__R30 |= gpio;		// Set the GPIO pin to 1
-						__delay_cycles(zeroCyclesOn-1);
-						__R30 &= ~gpio;		// Clear the GPIO pin
-						__delay_cycles(zeroCyclesOff-2);
-					}
-				}
-			}
-			// Send Reset
-			__R30 &= ~gpio;	// Clear the GPIO pin
-			__delay_cycles(resetCycles);
-
-			// Wait
-			__delay_cycles(SPEED);
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/neo4.pru0.c b/books/pru-cookbook/05blocks/code/neo4.pru0.c
deleted file mode 100644
index 7fb5455781d8dc47cd414a433b1578ea84645ad9..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo4.pru0.c
+++ /dev/null
@@ -1,145 +0,0 @@
-// Use rpmsg to control the NeoPixels via /dev/rpmsg_pru30
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>			// atoi
-#include <string.h>
-#include <pru_cfg.h>
-#include <pru_intc.h>
-#include <rsc_types.h>
-#include <pru_rpmsg.h>
-#include "resource_table_0.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-/* Host-0 Interrupt sets bit 30 in register R31 */
-#define HOST_INT			((uint32_t) 1 << 30)	
-
-/* The PRU-ICSS system events used for RPMsg are defined in the Linux device tree
- * PRU0 uses system event 16 (To ARM) and 17 (From ARM)
- * PRU1 uses system event 18 (To ARM) and 19 (From ARM)
- */
-#define TO_ARM_HOST			16	
-#define FROM_ARM_HOST		17
-
-/*
-* Using the name 'rpmsg-pru' will probe the rpmsg_pru driver found
-* at linux-x.y.z/drivers/rpmsg/rpmsg_pru.c
-*/
-#define CHAN_NAME			"rpmsg-pru"
-#define CHAN_DESC			"Channel 30"
-#define CHAN_PORT			30
-
-/*
- * Used to make sure the Linux drivers are ready for RPMsg communication
- * Found at linux-x.y.z/include/uapi/linux/virtio_config.h
- */
-#define VIRTIO_CONFIG_S_DRIVER_OK	4
-
-char payload[RPMSG_BUF_SIZE];
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on for 700ns
-#define oneCyclesOff	600/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	800/5
-#define resetCycles		51000/5	// Must be at least 50u, use 51u
-#define out P9_29				// Bit number to output on
-
-#define SPEED 20000000/5		// Time to wait between updates
-
-uint32_t color[STR_LEN];	// green, red, blue
-
-/*
- * main.c
- */
-void main(void)
-{
-	struct pru_rpmsg_transport transport;
-	uint16_t src, dst, len;
-	volatile uint8_t *status;
-	
-	uint8_t r, g, b;
-	int i, j;
-	// Set everything to background
-	for(i=0; i<STR_LEN; i++) {
-		color[i] = 0x010000;
-	}
-
-	/* Allow OCP master port access by the PRU so the PRU can read external memories */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	/* Clear the status of the PRU-ICSS system event that the ARM will use to 'kick' us */
-#ifdef CHIP_IS_am57xx
-	CT_INTC.SICR_bit.STATUS_CLR_INDEX = FROM_ARM_HOST;
-#else
-	CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST;
-#endif
-
-	/* Make sure the Linux drivers are ready for RPMsg communication */
-	status = &resourceTable.rpmsg_vdev.status;
-	while (!(*status & VIRTIO_CONFIG_S_DRIVER_OK));
-
-	/* Initialize the RPMsg transport structure */
-	pru_rpmsg_init(&transport, &resourceTable.rpmsg_vring0, &resourceTable.rpmsg_vring1, TO_ARM_HOST, FROM_ARM_HOST);
-
-	/* Create the RPMsg channel between the PRU and ARM user space using the transport structure. */
-	while (pru_rpmsg_channel(RPMSG_NS_CREATE, &transport, CHAN_NAME, CHAN_DESC, CHAN_PORT) != PRU_RPMSG_SUCCESS);
-	while (1) {
-		/* Check bit 30 of register R31 to see if the ARM has kicked us */
-		if (__R31 & HOST_INT) {
-			/* Clear the event status */
-#ifdef CHIP_IS_am57xx
-			CT_INTC.SICR_bit.STATUS_CLR_INDEX = FROM_ARM_HOST;
-#else
-			CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST;
-#endif
-			/* Receive all available messages, multiple messages can be sent per kick */
-			while (pru_rpmsg_receive(&transport, &src, &dst, payload, &len) == PRU_RPMSG_SUCCESS) {
-			    char *ret;	// rest of payload after front character is removed
-			    int index;	// index of LED to control
-			    // Input format is:  index red green blue
-			    index = atoi(payload);	
-			    // Update the array, but don't write it out.
-			    if((index >=0) & (index < STR_LEN)) {
-			    	ret = strchr(payload, ' ');	// Skip over index
-				    r = strtol(&ret[1], NULL, 0);
-				    ret = strchr(&ret[1], ' ');	// Skip over r, etc.
-				    g = strtol(&ret[1], NULL, 0);
-				    ret = strchr(&ret[1], ' ');
-				    b = strtol(&ret[1], NULL, 0);
-
-				    color[index] = (g<<16)|(r<<8)|b;	// String wants GRB
-			    }
-			    // When index is -1, send the array to the LED string
-			    if(index == -1) {
-				    // Output the string
-					for(j=0; j<STR_LEN; j++) {
-						// Cycle through each bit
-						for(i=23; i>=0; i--) {
-							if(color[j] & (0x1<<i)) {
-								__R30 |= out;		// Set the GPIO pin to 1
-								__delay_cycles(oneCyclesOn-1);
-								__R30 &= ~out;	// Clear the GPIO pin
-								__delay_cycles(oneCyclesOff-14);
-							} else {
-								__R30 |= out;		// Set the GPIO pin to 1
-								__delay_cycles(zeroCyclesOn-1);
-								__R30 &= ~(out);	// Clear the GPIO pin
-								__delay_cycles(zeroCyclesOff-14);
-							}
-						}
-					}
-					// Send Reset
-					__R30 &= ~out;	// Clear the GPIO pin
-					__delay_cycles(resetCycles);
-		
-					// Wait
-					__delay_cycles(SPEED);
-			    }
-
-			}
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/neo4.pru1_1.c b/books/pru-cookbook/05blocks/code/neo4.pru1_1.c
deleted file mode 100644
index 7c120937aa92b19fbc65971aa8a6ec3748c69ca4..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo4.pru1_1.c
+++ /dev/null
@@ -1,145 +0,0 @@
-// Use rpmsg to control the NeoPixels via /dev/rpmsg_pru30
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>			// atoi
-#include <string.h>
-#include <pru_cfg.h>
-#include <pru_intc.h>
-#include <rsc_types.h>
-#include <pru_rpmsg.h>
-#include "resource_table_1.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-/* Host-1 Interrupt sets bit 31 in register R31 */
-#define HOST_INT			((uint32_t) 1 << 31)	
-
-/* The PRU-ICSS system events used for RPMsg are defined in the Linux device tree
- * PRU0 uses system event 16 (To ARM) and 17 (From ARM)
- * PRU1 uses system event 18 (To ARM) and 19 (From ARM)
- */
-#define TO_ARM_HOST			18	
-#define FROM_ARM_HOST		19
-
-/*
-* Using the name 'rpmsg-pru' will probe the rpmsg_pru driver found
-* at linux-x.y.z/drivers/rpmsg/rpmsg_pru.c
-*/
-#define CHAN_NAME			"rpmsg-pru"
-#define CHAN_DESC			"Channel 31"
-#define CHAN_PORT			31
-
-/*
- * Used to make sure the Linux drivers are ready for RPMsg communication
- * Found at linux-x.y.z/include/uapi/linux/virtio_config.h
- */
-#define VIRTIO_CONFIG_S_DRIVER_OK	4
-
-char payload[RPMSG_BUF_SIZE];
-
-#define STR_LEN 24
-#define	oneCyclesOn		700/5	// Stay on for 700ns
-#define oneCyclesOff	600/5
-#define zeroCyclesOn	350/5
-#define zeroCyclesOff	800/5
-#define resetCycles		51000/5	// Must be at least 50u, use 51u
-#define out P9_16					// Bit number to output on
-
-#define SPEED 20000000/5		// Time to wait between updates
-
-uint32_t color[STR_LEN];	// green, red, blue
-
-/*
- * main.c
- */
-void main(void)
-{
-	struct pru_rpmsg_transport transport;
-	uint16_t src, dst, len;
-	volatile uint8_t *status;
-	
-	uint8_t r, g, b;
-	int i, j;
-	// Set everything to background
-	for(i=0; i<STR_LEN; i++) {
-		color[i] = 0x010000;
-	}
-
-	/* Allow OCP master port access by the PRU so the PRU can read external memories */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	/* Clear the status of the PRU-ICSS system event that the ARM will use to 'kick' us */
-#ifdef CHIP_IS_am57xx
-	CT_INTC.SICR_bit.STATUS_CLR_INDEX = FROM_ARM_HOST;
-#else
-	CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST;
-#endif
-
-	/* Make sure the Linux drivers are ready for RPMsg communication */
-	status = &resourceTable.rpmsg_vdev.status;
-	while (!(*status & VIRTIO_CONFIG_S_DRIVER_OK));
-
-	/* Initialize the RPMsg transport structure */
-	pru_rpmsg_init(&transport, &resourceTable.rpmsg_vring0, &resourceTable.rpmsg_vring1, TO_ARM_HOST, FROM_ARM_HOST);
-
-	/* Create the RPMsg channel between the PRU and ARM user space using the transport structure. */
-	while (pru_rpmsg_channel(RPMSG_NS_CREATE, &transport, CHAN_NAME, CHAN_DESC, CHAN_PORT) != PRU_RPMSG_SUCCESS);
-	while (1) {
-		/* Check bit 30 of register R31 to see if the ARM has kicked us */
-		if (__R31 & HOST_INT) {
-			/* Clear the event status */
-#ifdef CHIP_IS_am57xx
-			CT_INTC.SICR_bit.STATUS_CLR_INDEX = FROM_ARM_HOST;
-#else
-			CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST;
-#endif
-			/* Receive all available messages, multiple messages can be sent per kick */
-			while (pru_rpmsg_receive(&transport, &src, &dst, payload, &len) == PRU_RPMSG_SUCCESS) {
-			    char *ret;	// rest of payload after front character is removed
-			    int index;	// index of LED to control
-			    // Input format is:  index red green blue
-			    index = atoi(payload);	
-			    // Update the array, but don't write it out.
-			    if((index >=0) & (index < STR_LEN)) {
-			    	ret = strchr(payload, ' ');	// Skip over index
-				    r = strtol(&ret[1], NULL, 0);
-				    ret = strchr(&ret[1], ' ');	// Skip over r, etc.
-				    g = strtol(&ret[1], NULL, 0);
-				    ret = strchr(&ret[1], ' ');
-				    b = strtol(&ret[1], NULL, 0);
-
-				    color[index] = (g<<16)|(r<<8)|b;	// String wants GRB
-			    }
-			    // When index is -1, send the array to the LED string
-			    if(index == -1) {
-				    // Output the string
-					for(j=0; j<STR_LEN; j++) {
-						// Cycle through each bit
-						for(i=23; i>=0; i--) {
-							if(color[j] & (0x1<<i)) {
-								__R30 |= out;		// Set the GPIO pin to 1
-								__delay_cycles(oneCyclesOn-1);
-								__R30 &= ~out;	// Clear the GPIO pin
-								__delay_cycles(oneCyclesOff-14);
-							} else {
-								__R30 |= out;		// Set the GPIO pin to 1
-								__delay_cycles(zeroCyclesOn-1);
-								__R30 &= ~(out);	// Clear the GPIO pin
-								__delay_cycles(zeroCyclesOff-14);
-							}
-						}
-					}
-					// Send Reset
-					__R30 &= ~out;	// Clear the GPIO pin
-					__delay_cycles(resetCycles);
-		
-					// Wait
-					__delay_cycles(SPEED);
-			    }
-
-			}
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/neo_setup.sh b/books/pru-cookbook/05blocks/code/neo_setup.sh
deleted file mode 100755
index 8f98cbb2a9ae5f915cafc47af006b958fffe44f7..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/neo_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-#
-export TARGET=neo1.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_29 "
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_33"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/pwm-test.c b/books/pru-cookbook/05blocks/code/pwm-test.c
deleted file mode 100644
index 3bff5f71b6598b3f6ee1fd0fc04bdac16793cda8..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm-test.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* 
- *
- *  pwm tester
- *	The on cycle and off cycles are stored in each PRU's Data memory
- *
- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#define MAXCH 4
-
-#define PRU_ADDR		0x4A300000		// Start of PRU memory Page 184 am335x TRM
-#define PRU_LEN			0x80000			// Length of PRU memory
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-#define PRU1_DRAM		0x02000
-#define PRU_SHAREDMEM	0x10000			// Offset to shared memory
-
-unsigned int	*pru0DRAM_32int_ptr;		// Points to the start of local DRAM
-unsigned int	*pru1DRAM_32int_ptr;		// Points to the start of local DRAM
-unsigned int	*prusharedMem_32int_ptr;	// Points to the start of the shared memory
-
-/*******************************************************************************
-* int start_pwm_count(int ch, int countOn, int countOff)
-* 
-* Starts a pwm pulse on for countOn and off for countOff to a single channel (ch)
-*******************************************************************************/
-int start_pwm_count(int ch, int countOn, int countOff) {
-	unsigned int *pruDRAM_32int_ptr = pru0DRAM_32int_ptr;
-	
-	printf("countOn: %d, countOff: %d, count: %d\n", 
-		countOn, countOff, countOn+countOff);
-	// write to PRU shared memory
-	pruDRAM_32int_ptr[2*(ch)+0] = countOn;	// On time
-	pruDRAM_32int_ptr[2*(ch)+1] = countOff;	// Off time
-	return 0;
-}
-
-int main(int argc, char *argv[])
-{
-	unsigned int	*pru;		// Points to start of PRU memory.
-	int	fd;
-	printf("Servo tester\n");
-	
-	fd = open ("/dev/mem", O_RDWR | O_SYNC);
-	if (fd == -1) {
-		printf ("ERROR: could not open /dev/mem.\n\n");
-		return 1;
-	}
-	pru = mmap (0, PRU_LEN, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PRU_ADDR);
-	if (pru == MAP_FAILED) {
-		printf ("ERROR: could not map memory.\n\n");
-		return 1;
-	}
-	close(fd);
-	printf ("Using /dev/mem.\n");
-	
-	pru0DRAM_32int_ptr =     pru + PRU0_DRAM/4 + 0x200/4;	// Points to 0x200 of PRU0 memory
-	pru1DRAM_32int_ptr =     pru + PRU1_DRAM/4 + 0x200/4;	// Points to 0x200 of PRU1 memory
-	prusharedMem_32int_ptr = pru + PRU_SHAREDMEM/4;	// Points to start of shared memory
-
-	int i;
-	for(i=0; i<MAXCH; i++) {
-		start_pwm_count(i, i+1, 20-(i+1));
-	}
-	
-	if(munmap(pru, PRU_LEN)) {
-		printf("munmap failed\n");
-	} else {
-		printf("munmap succeeded\n");
-	}
-}
-
diff --git a/books/pru-cookbook/05blocks/code/pwm1.pru0.c b/books/pru-cookbook/05blocks/code/pwm1.pru0.c
deleted file mode 100644
index 2ea5caa17efd570bad1cbc658d5e2c96557b1b0f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm1.pru0.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while(1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(100000000);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(100000000);
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm1.pru1_1.c b/books/pru-cookbook/05blocks/code/pwm1.pru1_1.c
deleted file mode 100644
index 1f8b737e678691af3c4ab83cfa2d1d5bc442fe64..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm1.pru1_1.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_16;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while(1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(100000000);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(100000000);
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm2.pru0.c b/books/pru-cookbook/05blocks/code/pwm2.pru0.c
deleted file mode 100644
index bfa0d0761411212a8a0f4469ca02dfd08f5a20bd..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm2.pru0.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while (1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(1);	// Delay one cycle to correct for loop time
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(0);
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm3.pru0.c b/books/pru-cookbook/05blocks/code/pwm3.pru0.c
deleted file mode 100644
index 4b2955a0573171e7e3525a9381e4a4a2acb15e36..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm3.pru0.c
+++ /dev/null
@@ -1,43 +0,0 @@
-// This code does MAXCH parallel PWM channels.
-// It's period is 3 us
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define MAXCH	4	// Maximum number of channels
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[] = {1, 2, 3, 4};	// Number of cycles to stay on
-	uint32_t off[] = {4, 3, 2, 1};	// Number to stay off
-	uint32_t onCount[MAXCH];		// Current count
-	uint32_t offCount[MAXCH];
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	// Initialize the channel counters.
-	for(ch=0; ch<MAXCH; ch++) {
-		onCount[ch] = on[ch];
-		offCount[ch]= off[ch];
-	}
-
-	while (1) {
-		for(ch=0; ch<MAXCH; ch++) {
-			if(onCount[ch]) {
-				onCount[ch]--;
-				__R30 |= 0x1<<ch;		// Set the GPIO pin to 1
-			} else if(offCount[ch]) {
-				offCount[ch]--;
-				__R30 &= ~(0x1<<ch);		// Clear the GPIO pin
-			} else {
-				onCount[ch] = on[ch];
-				offCount[ch]= off[ch];
-			}
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm4.pru0.c b/books/pru-cookbook/05blocks/code/pwm4.pru0.c
deleted file mode 100644
index ee0f7ec6adf542562b8740ce410226840b01ac50..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm4.pru0.c
+++ /dev/null
@@ -1,50 +0,0 @@
-// This code does MAXCH parallel PWM channels.
-// It's period is 3 us
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	4	// Maximum number of channels per PRU
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};	// Number of cycles to stay on
-	uint32_t off[] = {4, 3, 2, 1};	// Number to stay off
-	uint32_t onCount[MAXCH];		// Current count
-	uint32_t offCount[MAXCH];
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	// Initialize the channel counters.
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on[ch];		// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch];	// Interleave the on and off values
-		onCount[ch] = on[ch];
-		offCount[ch]= off[ch];
-	}
-
-	while (1) {
-		for(ch=0; ch<MAXCH; ch++) {
-			if(onCount[ch]) {
-				onCount[ch]--;
-				__R30 |= 0x1<<ch;		// Set the GPIO pin to 1
-			} else if(offCount[ch]) {
-				offCount[ch]--;
-				__R30 &= ~(0x1<<ch);	// Clear the GPIO pin
-			} else {
-				onCount[ch] = pru0_dram[2*ch];		// Read from DRAM0
-				offCount[ch]= pru0_dram[2*ch+1];
-			}
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm5.pru0.c b/books/pru-cookbook/05blocks/code/pwm5.pru0.c
deleted file mode 100644
index 60a97b817c32ca25fcbd9445ec6d612151ed21c6..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm5.pru0.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// This code does MAXCH parallel PWM channels.
-// It's period is 510ns.
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	4	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				__R30 |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				__R30 &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on[ch];		// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch];	// Interleave the on and off values
-		onCount[ch] = on[ch];
-		offCount[ch]= off[ch];
-	}
-
-	while (1) {
-		update(0)
-		update(1)
-		update(2)
-		update(3)
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm6.pru0.c b/books/pru-cookbook/05blocks/code/pwm6.pru0.c
deleted file mode 100644
index 6df321f5f0d7094b6ec93e57cbf65a62994094a1..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm6.pru0.c
+++ /dev/null
@@ -1,56 +0,0 @@
-// This code does MAXCH parallel PWM channels.
-// All channels start at the same time. It's period is 510ns
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	4	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				Rtmp |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				Rtmp &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-	register uint32_t Rtmp;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on[ch];		// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch];	// Interleave the on and off values
-		onCount[ch] = on[ch];
-		offCount[ch]= off[ch];
-	}
-	Rtmp = __R30;
-
-	while (1) {
-		update(0)
-		update(1)
-		update(2)
-		update(3)
-		__R30 = Rtmp;
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm7-test.c b/books/pru-cookbook/05blocks/code/pwm7-test.c
deleted file mode 100644
index cbb6769819050b95dec2fd402db0f69a4beaa752..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm7-test.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* 
- *
- *  pwm tester
- *  (c) Copyright 2016
- *  Mark A. Yoder, 20-July-2016
- *	The channels 0-11 are on PRU1 and channels 12-17 are on PRU0
- *	The period and duty cycle values are stored in each PRU's Data memory
- *	The enable bits are stored in the shared memory
- *
- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#define MAXCH 2
-
-#define PRU_ADDR		0x4A300000		// Start of PRU memory Page 184 am335x TRM
-#define PRU_LEN			0x80000			// Length of PRU memory
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-#define PRU1_DRAM		0x02000
-#define PRU_SHAREDMEM	0x10000			// Offset to shared memory
-
-unsigned int	*pru0DRAM_32int_ptr;		// Points to the start of local DRAM
-unsigned int	*pru1DRAM_32int_ptr;		// Points to the start of local DRAM
-unsigned int	*prusharedMem_32int_ptr;	// Points to the start of the shared memory
-
-/*******************************************************************************
-* int start_pwm_count(int ch, int countOn, int countOff)
-* 
-* Starts a pwm pulse on for countOn and off for countOff to a single channel (ch)
-*******************************************************************************/
-int start_pwm_count(int ch, int countOn, int countOff, unsigned int *ptr) {
-	unsigned int *pruDRAM_32int_ptr = ptr;
-	
-	printf("countOn: %d, countOff: %d, count: %d\n", 
-		countOn, countOff, countOn+countOff);
-	// write to PRU shared memory
-	pruDRAM_32int_ptr[2*(ch)+0] = countOn;	// On time
-	pruDRAM_32int_ptr[2*(ch)+1] = countOff;	// Off time
-	return 0;
-}
-
-int main(int argc, char *argv[])
-{
-	unsigned int	*pru;		// Points to start of PRU memory.
-	int	fd;
-	printf("Servo tester\n");
-	
-	fd = open ("/dev/mem", O_RDWR | O_SYNC);
-	if (fd == -1) {
-		printf ("ERROR: could not open /dev/mem.\n\n");
-		return 1;
-	}
-	pru = mmap (0, PRU_LEN, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PRU_ADDR);
-	if (pru == MAP_FAILED) {
-		printf ("ERROR: could not map memory.\n\n");
-		return 1;
-	}
-	close(fd);
-	printf ("Using /dev/mem.\n");
-	
-	pru0DRAM_32int_ptr =     pru + PRU0_DRAM/4 + 0x200/4;	// Points to 0x200 of PRU0 memory
-	pru1DRAM_32int_ptr =     pru + PRU1_DRAM/4 + 0x200/4;	// Points to 0x200 of PRU1 memory
-	prusharedMem_32int_ptr = pru + PRU_SHAREDMEM/4;	// Points to start of shared memory
-
-
-	int on[]  = {1, 2, 3, 4};
-	int off[] = {4, 3, 2, 1};
-
-	int ch;
-	for(ch=0; ch<MAXCH; ch++) {
-		start_pwm_count(ch, on[ch],       off[ch],       pru0DRAM_32int_ptr);
-		start_pwm_count(ch, on[ch+MAXCH], off[ch+MAXCH], pru1DRAM_32int_ptr);
-	}
-	
-	if(munmap(pru, PRU_LEN)) {
-		printf("munmap failed\n");
-	} else {
-		printf("munmap succeeded\n");
-	}
-}
-
diff --git a/books/pru-cookbook/05blocks/code/pwm7.pru0.c b/books/pru-cookbook/05blocks/code/pwm7.pru0.c
deleted file mode 100644
index b95c5caab89d3614e9dfa964d38c162921f67a4b..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm7.pru0.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// This code does MAXCH parallel PWM channels on both PRU 0 and PRU 1
-// All channels start at the same time. But the PRU 1 ch have a difference period
-// It's period is 370ns
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define PRUNUM 0
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	2	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				Rtmp |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				Rtmp &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-	register uint32_t Rtmp;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on [ch+PRUNUM*MAXCH];	// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch+PRUNUM*MAXCH];	// Interleave the on and off values
-		onCount[ch] = on [ch+PRUNUM*MAXCH];
-		offCount[ch]= off[ch+PRUNUM*MAXCH];
-	}
-	Rtmp = __R30;
-
-	while (1) {
-		update(0)
-		update(1)
-		__R30 = Rtmp;
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm7.pru1.c b/books/pru-cookbook/05blocks/code/pwm7.pru1.c
deleted file mode 100644
index 50d4788b8c4d07848a0f0ff651fc78a7545ff67f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm7.pru1.c
+++ /dev/null
@@ -1,57 +0,0 @@
-// This code does MAXCH parallel PWM channels on both PRU 0 and PRU 1
-// All channels start at the same time. But the PRU 1 ch have a difference period
-// It's period is 370ns
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-#define PRUNUM 1
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	2	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				Rtmp |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				Rtmp &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-	register uint32_t Rtmp;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on [ch+PRUNUM*MAXCH];	// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch+PRUNUM*MAXCH];	// Interleave the on and off values
-		onCount[ch] = on [ch+PRUNUM*MAXCH];
-		offCount[ch]= off[ch+PRUNUM*MAXCH];
-	}
-	Rtmp = __R30;
-
-	while (1) {
-		update(0)
-		update(1)
-		__R30 = Rtmp;
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm7_setup.sh b/books/pru-cookbook/05blocks/code/pwm7_setup.sh
deleted file mode 100755
index aae4c778542c5209a799411b393b2d5b2130e76e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm7_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-#
-export TARGET=pwm7.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_31 P9_29 P8_45 P8_46"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_36 P1_33"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/pwm8.pru0.c b/books/pru-cookbook/05blocks/code/pwm8.pru0.c
deleted file mode 100644
index c566573f6f681f7642e61d5c159c8558d3895d33..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm8.pru0.c
+++ /dev/null
@@ -1,78 +0,0 @@
-// This code does MAXCH parallel PWM channels on both PRU 0 and PRU 1
-// All channels start at the same time. 
-// It's period is 430ns
-#include <stdint.h>
-#include <pru_cfg.h>
-#include <pru_intc.h>
-#include <pru_ctrl.h>
-#include "resource_table_empty.h"
-
-#define PRUNUM 0
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	2	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				Rtmp |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				Rtmp &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-// Initialize interupts so the PRUs can be syncronized.
-// PRU1 is started first and then waits for PRU0
-// PRU0 is then started and tells PRU1 when to start going
-void configIntc(void) {	
-	__R31 = 0x00000000;					// Clear any pending PRU-generated events
-	CT_INTC.CMR4_bit.CH_MAP_16 = 1;		// Map event 16 to channel 1
-	CT_INTC.HMR0_bit.HINT_MAP_1 = 1;	// Map channel 1 to host 1
-	CT_INTC.SICR = 16;					// Ensure event 16 is cleared
-	CT_INTC.EISR = 16;					// Enable event 16
-	CT_INTC.HIEISR |= (1 << 0);			// Enable Host interrupt 1
-	CT_INTC.GER = 1; 					// Globally enable host interrupts
-}
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-	register uint32_t Rtmp;
-
-	CT_CFG.GPCFG0 = 0x0000;				// Configure GPI and GPO as Mode 0 (Direct Connect)
-	configIntc();						// Configure INTC
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on [ch+PRUNUM*MAXCH];	// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch+PRUNUM*MAXCH];	// Interleave the on and off values
-		onCount[ch] = on [ch+PRUNUM*MAXCH];
-		offCount[ch]= off[ch+PRUNUM*MAXCH];
-	}
-	Rtmp = __R30;
-
-	while (1) {
-		__R30 = Rtmp;
-		update(0)
-		update(1)
-#define PRU0_PRU1_EVT 16
-		__R31 = (PRU0_PRU1_EVT-16) | (0x1<<5);	//Tell PRU 1 to start
-		__delay_cycles(1);
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm8.pru1.c b/books/pru-cookbook/05blocks/code/pwm8.pru1.c
deleted file mode 100644
index cf5c241c99addc0d8b958724554e078f9a53412c..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm8.pru1.c
+++ /dev/null
@@ -1,66 +0,0 @@
-// This code does MAXCH parallel PWM channels on both PRU 0 and PRU 1
-// All channels start at the same time. 
-// It's period is 430ns
-#include <stdint.h>
-#include <pru_cfg.h>
-#include <pru_intc.h>
-#include <pru_ctrl.h>
-#include "resource_table_empty.h"
-
-#define PRUNUM 1
-
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 byte of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *pru0_dram = (unsigned int *) (PRU0_DRAM + 0x200);
-
-#define MAXCH	2	// Maximum number of channels per PRU
-
-#define update(ch) \
-			if(onCount[ch]) {			\
-				onCount[ch]--;			\
-				Rtmp |= 0x1<<ch;		\
-			} else if(offCount[ch]) {	\
-				offCount[ch]--;			\
-				Rtmp &= ~(0x1<<ch);	\
-			} else {					\
-				onCount[ch] = pru0_dram[2*ch];	\
-				offCount[ch]= pru0_dram[2*ch+1];	\
-			}
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-// Initialize interupts so the PRUs can be syncronized.
-// PRU1 is started first and then waits for PRU0
-// PRU0 is then started and tells PRU1 when to start going
-
-void main(void)
-{
-	uint32_t ch;
-	uint32_t on[]  = {1, 2, 3, 4};
-	uint32_t off[] = {4, 3, 2, 1};
-	uint32_t onCount[MAXCH], offCount[MAXCH];
-	register uint32_t Rtmp;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-#pragma UNROLL(MAXCH)
-	for(ch=0; ch<MAXCH; ch++) {
-		pru0_dram[2*ch  ] = on [ch+PRUNUM*MAXCH];	// Copy to DRAM0 so the ARM can change it
-		pru0_dram[2*ch+1] = off[ch+PRUNUM*MAXCH];	// Interleave the on and off values
-		onCount[ch] = on [ch+PRUNUM*MAXCH];
-		offCount[ch]= off[ch+PRUNUM*MAXCH];
-	}
-	Rtmp = __R30;
-
-	while (1) {
-		while((__R31 & (0x1<<31))==0) {		// Wait for PRU 0
-		}
-		CT_INTC.SICR = 16;					// Clear event 16
-		__R30 = Rtmp;
-		update(0)
-		update(1)
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/pwm_setup.sh b/books/pru-cookbook/05blocks/code/pwm_setup.sh
deleted file mode 100755
index b69ed1297ab4a73d309a7f46253c3b9b5f97add1..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/pwm_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-#
-export TARGET=pwm1.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_31 P9_29 P9_30 P9_28"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_36 P1_33 P2_32 P2_30"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/resource_table_empty.h b/books/pru-cookbook/05blocks/code/resource_table_empty.h
deleted file mode 100644
index 07e97d9b383c9d937d4b55e705024d6c28dc748a..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/resource_table_empty.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *  ======== resource_table_empty.h ========
- *
- *  Define the resource table entries for all PRU cores. This will be
- *  incorporated into corresponding base images, and used by the remoteproc
- *  on the host-side to allocated/reserve resources.  Note the remoteproc
- *  driver requires that all PRU firmware be built with a resource table.
- *
- *  This file contains an empty resource table.  It can be used either as:
- *
- *        1) A template, or
- *        2) As-is if a PRU application does not need to configure PRU_INTC
- *                  or interact with the rpmsg driver
- *
- */
-
-#ifndef _RSC_TABLE_PRU_H_
-#define _RSC_TABLE_PRU_H_
-
-#include <stddef.h>
-#include <rsc_types.h>
-
-struct my_resource_table {
-	struct resource_table base;
-
-	uint32_t offset[1]; /* Should match 'num' in actual definition */
-};
-
-#pragma DATA_SECTION(pru_remoteproc_ResourceTable, ".resource_table")
-#pragma RETAIN(pru_remoteproc_ResourceTable)
-struct my_resource_table pru_remoteproc_ResourceTable = {
-	1,	/* we're the first version that implements this */
-	0,	/* number of entries in the table */
-	0, 0,	/* reserved, must be zero */
-	0,	/* offset[0] */
-};
-
-#endif /* _RSC_TABLE_PRU_H_ */
-
diff --git a/books/pru-cookbook/05blocks/code/rgb1.pru0.c b/books/pru-cookbook/05blocks/code/rgb1.pru0.c
deleted file mode 100644
index 9936d627336863daf9c4c1d5e92f70afd602b3a9..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb1.pru0.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// This code drives the RGB LED Matrix on the 1st Connector
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-#include "rgb_pocket.h"
-
-#define DELAY 10	// Number of cycles (5ns each) to wait after a write
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Set up the pointers to each of the GPIO ports 
-	uint32_t *gpio[] = {
-			(uint32_t *) GPIO0, 
-			(uint32_t *) GPIO1, 
-			(uint32_t *) GPIO2, 
-			(uint32_t *) GPIO3
-		};
-	
-	uint32_t i, row;
-
-	while(1) {
-	    for(row=0; row<16; row++) {
-	    	// Set the row address
-			// Here we take advantage of the select bits (LA,LB,LC,LD)
-			// being sequential in the R30 register (bits 2,3,4,5)
-			// We shift row over so it lines up with the select bits
-			// Oring (|=) with R30 sets bits to 1 and
-			// Anding (&=) clears bits to 0, the 0xffc mask makes sure the
-			// other bits aren't changed.
-	        __R30 |=  row<<pru_sel0;
-	        __R30 &= (row<<pru_sel0)|0xffc3;
-
-    	    for(i=0; i<64; i++) {
-    	    	// Top row white
-    	    	// Combining these to one write works because they are all in 
-    	    	// the same gpio port
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT] = r11_pin | g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);;
-    	      	
-    	      	// Bottom row red
-    	      	gpio[r12_gpio][GPIO_SETDATAOUT]   = r12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r12_gpio][GPIO_CLEARDATAOUT] = g12_pin | b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    	
-    	    	// Top row black
-    	    	gpio[r11_gpio][GPIO_CLEARDATAOUT] = r11_pin | g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row green
-    	    	gpio[r12_gpio][GPIO_CLEARDATAOUT] = r12_pin | b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r12_gpio][GPIO_SETDATAOUT]   = g12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    }
-    	    __R30 |=  pru_oe;        // Disable display
-    	   	__delay_cycles(DELAY);
-    	    __R30 |=  pru_latch;     // Toggle latch
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_latch;
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_oe;        // Enable display
-    	    __delay_cycles(DELAY);
-	    }
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/rgb2.pru0.c b/books/pru-cookbook/05blocks/code/rgb2.pru0.c
deleted file mode 100644
index eb43b357bb3cdb92f6853a0d46600b1e53a7b6ac..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb2.pru0.c
+++ /dev/null
@@ -1,81 +0,0 @@
-// This code drives the RGB LED Matrix on J1 connector
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-#include "rgb_pocket.h"
-
-#define DELAY 100
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Set up the pointers to each of the GPIO ports 
-	uint32_t *gpio[] = {
-			(uint32_t *) GPIO0, 
-			(uint32_t *) GPIO1, 
-			(uint32_t *) GPIO2, 
-			(uint32_t *) GPIO3
-		};
-	
-	uint32_t i, row;
-	
-	while(1) {
-	    for(row=0; row<16; row++) {
-	        if(row&(0x1<<0)) __R30|=(0x1<<pru_sel0); else __R30&=~(0x1<<pru_sel0);
-	        __delay_cycles(DELAY);
-	        if(row&(0x1<<1)) __R30|=(0x1<<pru_sel1); else __R30&=~(0x1<<pru_sel1);
-	        __delay_cycles(DELAY);
-	        if(row&(0x1<<2)) __R30|=(0x1<<pru_sel2); else __R30&=~(0x1<<pru_sel2);
-	        __delay_cycles(DELAY);
-	        if(row&(0x1<<3)) __R30|=(0x1<<pru_sel3); else __R30&=~(0x1<<pru_sel3);
-	        __delay_cycles(DELAY);
-	        
-    	    for(i=0; i<64; i++) {
-    	    	// red
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT]   = r11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r11_gpio][GPIO_CLEARDATAOUT] = g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);
-
-				// green
-    	      	gpio[r11_gpio][GPIO_CLEARDATAOUT] = r12_pin |  b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT]   = g12_pin;
-    	    	__delay_cycles(DELAY);
-
-                __R30 |=  pru_clock;     // Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    	
-    	    	// blue
-    	    	gpio[r11_gpio][GPIO_CLEARDATAOUT] = r11_pin | g11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT]   = b11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	//blue
-    	    	gpio[r11_gpio][GPIO_CLEARDATAOUT] = r12_pin | g12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT]   = b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-                __R30 |=  pru_clock;      // Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    }
-    	    __R30 |=  pru_oe;        // Disable display
-    	    	__delay_cycles(DELAY);
-    	    __R30 |=  pru_latch;     // Toggle latch
-    	    	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_latch;
-    	    	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_oe;        // Enable display
-    	    __delay_cycles(DELAY);
-	    }
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/rgb3.pru0.c b/books/pru-cookbook/05blocks/code/rgb3.pru0.c
deleted file mode 100644
index b14ad864c4de0c621561f1cb031aae0af5367dd4..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb3.pru0.c
+++ /dev/null
@@ -1,114 +0,0 @@
-// This code drives the RGB LED Matrix on the 1st and 2nd Connectors
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-#include "rgb_pocket.h"
-
-#define DELAY 10	// Number of cycles (5ns each) to wait after a write
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Set up the pointers to each of the GPIO ports 
-	uint32_t *gpio[] = {
-			(uint32_t *) GPIO0, 
-			(uint32_t *) GPIO1, 
-			(uint32_t *) GPIO2, 
-			(uint32_t *) GPIO3
-		};
-	
-	uint32_t i, row;
-
-	while(1) {
-	    for(row=0; row<16; row++) {
-	    	// Set the row address
-			// Here we take advantage of the select bits (LA,LB,LC,LD)
-			// being sequential in the R30 register (bits 2,3,4,5)
-			// We shift row over so it lines up with the select bits
-			// Oring (|=) with R30 sets bits to 1 and
-			// Anding (&=) clears bits to 0, the 0xffc mask makes sure the
-			// other bits aren't changed.
-	        __R30 |=  row<<pru_sel0;
-	        __R30 &= (row<<pru_sel0)|0xffc3;
-
-    	    for(i=0; i<64; i++) {
-    	    	// Panel 1 Upper
-    	    	// Top row white
-    	    	// Combining these to one write works because they are all in 
-    	    	// the same gpio port
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT] = r11_pin | g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row red
-    	      	gpio[r12_gpio][GPIO_SETDATAOUT]   = r12_pin;
-    	    	// __delay_cycles(DELAY);
-    	      	gpio[g12_gpio][GPIO_CLEARDATAOUT] = g12_pin | b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	    	// Panel 2 Upper
-    	    	// Top row blue
-    	    	// Combining these to one write works because they are all in 
-    	    	// the same gpio port except b12
-    	      	gpio[r21_gpio][GPIO_CLEARDATAOUT] = r21_pin | g21_pin;
-    	    	// __delay_cycles(DELAY);
-    	      	gpio[b21_gpio][GPIO_SETDATAOUT]   = b21_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row red
-    	      	gpio[r22_gpio][GPIO_SETDATAOUT]   = r22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[g22_gpio][GPIO_CLEARDATAOUT] = g22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[b22_gpio][GPIO_CLEARDATAOUT] = b22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-
-				// Panel 1 Lower
-    	    	// Top row black
-    	    	gpio[r11_gpio][GPIO_CLEARDATAOUT] = r11_pin | g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row green
-    	    	gpio[r12_gpio][GPIO_CLEARDATAOUT] = r12_pin | b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[g12_gpio][GPIO_SETDATAOUT]   = g12_pin;
-    	    	__delay_cycles(DELAY);
-    	    	
-    	    	// Panel 2 Lower
-    	    	// Top row reg+green = yellow
-    	    	gpio[r21_gpio][GPIO_SETDATAOUT] = r21_pin | g21_pin;
-    	    	__delay_cycles(DELAY);
-    	    	gpio[b21_gpio][GPIO_CLEARDATAOUT] = b21_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row green
-    	    	gpio[r22_gpio][GPIO_CLEARDATAOUT] = r22_pin;
-    	    	__delay_cycles(DELAY);
-    	    	gpio[b22_gpio][GPIO_CLEARDATAOUT] = b22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[g22_gpio][GPIO_SETDATAOUT] = g22_pin;
-    	    	__delay_cycles(2*DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    }
-    	    __R30 |=  pru_oe;        // Disable display
-    	   	__delay_cycles(DELAY);
-    	    __R30 |=  pru_latch;     // Toggle latch
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_latch;
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_oe;        // Enable display
-    	    __delay_cycles(DELAY);
-	    }
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/rgb4.pru0.c b/books/pru-cookbook/05blocks/code/rgb4.pru0.c
deleted file mode 100644
index 6d06f1210e18bb3bbf74bf20b9c0b0c876c365e0..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb4.pru0.c
+++ /dev/null
@@ -1,84 +0,0 @@
-// This code drives the RGB LED Matrix on the 2nd Connector
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-#include "rgb_pocket.h"
-
-#define DELAY 10	// Number of cycles (5ns each) to wait after a write
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Set up the pointers to each of the GPIO ports 
-	uint32_t *gpio[] = {
-			(uint32_t *) GPIO0, 
-			(uint32_t *) GPIO1, 
-			(uint32_t *) GPIO2, 
-			(uint32_t *) GPIO3
-		};
-	
-	uint32_t i, row;
-
-	while(1) {
-	    for(row=0; row<16; row++) {
-	    	// Set the row address
-			// Here we take advantage of the select bits (LA,LB,LC,LD)
-			// being sequential in the R30 register (bits 2,3,4,5)
-			// We shift row over so it lines up with the select bits
-			// Oring (|=) with R30 sets bits to 1 and
-			// Anding (&=) clears bits to 0, the 0xffc mask makes sure the
-			// other bits aren't changed.
-	        __R30 |=  row<<pru_sel0;
-	        __R30 &= (row<<pru_sel0)|0xffc3;
-
-    	    for(i=0; i<64; i++) {
-    	    	// Top row white
-    	    	// Combining these to one write works because they are all in 
-    	    	// the same gpio port except b12
-    	      	gpio[r21_gpio][GPIO_SETDATAOUT] = r21_pin | g21_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[b21_gpio][GPIO_SETDATAOUT] =  b21_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row red
-    	      	gpio[r22_gpio][GPIO_SETDATAOUT]   = r22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[g22_gpio][GPIO_CLEARDATAOUT] = g22_pin | b22_pin;
-    	    	__delay_cycles(2*DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    	
-    	    	// Top row black
-    	    	gpio[r21_gpio][GPIO_CLEARDATAOUT] = r21_pin | g21_pin;
-    	    	__delay_cycles(DELAY);
-    	    	gpio[b21_gpio][GPIO_CLEARDATAOUT] = b21_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-    	      	// Bottom row green
-    	    	gpio[r22_gpio][GPIO_CLEARDATAOUT] = r22_pin | b22_pin;
-    	    	__delay_cycles(DELAY);
-    	      	gpio[g22_gpio][GPIO_SETDATAOUT]   = g22_pin;
-    	    	__delay_cycles(2*DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    }
-    	    __R30 |=  pru_oe;        // Disable display
-    	   	__delay_cycles(DELAY);
-    	    __R30 |=  pru_latch;     // Toggle latch
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_latch;
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_oe;        // Enable display
-    	    __delay_cycles(DELAY);
-	    }
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/rgb_black.h b/books/pru-cookbook/05blocks/code/rgb_black.h
deleted file mode 100644
index be7cf4ba8ab0da67ee7ce7301fe49a90bfad539e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_black.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//Black - Not tested
-// These are from https://github.com/FalconChristmas/fpp/blob/master/src/pru/PocketScrollerV1.hp
-// _gpio tells which gpio port and _pin tells which bit in the port
-// The first 1 in r11 is for the J1 connector
-// See the githuub file for the other connectors
-
-#define r11_gpio 2
-#define r11_pin 9
-#define g11_gpio 2
-#define g11_pin 11
-#define b11_gpio 2
-#define b11_pin 10
-
-#define r12_gpio 2
-#define r12_pin 12
-#define g12_gpio 2
-#define g12_pin 22
-#define b12_gpio 2
-#define b12_pin 23
-
-#define pru_latch 1	// These are the bit positions in R30
-#define pru_oe    0
-#define pru_clock 2
-
-// Control pins are all in GPIO2
-// The pocket has these on R0, the code needs to be changed for this work work
-#define gpio_sel0 13 /* must be sequential with sel1 and sel2 */
-#define gpio_sel1 14
-#define gpio_sel2 15
-#define gpio_sel3 16
-#define gpio_sel4 17
diff --git a/books/pru-cookbook/05blocks/code/rgb_pocket.h b/books/pru-cookbook/05blocks/code/rgb_pocket.h
deleted file mode 100644
index 45a91118038898605939bc4493a3337cb4fd86a0..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_pocket.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Pocket
-// These are from https://github.com/FalconChristmas/fpp/blob/master/src/pru/PocketScrollerV1.hp
-// _gpio tells which gpio port and _pin tells which bit in the port
-// The first 1 in r11 is for the J1 connector
-// See the githuub file for the other connectors
-
-// J1
-#define r11_gpio 1
-#define r11_pin (0x1<<20)
-#define g11_gpio 1
-#define g11_pin (0x1<<28)
-#define b11_gpio 1
-#define b11_pin (0x1<<25)
-
-#define r12_gpio 1
-#define r12_pin (0x1<<26)
-#define g12_gpio 1
-#define g12_pin (0x1<<27)
-#define b12_gpio 1
-#define b12_pin (0x1<<18)
-
-// J2
-#define r21_gpio 1
-#define r21_pin (0x1<<8)
-#define g21_gpio 1
-#define g21_pin (0x1<<9)
-#define b21_gpio 0
-#define b21_pin (0x1<<30)
-
-#define r22_gpio 1
-#define r22_pin (0x1<<12)
-#define g22_gpio 1
-#define g22_pin (0x1<<14)
-#define b22_gpio 1
-#define b22_pin (0x1<<15)
-
-// All connectors
-#define pru_latch  (0x1<<0)	// These are the bit positions in R30
-#define pru_oe     (0x1<<7)
-#define pru_clock  (0x1<<1)
-
-#define pru_sel0   2	// These are called LA, LB, LC and LD in the python code
-#define pru_sel1   3	// Also bit positions
-#define pru_sel2   4
-#define pru_sel3   5
diff --git a/books/pru-cookbook/05blocks/code/rgb_python.py b/books/pru-cookbook/05blocks/code/rgb_python.py
deleted file mode 100755
index 25e353343f3c8f829a60376f4c3121e8ada1bbd1..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_python.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python3
-import Adafruit_BBIO.GPIO as GPIO
-
-# Define which functions are connect to which pins
-OE="P1_29"      # Output Enable, active low
-LAT="P1_36"     # Latch, toggle after clocking in a row of pixels
-CLK="P1_33"     # Clock, toggle after each pixel
-
-# Input data pins 
-R1="P2_10"  # R1, G1, B1 are for the top rows (1-16) of pixels
-G1="P2_8"
-B1="P2_6"
-
-R2="P2_4"   # R2, G2, B2 are for the bottom rows (17-32) of pixels
-G2="P2_2"
-B2="P2_1"
-
-LA="P2_32"  # Address lines for which row (1-16 or 17-32) to update
-LB="P2_30"
-LC="P1_31"
-LD="P2_34"
-
-# Set everything as output ports
-GPIO.setup(OE,  GPIO.OUT)
-GPIO.setup(LAT, GPIO.OUT)
-GPIO.setup(CLK, GPIO.OUT)
-
-GPIO.setup(R1, GPIO.OUT)
-GPIO.setup(G1, GPIO.OUT)
-GPIO.setup(B1, GPIO.OUT)
-GPIO.setup(R2, GPIO.OUT)
-GPIO.setup(G2, GPIO.OUT)
-GPIO.setup(B2, GPIO.OUT)
-
-GPIO.setup(LA, GPIO.OUT)
-GPIO.setup(LB, GPIO.OUT)
-GPIO.setup(LC, GPIO.OUT)
-GPIO.setup(LD, GPIO.OUT)
-
-GPIO.output(OE,  0)     # Enable the display
-GPIO.output(LAT, 0)     # Set latch to low
-
-while True:
-    for bank in range(64):
-        GPIO.output(LA, bank>>0&0x1)    # Select rows
-        GPIO.output(LB, bank>>1&0x1)
-        GPIO.output(LC, bank>>2&0x1)
-        GPIO.output(LD, bank>>3&0x1)
-        
-        # Shift the colors out.  Here we only have four different 
-        # colors to keep things simple.
-        for i in range(16):
-            GPIO.output(R1,  1)     # Top row, white
-            GPIO.output(G1,  1)
-            GPIO.output(B1,  1)
-            
-            GPIO.output(R2,  1)     # Bottom row, red
-            GPIO.output(G2,  0)
-            GPIO.output(B2,  0)
-
-            GPIO.output(CLK, 0)     # Toggle clock
-            GPIO.output(CLK, 1)
-    
-            GPIO.output(R1,  0)     # Top row, black
-            GPIO.output(G1,  0)
-            GPIO.output(B1,  0)
-
-            GPIO.output(R2,  0)     # Bottom row, green
-            GPIO.output(G2,  1)
-            GPIO.output(B2,  0)
-    
-            GPIO.output(CLK, 0)     # Toggle clock
-            GPIO.output(CLK, 1)
-    
-        GPIO.output(OE,  1)     # Disable display while updating
-        GPIO.output(LAT, 1)     # Toggle latch
-        GPIO.output(LAT, 0)
-        GPIO.output(OE,  0)     # Enable display
diff --git a/books/pru-cookbook/05blocks/code/rgb_python_setup.sh b/books/pru-cookbook/05blocks/code/rgb_python_setup.sh
deleted file mode 100755
index 721067461771c4d0426a0646f28f748e384ec22d..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_python_setup.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# Setup for 64x32 RGB Matrix
-export TARGET=rgb1.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    prupins="P2_32 P1_31 P1_33 P1_29 P2_30 P2_34 P1_36"
-    gpiopins="P2_10 P2_06 P2_04 P2_01 P2_08 P2_02"
-    # Uncomment for J2
-    # gpiopins="$gpiopins P2_27 P2_25 P2_05 P2_24 P2_22 P2_18"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $prupins
-do
-    echo $pin
-    # config-pin $pin pruout
-    config-pin $pin gpio
-    config-pin $pin out
-    config-pin -q $pin
-done
-
-for pin in $gpiopins
-do
-    echo $pin
-    config-pin $pin gpio
-    config-pin $pin out
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/rgb_setup.sh b/books/pru-cookbook/05blocks/code/rgb_setup.sh
deleted file mode 100755
index fc5451444ad10b848f7ec42bb56f4b8f0ffd9195..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_setup.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-# Setup for 64x32 RGB Matrix
-export TARGET=rgb1.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    prupins="P2_32 P1_31 P1_33 P1_29 P2_30 P2_34 P1_36"
-    gpiopins="P2_10 P2_06 P2_04 P2_01 P2_08 P2_02"
-    # Uncomment for J2
-    # gpiopins="$gpiopins P2_27 P2_25 P2_05 P2_24 P2_22 P2_18"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $prupins
-do
-    echo $pin
-    config-pin $pin pruout
-    # config-pin $pin gpio
-    # config-pin $pin out
-    config-pin -q $pin
-done
-
-for pin in $gpiopins
-do
-    echo $pin
-    config-pin $pin gpio
-    config-pin $pin out
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/rgb_white.pru0.c b/books/pru-cookbook/05blocks/code/rgb_white.pru0.c
deleted file mode 100644
index e62d98e000c746e37a11c7a0402b13fb5f92b2df..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/rgb_white.pru0.c
+++ /dev/null
@@ -1,64 +0,0 @@
-// This code drives the RGB LED Matrix
-// Turns all the LEDs on
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-#include "rgb_pocket.h"
-
-#define DELAY 10					// Number of cycles (5ns each) to wait after a write
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Set up the pointers to each of the GPIO ports 
-	uint32_t *gpio[] = {
-			(uint32_t *) GPIO0, 
-			(uint32_t *) GPIO1, 
-			(uint32_t *) GPIO2, 
-			(uint32_t *) GPIO3
-		};
-	
-	uint32_t i, row;
-
-	while(1) {
-	    for(row=0; row<16; row++) {
-	    	// Set the row address
-			// Here we take advantage of the select bits (LA,LB,LC,LD)
-			// being sequential in the R30 register (bits 2,3,4,5)
-			// We shift row over so it lines up with the select bits
-			// Oring (|=) with R30 sets bits to 1 and
-			// Anding (&=) clears bits to 0, the 0xffc mask makes sure the
-			// other bits aren't changed.
-	        __R30 |=  row<<pru_sel0;
-	        __R30 &= (row<<pru_sel0)|0xffc3;
-
-    	    for(i=0; i<64; i++) {
-    	    	// Top row white
-    	    	// Combining these to one write works because they are all in 
-    	    	// the same gpio port
-    	      	gpio[r11_gpio][GPIO_SETDATAOUT] = r11_pin | g11_pin | b11_pin;
-    	    	__delay_cycles(DELAY);;
-    	      	
-    	      	// Bottom row white
-    	      	gpio[r12_gpio][GPIO_SETDATAOUT] = r12_pin | g12_pin | b12_pin;
-    	    	__delay_cycles(DELAY);
-    	      	
-                __R30 |=  pru_clock;	// Toggle clock
-    	    	__delay_cycles(DELAY);
-        		__R30 &= ~pru_clock;
-    	    	__delay_cycles(DELAY);
-    	    }
-    	    __R30 |=  pru_oe;        // Disable display
-    	   	__delay_cycles(DELAY);
-    	    __R30 |=  pru_latch;     // Toggle latch
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_latch;
-    	   	__delay_cycles(DELAY);
-    	    __R30 &= ~pru_oe;        // Enable display
-    	    __delay_cycles(DELAY);
-	    }
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/shared.pru0.c b/books/pru-cookbook/05blocks/code/shared.pru0.c
deleted file mode 100644
index 95d87c5de147334e439c18bc6cadc68f6ebac98d..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/shared.pru0.c
+++ /dev/null
@@ -1,63 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/blobs/master/examples/am335x/PRU_access_const_table/PRU_access_const_table.c
-#include <stdint.h>
-#include <pru_cfg.h>
-#include <pru_ctrl.h>
-#include "resource_table_empty.h"
-
-#define PRU_SRAM  __far __attribute__((cregister("PRU_SHAREDMEM", near)))
-#define PRU_DMEM0 __far __attribute__((cregister("PRU_DMEM_0_1",  near)))
-#define PRU_DMEM1 __far __attribute__((cregister("PRU_DMEM_1_0",  near)))
-
-/* NOTE:  Allocating shared_x to PRU Shared Memory means that other PRU cores on
- *        the same subsystem must take care not to allocate data to that memory.
- *		  Users also cannot rely on where in shared memory these variables are placed
- *        so accessing them from another PRU core or from the ARM is an undefined behavior.
- */
-volatile uint32_t shared_0;
-PRU_SRAM  volatile uint32_t shared_1;
-PRU_DMEM0 volatile uint32_t shared_2;
-PRU_DMEM1 volatile uint32_t shared_3;
-#pragma DATA_SECTION(shared_4, ".bss")
-volatile uint32_t shared_4;
-
-/* NOTE:  Here we pick where in memory to store shared_5.  The stack and
- *		  heap take up the first 0x200 words, so we must start after that.
- *		  Since we are hardcoding where things are stored we can share
- *		  this between the PRUs and the ARM.
-*/
-#define PRU0_DRAM		0x00000			// Offset to DRAM
-// Skip the first 0x200 bytes of DRAM since the Makefile allocates
-// 0x100 for the STACK and 0x100 for the HEAP.
-volatile unsigned int *shared_5 = (unsigned int *) (PRU0_DRAM + 0x200);
-
-
-int main(void)
-{
-	volatile uint32_t shared_6;
-	volatile uint32_t shared_7;
-	/*****************************************************************/
-	/* Access PRU peripherals using Constant Table & PRU header file */
-	/*****************************************************************/
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	/*****************************************************************/
-	/* Access PRU Shared RAM using Constant Table                    */
-	/*****************************************************************/
-
-	/* C28 defaults to 0x00000000, we need to set bits 23:8 to 0x0100 in order to have it point to 0x00010000	 */
-	PRU0_CTRL.CTPPR0_bit.C28_BLK_POINTER = 0x0100;
-
-	shared_0 =  0xfeef;
-	shared_1 = 0xdeadbeef;
-	shared_2 = shared_2 + 0xfeed;
-	shared_3 = 0xdeed;
-	shared_4 = 0xbeed;
-	shared_5[0] = 0x1234;
-	shared_6 = 0x4321;
-	shared_7 = 0x9876;
-
-	/* Halt PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/05blocks/code/shared_setup.sh b/books/pru-cookbook/05blocks/code/shared_setup.sh
deleted file mode 100755
index eefbcd553ac53d0fb0c289fefc536c5f5eb0a7f7..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/shared_setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-#
-export TARGET=shared.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_31 P9_29 P9_30 P9_28"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_36 P1_33 P2_32 P2_30"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/05blocks/code/sine.map b/books/pru-cookbook/05blocks/code/sine.map
deleted file mode 100644
index 45872d39e001a44e2a2b38b1ed1bf38c85b8837d..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/sine.map
+++ /dev/null
@@ -1,338 +0,0 @@
-******************************************************************************
-PRU Linker Unix v2.1.5                    
-******************************************************************************
->> Linked Fri Jun 29 13:58:08 2018
-
-OUTPUT FILE NAME:   </tmp/pru0-gen/sine1.out>
-ENTRY POINT SYMBOL: "_c_int00_noinit_noargs_noexit"  address: 00000000
-
-
-MEMORY CONFIGURATION
-
-         name            origin    length      used     unused   attr    fill
-----------------------  --------  ---------  --------  --------  ----  --------
-PAGE 0:
-  PRU_IMEM              00000000   00002000  000018c0  00000740  RWIX
-
-PAGE 1:
-  PRU_DMEM_0_1          00000000   00002000  00000154  00001eac  RWIX
-  PRU_DMEM_1_0          00002000   00002000  00000000  00002000  RWIX
-
-PAGE 2:
-  PRU_SHAREDMEM         00010000   00003000  00000000  00003000  RWIX
-  PRU_INTC              00020000   00001504  00000000  00001504  RWIX
-  PRU_CFG               00026000   00000044  00000044  00000000  RWIX
-  PRU_UART              00028000   00000038  00000000  00000038  RWIX
-  PRU_IEP               0002e000   0000031c  00000000  0000031c  RWIX
-  PRU_ECAP              00030000   00000060  00000000  00000060  RWIX
-  RSVD27                00032000   00000100  00000000  00000100  RWIX
-  RSVD21                00032400   00000100  00000000  00000100  RWIX
-  L3OCMC                40000000   00010000  00000000  00010000  RWIX
-  MCASP0_DMA            46000000   00000100  00000000  00000100  RWIX
-  UART1                 48022000   00000088  00000000  00000088  RWIX
-  UART2                 48024000   00000088  00000000  00000088  RWIX
-  I2C1                  4802a000   000000d8  00000000  000000d8  RWIX
-  MCSPI0                48030000   000001a4  00000000  000001a4  RWIX
-  DMTIMER2              48040000   0000005c  00000000  0000005c  RWIX
-  MMCHS0                48060000   00000300  00000000  00000300  RWIX
-  MBX0                  480c8000   00000140  00000000  00000140  RWIX
-  SPINLOCK              480ca000   00000880  00000000  00000880  RWIX
-  I2C2                  4819c000   000000d8  00000000  000000d8  RWIX
-  MCSPI1                481a0000   000001a4  00000000  000001a4  RWIX
-  DCAN0                 481cc000   000001e8  00000000  000001e8  RWIX
-  DCAN1                 481d0000   000001e8  00000000  000001e8  RWIX
-  PWMSS0                48300000   000002c4  00000000  000002c4  RWIX
-  PWMSS1                48302000   000002c4  00000000  000002c4  RWIX
-  PWMSS2                48304000   000002c4  00000000  000002c4  RWIX
-  RSVD13                48310000   00000100  00000000  00000100  RWIX
-  RSVD10                48318000   00000100  00000000  00000100  RWIX
-  TPCC                  49000000   00001098  00000000  00001098  RWIX
-  GEMAC                 4a100000   0000128c  00000000  0000128c  RWIX
-  DDR                   80000000   00000100  00000000  00000100  RWIX
-
-
-SECTION ALLOCATION MAP
-
- output                                  attributes/
-section   page    origin      length       input sections
---------  ----  ----------  ----------   ----------------
-.text:_c_int00* 
-*          0    00000000    00000014     
-                  00000000    00000014     rtspruv3_le.lib : boot_special.obj (.text:_c_int00_noinit_noargs_noexit)
-
-.text      0    00000014    000018ac     
-                  00000014    00000374     rtspruv3_le.lib : sin.obj (.text:sin)
-                  00000388    00000314                     : frcmpyd.obj (.text:__TI_frcmpyd)
-                  0000069c    00000258                     : frcaddd.obj (.text:__TI_frcaddd)
-                  000008f4    00000254                     : mpyd.obj (.text:__pruabi_mpyd)
-                  00000b48    00000248                     : addd.obj (.text:__pruabi_addd)
-                  00000d90    000001c8                     : mpyf.obj (.text:__pruabi_mpyf)
-                  00000f58    00000100                     : modf.obj (.text:modf)
-                  00001058    000000b4                     : gtd.obj (.text:__pruabi_gtd)
-                  0000110c    000000b0                     : ged.obj (.text:__pruabi_ged)
-                  000011bc    000000b0                     : ltd.obj (.text:__pruabi_ltd)
-                  0000126c    000000b0     sine1.obj (.text:main)
-                  0000131c    000000a8     rtspruv3_le.lib : frcmpyf.obj (.text:__TI_frcmpyf)
-                  000013c4    000000a0                     : fixdu.obj (.text:__pruabi_fixdu)
-                  00001464    0000009c                     : round.obj (.text:__pruabi_nround)
-                  00001500    00000090                     : eqld.obj (.text:__pruabi_eqd)
-                  00001590    0000008c                     : renormd.obj (.text:__TI_renormd)
-                  0000161c    0000008c                     : fixdi.obj (.text:__pruabi_fixdi)
-                  000016a8    00000084                     : fltid.obj (.text:__pruabi_fltid)
-                  0000172c    00000078                     : cvtfd.obj (.text:__pruabi_cvtfd)
-                  000017a4    00000050                     : fltuf.obj (.text:__pruabi_fltuf)
-                  000017f4    0000002c                     : asri.obj (.text:__pruabi_asri)
-                  00001820    0000002c                     : subd.obj (.text:__pruabi_subd)
-                  0000184c    00000024                     : mpyi.obj (.text:__pruabi_mpyi)
-                  00001870    00000020                     : negd.obj (.text:__pruabi_negd)
-                  00001890    00000020                     : trunc.obj (.text:__pruabi_trunc)
-                  000018b0    00000008                     : exit.obj (.text:abort)
-                  000018b8    00000008                     : exit.obj (.text:loader_exit)
-
-.stack     1    00000000    00000100     UNINITIALIZED
-                  00000000    00000004     rtspruv3_le.lib : boot.obj (.stack)
-                  00000004    000000fc     --HOLE--
-
-.cinit     1    00000000    00000000     UNINITIALIZED
-
-.fardata   1    00000100    00000040     
-                  00000100    00000040     rtspruv3_le.lib : sin.obj (.fardata:R$1)
-
-.resource_table 
-*          1    00000140    00000014     
-                  00000140    00000014     sine1.obj (.resource_table:retain)
-
-.creg.PRU_CFG.noload.near 
-*          2    00026000    00000044     NOLOAD SECTION
-                  00026000    00000044     sine1.obj (.creg.PRU_CFG.noload.near)
-
-.creg.PRU_CFG.near 
-*          2    00026044    00000000     UNINITIALIZED
-
-.creg.PRU_CFG.noload.far 
-*          2    00026044    00000000     NOLOAD SECTION
-
-.creg.PRU_CFG.far 
-*          2    00026044    00000000     UNINITIALIZED
-
-
-SEGMENT ATTRIBUTES
-
-    id tag      seg value
-    -- ---      --- -----
-     0 PHA_PAGE 1   1    
-     1 PHA_PAGE 2   1    
-
-
-GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
-
-page  address   name                         
-----  -------   ----                         
-0     000018b8  C$$EXIT                      
-2     00026000  CT_CFG                       
-abs   481cc000  __PRU_CREG_BASE_DCAN0        
-abs   481d0000  __PRU_CREG_BASE_DCAN1        
-abs   80000000  __PRU_CREG_BASE_DDR          
-abs   48040000  __PRU_CREG_BASE_DMTIMER2     
-abs   4a100000  __PRU_CREG_BASE_GEMAC        
-abs   4802a000  __PRU_CREG_BASE_I2C1         
-abs   4819c000  __PRU_CREG_BASE_I2C2         
-abs   40000000  __PRU_CREG_BASE_L3OCMC       
-abs   480c8000  __PRU_CREG_BASE_MBX0         
-abs   46000000  __PRU_CREG_BASE_MCASP0_DMA   
-abs   48030000  __PRU_CREG_BASE_MCSPI0       
-abs   481a0000  __PRU_CREG_BASE_MCSPI1       
-abs   48060000  __PRU_CREG_BASE_MMCHS0       
-abs   00026000  __PRU_CREG_BASE_PRU_CFG      
-abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
-abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
-abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
-abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
-abs   00020000  __PRU_CREG_BASE_PRU_INTC     
-abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
-abs   00028000  __PRU_CREG_BASE_PRU_UART     
-abs   48300000  __PRU_CREG_BASE_PWMSS0       
-abs   48302000  __PRU_CREG_BASE_PWMSS1       
-abs   48304000  __PRU_CREG_BASE_PWMSS2       
-abs   48318000  __PRU_CREG_BASE_RSVD10       
-abs   48310000  __PRU_CREG_BASE_RSVD13       
-abs   00032400  __PRU_CREG_BASE_RSVD21       
-abs   00032000  __PRU_CREG_BASE_RSVD27       
-abs   480ca000  __PRU_CREG_BASE_SPINLOCK     
-abs   49000000  __PRU_CREG_BASE_TPCC         
-abs   48022000  __PRU_CREG_BASE_UART1        
-abs   48024000  __PRU_CREG_BASE_UART2        
-abs   0000000e  __PRU_CREG_DCAN0             
-abs   0000000f  __PRU_CREG_DCAN1             
-abs   0000001f  __PRU_CREG_DDR               
-abs   00000001  __PRU_CREG_DMTIMER2          
-abs   00000009  __PRU_CREG_GEMAC             
-abs   00000002  __PRU_CREG_I2C1              
-abs   00000011  __PRU_CREG_I2C2              
-abs   0000001e  __PRU_CREG_L3OCMC            
-abs   00000016  __PRU_CREG_MBX0              
-abs   00000008  __PRU_CREG_MCASP0_DMA        
-abs   00000006  __PRU_CREG_MCSPI0            
-abs   00000010  __PRU_CREG_MCSPI1            
-abs   00000005  __PRU_CREG_MMCHS0            
-abs   00000004  __PRU_CREG_PRU_CFG           
-abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
-abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
-abs   00000003  __PRU_CREG_PRU_ECAP          
-abs   0000001a  __PRU_CREG_PRU_IEP           
-abs   00000000  __PRU_CREG_PRU_INTC          
-abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
-abs   00000007  __PRU_CREG_PRU_UART          
-abs   00000012  __PRU_CREG_PWMSS0            
-abs   00000013  __PRU_CREG_PWMSS1            
-abs   00000014  __PRU_CREG_PWMSS2            
-abs   0000000a  __PRU_CREG_RSVD10            
-abs   0000000d  __PRU_CREG_RSVD13            
-abs   00000015  __PRU_CREG_RSVD21            
-abs   0000001b  __PRU_CREG_RSVD27            
-abs   00000017  __PRU_CREG_SPINLOCK          
-abs   0000001d  __PRU_CREG_TPCC              
-abs   0000000b  __PRU_CREG_UART1             
-abs   0000000c  __PRU_CREG_UART2             
-1     00000100  __TI_STACK_END               
-abs   00000100  __TI_STACK_SIZE              
-0     0000069c  __TI_frcaddd                 
-0     00000388  __TI_frcmpyd                 
-0     0000131c  __TI_frcmpyf                 
-0     00001590  __TI_renormd                 
-abs   ffffffff  __binit__                    
-abs   ffffffff  __c_args__                   
-0     00000b48  __pruabi_addd                
-0     000017f4  __pruabi_asri                
-0     0000172c  __pruabi_cvtfd               
-0     00001500  __pruabi_eqd                 
-0     0000161c  __pruabi_fixdi               
-0     000013c4  __pruabi_fixdu               
-0     000016a8  __pruabi_fltid               
-0     000017a4  __pruabi_fltuf               
-0     0000110c  __pruabi_ged                 
-0     00001058  __pruabi_gtd                 
-0     000011bc  __pruabi_ltd                 
-0     000008f4  __pruabi_mpyd                
-0     00000d90  __pruabi_mpyf                
-0     0000184c  __pruabi_mpyi                
-0     00001870  __pruabi_negd                
-0     00001464  __pruabi_nround              
-0     00001820  __pruabi_subd                
-0     00001890  __pruabi_trunc               
-0     00000000  _c_int00_noinit_noargs_noexit
-1     00000000  _stack                       
-0     000018b0  abort                        
-abs   ffffffff  binit                        
-0     0000126c  main                         
-0     00000f58  modf                         
-1     00000140  pru_remoteproc_ResourceTable 
-0     00000014  sin                          
-
-
-GLOBAL SYMBOLS: SORTED BY Symbol Address 
-
-page  address   name                         
-----  -------   ----                         
-0     00000000  _c_int00_noinit_noargs_noexit
-0     00000014  sin                          
-0     00000388  __TI_frcmpyd                 
-0     0000069c  __TI_frcaddd                 
-0     000008f4  __pruabi_mpyd                
-0     00000b48  __pruabi_addd                
-0     00000d90  __pruabi_mpyf                
-0     00000f58  modf                         
-0     00001058  __pruabi_gtd                 
-0     0000110c  __pruabi_ged                 
-0     000011bc  __pruabi_ltd                 
-0     0000126c  main                         
-0     0000131c  __TI_frcmpyf                 
-0     000013c4  __pruabi_fixdu               
-0     00001464  __pruabi_nround              
-0     00001500  __pruabi_eqd                 
-0     00001590  __TI_renormd                 
-0     0000161c  __pruabi_fixdi               
-0     000016a8  __pruabi_fltid               
-0     0000172c  __pruabi_cvtfd               
-0     000017a4  __pruabi_fltuf               
-0     000017f4  __pruabi_asri                
-0     00001820  __pruabi_subd                
-0     0000184c  __pruabi_mpyi                
-0     00001870  __pruabi_negd                
-0     00001890  __pruabi_trunc               
-0     000018b0  abort                        
-0     000018b8  C$$EXIT                      
-1     00000000  _stack                       
-1     00000100  __TI_STACK_END               
-1     00000140  pru_remoteproc_ResourceTable 
-2     00026000  CT_CFG                       
-abs   00000000  __PRU_CREG_BASE_PRU_DMEM_0_1 
-abs   00000000  __PRU_CREG_PRU_INTC          
-abs   00000001  __PRU_CREG_DMTIMER2          
-abs   00000002  __PRU_CREG_I2C1              
-abs   00000003  __PRU_CREG_PRU_ECAP          
-abs   00000004  __PRU_CREG_PRU_CFG           
-abs   00000005  __PRU_CREG_MMCHS0            
-abs   00000006  __PRU_CREG_MCSPI0            
-abs   00000007  __PRU_CREG_PRU_UART          
-abs   00000008  __PRU_CREG_MCASP0_DMA        
-abs   00000009  __PRU_CREG_GEMAC             
-abs   0000000a  __PRU_CREG_RSVD10            
-abs   0000000b  __PRU_CREG_UART1             
-abs   0000000c  __PRU_CREG_UART2             
-abs   0000000d  __PRU_CREG_RSVD13            
-abs   0000000e  __PRU_CREG_DCAN0             
-abs   0000000f  __PRU_CREG_DCAN1             
-abs   00000010  __PRU_CREG_MCSPI1            
-abs   00000011  __PRU_CREG_I2C2              
-abs   00000012  __PRU_CREG_PWMSS0            
-abs   00000013  __PRU_CREG_PWMSS1            
-abs   00000014  __PRU_CREG_PWMSS2            
-abs   00000015  __PRU_CREG_RSVD21            
-abs   00000016  __PRU_CREG_MBX0              
-abs   00000017  __PRU_CREG_SPINLOCK          
-abs   00000018  __PRU_CREG_PRU_DMEM_0_1      
-abs   00000019  __PRU_CREG_PRU_DMEM_1_0      
-abs   0000001a  __PRU_CREG_PRU_IEP           
-abs   0000001b  __PRU_CREG_RSVD27            
-abs   0000001c  __PRU_CREG_PRU_SHAREDMEM     
-abs   0000001d  __PRU_CREG_TPCC              
-abs   0000001e  __PRU_CREG_L3OCMC            
-abs   0000001f  __PRU_CREG_DDR               
-abs   00000100  __TI_STACK_SIZE              
-abs   00002000  __PRU_CREG_BASE_PRU_DMEM_1_0 
-abs   00010000  __PRU_CREG_BASE_PRU_SHAREDMEM
-abs   00020000  __PRU_CREG_BASE_PRU_INTC     
-abs   00026000  __PRU_CREG_BASE_PRU_CFG      
-abs   00028000  __PRU_CREG_BASE_PRU_UART     
-abs   0002e000  __PRU_CREG_BASE_PRU_IEP      
-abs   00030000  __PRU_CREG_BASE_PRU_ECAP     
-abs   00032000  __PRU_CREG_BASE_RSVD27       
-abs   00032400  __PRU_CREG_BASE_RSVD21       
-abs   40000000  __PRU_CREG_BASE_L3OCMC       
-abs   46000000  __PRU_CREG_BASE_MCASP0_DMA   
-abs   48022000  __PRU_CREG_BASE_UART1        
-abs   48024000  __PRU_CREG_BASE_UART2        
-abs   4802a000  __PRU_CREG_BASE_I2C1         
-abs   48030000  __PRU_CREG_BASE_MCSPI0       
-abs   48040000  __PRU_CREG_BASE_DMTIMER2     
-abs   48060000  __PRU_CREG_BASE_MMCHS0       
-abs   480c8000  __PRU_CREG_BASE_MBX0         
-abs   480ca000  __PRU_CREG_BASE_SPINLOCK     
-abs   4819c000  __PRU_CREG_BASE_I2C2         
-abs   481a0000  __PRU_CREG_BASE_MCSPI1       
-abs   481cc000  __PRU_CREG_BASE_DCAN0        
-abs   481d0000  __PRU_CREG_BASE_DCAN1        
-abs   48300000  __PRU_CREG_BASE_PWMSS0       
-abs   48302000  __PRU_CREG_BASE_PWMSS1       
-abs   48304000  __PRU_CREG_BASE_PWMSS2       
-abs   48310000  __PRU_CREG_BASE_RSVD13       
-abs   48318000  __PRU_CREG_BASE_RSVD10       
-abs   49000000  __PRU_CREG_BASE_TPCC         
-abs   4a100000  __PRU_CREG_BASE_GEMAC        
-abs   80000000  __PRU_CREG_BASE_DDR          
-abs   ffffffff  __binit__                    
-abs   ffffffff  __c_args__                   
-abs   ffffffff  binit                        
-
-[100 symbols]
diff --git a/books/pru-cookbook/05blocks/code/sine.pru0.c b/books/pru-cookbook/05blocks/code/sine.pru0.c
deleted file mode 100644
index ed6b5778c644f860c8fa2c0f91b7f23cf50e6df7..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/sine.pru0.c
+++ /dev/null
@@ -1,58 +0,0 @@
-// Generate an analog waveform and use a filter to reconstruct it.
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include <math.h>
-
-#define MAXT	100	// Maximum number of time samples
-#define SAWTOOTH	// Pick which waveform
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t onCount;		// Current count for 1 out
-	uint32_t offCount;		// count for 0 out
-	uint32_t i;
-	uint32_t waveform[MAXT]; // Waveform to be produced
-
-	// Generate a periodic wave in an array of MAXT values
-#ifdef SAWTOOTH
-	for(i=0; i<MAXT; i++) {
-		waveform[i] = i*100/MAXT;
-	}
-#endif
-#ifdef TRIANGLE
-	for(i=0; i<MAXT/2; i++) {
-		waveform[i]        = 2*i*100/MAXT;
-		waveform[MAXT-i-1] = 2*i*100/MAXT;
-	}
-#endif
-#ifdef SINE
-	float gain = 50.0f;
-	float bias = 50.0f;
-	float freq = 2.0f * 3.14159f / MAXT;
-	for (i=0; i<MAXT; i++){
-		waveform[i] = (uint32_t)(bias+gain*sin(i*freq));
-	}
-#endif
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while (1) {
-		// Generate a PWM signal whose duty cycle matches
-		// the amplitude of the signal.
-		for(i=0; i<MAXT; i++) {
-			onCount = waveform[i];
-			offCount = 100 - onCount;
-			while(onCount--) {
-				__R30 |= 0x1;		// Set the GPIO pin to 1
-			}
-			while(offCount--) {
-				__R30 &= ~(0x1);	// Clear the GPIO pin
-			}
-		}
-	}
-}
diff --git a/books/pru-cookbook/05blocks/code/write_init_pins.sh b/books/pru-cookbook/05blocks/code/write_init_pins.sh
deleted file mode 100755
index f52082365a8b2a72a6c30d39938077bd9addf741..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/05blocks/code/write_init_pins.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-init_pins=$(readelf -x .init_pins $1 | grep 0x000 | cut -d' ' -f4-7 | xxd -r -p | tr '\0' '\n' | paste - -)
-while read -a line; do
-    if [ ${#line[@]} == 2 ]; then
-        echo writing \"${line[1]}\" to \"${line[0]}\"
-        echo ${line[1]} > ${line[0]}
-        sleep 0.1
-    fi
-done <<< "$init_pins"
diff --git a/books/pru-cookbook/06io/code/Makefile b/books/pru-cookbook/06io/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/06io/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/06io/code/gpio.pru0.c b/books/pru-cookbook/06io/code/gpio.pru0.c
deleted file mode 100644
index bcab90eff3f115577055dac3781c50bfb3e0efbf..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/06io/code/gpio.pru0.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// This code accesses GPIO without using R30 and R31
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define P9_11	(0x1<<30)			// Bit position tied to P9_11 on Black
-#define P2_05	(0x1<<30)			// Bit position tied to P2_05 on Pocket
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t *gpio0 = (uint32_t *)GPIO0;
-	
-	while(1) {
-		gpio0[GPIO_SETDATAOUT]   = P9_11;
-		__delay_cycles(100000000);
-		gpio0[GPIO_CLEARDATAOUT] = P9_11;
-		__delay_cycles(100000000);
-	}
-}
diff --git a/books/pru-cookbook/06io/code/setup.sh b/books/pru-cookbook/06io/code/setup.sh
deleted file mode 100755
index e676ed7abe2a6beaf62d3ce6c56f5aa151d86700..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/06io/code/setup.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-export TARGET=gpio.pru0
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_11"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P2_05"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin gpio
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/07more/code/Makefile b/books/pru-cookbook/07more/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/07more/code/copyright.c b/books/pru-cookbook/07more/code/copyright.c
deleted file mode 100644
index 63b6a419e4ee3a2767de3fcec0c29e74e3754700..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/copyright.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- 
\ No newline at end of file
diff --git a/books/pru-cookbook/07more/code/cycle.pru0.c b/books/pru-cookbook/07more/code/cycle.pru0.c
deleted file mode 100644
index 73055d9f0662483f6e9cc03ef266b670f571e1f0..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/cycle.pru0.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// Access the CYCLE and STALL registers
-#include <stdint.h>
-#include <pru_cfg.h>
-#include <pru_ctrl.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	// These will be kept in registers and never witten to DRAM
-	uint32_t cycle, stall;
-
-	// Clear SYSCFG[STANDBY_INIT] to enable OCP master port
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-	PRU0_CTRL.CTRL_bit.CTR_EN = 1;	// Enable cycle counter
-
-	__R30 |= gpio;				// Set the GPIO pin to 1
-	// Reset cycle counter, cycle is on the right side to force the compiler
-	// to put it in it's own register
-	PRU0_CTRL.CYCLE = cycle;
-	__R30 &= ~gpio;				// Clear the GPIO pin
-	cycle = PRU0_CTRL.CYCLE;	// Read cycle and store in a register
-	stall = PRU0_CTRL.STALL;	// Ditto for stall
-
-	__halt();
-}
diff --git a/books/pru-cookbook/07more/code/cycle.pru0.lst b/books/pru-cookbook/07more/code/cycle.pru0.lst
deleted file mode 100644
index f2e131765eaf0e5bd13c719287eeb04b82b8d2cd..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/cycle.pru0.lst
+++ /dev/null
@@ -1,3082 +0,0 @@
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    1
-
-       1;******************************************************************************
-       2;* PRU C/C++ Codegen                                              Unix v2.1.5 *
-       3;* Date/Time created: Fri Jun  5 14:14:07 2020                                *
-       4;******************************************************************************
-       5        .compiler_opts --abi=eabi --endian=little --hll_source=on --object_format=elf --silicon_versio
-       6
-       7$C$DW$CU        .dwtag  DW_TAG_compile_unit
-       8        .dwattr $C$DW$CU, DW_AT_name("cycle.pru0.c")
-       9        .dwattr $C$DW$CU, DW_AT_producer("TI PRU C/C++ Codegen Unix v2.1.5 Copyright (c) 2012-2017 Tex
-      10        .dwattr $C$DW$CU, DW_AT_TI_version(0x01)
-      11        .dwattr $C$DW$CU, DW_AT_comp_dir("/home/debian/PRUCookbook/docs/07more/code")
-      12        .global __PRU_CREG_PRU_CFG
-      13
-      14$C$DW$1 .dwtag  DW_TAG_subprogram, DW_AT_name("__halt")
-      15        .dwattr $C$DW$1, DW_AT_TI_symbol_name("__halt")
-      16        .dwattr $C$DW$1, DW_AT_declaration
-      17        .dwattr $C$DW$1, DW_AT_external
-      18        .weak   ||CT_CFG||
-      19 00000000                 ||CT_CFG||:     .usect  ".creg.PRU_CFG.noload.near",68,1
-      20$C$DW$2 .dwtag  DW_TAG_variable, DW_AT_name("CT_CFG")
-      21        .dwattr $C$DW$2, DW_AT_TI_symbol_name("CT_CFG")
-      22        .dwattr $C$DW$2, DW_AT_location[DW_OP_addr ||CT_CFG||]
-      23        .dwattr $C$DW$2, DW_AT_type(*$C$DW$T$98)
-      24        .dwattr $C$DW$2, DW_AT_external
-      25        .dwattr $C$DW$2, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru_
-      26        .dwattr $C$DW$2, DW_AT_decl_line(0xf2)
-      27        .dwattr $C$DW$2, DW_AT_decl_column(0x17)
-      28        .global ||pru_remoteproc_ResourceTable||
-      29 00000000                         .sect   ".resource_table:retain", RW
-      30        .retain
-      31        .align  1
-      32        .elfsym ||pru_remoteproc_ResourceTable||,SYM_SIZE(20)
-      33 00000000                 ||pru_remoteproc_ResourceTable||:
-      34 00000000 00000000000001          .bits   1,32                    ; pru_remoteproc_ResourceTable.base.ver @ 0
-      35 00000004 00000000000000          .bits   0,32                    ; pru_remoteproc_ResourceTable.base.num @ 32
-      36 00000008 00000000000000          .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[0] @ 64
-      37 0000000c 00000000000000          .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[1] @ 96
-      38 00000010 00000000000000          .bits   0,32                    ; pru_remoteproc_ResourceTable.offset[0] @ 128
-      39
-      40$C$DW$3 .dwtag  DW_TAG_variable, DW_AT_name("pru_remoteproc_ResourceTable")
-      41        .dwattr $C$DW$3, DW_AT_TI_symbol_name("pru_remoteproc_ResourceTable")
-      42        .dwattr $C$DW$3, DW_AT_location[DW_OP_addr ||pru_remoteproc_ResourceTable||]
-      43        .dwattr $C$DW$3, DW_AT_type(*$C$DW$T$92)
-      44        .dwattr $C$DW$3, DW_AT_external
-      45        .dwattr $C$DW$3, DW_AT_decl_file("/var/lib/cloud9/common/resource_table_empty.h")
-      46        .dwattr $C$DW$3, DW_AT_decl_line(0x1f)
-      47        .dwattr $C$DW$3, DW_AT_decl_column(0x1a)
-      48;       optpru /tmp/TI18yQKu8QO /tmp/TI18y6Ruqzt 
-      49;       acpiapru -@/tmp/TI18yH9tQJL 
-      50 00000000                         .sect   ".text:main"
-      51        .clink
-      52        .global ||main||
-      53
-      54$C$DW$4 .dwtag  DW_TAG_subprogram, DW_AT_name("main")
-      55        .dwattr $C$DW$4, DW_AT_low_pc(||main||)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    2
-
-      56        .dwattr $C$DW$4, DW_AT_high_pc(0x00)
-      57        .dwattr $C$DW$4, DW_AT_TI_symbol_name("main")
-      58        .dwattr $C$DW$4, DW_AT_external
-      59        .dwattr $C$DW$4, DW_AT_TI_begin_file("cycle.pru0.c")
-      60        .dwattr $C$DW$4, DW_AT_TI_begin_line(0x0d)
-      61        .dwattr $C$DW$4, DW_AT_TI_begin_column(0x06)
-      62        .dwattr $C$DW$4, DW_AT_decl_file("cycle.pru0.c")
-      63        .dwattr $C$DW$4, DW_AT_decl_line(0x0d)
-      64        .dwattr $C$DW$4, DW_AT_decl_column(0x06)
-      65        .dwattr $C$DW$4, DW_AT_TI_max_frame_size(0x00)
-      66        .dwpsn  file "cycle.pru0.c",line 14,column 1,is_stmt,address ||main||,isa 0
-      67
-      68        .dwfde $C$DW$CIE, ||main||
-      69;----------------------------------------------------------------------
-      70;  13 | void main(void)                                                        
-      71;  15 | uint32_t gpio = P9_31;  // Select which pin to toggle.;                
-      72;  17 | // These will be kept in registers and never witten to DRAM            
-      73;  18 | uint32_t cycle, stall;                                                 
-      74;  20 | // Clear SYSCFG[STANDBY_INIT] to enable OCP master port                
-      75;----------------------------------------------------------------------
-      76
-      77;***************************************************************
-      78;* FNAME: main                          FR SIZE:   0           *
-      79;*                                                             *
-      80;* FUNCTION ENVIRONMENT                                        *
-      81;*                                                             *
-      82;* FUNCTION PROPERTIES                                         *
-      83;*                            0 Auto,  0 SOE     *
-      84;***************************************************************
-      85
-      86||main||:
-      87;* --------------------------------------------------------------------------*
-      88;* r0_0  assigned to $O$C1
-      89;* r14_0 assigned to cycle
-      90$C$DW$5 .dwtag  DW_TAG_variable, DW_AT_name("cycle")
-      91        .dwattr $C$DW$5, DW_AT_TI_symbol_name("cycle")
-      92        .dwattr $C$DW$5, DW_AT_type(*$C$DW$T$32)
-      93        .dwattr $C$DW$5, DW_AT_location[DW_OP_regx 0x38]
-      94        .dwcfi  cfa_offset, 0
-      95        .dwpsn  file "cycle.pru0.c",line 21,column 2,is_stmt,isa 0
-      96;----------------------------------------------------------------------
-      97;  21 | CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;                                    
-      98;----------------------------------------------------------------------
-      99 00000000 00000091042080!         LBCO      &r0, __PRU_CREG_PRU_CFG, $CSBREL(||CT_CFG||+4), 4 ; [ALU_PRU] |21| CT_CFG
-     100 00000004 0000001D04E0E0          CLR       r0, r0, 0x00000004    ; [ALU_PRU] |21| 
-     101 00000008 00000081042080!         SBCO      &r0, __PRU_CREG_PRU_CFG, $CSBREL(||CT_CFG||+4), 4 ; [ALU_PRU] |21| CT_CFG
-     102        .dwpsn  file "cycle.pru0.c",line 23,column 2,is_stmt,isa 0
-     103;----------------------------------------------------------------------
-     104;  23 | PRU0_CTRL.CTRL_bit.CTR_EN = 1;  // Enable cycle counter                
-     105;----------------------------------------------------------------------
-     106 0000000c 200080240002C0          LDI32     r0, 0x00022000        ; [ALU_PRU] |23| $O$C1
-     107 00000014 000000F1002081          LBBO      &r1, r0, 0, 4         ; [ALU_PRU] |23| 
-     108 00000018 0000001F03E1E1          SET       r1, r1, 0x00000003    ; [ALU_PRU] |23| 
-     109 0000001c 000000E1002081          SBBO      &r1, r0, 0, 4         ; [ALU_PRU] |23| 
-     110        .dwpsn  file "cycle.pru0.c",line 25,column 2,is_stmt,isa 0
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    3
-
-     111;----------------------------------------------------------------------
-     112;  25 | __R30 |= gpio;                          // Set the GPIO pin to 1       
-     113;  26 | // Reset cycle counter, cycle is on the right side to force the compile
-     114;     | r                                                                      
-     115;  27 | // to put it in it's own register                                      
-     116;----------------------------------------------------------------------
-     117 00000020 0000001F00FEFE          SET       r30, r30, 0x00000000  ; [ALU_PRU] |25| 
-     118        .dwpsn  file "cycle.pru0.c",line 28,column 2,is_stmt,isa 0
-     119;----------------------------------------------------------------------
-     120;  28 | PRU0_CTRL.CYCLE = cycle;                                               
-     121;----------------------------------------------------------------------
-     122 00000024 000000E10C208E          SBBO      &r14, r0, 12, 4       ; [ALU_PRU] |28| $O$C1,cycle
-     123        .dwpsn  file "cycle.pru0.c",line 29,column 2,is_stmt,isa 0
-     124;----------------------------------------------------------------------
-     125;  29 | __R30 &= ~gpio;                         // Clear the GPIO pin          
-     126;----------------------------------------------------------------------
-     127 00000028 0000001D00FEFE          CLR       r30, r30, 0x00000000  ; [ALU_PRU] |29| 
-     128        .dwpsn  file "cycle.pru0.c",line 30,column 2,is_stmt,isa 0
-     129;----------------------------------------------------------------------
-     130;  30 | cycle = PRU0_CTRL.CYCLE;        // Read cycle and store in a register  
-     131;----------------------------------------------------------------------
-     132 0000002c 000000F10C2081          LBBO      &r1, r0, 12, 4        ; [ALU_PRU] |30| $O$C1
-     133        .dwpsn  file "cycle.pru0.c",line 31,column 2,is_stmt,isa 0
-     134;----------------------------------------------------------------------
-     135;  31 | stall = PRU0_CTRL.STALL;        // Ditto for stall                     
-     136;----------------------------------------------------------------------
-     137 00000030 000000F1102080          LBBO      &r0, r0, 16, 4        ; [ALU_PRU] |31| $O$C1
-     138        .dwpsn  file "cycle.pru0.c",line 33,column 2,is_stmt,isa 0
-     139;----------------------------------------------------------------------
-     140;  33 | __halt();                                                              
-     141;----------------------------------------------------------------------
-     142 00000034 0000002A000000          HALT      ; [ALU_PRU] |33| 
-     143$C$DW$6 .dwtag  DW_TAG_TI_branch
-     144        .dwattr $C$DW$6, DW_AT_low_pc(0x00)
-     145        .dwattr $C$DW$6, DW_AT_TI_return
-     146 00000038 00000020C30000          JMP       r3.w2                 ; [ALU_PRU] 
-     147        .dwattr $C$DW$4, DW_AT_TI_end_file("cycle.pru0.c")
-     148        .dwattr $C$DW$4, DW_AT_TI_end_line(0x22)
-     149        .dwattr $C$DW$4, DW_AT_TI_end_column(0x01)
-     150        .dwendentry
-     151        .dwendtag $C$DW$4
-     152
-     153
-     154;******************************************************************************
-     155;* TYPE INFORMATION                                                           *
-     156;******************************************************************************
-     157
-     158$C$DW$T$19      .dwtag  DW_TAG_structure_type
-     159        .dwattr $C$DW$T$19, DW_AT_byte_size(0x04)
-     160$C$DW$7 .dwtag  DW_TAG_member
-     161        .dwattr $C$DW$7, DW_AT_type(*$C$DW$T$11)
-     162        .dwattr $C$DW$7, DW_AT_name("REVID")
-     163        .dwattr $C$DW$7, DW_AT_TI_symbol_name("REVID")
-     164        .dwattr $C$DW$7, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
-     165        .dwattr $C$DW$7, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    4
-
-     166        .dwattr $C$DW$7, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     167        .dwattr $C$DW$7, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru_
-     168        .dwattr $C$DW$7, DW_AT_decl_line(0x2d)
-     169        .dwattr $C$DW$7, DW_AT_decl_column(0x0d)
-     170        .dwendtag $C$DW$T$19
-     171
-     172        .dwattr $C$DW$T$19, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     173        .dwattr $C$DW$T$19, DW_AT_decl_line(0x2c)
-     174        .dwattr $C$DW$T$19, DW_AT_decl_column(0x13)
-     175$C$DW$T$48      .dwtag  DW_TAG_volatile_type
-     176        .dwattr $C$DW$T$48, DW_AT_type(*$C$DW$T$19)
-     177
-     178$C$DW$T$20      .dwtag  DW_TAG_structure_type
-     179        .dwattr $C$DW$T$20, DW_AT_byte_size(0x04)
-     180$C$DW$8 .dwtag  DW_TAG_member
-     181        .dwattr $C$DW$8, DW_AT_type(*$C$DW$T$11)
-     182        .dwattr $C$DW$8, DW_AT_name("IDLE_MODE")
-     183        .dwattr $C$DW$8, DW_AT_TI_symbol_name("IDLE_MODE")
-     184        .dwattr $C$DW$8, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
-     185        .dwattr $C$DW$8, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     186        .dwattr $C$DW$8, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     187        .dwattr $C$DW$8, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru_
-     188        .dwattr $C$DW$8, DW_AT_decl_line(0x37)
-     189        .dwattr $C$DW$8, DW_AT_decl_column(0x0d)
-     190$C$DW$9 .dwtag  DW_TAG_member
-     191        .dwattr $C$DW$9, DW_AT_type(*$C$DW$T$11)
-     192        .dwattr $C$DW$9, DW_AT_name("STANDBY_MODE")
-     193        .dwattr $C$DW$9, DW_AT_TI_symbol_name("STANDBY_MODE")
-     194        .dwattr $C$DW$9, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x02)
-     195        .dwattr $C$DW$9, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     196        .dwattr $C$DW$9, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     197        .dwattr $C$DW$9, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru_
-     198        .dwattr $C$DW$9, DW_AT_decl_line(0x38)
-     199        .dwattr $C$DW$9, DW_AT_decl_column(0x0d)
-     200$C$DW$10        .dwtag  DW_TAG_member
-     201        .dwattr $C$DW$10, DW_AT_type(*$C$DW$T$11)
-     202        .dwattr $C$DW$10, DW_AT_name("STANDBY_INIT")
-     203        .dwattr $C$DW$10, DW_AT_TI_symbol_name("STANDBY_INIT")
-     204        .dwattr $C$DW$10, DW_AT_bit_offset(0x1b), DW_AT_bit_size(0x01)
-     205        .dwattr $C$DW$10, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     206        .dwattr $C$DW$10, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     207        .dwattr $C$DW$10, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     208        .dwattr $C$DW$10, DW_AT_decl_line(0x39)
-     209        .dwattr $C$DW$10, DW_AT_decl_column(0x0d)
-     210$C$DW$11        .dwtag  DW_TAG_member
-     211        .dwattr $C$DW$11, DW_AT_type(*$C$DW$T$11)
-     212        .dwattr $C$DW$11, DW_AT_name("SUB_MWAIT")
-     213        .dwattr $C$DW$11, DW_AT_TI_symbol_name("SUB_MWAIT")
-     214        .dwattr $C$DW$11, DW_AT_bit_offset(0x1a), DW_AT_bit_size(0x01)
-     215        .dwattr $C$DW$11, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     216        .dwattr $C$DW$11, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     217        .dwattr $C$DW$11, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     218        .dwattr $C$DW$11, DW_AT_decl_line(0x3a)
-     219        .dwattr $C$DW$11, DW_AT_decl_column(0x0d)
-     220$C$DW$12        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    5
-
-     221        .dwattr $C$DW$12, DW_AT_type(*$C$DW$T$11)
-     222        .dwattr $C$DW$12, DW_AT_name("rsvd6")
-     223        .dwattr $C$DW$12, DW_AT_TI_symbol_name("rsvd6")
-     224        .dwattr $C$DW$12, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1a)
-     225        .dwattr $C$DW$12, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     226        .dwattr $C$DW$12, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     227        .dwattr $C$DW$12, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     228        .dwattr $C$DW$12, DW_AT_decl_line(0x3b)
-     229        .dwattr $C$DW$12, DW_AT_decl_column(0x0d)
-     230        .dwendtag $C$DW$T$20
-     231
-     232        .dwattr $C$DW$T$20, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     233        .dwattr $C$DW$T$20, DW_AT_decl_line(0x36)
-     234        .dwattr $C$DW$T$20, DW_AT_decl_column(0x13)
-     235$C$DW$T$50      .dwtag  DW_TAG_volatile_type
-     236        .dwattr $C$DW$T$50, DW_AT_type(*$C$DW$T$20)
-     237
-     238$C$DW$T$21      .dwtag  DW_TAG_structure_type
-     239        .dwattr $C$DW$T$21, DW_AT_byte_size(0x04)
-     240$C$DW$13        .dwtag  DW_TAG_member
-     241        .dwattr $C$DW$13, DW_AT_type(*$C$DW$T$11)
-     242        .dwattr $C$DW$13, DW_AT_name("PRU0_GPI_MODE")
-     243        .dwattr $C$DW$13, DW_AT_TI_symbol_name("PRU0_GPI_MODE")
-     244        .dwattr $C$DW$13, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
-     245        .dwattr $C$DW$13, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     246        .dwattr $C$DW$13, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     247        .dwattr $C$DW$13, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     248        .dwattr $C$DW$13, DW_AT_decl_line(0x45)
-     249        .dwattr $C$DW$13, DW_AT_decl_column(0x0d)
-     250$C$DW$14        .dwtag  DW_TAG_member
-     251        .dwattr $C$DW$14, DW_AT_type(*$C$DW$T$11)
-     252        .dwattr $C$DW$14, DW_AT_name("PRU0_GPI_CLK_MODE")
-     253        .dwattr $C$DW$14, DW_AT_TI_symbol_name("PRU0_GPI_CLK_MODE")
-     254        .dwattr $C$DW$14, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
-     255        .dwattr $C$DW$14, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     256        .dwattr $C$DW$14, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     257        .dwattr $C$DW$14, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     258        .dwattr $C$DW$14, DW_AT_decl_line(0x46)
-     259        .dwattr $C$DW$14, DW_AT_decl_column(0x0d)
-     260$C$DW$15        .dwtag  DW_TAG_member
-     261        .dwattr $C$DW$15, DW_AT_type(*$C$DW$T$11)
-     262        .dwattr $C$DW$15, DW_AT_name("PRU0_GPI_DIV0")
-     263        .dwattr $C$DW$15, DW_AT_TI_symbol_name("PRU0_GPI_DIV0")
-     264        .dwattr $C$DW$15, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x05)
-     265        .dwattr $C$DW$15, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     266        .dwattr $C$DW$15, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     267        .dwattr $C$DW$15, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     268        .dwattr $C$DW$15, DW_AT_decl_line(0x47)
-     269        .dwattr $C$DW$15, DW_AT_decl_column(0x0d)
-     270$C$DW$16        .dwtag  DW_TAG_member
-     271        .dwattr $C$DW$16, DW_AT_type(*$C$DW$T$11)
-     272        .dwattr $C$DW$16, DW_AT_name("PRU0_GPI_DIV1")
-     273        .dwattr $C$DW$16, DW_AT_TI_symbol_name("PRU0_GPI_DIV1")
-     274        .dwattr $C$DW$16, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x05)
-     275        .dwattr $C$DW$16, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    6
-
-     276        .dwattr $C$DW$16, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     277        .dwattr $C$DW$16, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     278        .dwattr $C$DW$16, DW_AT_decl_line(0x48)
-     279        .dwattr $C$DW$16, DW_AT_decl_column(0x0d)
-     280$C$DW$17        .dwtag  DW_TAG_member
-     281        .dwattr $C$DW$17, DW_AT_type(*$C$DW$T$11)
-     282        .dwattr $C$DW$17, DW_AT_name("PRU0_GPI_SB")
-     283        .dwattr $C$DW$17, DW_AT_TI_symbol_name("PRU0_GPI_SB")
-     284        .dwattr $C$DW$17, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
-     285        .dwattr $C$DW$17, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     286        .dwattr $C$DW$17, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     287        .dwattr $C$DW$17, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     288        .dwattr $C$DW$17, DW_AT_decl_line(0x49)
-     289        .dwattr $C$DW$17, DW_AT_decl_column(0x0d)
-     290$C$DW$18        .dwtag  DW_TAG_member
-     291        .dwattr $C$DW$18, DW_AT_type(*$C$DW$T$11)
-     292        .dwattr $C$DW$18, DW_AT_name("PRU0_GPO_MODE")
-     293        .dwattr $C$DW$18, DW_AT_TI_symbol_name("PRU0_GPO_MODE")
-     294        .dwattr $C$DW$18, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
-     295        .dwattr $C$DW$18, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     296        .dwattr $C$DW$18, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     297        .dwattr $C$DW$18, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     298        .dwattr $C$DW$18, DW_AT_decl_line(0x4a)
-     299        .dwattr $C$DW$18, DW_AT_decl_column(0x0d)
-     300$C$DW$19        .dwtag  DW_TAG_member
-     301        .dwattr $C$DW$19, DW_AT_type(*$C$DW$T$11)
-     302        .dwattr $C$DW$19, DW_AT_name("PRU0_GPO_DIV0")
-     303        .dwattr $C$DW$19, DW_AT_TI_symbol_name("PRU0_GPO_DIV0")
-     304        .dwattr $C$DW$19, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x05)
-     305        .dwattr $C$DW$19, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     306        .dwattr $C$DW$19, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     307        .dwattr $C$DW$19, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     308        .dwattr $C$DW$19, DW_AT_decl_line(0x4b)
-     309        .dwattr $C$DW$19, DW_AT_decl_column(0x0d)
-     310$C$DW$20        .dwtag  DW_TAG_member
-     311        .dwattr $C$DW$20, DW_AT_type(*$C$DW$T$11)
-     312        .dwattr $C$DW$20, DW_AT_name("PRU0_GPO_DIV1")
-     313        .dwattr $C$DW$20, DW_AT_TI_symbol_name("PRU0_GPO_DIV1")
-     314        .dwattr $C$DW$20, DW_AT_bit_offset(0x07), DW_AT_bit_size(0x05)
-     315        .dwattr $C$DW$20, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     316        .dwattr $C$DW$20, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     317        .dwattr $C$DW$20, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     318        .dwattr $C$DW$20, DW_AT_decl_line(0x4c)
-     319        .dwattr $C$DW$20, DW_AT_decl_column(0x0d)
-     320$C$DW$21        .dwtag  DW_TAG_member
-     321        .dwattr $C$DW$21, DW_AT_type(*$C$DW$T$11)
-     322        .dwattr $C$DW$21, DW_AT_name("PRU0_GPO_SH_SEL")
-     323        .dwattr $C$DW$21, DW_AT_TI_symbol_name("PRU0_GPO_SH_SEL")
-     324        .dwattr $C$DW$21, DW_AT_bit_offset(0x06), DW_AT_bit_size(0x01)
-     325        .dwattr $C$DW$21, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     326        .dwattr $C$DW$21, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     327        .dwattr $C$DW$21, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     328        .dwattr $C$DW$21, DW_AT_decl_line(0x4d)
-     329        .dwattr $C$DW$21, DW_AT_decl_column(0x0d)
-     330$C$DW$22        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    7
-
-     331        .dwattr $C$DW$22, DW_AT_type(*$C$DW$T$11)
-     332        .dwattr $C$DW$22, DW_AT_name("rsvd26")
-     333        .dwattr $C$DW$22, DW_AT_TI_symbol_name("rsvd26")
-     334        .dwattr $C$DW$22, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x06)
-     335        .dwattr $C$DW$22, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     336        .dwattr $C$DW$22, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     337        .dwattr $C$DW$22, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     338        .dwattr $C$DW$22, DW_AT_decl_line(0x4e)
-     339        .dwattr $C$DW$22, DW_AT_decl_column(0x0d)
-     340        .dwendtag $C$DW$T$21
-     341
-     342        .dwattr $C$DW$T$21, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     343        .dwattr $C$DW$T$21, DW_AT_decl_line(0x44)
-     344        .dwattr $C$DW$T$21, DW_AT_decl_column(0x13)
-     345$C$DW$T$52      .dwtag  DW_TAG_volatile_type
-     346        .dwattr $C$DW$T$52, DW_AT_type(*$C$DW$T$21)
-     347
-     348$C$DW$T$22      .dwtag  DW_TAG_structure_type
-     349        .dwattr $C$DW$T$22, DW_AT_byte_size(0x04)
-     350$C$DW$23        .dwtag  DW_TAG_member
-     351        .dwattr $C$DW$23, DW_AT_type(*$C$DW$T$11)
-     352        .dwattr $C$DW$23, DW_AT_name("PRU1_GPI_MODE")
-     353        .dwattr $C$DW$23, DW_AT_TI_symbol_name("PRU1_GPI_MODE")
-     354        .dwattr $C$DW$23, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
-     355        .dwattr $C$DW$23, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     356        .dwattr $C$DW$23, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     357        .dwattr $C$DW$23, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     358        .dwattr $C$DW$23, DW_AT_decl_line(0x58)
-     359        .dwattr $C$DW$23, DW_AT_decl_column(0x0d)
-     360$C$DW$24        .dwtag  DW_TAG_member
-     361        .dwattr $C$DW$24, DW_AT_type(*$C$DW$T$11)
-     362        .dwattr $C$DW$24, DW_AT_name("PRU1_GPI_CLK_MODE")
-     363        .dwattr $C$DW$24, DW_AT_TI_symbol_name("PRU1_GPI_CLK_MODE")
-     364        .dwattr $C$DW$24, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
-     365        .dwattr $C$DW$24, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     366        .dwattr $C$DW$24, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     367        .dwattr $C$DW$24, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     368        .dwattr $C$DW$24, DW_AT_decl_line(0x59)
-     369        .dwattr $C$DW$24, DW_AT_decl_column(0x0d)
-     370$C$DW$25        .dwtag  DW_TAG_member
-     371        .dwattr $C$DW$25, DW_AT_type(*$C$DW$T$11)
-     372        .dwattr $C$DW$25, DW_AT_name("PRU1_GPI_DIV0")
-     373        .dwattr $C$DW$25, DW_AT_TI_symbol_name("PRU1_GPI_DIV0")
-     374        .dwattr $C$DW$25, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x05)
-     375        .dwattr $C$DW$25, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     376        .dwattr $C$DW$25, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     377        .dwattr $C$DW$25, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     378        .dwattr $C$DW$25, DW_AT_decl_line(0x5a)
-     379        .dwattr $C$DW$25, DW_AT_decl_column(0x0d)
-     380$C$DW$26        .dwtag  DW_TAG_member
-     381        .dwattr $C$DW$26, DW_AT_type(*$C$DW$T$11)
-     382        .dwattr $C$DW$26, DW_AT_name("PRU1_GPI_DIV1")
-     383        .dwattr $C$DW$26, DW_AT_TI_symbol_name("PRU1_GPI_DIV1")
-     384        .dwattr $C$DW$26, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x05)
-     385        .dwattr $C$DW$26, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    8
-
-     386        .dwattr $C$DW$26, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     387        .dwattr $C$DW$26, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     388        .dwattr $C$DW$26, DW_AT_decl_line(0x5b)
-     389        .dwattr $C$DW$26, DW_AT_decl_column(0x0d)
-     390$C$DW$27        .dwtag  DW_TAG_member
-     391        .dwattr $C$DW$27, DW_AT_type(*$C$DW$T$11)
-     392        .dwattr $C$DW$27, DW_AT_name("PRU1_GPI_SB")
-     393        .dwattr $C$DW$27, DW_AT_TI_symbol_name("PRU1_GPI_SB")
-     394        .dwattr $C$DW$27, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
-     395        .dwattr $C$DW$27, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     396        .dwattr $C$DW$27, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     397        .dwattr $C$DW$27, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     398        .dwattr $C$DW$27, DW_AT_decl_line(0x5c)
-     399        .dwattr $C$DW$27, DW_AT_decl_column(0x0d)
-     400$C$DW$28        .dwtag  DW_TAG_member
-     401        .dwattr $C$DW$28, DW_AT_type(*$C$DW$T$11)
-     402        .dwattr $C$DW$28, DW_AT_name("PRU1_GPO_MODE")
-     403        .dwattr $C$DW$28, DW_AT_TI_symbol_name("PRU1_GPO_MODE")
-     404        .dwattr $C$DW$28, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
-     405        .dwattr $C$DW$28, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     406        .dwattr $C$DW$28, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     407        .dwattr $C$DW$28, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     408        .dwattr $C$DW$28, DW_AT_decl_line(0x5d)
-     409        .dwattr $C$DW$28, DW_AT_decl_column(0x0d)
-     410$C$DW$29        .dwtag  DW_TAG_member
-     411        .dwattr $C$DW$29, DW_AT_type(*$C$DW$T$11)
-     412        .dwattr $C$DW$29, DW_AT_name("PRU1_GPO_DIV0")
-     413        .dwattr $C$DW$29, DW_AT_TI_symbol_name("PRU1_GPO_DIV0")
-     414        .dwattr $C$DW$29, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x05)
-     415        .dwattr $C$DW$29, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     416        .dwattr $C$DW$29, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     417        .dwattr $C$DW$29, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     418        .dwattr $C$DW$29, DW_AT_decl_line(0x5e)
-     419        .dwattr $C$DW$29, DW_AT_decl_column(0x0d)
-     420$C$DW$30        .dwtag  DW_TAG_member
-     421        .dwattr $C$DW$30, DW_AT_type(*$C$DW$T$11)
-     422        .dwattr $C$DW$30, DW_AT_name("PRU1_GPO_DIV1")
-     423        .dwattr $C$DW$30, DW_AT_TI_symbol_name("PRU1_GPO_DIV1")
-     424        .dwattr $C$DW$30, DW_AT_bit_offset(0x07), DW_AT_bit_size(0x05)
-     425        .dwattr $C$DW$30, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     426        .dwattr $C$DW$30, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     427        .dwattr $C$DW$30, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     428        .dwattr $C$DW$30, DW_AT_decl_line(0x5f)
-     429        .dwattr $C$DW$30, DW_AT_decl_column(0x0d)
-     430$C$DW$31        .dwtag  DW_TAG_member
-     431        .dwattr $C$DW$31, DW_AT_type(*$C$DW$T$11)
-     432        .dwattr $C$DW$31, DW_AT_name("PRU1_GPO_SH_SEL")
-     433        .dwattr $C$DW$31, DW_AT_TI_symbol_name("PRU1_GPO_SH_SEL")
-     434        .dwattr $C$DW$31, DW_AT_bit_offset(0x06), DW_AT_bit_size(0x01)
-     435        .dwattr $C$DW$31, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     436        .dwattr $C$DW$31, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     437        .dwattr $C$DW$31, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     438        .dwattr $C$DW$31, DW_AT_decl_line(0x60)
-     439        .dwattr $C$DW$31, DW_AT_decl_column(0x0d)
-     440$C$DW$32        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE    9
-
-     441        .dwattr $C$DW$32, DW_AT_type(*$C$DW$T$11)
-     442        .dwattr $C$DW$32, DW_AT_name("rsvd26")
-     443        .dwattr $C$DW$32, DW_AT_TI_symbol_name("rsvd26")
-     444        .dwattr $C$DW$32, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x06)
-     445        .dwattr $C$DW$32, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     446        .dwattr $C$DW$32, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     447        .dwattr $C$DW$32, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     448        .dwattr $C$DW$32, DW_AT_decl_line(0x61)
-     449        .dwattr $C$DW$32, DW_AT_decl_column(0x0d)
-     450        .dwendtag $C$DW$T$22
-     451
-     452        .dwattr $C$DW$T$22, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     453        .dwattr $C$DW$T$22, DW_AT_decl_line(0x57)
-     454        .dwattr $C$DW$T$22, DW_AT_decl_column(0x13)
-     455$C$DW$T$54      .dwtag  DW_TAG_volatile_type
-     456        .dwattr $C$DW$T$54, DW_AT_type(*$C$DW$T$22)
-     457
-     458$C$DW$T$23      .dwtag  DW_TAG_structure_type
-     459        .dwattr $C$DW$T$23, DW_AT_byte_size(0x04)
-     460$C$DW$33        .dwtag  DW_TAG_member
-     461        .dwattr $C$DW$33, DW_AT_type(*$C$DW$T$11)
-     462        .dwattr $C$DW$33, DW_AT_name("PRU0_CLK_STOP_REQ")
-     463        .dwattr $C$DW$33, DW_AT_TI_symbol_name("PRU0_CLK_STOP_REQ")
-     464        .dwattr $C$DW$33, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
-     465        .dwattr $C$DW$33, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     466        .dwattr $C$DW$33, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     467        .dwattr $C$DW$33, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     468        .dwattr $C$DW$33, DW_AT_decl_line(0x6b)
-     469        .dwattr $C$DW$33, DW_AT_decl_column(0x0d)
-     470$C$DW$34        .dwtag  DW_TAG_member
-     471        .dwattr $C$DW$34, DW_AT_type(*$C$DW$T$11)
-     472        .dwattr $C$DW$34, DW_AT_name("PRU0_CLK_STOP_ACK")
-     473        .dwattr $C$DW$34, DW_AT_TI_symbol_name("PRU0_CLK_STOP_ACK")
-     474        .dwattr $C$DW$34, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
-     475        .dwattr $C$DW$34, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     476        .dwattr $C$DW$34, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     477        .dwattr $C$DW$34, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     478        .dwattr $C$DW$34, DW_AT_decl_line(0x6c)
-     479        .dwattr $C$DW$34, DW_AT_decl_column(0x0d)
-     480$C$DW$35        .dwtag  DW_TAG_member
-     481        .dwattr $C$DW$35, DW_AT_type(*$C$DW$T$11)
-     482        .dwattr $C$DW$35, DW_AT_name("PRU0_CLK_EN")
-     483        .dwattr $C$DW$35, DW_AT_TI_symbol_name("PRU0_CLK_EN")
-     484        .dwattr $C$DW$35, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
-     485        .dwattr $C$DW$35, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     486        .dwattr $C$DW$35, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     487        .dwattr $C$DW$35, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     488        .dwattr $C$DW$35, DW_AT_decl_line(0x6d)
-     489        .dwattr $C$DW$35, DW_AT_decl_column(0x0d)
-     490$C$DW$36        .dwtag  DW_TAG_member
-     491        .dwattr $C$DW$36, DW_AT_type(*$C$DW$T$11)
-     492        .dwattr $C$DW$36, DW_AT_name("PRU1_CLK_STOP_REQ")
-     493        .dwattr $C$DW$36, DW_AT_TI_symbol_name("PRU1_CLK_STOP_REQ")
-     494        .dwattr $C$DW$36, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x01)
-     495        .dwattr $C$DW$36, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   10
-
-     496        .dwattr $C$DW$36, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     497        .dwattr $C$DW$36, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     498        .dwattr $C$DW$36, DW_AT_decl_line(0x6e)
-     499        .dwattr $C$DW$36, DW_AT_decl_column(0x0d)
-     500$C$DW$37        .dwtag  DW_TAG_member
-     501        .dwattr $C$DW$37, DW_AT_type(*$C$DW$T$11)
-     502        .dwattr $C$DW$37, DW_AT_name("PRU1_CLK_STOP_ACK")
-     503        .dwattr $C$DW$37, DW_AT_TI_symbol_name("PRU1_CLK_STOP_ACK")
-     504        .dwattr $C$DW$37, DW_AT_bit_offset(0x1b), DW_AT_bit_size(0x01)
-     505        .dwattr $C$DW$37, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     506        .dwattr $C$DW$37, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     507        .dwattr $C$DW$37, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     508        .dwattr $C$DW$37, DW_AT_decl_line(0x6f)
-     509        .dwattr $C$DW$37, DW_AT_decl_column(0x0d)
-     510$C$DW$38        .dwtag  DW_TAG_member
-     511        .dwattr $C$DW$38, DW_AT_type(*$C$DW$T$11)
-     512        .dwattr $C$DW$38, DW_AT_name("PRU1_CLK_EN")
-     513        .dwattr $C$DW$38, DW_AT_TI_symbol_name("PRU1_CLK_EN")
-     514        .dwattr $C$DW$38, DW_AT_bit_offset(0x1a), DW_AT_bit_size(0x01)
-     515        .dwattr $C$DW$38, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     516        .dwattr $C$DW$38, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     517        .dwattr $C$DW$38, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     518        .dwattr $C$DW$38, DW_AT_decl_line(0x70)
-     519        .dwattr $C$DW$38, DW_AT_decl_column(0x0d)
-     520$C$DW$39        .dwtag  DW_TAG_member
-     521        .dwattr $C$DW$39, DW_AT_type(*$C$DW$T$11)
-     522        .dwattr $C$DW$39, DW_AT_name("INTC_CLK_STOP_REQ")
-     523        .dwattr $C$DW$39, DW_AT_TI_symbol_name("INTC_CLK_STOP_REQ")
-     524        .dwattr $C$DW$39, DW_AT_bit_offset(0x19), DW_AT_bit_size(0x01)
-     525        .dwattr $C$DW$39, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     526        .dwattr $C$DW$39, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     527        .dwattr $C$DW$39, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     528        .dwattr $C$DW$39, DW_AT_decl_line(0x71)
-     529        .dwattr $C$DW$39, DW_AT_decl_column(0x0d)
-     530$C$DW$40        .dwtag  DW_TAG_member
-     531        .dwattr $C$DW$40, DW_AT_type(*$C$DW$T$11)
-     532        .dwattr $C$DW$40, DW_AT_name("INTC_CLK_STOP_ACK")
-     533        .dwattr $C$DW$40, DW_AT_TI_symbol_name("INTC_CLK_STOP_ACK")
-     534        .dwattr $C$DW$40, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x01)
-     535        .dwattr $C$DW$40, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     536        .dwattr $C$DW$40, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     537        .dwattr $C$DW$40, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     538        .dwattr $C$DW$40, DW_AT_decl_line(0x72)
-     539        .dwattr $C$DW$40, DW_AT_decl_column(0x0d)
-     540$C$DW$41        .dwtag  DW_TAG_member
-     541        .dwattr $C$DW$41, DW_AT_type(*$C$DW$T$11)
-     542        .dwattr $C$DW$41, DW_AT_name("INTC_CLK_EN")
-     543        .dwattr $C$DW$41, DW_AT_TI_symbol_name("INTC_CLK_EN")
-     544        .dwattr $C$DW$41, DW_AT_bit_offset(0x17), DW_AT_bit_size(0x01)
-     545        .dwattr $C$DW$41, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     546        .dwattr $C$DW$41, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     547        .dwattr $C$DW$41, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     548        .dwattr $C$DW$41, DW_AT_decl_line(0x73)
-     549        .dwattr $C$DW$41, DW_AT_decl_column(0x0d)
-     550$C$DW$42        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   11
-
-     551        .dwattr $C$DW$42, DW_AT_type(*$C$DW$T$11)
-     552        .dwattr $C$DW$42, DW_AT_name("UART_CLK_STOP_REQ")
-     553        .dwattr $C$DW$42, DW_AT_TI_symbol_name("UART_CLK_STOP_REQ")
-     554        .dwattr $C$DW$42, DW_AT_bit_offset(0x16), DW_AT_bit_size(0x01)
-     555        .dwattr $C$DW$42, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     556        .dwattr $C$DW$42, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     557        .dwattr $C$DW$42, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     558        .dwattr $C$DW$42, DW_AT_decl_line(0x74)
-     559        .dwattr $C$DW$42, DW_AT_decl_column(0x0d)
-     560$C$DW$43        .dwtag  DW_TAG_member
-     561        .dwattr $C$DW$43, DW_AT_type(*$C$DW$T$11)
-     562        .dwattr $C$DW$43, DW_AT_name("UART_CLK_STOP_ACK")
-     563        .dwattr $C$DW$43, DW_AT_TI_symbol_name("UART_CLK_STOP_ACK")
-     564        .dwattr $C$DW$43, DW_AT_bit_offset(0x15), DW_AT_bit_size(0x01)
-     565        .dwattr $C$DW$43, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     566        .dwattr $C$DW$43, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     567        .dwattr $C$DW$43, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     568        .dwattr $C$DW$43, DW_AT_decl_line(0x75)
-     569        .dwattr $C$DW$43, DW_AT_decl_column(0x0d)
-     570$C$DW$44        .dwtag  DW_TAG_member
-     571        .dwattr $C$DW$44, DW_AT_type(*$C$DW$T$11)
-     572        .dwattr $C$DW$44, DW_AT_name("UART_CLK_EN")
-     573        .dwattr $C$DW$44, DW_AT_TI_symbol_name("UART_CLK_EN")
-     574        .dwattr $C$DW$44, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x01)
-     575        .dwattr $C$DW$44, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     576        .dwattr $C$DW$44, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     577        .dwattr $C$DW$44, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     578        .dwattr $C$DW$44, DW_AT_decl_line(0x76)
-     579        .dwattr $C$DW$44, DW_AT_decl_column(0x0d)
-     580$C$DW$45        .dwtag  DW_TAG_member
-     581        .dwattr $C$DW$45, DW_AT_type(*$C$DW$T$11)
-     582        .dwattr $C$DW$45, DW_AT_name("ECAP_CLK_STOP_REQ")
-     583        .dwattr $C$DW$45, DW_AT_TI_symbol_name("ECAP_CLK_STOP_REQ")
-     584        .dwattr $C$DW$45, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x01)
-     585        .dwattr $C$DW$45, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     586        .dwattr $C$DW$45, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     587        .dwattr $C$DW$45, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     588        .dwattr $C$DW$45, DW_AT_decl_line(0x77)
-     589        .dwattr $C$DW$45, DW_AT_decl_column(0x0d)
-     590$C$DW$46        .dwtag  DW_TAG_member
-     591        .dwattr $C$DW$46, DW_AT_type(*$C$DW$T$11)
-     592        .dwattr $C$DW$46, DW_AT_name("ECAP_CLK_STOP_ACK")
-     593        .dwattr $C$DW$46, DW_AT_TI_symbol_name("ECAP_CLK_STOP_ACK")
-     594        .dwattr $C$DW$46, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
-     595        .dwattr $C$DW$46, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     596        .dwattr $C$DW$46, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     597        .dwattr $C$DW$46, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     598        .dwattr $C$DW$46, DW_AT_decl_line(0x78)
-     599        .dwattr $C$DW$46, DW_AT_decl_column(0x0d)
-     600$C$DW$47        .dwtag  DW_TAG_member
-     601        .dwattr $C$DW$47, DW_AT_type(*$C$DW$T$11)
-     602        .dwattr $C$DW$47, DW_AT_name("ECAP_CLK_EN")
-     603        .dwattr $C$DW$47, DW_AT_TI_symbol_name("ECAP_CLK_EN")
-     604        .dwattr $C$DW$47, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
-     605        .dwattr $C$DW$47, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   12
-
-     606        .dwattr $C$DW$47, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     607        .dwattr $C$DW$47, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     608        .dwattr $C$DW$47, DW_AT_decl_line(0x79)
-     609        .dwattr $C$DW$47, DW_AT_decl_column(0x0d)
-     610$C$DW$48        .dwtag  DW_TAG_member
-     611        .dwattr $C$DW$48, DW_AT_type(*$C$DW$T$11)
-     612        .dwattr $C$DW$48, DW_AT_name("IEP_CLK_STOP_REQ")
-     613        .dwattr $C$DW$48, DW_AT_TI_symbol_name("IEP_CLK_STOP_REQ")
-     614        .dwattr $C$DW$48, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x01)
-     615        .dwattr $C$DW$48, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     616        .dwattr $C$DW$48, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     617        .dwattr $C$DW$48, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     618        .dwattr $C$DW$48, DW_AT_decl_line(0x7a)
-     619        .dwattr $C$DW$48, DW_AT_decl_column(0x0d)
-     620$C$DW$49        .dwtag  DW_TAG_member
-     621        .dwattr $C$DW$49, DW_AT_type(*$C$DW$T$11)
-     622        .dwattr $C$DW$49, DW_AT_name("IEP_CLK_STOP_ACK")
-     623        .dwattr $C$DW$49, DW_AT_TI_symbol_name("IEP_CLK_STOP_ACK")
-     624        .dwattr $C$DW$49, DW_AT_bit_offset(0x0f), DW_AT_bit_size(0x01)
-     625        .dwattr $C$DW$49, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     626        .dwattr $C$DW$49, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     627        .dwattr $C$DW$49, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     628        .dwattr $C$DW$49, DW_AT_decl_line(0x7b)
-     629        .dwattr $C$DW$49, DW_AT_decl_column(0x0d)
-     630$C$DW$50        .dwtag  DW_TAG_member
-     631        .dwattr $C$DW$50, DW_AT_type(*$C$DW$T$11)
-     632        .dwattr $C$DW$50, DW_AT_name("IEP_CLK_EN")
-     633        .dwattr $C$DW$50, DW_AT_TI_symbol_name("IEP_CLK_EN")
-     634        .dwattr $C$DW$50, DW_AT_bit_offset(0x0e), DW_AT_bit_size(0x01)
-     635        .dwattr $C$DW$50, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     636        .dwattr $C$DW$50, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     637        .dwattr $C$DW$50, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     638        .dwattr $C$DW$50, DW_AT_decl_line(0x7c)
-     639        .dwattr $C$DW$50, DW_AT_decl_column(0x0d)
-     640$C$DW$51        .dwtag  DW_TAG_member
-     641        .dwattr $C$DW$51, DW_AT_type(*$C$DW$T$11)
-     642        .dwattr $C$DW$51, DW_AT_name("rsvd18")
-     643        .dwattr $C$DW$51, DW_AT_TI_symbol_name("rsvd18")
-     644        .dwattr $C$DW$51, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0e)
-     645        .dwattr $C$DW$51, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     646        .dwattr $C$DW$51, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     647        .dwattr $C$DW$51, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     648        .dwattr $C$DW$51, DW_AT_decl_line(0x7d)
-     649        .dwattr $C$DW$51, DW_AT_decl_column(0x0d)
-     650        .dwendtag $C$DW$T$23
-     651
-     652        .dwattr $C$DW$T$23, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     653        .dwattr $C$DW$T$23, DW_AT_decl_line(0x6a)
-     654        .dwattr $C$DW$T$23, DW_AT_decl_column(0x13)
-     655$C$DW$T$56      .dwtag  DW_TAG_volatile_type
-     656        .dwattr $C$DW$T$56, DW_AT_type(*$C$DW$T$23)
-     657
-     658$C$DW$T$24      .dwtag  DW_TAG_structure_type
-     659        .dwattr $C$DW$T$24, DW_AT_byte_size(0x04)
-     660$C$DW$52        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   13
-
-     661        .dwattr $C$DW$52, DW_AT_type(*$C$DW$T$11)
-     662        .dwattr $C$DW$52, DW_AT_name("PRU0_IMEM_PE_RAW")
-     663        .dwattr $C$DW$52, DW_AT_TI_symbol_name("PRU0_IMEM_PE_RAW")
-     664        .dwattr $C$DW$52, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
-     665        .dwattr $C$DW$52, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     666        .dwattr $C$DW$52, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     667        .dwattr $C$DW$52, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     668        .dwattr $C$DW$52, DW_AT_decl_line(0x87)
-     669        .dwattr $C$DW$52, DW_AT_decl_column(0x0d)
-     670$C$DW$53        .dwtag  DW_TAG_member
-     671        .dwattr $C$DW$53, DW_AT_type(*$C$DW$T$11)
-     672        .dwattr $C$DW$53, DW_AT_name("PRU0_DMEM_PE_RAW")
-     673        .dwattr $C$DW$53, DW_AT_TI_symbol_name("PRU0_DMEM_PE_RAW")
-     674        .dwattr $C$DW$53, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
-     675        .dwattr $C$DW$53, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     676        .dwattr $C$DW$53, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     677        .dwattr $C$DW$53, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     678        .dwattr $C$DW$53, DW_AT_decl_line(0x88)
-     679        .dwattr $C$DW$53, DW_AT_decl_column(0x0d)
-     680$C$DW$54        .dwtag  DW_TAG_member
-     681        .dwattr $C$DW$54, DW_AT_type(*$C$DW$T$11)
-     682        .dwattr $C$DW$54, DW_AT_name("PRU1_IMEM_PE_RAW")
-     683        .dwattr $C$DW$54, DW_AT_TI_symbol_name("PRU1_IMEM_PE_RAW")
-     684        .dwattr $C$DW$54, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
-     685        .dwattr $C$DW$54, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     686        .dwattr $C$DW$54, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     687        .dwattr $C$DW$54, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     688        .dwattr $C$DW$54, DW_AT_decl_line(0x89)
-     689        .dwattr $C$DW$54, DW_AT_decl_column(0x0d)
-     690$C$DW$55        .dwtag  DW_TAG_member
-     691        .dwattr $C$DW$55, DW_AT_type(*$C$DW$T$11)
-     692        .dwattr $C$DW$55, DW_AT_name("PRU1_DMEM_PE_RAW")
-     693        .dwattr $C$DW$55, DW_AT_TI_symbol_name("PRU1_DMEM_PE_RAW")
-     694        .dwattr $C$DW$55, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
-     695        .dwattr $C$DW$55, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     696        .dwattr $C$DW$55, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     697        .dwattr $C$DW$55, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     698        .dwattr $C$DW$55, DW_AT_decl_line(0x8a)
-     699        .dwattr $C$DW$55, DW_AT_decl_column(0x0d)
-     700$C$DW$56        .dwtag  DW_TAG_member
-     701        .dwattr $C$DW$56, DW_AT_type(*$C$DW$T$11)
-     702        .dwattr $C$DW$56, DW_AT_name("RAM_PE_RAW")
-     703        .dwattr $C$DW$56, DW_AT_TI_symbol_name("RAM_PE_RAW")
-     704        .dwattr $C$DW$56, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
-     705        .dwattr $C$DW$56, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     706        .dwattr $C$DW$56, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     707        .dwattr $C$DW$56, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     708        .dwattr $C$DW$56, DW_AT_decl_line(0x8b)
-     709        .dwattr $C$DW$56, DW_AT_decl_column(0x0d)
-     710$C$DW$57        .dwtag  DW_TAG_member
-     711        .dwattr $C$DW$57, DW_AT_type(*$C$DW$T$11)
-     712        .dwattr $C$DW$57, DW_AT_name("rsvd20")
-     713        .dwattr $C$DW$57, DW_AT_TI_symbol_name("rsvd20")
-     714        .dwattr $C$DW$57, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
-     715        .dwattr $C$DW$57, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   14
-
-     716        .dwattr $C$DW$57, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     717        .dwattr $C$DW$57, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     718        .dwattr $C$DW$57, DW_AT_decl_line(0x8c)
-     719        .dwattr $C$DW$57, DW_AT_decl_column(0x0d)
-     720        .dwendtag $C$DW$T$24
-     721
-     722        .dwattr $C$DW$T$24, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     723        .dwattr $C$DW$T$24, DW_AT_decl_line(0x86)
-     724        .dwattr $C$DW$T$24, DW_AT_decl_column(0x14)
-     725$C$DW$T$58      .dwtag  DW_TAG_volatile_type
-     726        .dwattr $C$DW$T$58, DW_AT_type(*$C$DW$T$24)
-     727
-     728$C$DW$T$25      .dwtag  DW_TAG_structure_type
-     729        .dwattr $C$DW$T$25, DW_AT_byte_size(0x04)
-     730$C$DW$58        .dwtag  DW_TAG_member
-     731        .dwattr $C$DW$58, DW_AT_type(*$C$DW$T$11)
-     732        .dwattr $C$DW$58, DW_AT_name("PRU0_IMEM_PE")
-     733        .dwattr $C$DW$58, DW_AT_TI_symbol_name("PRU0_IMEM_PE")
-     734        .dwattr $C$DW$58, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
-     735        .dwattr $C$DW$58, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     736        .dwattr $C$DW$58, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     737        .dwattr $C$DW$58, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     738        .dwattr $C$DW$58, DW_AT_decl_line(0x96)
-     739        .dwattr $C$DW$58, DW_AT_decl_column(0x0d)
-     740$C$DW$59        .dwtag  DW_TAG_member
-     741        .dwattr $C$DW$59, DW_AT_type(*$C$DW$T$11)
-     742        .dwattr $C$DW$59, DW_AT_name("PRU0_DMEM_PE")
-     743        .dwattr $C$DW$59, DW_AT_TI_symbol_name("PRU0_DMEM_PE")
-     744        .dwattr $C$DW$59, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
-     745        .dwattr $C$DW$59, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     746        .dwattr $C$DW$59, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     747        .dwattr $C$DW$59, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     748        .dwattr $C$DW$59, DW_AT_decl_line(0x97)
-     749        .dwattr $C$DW$59, DW_AT_decl_column(0x0d)
-     750$C$DW$60        .dwtag  DW_TAG_member
-     751        .dwattr $C$DW$60, DW_AT_type(*$C$DW$T$11)
-     752        .dwattr $C$DW$60, DW_AT_name("PRU1_IMEM_PE")
-     753        .dwattr $C$DW$60, DW_AT_TI_symbol_name("PRU1_IMEM_PE")
-     754        .dwattr $C$DW$60, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
-     755        .dwattr $C$DW$60, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     756        .dwattr $C$DW$60, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     757        .dwattr $C$DW$60, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     758        .dwattr $C$DW$60, DW_AT_decl_line(0x98)
-     759        .dwattr $C$DW$60, DW_AT_decl_column(0x0d)
-     760$C$DW$61        .dwtag  DW_TAG_member
-     761        .dwattr $C$DW$61, DW_AT_type(*$C$DW$T$11)
-     762        .dwattr $C$DW$61, DW_AT_name("PRU1_DMEM_PE")
-     763        .dwattr $C$DW$61, DW_AT_TI_symbol_name("PRU1_DMEM_PE")
-     764        .dwattr $C$DW$61, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
-     765        .dwattr $C$DW$61, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     766        .dwattr $C$DW$61, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     767        .dwattr $C$DW$61, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     768        .dwattr $C$DW$61, DW_AT_decl_line(0x99)
-     769        .dwattr $C$DW$61, DW_AT_decl_column(0x0d)
-     770$C$DW$62        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   15
-
-     771        .dwattr $C$DW$62, DW_AT_type(*$C$DW$T$11)
-     772        .dwattr $C$DW$62, DW_AT_name("RAM_PE")
-     773        .dwattr $C$DW$62, DW_AT_TI_symbol_name("RAM_PE")
-     774        .dwattr $C$DW$62, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
-     775        .dwattr $C$DW$62, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     776        .dwattr $C$DW$62, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     777        .dwattr $C$DW$62, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     778        .dwattr $C$DW$62, DW_AT_decl_line(0x9a)
-     779        .dwattr $C$DW$62, DW_AT_decl_column(0x0d)
-     780$C$DW$63        .dwtag  DW_TAG_member
-     781        .dwattr $C$DW$63, DW_AT_type(*$C$DW$T$11)
-     782        .dwattr $C$DW$63, DW_AT_name("rsvd20")
-     783        .dwattr $C$DW$63, DW_AT_TI_symbol_name("rsvd20")
-     784        .dwattr $C$DW$63, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
-     785        .dwattr $C$DW$63, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     786        .dwattr $C$DW$63, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     787        .dwattr $C$DW$63, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     788        .dwattr $C$DW$63, DW_AT_decl_line(0x9b)
-     789        .dwattr $C$DW$63, DW_AT_decl_column(0x0d)
-     790        .dwendtag $C$DW$T$25
-     791
-     792        .dwattr $C$DW$T$25, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     793        .dwattr $C$DW$T$25, DW_AT_decl_line(0x95)
-     794        .dwattr $C$DW$T$25, DW_AT_decl_column(0x14)
-     795$C$DW$T$60      .dwtag  DW_TAG_volatile_type
-     796        .dwattr $C$DW$T$60, DW_AT_type(*$C$DW$T$25)
-     797
-     798$C$DW$T$26      .dwtag  DW_TAG_structure_type
-     799        .dwattr $C$DW$T$26, DW_AT_byte_size(0x04)
-     800$C$DW$64        .dwtag  DW_TAG_member
-     801        .dwattr $C$DW$64, DW_AT_type(*$C$DW$T$11)
-     802        .dwattr $C$DW$64, DW_AT_name("PRU0_IMEM_PE_SET")
-     803        .dwattr $C$DW$64, DW_AT_TI_symbol_name("PRU0_IMEM_PE_SET")
-     804        .dwattr $C$DW$64, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
-     805        .dwattr $C$DW$64, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     806        .dwattr $C$DW$64, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     807        .dwattr $C$DW$64, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     808        .dwattr $C$DW$64, DW_AT_decl_line(0xa4)
-     809        .dwattr $C$DW$64, DW_AT_decl_column(0x0d)
-     810$C$DW$65        .dwtag  DW_TAG_member
-     811        .dwattr $C$DW$65, DW_AT_type(*$C$DW$T$11)
-     812        .dwattr $C$DW$65, DW_AT_name("PRU0_DMEM_PE_SET")
-     813        .dwattr $C$DW$65, DW_AT_TI_symbol_name("PRU0_DMEM_PE_SET")
-     814        .dwattr $C$DW$65, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
-     815        .dwattr $C$DW$65, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     816        .dwattr $C$DW$65, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     817        .dwattr $C$DW$65, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     818        .dwattr $C$DW$65, DW_AT_decl_line(0xa5)
-     819        .dwattr $C$DW$65, DW_AT_decl_column(0x0d)
-     820$C$DW$66        .dwtag  DW_TAG_member
-     821        .dwattr $C$DW$66, DW_AT_type(*$C$DW$T$11)
-     822        .dwattr $C$DW$66, DW_AT_name("PRU1_IMEM_PE_SET")
-     823        .dwattr $C$DW$66, DW_AT_TI_symbol_name("PRU1_IMEM_PE_SET")
-     824        .dwattr $C$DW$66, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
-     825        .dwattr $C$DW$66, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   16
-
-     826        .dwattr $C$DW$66, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     827        .dwattr $C$DW$66, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     828        .dwattr $C$DW$66, DW_AT_decl_line(0xa6)
-     829        .dwattr $C$DW$66, DW_AT_decl_column(0x0d)
-     830$C$DW$67        .dwtag  DW_TAG_member
-     831        .dwattr $C$DW$67, DW_AT_type(*$C$DW$T$11)
-     832        .dwattr $C$DW$67, DW_AT_name("PRU1_DMEM_PE_SET")
-     833        .dwattr $C$DW$67, DW_AT_TI_symbol_name("PRU1_DMEM_PE_SET")
-     834        .dwattr $C$DW$67, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
-     835        .dwattr $C$DW$67, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     836        .dwattr $C$DW$67, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     837        .dwattr $C$DW$67, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     838        .dwattr $C$DW$67, DW_AT_decl_line(0xa7)
-     839        .dwattr $C$DW$67, DW_AT_decl_column(0x0d)
-     840$C$DW$68        .dwtag  DW_TAG_member
-     841        .dwattr $C$DW$68, DW_AT_type(*$C$DW$T$11)
-     842        .dwattr $C$DW$68, DW_AT_name("RAM_PE_SET")
-     843        .dwattr $C$DW$68, DW_AT_TI_symbol_name("RAM_PE_SET")
-     844        .dwattr $C$DW$68, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
-     845        .dwattr $C$DW$68, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     846        .dwattr $C$DW$68, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     847        .dwattr $C$DW$68, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     848        .dwattr $C$DW$68, DW_AT_decl_line(0xa8)
-     849        .dwattr $C$DW$68, DW_AT_decl_column(0x0d)
-     850$C$DW$69        .dwtag  DW_TAG_member
-     851        .dwattr $C$DW$69, DW_AT_type(*$C$DW$T$11)
-     852        .dwattr $C$DW$69, DW_AT_name("rsvd20")
-     853        .dwattr $C$DW$69, DW_AT_TI_symbol_name("rsvd20")
-     854        .dwattr $C$DW$69, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
-     855        .dwattr $C$DW$69, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     856        .dwattr $C$DW$69, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     857        .dwattr $C$DW$69, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     858        .dwattr $C$DW$69, DW_AT_decl_line(0xa9)
-     859        .dwattr $C$DW$69, DW_AT_decl_column(0x0d)
-     860        .dwendtag $C$DW$T$26
-     861
-     862        .dwattr $C$DW$T$26, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     863        .dwattr $C$DW$T$26, DW_AT_decl_line(0xa3)
-     864        .dwattr $C$DW$T$26, DW_AT_decl_column(0x13)
-     865$C$DW$T$62      .dwtag  DW_TAG_volatile_type
-     866        .dwattr $C$DW$T$62, DW_AT_type(*$C$DW$T$26)
-     867
-     868$C$DW$T$27      .dwtag  DW_TAG_structure_type
-     869        .dwattr $C$DW$T$27, DW_AT_byte_size(0x04)
-     870$C$DW$70        .dwtag  DW_TAG_member
-     871        .dwattr $C$DW$70, DW_AT_type(*$C$DW$T$11)
-     872        .dwattr $C$DW$70, DW_AT_name("PRU0_IMEM_PE_CLR")
-     873        .dwattr $C$DW$70, DW_AT_TI_symbol_name("PRU0_IMEM_PE_CLR")
-     874        .dwattr $C$DW$70, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
-     875        .dwattr $C$DW$70, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     876        .dwattr $C$DW$70, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     877        .dwattr $C$DW$70, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     878        .dwattr $C$DW$70, DW_AT_decl_line(0xb3)
-     879        .dwattr $C$DW$70, DW_AT_decl_column(0x0d)
-     880$C$DW$71        .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   17
-
-     881        .dwattr $C$DW$71, DW_AT_type(*$C$DW$T$11)
-     882        .dwattr $C$DW$71, DW_AT_name("PRU0_DMEM_PE_CLR")
-     883        .dwattr $C$DW$71, DW_AT_TI_symbol_name("PRU0_DMEM_PE_CLR")
-     884        .dwattr $C$DW$71, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
-     885        .dwattr $C$DW$71, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     886        .dwattr $C$DW$71, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     887        .dwattr $C$DW$71, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     888        .dwattr $C$DW$71, DW_AT_decl_line(0xb4)
-     889        .dwattr $C$DW$71, DW_AT_decl_column(0x0d)
-     890$C$DW$72        .dwtag  DW_TAG_member
-     891        .dwattr $C$DW$72, DW_AT_type(*$C$DW$T$11)
-     892        .dwattr $C$DW$72, DW_AT_name("PRU1_IMEM_PE_CLR")
-     893        .dwattr $C$DW$72, DW_AT_TI_symbol_name("PRU1_IMEM_PE_CLR")
-     894        .dwattr $C$DW$72, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
-     895        .dwattr $C$DW$72, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     896        .dwattr $C$DW$72, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     897        .dwattr $C$DW$72, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     898        .dwattr $C$DW$72, DW_AT_decl_line(0xb5)
-     899        .dwattr $C$DW$72, DW_AT_decl_column(0x0d)
-     900$C$DW$73        .dwtag  DW_TAG_member
-     901        .dwattr $C$DW$73, DW_AT_type(*$C$DW$T$11)
-     902        .dwattr $C$DW$73, DW_AT_name("PRU1_DMEM_PE_CLR")
-     903        .dwattr $C$DW$73, DW_AT_TI_symbol_name("PRU1_DMEM_PE_CLR")
-     904        .dwattr $C$DW$73, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
-     905        .dwattr $C$DW$73, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     906        .dwattr $C$DW$73, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     907        .dwattr $C$DW$73, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     908        .dwattr $C$DW$73, DW_AT_decl_line(0xb6)
-     909        .dwattr $C$DW$73, DW_AT_decl_column(0x0d)
-     910$C$DW$74        .dwtag  DW_TAG_member
-     911        .dwattr $C$DW$74, DW_AT_type(*$C$DW$T$11)
-     912        .dwattr $C$DW$74, DW_AT_name("rsvd16")
-     913        .dwattr $C$DW$74, DW_AT_TI_symbol_name("rsvd16")
-     914        .dwattr $C$DW$74, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
-     915        .dwattr $C$DW$74, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     916        .dwattr $C$DW$74, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     917        .dwattr $C$DW$74, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     918        .dwattr $C$DW$74, DW_AT_decl_line(0xb7)
-     919        .dwattr $C$DW$74, DW_AT_decl_column(0x0d)
-     920        .dwendtag $C$DW$T$27
-     921
-     922        .dwattr $C$DW$T$27, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     923        .dwattr $C$DW$T$27, DW_AT_decl_line(0xb2)
-     924        .dwattr $C$DW$T$27, DW_AT_decl_column(0x13)
-     925$C$DW$T$64      .dwtag  DW_TAG_volatile_type
-     926        .dwattr $C$DW$T$64, DW_AT_type(*$C$DW$T$27)
-     927
-     928$C$DW$T$28      .dwtag  DW_TAG_structure_type
-     929        .dwattr $C$DW$T$28, DW_AT_byte_size(0x04)
-     930$C$DW$75        .dwtag  DW_TAG_member
-     931        .dwattr $C$DW$75, DW_AT_type(*$C$DW$T$11)
-     932        .dwattr $C$DW$75, DW_AT_name("PMAO_PRU0")
-     933        .dwattr $C$DW$75, DW_AT_TI_symbol_name("PMAO_PRU0")
-     934        .dwattr $C$DW$75, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
-     935        .dwattr $C$DW$75, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   18
-
-     936        .dwattr $C$DW$75, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     937        .dwattr $C$DW$75, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     938        .dwattr $C$DW$75, DW_AT_decl_line(0xc4)
-     939        .dwattr $C$DW$75, DW_AT_decl_column(0x0d)
-     940$C$DW$76        .dwtag  DW_TAG_member
-     941        .dwattr $C$DW$76, DW_AT_type(*$C$DW$T$11)
-     942        .dwattr $C$DW$76, DW_AT_name("PMAO_PRU1")
-     943        .dwattr $C$DW$76, DW_AT_TI_symbol_name("PMAO_PRU1")
-     944        .dwattr $C$DW$76, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
-     945        .dwattr $C$DW$76, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     946        .dwattr $C$DW$76, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     947        .dwattr $C$DW$76, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     948        .dwattr $C$DW$76, DW_AT_decl_line(0xc5)
-     949        .dwattr $C$DW$76, DW_AT_decl_column(0x0d)
-     950$C$DW$77        .dwtag  DW_TAG_member
-     951        .dwattr $C$DW$77, DW_AT_type(*$C$DW$T$11)
-     952        .dwattr $C$DW$77, DW_AT_name("rsvd2")
-     953        .dwattr $C$DW$77, DW_AT_TI_symbol_name("rsvd2")
-     954        .dwattr $C$DW$77, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1e)
-     955        .dwattr $C$DW$77, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     956        .dwattr $C$DW$77, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     957        .dwattr $C$DW$77, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     958        .dwattr $C$DW$77, DW_AT_decl_line(0xc6)
-     959        .dwattr $C$DW$77, DW_AT_decl_column(0x0d)
-     960        .dwendtag $C$DW$T$28
-     961
-     962        .dwattr $C$DW$T$28, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     963        .dwattr $C$DW$T$28, DW_AT_decl_line(0xc3)
-     964        .dwattr $C$DW$T$28, DW_AT_decl_column(0x13)
-     965$C$DW$T$66      .dwtag  DW_TAG_volatile_type
-     966        .dwattr $C$DW$T$66, DW_AT_type(*$C$DW$T$28)
-     967
-     968$C$DW$T$29      .dwtag  DW_TAG_structure_type
-     969        .dwattr $C$DW$T$29, DW_AT_byte_size(0x04)
-     970$C$DW$78        .dwtag  DW_TAG_member
-     971        .dwattr $C$DW$78, DW_AT_type(*$C$DW$T$11)
-     972        .dwattr $C$DW$78, DW_AT_name("OCP_EN")
-     973        .dwattr $C$DW$78, DW_AT_TI_symbol_name("OCP_EN")
-     974        .dwattr $C$DW$78, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
-     975        .dwattr $C$DW$78, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     976        .dwattr $C$DW$78, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     977        .dwattr $C$DW$78, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     978        .dwattr $C$DW$78, DW_AT_decl_line(0xd3)
-     979        .dwattr $C$DW$78, DW_AT_decl_column(0x0d)
-     980$C$DW$79        .dwtag  DW_TAG_member
-     981        .dwattr $C$DW$79, DW_AT_type(*$C$DW$T$11)
-     982        .dwattr $C$DW$79, DW_AT_name("rsvd1")
-     983        .dwattr $C$DW$79, DW_AT_TI_symbol_name("rsvd1")
-     984        .dwattr $C$DW$79, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1f)
-     985        .dwattr $C$DW$79, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-     986        .dwattr $C$DW$79, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-     987        .dwattr $C$DW$79, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-     988        .dwattr $C$DW$79, DW_AT_decl_line(0xd4)
-     989        .dwattr $C$DW$79, DW_AT_decl_column(0x0d)
-     990        .dwendtag $C$DW$T$29
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   19
-
-     991
-     992        .dwattr $C$DW$T$29, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-     993        .dwattr $C$DW$T$29, DW_AT_decl_line(0xd2)
-     994        .dwattr $C$DW$T$29, DW_AT_decl_column(0x13)
-     995$C$DW$T$68      .dwtag  DW_TAG_volatile_type
-     996        .dwattr $C$DW$T$68, DW_AT_type(*$C$DW$T$29)
-     997
-     998$C$DW$T$30      .dwtag  DW_TAG_structure_type
-     999        .dwattr $C$DW$T$30, DW_AT_byte_size(0x04)
-    1000$C$DW$80        .dwtag  DW_TAG_member
-    1001        .dwattr $C$DW$80, DW_AT_type(*$C$DW$T$11)
-    1002        .dwattr $C$DW$80, DW_AT_name("PRU1_PAD_HP_EN")
-    1003        .dwattr $C$DW$80, DW_AT_TI_symbol_name("PRU1_PAD_HP_EN")
-    1004        .dwattr $C$DW$80, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
-    1005        .dwattr $C$DW$80, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1006        .dwattr $C$DW$80, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1007        .dwattr $C$DW$80, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1008        .dwattr $C$DW$80, DW_AT_decl_line(0xde)
-    1009        .dwattr $C$DW$80, DW_AT_decl_column(0x0d)
-    1010$C$DW$81        .dwtag  DW_TAG_member
-    1011        .dwattr $C$DW$81, DW_AT_type(*$C$DW$T$11)
-    1012        .dwattr $C$DW$81, DW_AT_name("XFR_SHIFT_EN")
-    1013        .dwattr $C$DW$81, DW_AT_TI_symbol_name("XFR_SHIFT_EN")
-    1014        .dwattr $C$DW$81, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
-    1015        .dwattr $C$DW$81, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1016        .dwattr $C$DW$81, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1017        .dwattr $C$DW$81, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1018        .dwattr $C$DW$81, DW_AT_decl_line(0xdf)
-    1019        .dwattr $C$DW$81, DW_AT_decl_column(0x0d)
-    1020$C$DW$82        .dwtag  DW_TAG_member
-    1021        .dwattr $C$DW$82, DW_AT_type(*$C$DW$T$11)
-    1022        .dwattr $C$DW$82, DW_AT_name("rsvd2")
-    1023        .dwattr $C$DW$82, DW_AT_TI_symbol_name("rsvd2")
-    1024        .dwattr $C$DW$82, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1e)
-    1025        .dwattr $C$DW$82, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1026        .dwattr $C$DW$82, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1027        .dwattr $C$DW$82, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1028        .dwattr $C$DW$82, DW_AT_decl_line(0xe0)
-    1029        .dwattr $C$DW$82, DW_AT_decl_column(0x0d)
-    1030        .dwendtag $C$DW$T$30
-    1031
-    1032        .dwattr $C$DW$T$30, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1033        .dwattr $C$DW$T$30, DW_AT_decl_line(0xdd)
-    1034        .dwattr $C$DW$T$30, DW_AT_decl_column(0x13)
-    1035$C$DW$T$70      .dwtag  DW_TAG_volatile_type
-    1036        .dwattr $C$DW$T$70, DW_AT_type(*$C$DW$T$30)
-    1037
-    1038$C$DW$T$31      .dwtag  DW_TAG_structure_type
-    1039        .dwattr $C$DW$T$31, DW_AT_byte_size(0x04)
-    1040$C$DW$83        .dwtag  DW_TAG_member
-    1041        .dwattr $C$DW$83, DW_AT_type(*$C$DW$T$11)
-    1042        .dwattr $C$DW$83, DW_AT_name("PIN_MUX_SEL")
-    1043        .dwattr $C$DW$83, DW_AT_TI_symbol_name("PIN_MUX_SEL")
-    1044        .dwattr $C$DW$83, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
-    1045        .dwattr $C$DW$83, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   20
-
-    1046        .dwattr $C$DW$83, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1047        .dwattr $C$DW$83, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1048        .dwattr $C$DW$83, DW_AT_decl_line(0xec)
-    1049        .dwattr $C$DW$83, DW_AT_decl_column(0x0d)
-    1050$C$DW$84        .dwtag  DW_TAG_member
-    1051        .dwattr $C$DW$84, DW_AT_type(*$C$DW$T$11)
-    1052        .dwattr $C$DW$84, DW_AT_name("rsvd2")
-    1053        .dwattr $C$DW$84, DW_AT_TI_symbol_name("rsvd2")
-    1054        .dwattr $C$DW$84, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x18)
-    1055        .dwattr $C$DW$84, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1056        .dwattr $C$DW$84, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1057        .dwattr $C$DW$84, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1058        .dwattr $C$DW$84, DW_AT_decl_line(0xed)
-    1059        .dwattr $C$DW$84, DW_AT_decl_column(0x0d)
-    1060        .dwendtag $C$DW$T$31
-    1061
-    1062        .dwattr $C$DW$T$31, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1063        .dwattr $C$DW$T$31, DW_AT_decl_line(0xeb)
-    1064        .dwattr $C$DW$T$31, DW_AT_decl_column(0x13)
-    1065$C$DW$T$72      .dwtag  DW_TAG_volatile_type
-    1066        .dwattr $C$DW$T$72, DW_AT_type(*$C$DW$T$31)
-    1067
-    1068$C$DW$T$35      .dwtag  DW_TAG_structure_type
-    1069        .dwattr $C$DW$T$35, DW_AT_byte_size(0x44)
-    1070$C$DW$85        .dwtag  DW_TAG_member
-    1071        .dwattr $C$DW$85, DW_AT_type(*$C$DW$T$49)
-    1072        .dwattr $C$DW$85, DW_AT_name("$P$T0")
-    1073        .dwattr $C$DW$85, DW_AT_TI_symbol_name("$P$T0")
-    1074        .dwattr $C$DW$85, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1075        .dwattr $C$DW$85, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1076        .dwattr $C$DW$85, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1077        .dwattr $C$DW$85, DW_AT_decl_line(0x29)
-    1078        .dwattr $C$DW$85, DW_AT_decl_column(0x02)
-    1079$C$DW$86        .dwtag  DW_TAG_member
-    1080        .dwattr $C$DW$86, DW_AT_type(*$C$DW$T$51)
-    1081        .dwattr $C$DW$86, DW_AT_name("$P$T1")
-    1082        .dwattr $C$DW$86, DW_AT_TI_symbol_name("$P$T1")
-    1083        .dwattr $C$DW$86, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
-    1084        .dwattr $C$DW$86, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1085        .dwattr $C$DW$86, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1086        .dwattr $C$DW$86, DW_AT_decl_line(0x33)
-    1087        .dwattr $C$DW$86, DW_AT_decl_column(0x02)
-    1088$C$DW$87        .dwtag  DW_TAG_member
-    1089        .dwattr $C$DW$87, DW_AT_type(*$C$DW$T$53)
-    1090        .dwattr $C$DW$87, DW_AT_name("$P$T2")
-    1091        .dwattr $C$DW$87, DW_AT_TI_symbol_name("$P$T2")
-    1092        .dwattr $C$DW$87, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
-    1093        .dwattr $C$DW$87, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1094        .dwattr $C$DW$87, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1095        .dwattr $C$DW$87, DW_AT_decl_line(0x41)
-    1096        .dwattr $C$DW$87, DW_AT_decl_column(0x02)
-    1097$C$DW$88        .dwtag  DW_TAG_member
-    1098        .dwattr $C$DW$88, DW_AT_type(*$C$DW$T$55)
-    1099        .dwattr $C$DW$88, DW_AT_name("$P$T3")
-    1100        .dwattr $C$DW$88, DW_AT_TI_symbol_name("$P$T3")
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   21
-
-    1101        .dwattr $C$DW$88, DW_AT_data_member_location[DW_OP_plus_uconst 0xc]
-    1102        .dwattr $C$DW$88, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1103        .dwattr $C$DW$88, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1104        .dwattr $C$DW$88, DW_AT_decl_line(0x54)
-    1105        .dwattr $C$DW$88, DW_AT_decl_column(0x02)
-    1106$C$DW$89        .dwtag  DW_TAG_member
-    1107        .dwattr $C$DW$89, DW_AT_type(*$C$DW$T$57)
-    1108        .dwattr $C$DW$89, DW_AT_name("$P$T4")
-    1109        .dwattr $C$DW$89, DW_AT_TI_symbol_name("$P$T4")
-    1110        .dwattr $C$DW$89, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
-    1111        .dwattr $C$DW$89, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1112        .dwattr $C$DW$89, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1113        .dwattr $C$DW$89, DW_AT_decl_line(0x67)
-    1114        .dwattr $C$DW$89, DW_AT_decl_column(0x02)
-    1115$C$DW$90        .dwtag  DW_TAG_member
-    1116        .dwattr $C$DW$90, DW_AT_type(*$C$DW$T$59)
-    1117        .dwattr $C$DW$90, DW_AT_name("$P$T5")
-    1118        .dwattr $C$DW$90, DW_AT_TI_symbol_name("$P$T5")
-    1119        .dwattr $C$DW$90, DW_AT_data_member_location[DW_OP_plus_uconst 0x14]
-    1120        .dwattr $C$DW$90, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1121        .dwattr $C$DW$90, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1122        .dwattr $C$DW$90, DW_AT_decl_line(0x83)
-    1123        .dwattr $C$DW$90, DW_AT_decl_column(0x02)
-    1124$C$DW$91        .dwtag  DW_TAG_member
-    1125        .dwattr $C$DW$91, DW_AT_type(*$C$DW$T$61)
-    1126        .dwattr $C$DW$91, DW_AT_name("$P$T6")
-    1127        .dwattr $C$DW$91, DW_AT_TI_symbol_name("$P$T6")
-    1128        .dwattr $C$DW$91, DW_AT_data_member_location[DW_OP_plus_uconst 0x18]
-    1129        .dwattr $C$DW$91, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1130        .dwattr $C$DW$91, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1131        .dwattr $C$DW$91, DW_AT_decl_line(0x92)
-    1132        .dwattr $C$DW$91, DW_AT_decl_column(0x02)
-    1133$C$DW$92        .dwtag  DW_TAG_member
-    1134        .dwattr $C$DW$92, DW_AT_type(*$C$DW$T$63)
-    1135        .dwattr $C$DW$92, DW_AT_name("$P$T7")
-    1136        .dwattr $C$DW$92, DW_AT_TI_symbol_name("$P$T7")
-    1137        .dwattr $C$DW$92, DW_AT_data_member_location[DW_OP_plus_uconst 0x1c]
-    1138        .dwattr $C$DW$92, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1139        .dwattr $C$DW$92, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1140        .dwattr $C$DW$92, DW_AT_decl_line(0xa0)
-    1141        .dwattr $C$DW$92, DW_AT_decl_column(0x02)
-    1142$C$DW$93        .dwtag  DW_TAG_member
-    1143        .dwattr $C$DW$93, DW_AT_type(*$C$DW$T$65)
-    1144        .dwattr $C$DW$93, DW_AT_name("$P$T8")
-    1145        .dwattr $C$DW$93, DW_AT_TI_symbol_name("$P$T8")
-    1146        .dwattr $C$DW$93, DW_AT_data_member_location[DW_OP_plus_uconst 0x20]
-    1147        .dwattr $C$DW$93, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1148        .dwattr $C$DW$93, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1149        .dwattr $C$DW$93, DW_AT_decl_line(0xaf)
-    1150        .dwattr $C$DW$93, DW_AT_decl_column(0x02)
-    1151$C$DW$94        .dwtag  DW_TAG_member
-    1152        .dwattr $C$DW$94, DW_AT_type(*$C$DW$T$32)
-    1153        .dwattr $C$DW$94, DW_AT_name("rsvd24")
-    1154        .dwattr $C$DW$94, DW_AT_TI_symbol_name("rsvd24")
-    1155        .dwattr $C$DW$94, DW_AT_data_member_location[DW_OP_plus_uconst 0x24]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   22
-
-    1156        .dwattr $C$DW$94, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1157        .dwattr $C$DW$94, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1158        .dwattr $C$DW$94, DW_AT_decl_line(0xbc)
-    1159        .dwattr $C$DW$94, DW_AT_decl_column(0x0b)
-    1160$C$DW$95        .dwtag  DW_TAG_member
-    1161        .dwattr $C$DW$95, DW_AT_type(*$C$DW$T$67)
-    1162        .dwattr $C$DW$95, DW_AT_name("$P$T9")
-    1163        .dwattr $C$DW$95, DW_AT_TI_symbol_name("$P$T9")
-    1164        .dwattr $C$DW$95, DW_AT_data_member_location[DW_OP_plus_uconst 0x28]
-    1165        .dwattr $C$DW$95, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1166        .dwattr $C$DW$95, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1167        .dwattr $C$DW$95, DW_AT_decl_line(0xc0)
-    1168        .dwattr $C$DW$95, DW_AT_decl_column(0x02)
-    1169$C$DW$96        .dwtag  DW_TAG_member
-    1170        .dwattr $C$DW$96, DW_AT_type(*$C$DW$T$33)
-    1171        .dwattr $C$DW$96, DW_AT_name("rsvd2c")
-    1172        .dwattr $C$DW$96, DW_AT_TI_symbol_name("rsvd2c")
-    1173        .dwattr $C$DW$96, DW_AT_data_member_location[DW_OP_plus_uconst 0x2c]
-    1174        .dwattr $C$DW$96, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1175        .dwattr $C$DW$96, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1176        .dwattr $C$DW$96, DW_AT_decl_line(0xcb)
-    1177        .dwattr $C$DW$96, DW_AT_decl_column(0x0b)
-    1178$C$DW$97        .dwtag  DW_TAG_member
-    1179        .dwattr $C$DW$97, DW_AT_type(*$C$DW$T$69)
-    1180        .dwattr $C$DW$97, DW_AT_name("$P$T10")
-    1181        .dwattr $C$DW$97, DW_AT_TI_symbol_name("$P$T10")
-    1182        .dwattr $C$DW$97, DW_AT_data_member_location[DW_OP_plus_uconst 0x30]
-    1183        .dwattr $C$DW$97, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1184        .dwattr $C$DW$97, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1185        .dwattr $C$DW$97, DW_AT_decl_line(0xcf)
-    1186        .dwattr $C$DW$97, DW_AT_decl_column(0x02)
-    1187$C$DW$98        .dwtag  DW_TAG_member
-    1188        .dwattr $C$DW$98, DW_AT_type(*$C$DW$T$71)
-    1189        .dwattr $C$DW$98, DW_AT_name("$P$T11")
-    1190        .dwattr $C$DW$98, DW_AT_TI_symbol_name("$P$T11")
-    1191        .dwattr $C$DW$98, DW_AT_data_member_location[DW_OP_plus_uconst 0x34]
-    1192        .dwattr $C$DW$98, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1193        .dwattr $C$DW$98, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1194        .dwattr $C$DW$98, DW_AT_decl_line(0xda)
-    1195        .dwattr $C$DW$98, DW_AT_decl_column(0x02)
-    1196$C$DW$99        .dwtag  DW_TAG_member
-    1197        .dwattr $C$DW$99, DW_AT_type(*$C$DW$T$34)
-    1198        .dwattr $C$DW$99, DW_AT_name("rsvd38")
-    1199        .dwattr $C$DW$99, DW_AT_TI_symbol_name("rsvd38")
-    1200        .dwattr $C$DW$99, DW_AT_data_member_location[DW_OP_plus_uconst 0x38]
-    1201        .dwattr $C$DW$99, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1202        .dwattr $C$DW$99, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pru
-    1203        .dwattr $C$DW$99, DW_AT_decl_line(0xe5)
-    1204        .dwattr $C$DW$99, DW_AT_decl_column(0x0b)
-    1205$C$DW$100       .dwtag  DW_TAG_member
-    1206        .dwattr $C$DW$100, DW_AT_type(*$C$DW$T$73)
-    1207        .dwattr $C$DW$100, DW_AT_name("$P$T12")
-    1208        .dwattr $C$DW$100, DW_AT_TI_symbol_name("$P$T12")
-    1209        .dwattr $C$DW$100, DW_AT_data_member_location[DW_OP_plus_uconst 0x40]
-    1210        .dwattr $C$DW$100, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   23
-
-    1211        .dwattr $C$DW$100, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1212        .dwattr $C$DW$100, DW_AT_decl_line(0xe8)
-    1213        .dwattr $C$DW$100, DW_AT_decl_column(0x02)
-    1214        .dwendtag $C$DW$T$35
-    1215
-    1216        .dwattr $C$DW$T$35, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1217        .dwattr $C$DW$T$35, DW_AT_decl_line(0x26)
-    1218        .dwattr $C$DW$T$35, DW_AT_decl_column(0x10)
-    1219$C$DW$T$97      .dwtag  DW_TAG_typedef, DW_AT_name("pruCfg")
-    1220        .dwattr $C$DW$T$97, DW_AT_type(*$C$DW$T$35)
-    1221        .dwattr $C$DW$T$97, DW_AT_language(DW_LANG_C)
-    1222        .dwattr $C$DW$T$97, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1223        .dwattr $C$DW$T$97, DW_AT_decl_line(0xf0)
-    1224        .dwattr $C$DW$T$97, DW_AT_decl_column(0x03)
-    1225$C$DW$T$98      .dwtag  DW_TAG_volatile_type
-    1226        .dwattr $C$DW$T$98, DW_AT_type(*$C$DW$T$97)
-    1227
-    1228$C$DW$T$36      .dwtag  DW_TAG_structure_type
-    1229        .dwattr $C$DW$T$36, DW_AT_byte_size(0x04)
-    1230$C$DW$101       .dwtag  DW_TAG_member
-    1231        .dwattr $C$DW$101, DW_AT_type(*$C$DW$T$11)
-    1232        .dwattr $C$DW$101, DW_AT_name("SOFT_RST_N")
-    1233        .dwattr $C$DW$101, DW_AT_TI_symbol_name("SOFT_RST_N")
-    1234        .dwattr $C$DW$101, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
-    1235        .dwattr $C$DW$101, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1236        .dwattr $C$DW$101, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1237        .dwattr $C$DW$101, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1238        .dwattr $C$DW$101, DW_AT_decl_line(0x2d)
-    1239        .dwattr $C$DW$101, DW_AT_decl_column(0x0d)
-    1240$C$DW$102       .dwtag  DW_TAG_member
-    1241        .dwattr $C$DW$102, DW_AT_type(*$C$DW$T$11)
-    1242        .dwattr $C$DW$102, DW_AT_name("EN")
-    1243        .dwattr $C$DW$102, DW_AT_TI_symbol_name("EN")
-    1244        .dwattr $C$DW$102, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
-    1245        .dwattr $C$DW$102, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1246        .dwattr $C$DW$102, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1247        .dwattr $C$DW$102, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1248        .dwattr $C$DW$102, DW_AT_decl_line(0x2e)
-    1249        .dwattr $C$DW$102, DW_AT_decl_column(0x0d)
-    1250$C$DW$103       .dwtag  DW_TAG_member
-    1251        .dwattr $C$DW$103, DW_AT_type(*$C$DW$T$11)
-    1252        .dwattr $C$DW$103, DW_AT_name("SLEEPING")
-    1253        .dwattr $C$DW$103, DW_AT_TI_symbol_name("SLEEPING")
-    1254        .dwattr $C$DW$103, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
-    1255        .dwattr $C$DW$103, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1256        .dwattr $C$DW$103, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1257        .dwattr $C$DW$103, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1258        .dwattr $C$DW$103, DW_AT_decl_line(0x2f)
-    1259        .dwattr $C$DW$103, DW_AT_decl_column(0x0d)
-    1260$C$DW$104       .dwtag  DW_TAG_member
-    1261        .dwattr $C$DW$104, DW_AT_type(*$C$DW$T$11)
-    1262        .dwattr $C$DW$104, DW_AT_name("CTR_EN")
-    1263        .dwattr $C$DW$104, DW_AT_TI_symbol_name("CTR_EN")
-    1264        .dwattr $C$DW$104, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x01)
-    1265        .dwattr $C$DW$104, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   24
-
-    1266        .dwattr $C$DW$104, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1267        .dwattr $C$DW$104, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1268        .dwattr $C$DW$104, DW_AT_decl_line(0x30)
-    1269        .dwattr $C$DW$104, DW_AT_decl_column(0x0d)
-    1270$C$DW$105       .dwtag  DW_TAG_member
-    1271        .dwattr $C$DW$105, DW_AT_type(*$C$DW$T$11)
-    1272        .dwattr $C$DW$105, DW_AT_name("rsvd4")
-    1273        .dwattr $C$DW$105, DW_AT_TI_symbol_name("rsvd4")
-    1274        .dwattr $C$DW$105, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
-    1275        .dwattr $C$DW$105, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1276        .dwattr $C$DW$105, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1277        .dwattr $C$DW$105, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1278        .dwattr $C$DW$105, DW_AT_decl_line(0x31)
-    1279        .dwattr $C$DW$105, DW_AT_decl_column(0x0d)
-    1280$C$DW$106       .dwtag  DW_TAG_member
-    1281        .dwattr $C$DW$106, DW_AT_type(*$C$DW$T$11)
-    1282        .dwattr $C$DW$106, DW_AT_name("SINGLE_STEP")
-    1283        .dwattr $C$DW$106, DW_AT_TI_symbol_name("SINGLE_STEP")
-    1284        .dwattr $C$DW$106, DW_AT_bit_offset(0x17), DW_AT_bit_size(0x01)
-    1285        .dwattr $C$DW$106, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1286        .dwattr $C$DW$106, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1287        .dwattr $C$DW$106, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1288        .dwattr $C$DW$106, DW_AT_decl_line(0x32)
-    1289        .dwattr $C$DW$106, DW_AT_decl_column(0x0d)
-    1290$C$DW$107       .dwtag  DW_TAG_member
-    1291        .dwattr $C$DW$107, DW_AT_type(*$C$DW$T$11)
-    1292        .dwattr $C$DW$107, DW_AT_name("rsvd9")
-    1293        .dwattr $C$DW$107, DW_AT_TI_symbol_name("rsvd9")
-    1294        .dwattr $C$DW$107, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x06)
-    1295        .dwattr $C$DW$107, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1296        .dwattr $C$DW$107, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1297        .dwattr $C$DW$107, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1298        .dwattr $C$DW$107, DW_AT_decl_line(0x33)
-    1299        .dwattr $C$DW$107, DW_AT_decl_column(0x0d)
-    1300$C$DW$108       .dwtag  DW_TAG_member
-    1301        .dwattr $C$DW$108, DW_AT_type(*$C$DW$T$11)
-    1302        .dwattr $C$DW$108, DW_AT_name("RUNSTATE")
-    1303        .dwattr $C$DW$108, DW_AT_TI_symbol_name("RUNSTATE")
-    1304        .dwattr $C$DW$108, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x01)
-    1305        .dwattr $C$DW$108, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1306        .dwattr $C$DW$108, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1307        .dwattr $C$DW$108, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1308        .dwattr $C$DW$108, DW_AT_decl_line(0x34)
-    1309        .dwattr $C$DW$108, DW_AT_decl_column(0x0d)
-    1310$C$DW$109       .dwtag  DW_TAG_member
-    1311        .dwattr $C$DW$109, DW_AT_type(*$C$DW$T$11)
-    1312        .dwattr $C$DW$109, DW_AT_name("PCTR_RST_VAL")
-    1313        .dwattr $C$DW$109, DW_AT_TI_symbol_name("PCTR_RST_VAL")
-    1314        .dwattr $C$DW$109, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
-    1315        .dwattr $C$DW$109, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1316        .dwattr $C$DW$109, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1317        .dwattr $C$DW$109, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1318        .dwattr $C$DW$109, DW_AT_decl_line(0x35)
-    1319        .dwattr $C$DW$109, DW_AT_decl_column(0x0d)
-    1320        .dwendtag $C$DW$T$36
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   25
-
-    1321
-    1322        .dwattr $C$DW$T$36, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1323        .dwattr $C$DW$T$36, DW_AT_decl_line(0x2c)
-    1324        .dwattr $C$DW$T$36, DW_AT_decl_column(0x13)
-    1325$C$DW$T$74      .dwtag  DW_TAG_volatile_type
-    1326        .dwattr $C$DW$T$74, DW_AT_type(*$C$DW$T$36)
-    1327
-    1328$C$DW$T$37      .dwtag  DW_TAG_structure_type
-    1329        .dwattr $C$DW$T$37, DW_AT_byte_size(0x04)
-    1330$C$DW$110       .dwtag  DW_TAG_member
-    1331        .dwattr $C$DW$110, DW_AT_type(*$C$DW$T$11)
-    1332        .dwattr $C$DW$110, DW_AT_name("PCTR")
-    1333        .dwattr $C$DW$110, DW_AT_TI_symbol_name("PCTR")
-    1334        .dwattr $C$DW$110, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
-    1335        .dwattr $C$DW$110, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1336        .dwattr $C$DW$110, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1337        .dwattr $C$DW$110, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1338        .dwattr $C$DW$110, DW_AT_decl_line(0x3f)
-    1339        .dwattr $C$DW$110, DW_AT_decl_column(0x0d)
-    1340$C$DW$111       .dwtag  DW_TAG_member
-    1341        .dwattr $C$DW$111, DW_AT_type(*$C$DW$T$11)
-    1342        .dwattr $C$DW$111, DW_AT_name("rsvd16")
-    1343        .dwattr $C$DW$111, DW_AT_TI_symbol_name("rsvd16")
-    1344        .dwattr $C$DW$111, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
-    1345        .dwattr $C$DW$111, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1346        .dwattr $C$DW$111, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1347        .dwattr $C$DW$111, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1348        .dwattr $C$DW$111, DW_AT_decl_line(0x40)
-    1349        .dwattr $C$DW$111, DW_AT_decl_column(0x0d)
-    1350        .dwendtag $C$DW$T$37
-    1351
-    1352        .dwattr $C$DW$T$37, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1353        .dwattr $C$DW$T$37, DW_AT_decl_line(0x3e)
-    1354        .dwattr $C$DW$T$37, DW_AT_decl_column(0x13)
-    1355$C$DW$T$76      .dwtag  DW_TAG_volatile_type
-    1356        .dwattr $C$DW$T$76, DW_AT_type(*$C$DW$T$37)
-    1357
-    1358$C$DW$T$38      .dwtag  DW_TAG_structure_type
-    1359        .dwattr $C$DW$T$38, DW_AT_byte_size(0x04)
-    1360$C$DW$112       .dwtag  DW_TAG_member
-    1361        .dwattr $C$DW$112, DW_AT_type(*$C$DW$T$11)
-    1362        .dwattr $C$DW$112, DW_AT_name("BITWISE_ENS")
-    1363        .dwattr $C$DW$112, DW_AT_TI_symbol_name("BITWISE_ENS")
-    1364        .dwattr $C$DW$112, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
-    1365        .dwattr $C$DW$112, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1366        .dwattr $C$DW$112, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1367        .dwattr $C$DW$112, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1368        .dwattr $C$DW$112, DW_AT_decl_line(0x4a)
-    1369        .dwattr $C$DW$112, DW_AT_decl_column(0x0d)
-    1370        .dwendtag $C$DW$T$38
-    1371
-    1372        .dwattr $C$DW$T$38, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1373        .dwattr $C$DW$T$38, DW_AT_decl_line(0x49)
-    1374        .dwattr $C$DW$T$38, DW_AT_decl_column(0x13)
-    1375$C$DW$T$78      .dwtag  DW_TAG_volatile_type
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   26
-
-    1376        .dwattr $C$DW$T$78, DW_AT_type(*$C$DW$T$38)
-    1377
-    1378$C$DW$T$39      .dwtag  DW_TAG_structure_type
-    1379        .dwattr $C$DW$T$39, DW_AT_byte_size(0x04)
-    1380$C$DW$113       .dwtag  DW_TAG_member
-    1381        .dwattr $C$DW$113, DW_AT_type(*$C$DW$T$11)
-    1382        .dwattr $C$DW$113, DW_AT_name("CYCLECOUNT")
-    1383        .dwattr $C$DW$113, DW_AT_TI_symbol_name("CYCLECOUNT")
-    1384        .dwattr $C$DW$113, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
-    1385        .dwattr $C$DW$113, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1386        .dwattr $C$DW$113, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1387        .dwattr $C$DW$113, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1388        .dwattr $C$DW$113, DW_AT_decl_line(0x54)
-    1389        .dwattr $C$DW$113, DW_AT_decl_column(0x0d)
-    1390        .dwendtag $C$DW$T$39
-    1391
-    1392        .dwattr $C$DW$T$39, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1393        .dwattr $C$DW$T$39, DW_AT_decl_line(0x53)
-    1394        .dwattr $C$DW$T$39, DW_AT_decl_column(0x13)
-    1395$C$DW$T$80      .dwtag  DW_TAG_volatile_type
-    1396        .dwattr $C$DW$T$80, DW_AT_type(*$C$DW$T$39)
-    1397
-    1398$C$DW$T$40      .dwtag  DW_TAG_structure_type
-    1399        .dwattr $C$DW$T$40, DW_AT_byte_size(0x04)
-    1400$C$DW$114       .dwtag  DW_TAG_member
-    1401        .dwattr $C$DW$114, DW_AT_type(*$C$DW$T$11)
-    1402        .dwattr $C$DW$114, DW_AT_name("STALLCOUNT")
-    1403        .dwattr $C$DW$114, DW_AT_TI_symbol_name("STALLCOUNT")
-    1404        .dwattr $C$DW$114, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
-    1405        .dwattr $C$DW$114, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1406        .dwattr $C$DW$114, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1407        .dwattr $C$DW$114, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1408        .dwattr $C$DW$114, DW_AT_decl_line(0x5e)
-    1409        .dwattr $C$DW$114, DW_AT_decl_column(0x0d)
-    1410        .dwendtag $C$DW$T$40
-    1411
-    1412        .dwattr $C$DW$T$40, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1413        .dwattr $C$DW$T$40, DW_AT_decl_line(0x5d)
-    1414        .dwattr $C$DW$T$40, DW_AT_decl_column(0x14)
-    1415$C$DW$T$82      .dwtag  DW_TAG_volatile_type
-    1416        .dwattr $C$DW$T$82, DW_AT_type(*$C$DW$T$40)
-    1417
-    1418$C$DW$T$41      .dwtag  DW_TAG_structure_type
-    1419        .dwattr $C$DW$T$41, DW_AT_byte_size(0x04)
-    1420$C$DW$115       .dwtag  DW_TAG_member
-    1421        .dwattr $C$DW$115, DW_AT_type(*$C$DW$T$11)
-    1422        .dwattr $C$DW$115, DW_AT_name("C24_BLK_IDX")
-    1423        .dwattr $C$DW$115, DW_AT_TI_symbol_name("C24_BLK_IDX")
-    1424        .dwattr $C$DW$115, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
-    1425        .dwattr $C$DW$115, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1426        .dwattr $C$DW$115, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1427        .dwattr $C$DW$115, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1428        .dwattr $C$DW$115, DW_AT_decl_line(0x6b)
-    1429        .dwattr $C$DW$115, DW_AT_decl_column(0x0d)
-    1430$C$DW$116       .dwtag  DW_TAG_member
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   27
-
-    1431        .dwattr $C$DW$116, DW_AT_type(*$C$DW$T$11)
-    1432        .dwattr $C$DW$116, DW_AT_name("rsvd8")
-    1433        .dwattr $C$DW$116, DW_AT_TI_symbol_name("rsvd8")
-    1434        .dwattr $C$DW$116, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x08)
-    1435        .dwattr $C$DW$116, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1436        .dwattr $C$DW$116, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1437        .dwattr $C$DW$116, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1438        .dwattr $C$DW$116, DW_AT_decl_line(0x6c)
-    1439        .dwattr $C$DW$116, DW_AT_decl_column(0x0d)
-    1440$C$DW$117       .dwtag  DW_TAG_member
-    1441        .dwattr $C$DW$117, DW_AT_type(*$C$DW$T$11)
-    1442        .dwattr $C$DW$117, DW_AT_name("C25_BLK_IDX")
-    1443        .dwattr $C$DW$117, DW_AT_TI_symbol_name("C25_BLK_IDX")
-    1444        .dwattr $C$DW$117, DW_AT_bit_offset(0x08), DW_AT_bit_size(0x08)
-    1445        .dwattr $C$DW$117, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1446        .dwattr $C$DW$117, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1447        .dwattr $C$DW$117, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1448        .dwattr $C$DW$117, DW_AT_decl_line(0x6d)
-    1449        .dwattr $C$DW$117, DW_AT_decl_column(0x0d)
-    1450$C$DW$118       .dwtag  DW_TAG_member
-    1451        .dwattr $C$DW$118, DW_AT_type(*$C$DW$T$11)
-    1452        .dwattr $C$DW$118, DW_AT_name("rsvd24")
-    1453        .dwattr $C$DW$118, DW_AT_TI_symbol_name("rsvd24")
-    1454        .dwattr $C$DW$118, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x08)
-    1455        .dwattr $C$DW$118, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1456        .dwattr $C$DW$118, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1457        .dwattr $C$DW$118, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1458        .dwattr $C$DW$118, DW_AT_decl_line(0x6e)
-    1459        .dwattr $C$DW$118, DW_AT_decl_column(0x0d)
-    1460        .dwendtag $C$DW$T$41
-    1461
-    1462        .dwattr $C$DW$T$41, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1463        .dwattr $C$DW$T$41, DW_AT_decl_line(0x6a)
-    1464        .dwattr $C$DW$T$41, DW_AT_decl_column(0x13)
-    1465$C$DW$T$84      .dwtag  DW_TAG_volatile_type
-    1466        .dwattr $C$DW$T$84, DW_AT_type(*$C$DW$T$41)
-    1467
-    1468$C$DW$T$42      .dwtag  DW_TAG_structure_type
-    1469        .dwattr $C$DW$T$42, DW_AT_byte_size(0x04)
-    1470$C$DW$119       .dwtag  DW_TAG_member
-    1471        .dwattr $C$DW$119, DW_AT_type(*$C$DW$T$11)
-    1472        .dwattr $C$DW$119, DW_AT_name("C26_BLK_IDX")
-    1473        .dwattr $C$DW$119, DW_AT_TI_symbol_name("C26_BLK_IDX")
-    1474        .dwattr $C$DW$119, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
-    1475        .dwattr $C$DW$119, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1476        .dwattr $C$DW$119, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1477        .dwattr $C$DW$119, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1478        .dwattr $C$DW$119, DW_AT_decl_line(0x78)
-    1479        .dwattr $C$DW$119, DW_AT_decl_column(0x0d)
-    1480$C$DW$120       .dwtag  DW_TAG_member
-    1481        .dwattr $C$DW$120, DW_AT_type(*$C$DW$T$11)
-    1482        .dwattr $C$DW$120, DW_AT_name("rsvd8")
-    1483        .dwattr $C$DW$120, DW_AT_TI_symbol_name("rsvd8")
-    1484        .dwattr $C$DW$120, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x08)
-    1485        .dwattr $C$DW$120, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   28
-
-    1486        .dwattr $C$DW$120, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1487        .dwattr $C$DW$120, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1488        .dwattr $C$DW$120, DW_AT_decl_line(0x79)
-    1489        .dwattr $C$DW$120, DW_AT_decl_column(0x0d)
-    1490$C$DW$121       .dwtag  DW_TAG_member
-    1491        .dwattr $C$DW$121, DW_AT_type(*$C$DW$T$11)
-    1492        .dwattr $C$DW$121, DW_AT_name("C27_BLK_IDX")
-    1493        .dwattr $C$DW$121, DW_AT_TI_symbol_name("C27_BLK_IDX")
-    1494        .dwattr $C$DW$121, DW_AT_bit_offset(0x08), DW_AT_bit_size(0x08)
-    1495        .dwattr $C$DW$121, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1496        .dwattr $C$DW$121, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1497        .dwattr $C$DW$121, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1498        .dwattr $C$DW$121, DW_AT_decl_line(0x7a)
-    1499        .dwattr $C$DW$121, DW_AT_decl_column(0x0d)
-    1500$C$DW$122       .dwtag  DW_TAG_member
-    1501        .dwattr $C$DW$122, DW_AT_type(*$C$DW$T$11)
-    1502        .dwattr $C$DW$122, DW_AT_name("rsvd24")
-    1503        .dwattr $C$DW$122, DW_AT_TI_symbol_name("rsvd24")
-    1504        .dwattr $C$DW$122, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x08)
-    1505        .dwattr $C$DW$122, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1506        .dwattr $C$DW$122, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1507        .dwattr $C$DW$122, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1508        .dwattr $C$DW$122, DW_AT_decl_line(0x7b)
-    1509        .dwattr $C$DW$122, DW_AT_decl_column(0x0d)
-    1510        .dwendtag $C$DW$T$42
-    1511
-    1512        .dwattr $C$DW$T$42, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1513        .dwattr $C$DW$T$42, DW_AT_decl_line(0x77)
-    1514        .dwattr $C$DW$T$42, DW_AT_decl_column(0x13)
-    1515$C$DW$T$86      .dwtag  DW_TAG_volatile_type
-    1516        .dwattr $C$DW$T$86, DW_AT_type(*$C$DW$T$42)
-    1517
-    1518$C$DW$T$43      .dwtag  DW_TAG_structure_type
-    1519        .dwattr $C$DW$T$43, DW_AT_byte_size(0x04)
-    1520$C$DW$123       .dwtag  DW_TAG_member
-    1521        .dwattr $C$DW$123, DW_AT_type(*$C$DW$T$11)
-    1522        .dwattr $C$DW$123, DW_AT_name("C28_BLK_POINTER")
-    1523        .dwattr $C$DW$123, DW_AT_TI_symbol_name("C28_BLK_POINTER")
-    1524        .dwattr $C$DW$123, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
-    1525        .dwattr $C$DW$123, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1526        .dwattr $C$DW$123, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1527        .dwattr $C$DW$123, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1528        .dwattr $C$DW$123, DW_AT_decl_line(0x85)
-    1529        .dwattr $C$DW$123, DW_AT_decl_column(0x0d)
-    1530$C$DW$124       .dwtag  DW_TAG_member
-    1531        .dwattr $C$DW$124, DW_AT_type(*$C$DW$T$11)
-    1532        .dwattr $C$DW$124, DW_AT_name("C29_BLK_POINTER")
-    1533        .dwattr $C$DW$124, DW_AT_TI_symbol_name("C29_BLK_POINTER")
-    1534        .dwattr $C$DW$124, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
-    1535        .dwattr $C$DW$124, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1536        .dwattr $C$DW$124, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1537        .dwattr $C$DW$124, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1538        .dwattr $C$DW$124, DW_AT_decl_line(0x86)
-    1539        .dwattr $C$DW$124, DW_AT_decl_column(0x0d)
-    1540        .dwendtag $C$DW$T$43
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   29
-
-    1541
-    1542        .dwattr $C$DW$T$43, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1543        .dwattr $C$DW$T$43, DW_AT_decl_line(0x84)
-    1544        .dwattr $C$DW$T$43, DW_AT_decl_column(0x13)
-    1545$C$DW$T$88      .dwtag  DW_TAG_volatile_type
-    1546        .dwattr $C$DW$T$88, DW_AT_type(*$C$DW$T$43)
-    1547
-    1548$C$DW$T$44      .dwtag  DW_TAG_structure_type
-    1549        .dwattr $C$DW$T$44, DW_AT_byte_size(0x04)
-    1550$C$DW$125       .dwtag  DW_TAG_member
-    1551        .dwattr $C$DW$125, DW_AT_type(*$C$DW$T$11)
-    1552        .dwattr $C$DW$125, DW_AT_name("C30_BLK_POINTER")
-    1553        .dwattr $C$DW$125, DW_AT_TI_symbol_name("C30_BLK_POINTER")
-    1554        .dwattr $C$DW$125, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
-    1555        .dwattr $C$DW$125, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1556        .dwattr $C$DW$125, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1557        .dwattr $C$DW$125, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1558        .dwattr $C$DW$125, DW_AT_decl_line(0x90)
-    1559        .dwattr $C$DW$125, DW_AT_decl_column(0x0d)
-    1560$C$DW$126       .dwtag  DW_TAG_member
-    1561        .dwattr $C$DW$126, DW_AT_type(*$C$DW$T$11)
-    1562        .dwattr $C$DW$126, DW_AT_name("C31_BLK_POINTER")
-    1563        .dwattr $C$DW$126, DW_AT_TI_symbol_name("C31_BLK_POINTER")
-    1564        .dwattr $C$DW$126, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
-    1565        .dwattr $C$DW$126, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1566        .dwattr $C$DW$126, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1567        .dwattr $C$DW$126, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1568        .dwattr $C$DW$126, DW_AT_decl_line(0x91)
-    1569        .dwattr $C$DW$126, DW_AT_decl_column(0x0d)
-    1570        .dwendtag $C$DW$T$44
-    1571
-    1572        .dwattr $C$DW$T$44, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1573        .dwattr $C$DW$T$44, DW_AT_decl_line(0x8f)
-    1574        .dwattr $C$DW$T$44, DW_AT_decl_column(0x13)
-    1575$C$DW$T$90      .dwtag  DW_TAG_volatile_type
-    1576        .dwattr $C$DW$T$90, DW_AT_type(*$C$DW$T$44)
-    1577
-    1578$C$DW$T$46      .dwtag  DW_TAG_structure_type
-    1579        .dwattr $C$DW$T$46, DW_AT_byte_size(0x30)
-    1580$C$DW$127       .dwtag  DW_TAG_member
-    1581        .dwattr $C$DW$127, DW_AT_type(*$C$DW$T$75)
-    1582        .dwattr $C$DW$127, DW_AT_name("$P$T13")
-    1583        .dwattr $C$DW$127, DW_AT_TI_symbol_name("$P$T13")
-    1584        .dwattr $C$DW$127, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1585        .dwattr $C$DW$127, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1586        .dwattr $C$DW$127, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1587        .dwattr $C$DW$127, DW_AT_decl_line(0x29)
-    1588        .dwattr $C$DW$127, DW_AT_decl_column(0x02)
-    1589$C$DW$128       .dwtag  DW_TAG_member
-    1590        .dwattr $C$DW$128, DW_AT_type(*$C$DW$T$77)
-    1591        .dwattr $C$DW$128, DW_AT_name("$P$T14")
-    1592        .dwattr $C$DW$128, DW_AT_TI_symbol_name("$P$T14")
-    1593        .dwattr $C$DW$128, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
-    1594        .dwattr $C$DW$128, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1595        .dwattr $C$DW$128, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   30
-
-    1596        .dwattr $C$DW$128, DW_AT_decl_line(0x3b)
-    1597        .dwattr $C$DW$128, DW_AT_decl_column(0x02)
-    1598$C$DW$129       .dwtag  DW_TAG_member
-    1599        .dwattr $C$DW$129, DW_AT_type(*$C$DW$T$79)
-    1600        .dwattr $C$DW$129, DW_AT_name("$P$T15")
-    1601        .dwattr $C$DW$129, DW_AT_TI_symbol_name("$P$T15")
-    1602        .dwattr $C$DW$129, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
-    1603        .dwattr $C$DW$129, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1604        .dwattr $C$DW$129, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1605        .dwattr $C$DW$129, DW_AT_decl_line(0x46)
-    1606        .dwattr $C$DW$129, DW_AT_decl_column(0x02)
-    1607$C$DW$130       .dwtag  DW_TAG_member
-    1608        .dwattr $C$DW$130, DW_AT_type(*$C$DW$T$81)
-    1609        .dwattr $C$DW$130, DW_AT_name("$P$T16")
-    1610        .dwattr $C$DW$130, DW_AT_TI_symbol_name("$P$T16")
-    1611        .dwattr $C$DW$130, DW_AT_data_member_location[DW_OP_plus_uconst 0xc]
-    1612        .dwattr $C$DW$130, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1613        .dwattr $C$DW$130, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1614        .dwattr $C$DW$130, DW_AT_decl_line(0x50)
-    1615        .dwattr $C$DW$130, DW_AT_decl_column(0x02)
-    1616$C$DW$131       .dwtag  DW_TAG_member
-    1617        .dwattr $C$DW$131, DW_AT_type(*$C$DW$T$83)
-    1618        .dwattr $C$DW$131, DW_AT_name("$P$T17")
-    1619        .dwattr $C$DW$131, DW_AT_TI_symbol_name("$P$T17")
-    1620        .dwattr $C$DW$131, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
-    1621        .dwattr $C$DW$131, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1622        .dwattr $C$DW$131, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1623        .dwattr $C$DW$131, DW_AT_decl_line(0x5a)
-    1624        .dwattr $C$DW$131, DW_AT_decl_column(0x02)
-    1625$C$DW$132       .dwtag  DW_TAG_member
-    1626        .dwattr $C$DW$132, DW_AT_type(*$C$DW$T$45)
-    1627        .dwattr $C$DW$132, DW_AT_name("rsvd14")
-    1628        .dwattr $C$DW$132, DW_AT_TI_symbol_name("rsvd14")
-    1629        .dwattr $C$DW$132, DW_AT_data_member_location[DW_OP_plus_uconst 0x14]
-    1630        .dwattr $C$DW$132, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1631        .dwattr $C$DW$132, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1632        .dwattr $C$DW$132, DW_AT_decl_line(0x63)
-    1633        .dwattr $C$DW$132, DW_AT_decl_column(0x0b)
-    1634$C$DW$133       .dwtag  DW_TAG_member
-    1635        .dwattr $C$DW$133, DW_AT_type(*$C$DW$T$85)
-    1636        .dwattr $C$DW$133, DW_AT_name("$P$T18")
-    1637        .dwattr $C$DW$133, DW_AT_TI_symbol_name("$P$T18")
-    1638        .dwattr $C$DW$133, DW_AT_data_member_location[DW_OP_plus_uconst 0x20]
-    1639        .dwattr $C$DW$133, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1640        .dwattr $C$DW$133, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1641        .dwattr $C$DW$133, DW_AT_decl_line(0x67)
-    1642        .dwattr $C$DW$133, DW_AT_decl_column(0x02)
-    1643$C$DW$134       .dwtag  DW_TAG_member
-    1644        .dwattr $C$DW$134, DW_AT_type(*$C$DW$T$87)
-    1645        .dwattr $C$DW$134, DW_AT_name("$P$T19")
-    1646        .dwattr $C$DW$134, DW_AT_TI_symbol_name("$P$T19")
-    1647        .dwattr $C$DW$134, DW_AT_data_member_location[DW_OP_plus_uconst 0x24]
-    1648        .dwattr $C$DW$134, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1649        .dwattr $C$DW$134, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1650        .dwattr $C$DW$134, DW_AT_decl_line(0x74)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   31
-
-    1651        .dwattr $C$DW$134, DW_AT_decl_column(0x02)
-    1652$C$DW$135       .dwtag  DW_TAG_member
-    1653        .dwattr $C$DW$135, DW_AT_type(*$C$DW$T$89)
-    1654        .dwattr $C$DW$135, DW_AT_name("$P$T20")
-    1655        .dwattr $C$DW$135, DW_AT_TI_symbol_name("$P$T20")
-    1656        .dwattr $C$DW$135, DW_AT_data_member_location[DW_OP_plus_uconst 0x28]
-    1657        .dwattr $C$DW$135, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1658        .dwattr $C$DW$135, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1659        .dwattr $C$DW$135, DW_AT_decl_line(0x81)
-    1660        .dwattr $C$DW$135, DW_AT_decl_column(0x02)
-    1661$C$DW$136       .dwtag  DW_TAG_member
-    1662        .dwattr $C$DW$136, DW_AT_type(*$C$DW$T$91)
-    1663        .dwattr $C$DW$136, DW_AT_name("$P$T21")
-    1664        .dwattr $C$DW$136, DW_AT_TI_symbol_name("$P$T21")
-    1665        .dwattr $C$DW$136, DW_AT_data_member_location[DW_OP_plus_uconst 0x2c]
-    1666        .dwattr $C$DW$136, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1667        .dwattr $C$DW$136, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1668        .dwattr $C$DW$136, DW_AT_decl_line(0x8c)
-    1669        .dwattr $C$DW$136, DW_AT_decl_column(0x02)
-    1670        .dwendtag $C$DW$T$46
-    1671
-    1672        .dwattr $C$DW$T$46, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1673        .dwattr $C$DW$T$46, DW_AT_decl_line(0x26)
-    1674        .dwattr $C$DW$T$46, DW_AT_decl_column(0x10)
-    1675$C$DW$T$102     .dwtag  DW_TAG_typedef, DW_AT_name("pruCtrl")
-    1676        .dwattr $C$DW$T$102, DW_AT_type(*$C$DW$T$46)
-    1677        .dwattr $C$DW$T$102, DW_AT_language(DW_LANG_C)
-    1678        .dwattr $C$DW$T$102, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/
-    1679        .dwattr $C$DW$T$102, DW_AT_decl_line(0x95)
-    1680        .dwattr $C$DW$T$102, DW_AT_decl_column(0x03)
-    1681
-    1682$C$DW$T$49      .dwtag  DW_TAG_union_type
-    1683        .dwattr $C$DW$T$49, DW_AT_byte_size(0x04)
-    1684$C$DW$137       .dwtag  DW_TAG_member
-    1685        .dwattr $C$DW$137, DW_AT_type(*$C$DW$T$47)
-    1686        .dwattr $C$DW$137, DW_AT_name("REVID")
-    1687        .dwattr $C$DW$137, DW_AT_TI_symbol_name("REVID")
-    1688        .dwattr $C$DW$137, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1689        .dwattr $C$DW$137, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1690        .dwattr $C$DW$137, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1691        .dwattr $C$DW$137, DW_AT_decl_line(0x2a)
-    1692        .dwattr $C$DW$137, DW_AT_decl_column(0x15)
-    1693$C$DW$138       .dwtag  DW_TAG_member
-    1694        .dwattr $C$DW$138, DW_AT_type(*$C$DW$T$48)
-    1695        .dwattr $C$DW$138, DW_AT_name("REVID_bit")
-    1696        .dwattr $C$DW$138, DW_AT_TI_symbol_name("REVID_bit")
-    1697        .dwattr $C$DW$138, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1698        .dwattr $C$DW$138, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1699        .dwattr $C$DW$138, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1700        .dwattr $C$DW$138, DW_AT_decl_line(0x2e)
-    1701        .dwattr $C$DW$138, DW_AT_decl_column(0x05)
-    1702        .dwendtag $C$DW$T$49
-    1703
-    1704        .dwattr $C$DW$T$49, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1705        .dwattr $C$DW$T$49, DW_AT_decl_line(0x29)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   32
-
-    1706        .dwattr $C$DW$T$49, DW_AT_decl_column(0x08)
-    1707
-    1708$C$DW$T$51      .dwtag  DW_TAG_union_type
-    1709        .dwattr $C$DW$T$51, DW_AT_byte_size(0x04)
-    1710$C$DW$139       .dwtag  DW_TAG_member
-    1711        .dwattr $C$DW$139, DW_AT_type(*$C$DW$T$47)
-    1712        .dwattr $C$DW$139, DW_AT_name("SYSCFG")
-    1713        .dwattr $C$DW$139, DW_AT_TI_symbol_name("SYSCFG")
-    1714        .dwattr $C$DW$139, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1715        .dwattr $C$DW$139, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1716        .dwattr $C$DW$139, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1717        .dwattr $C$DW$139, DW_AT_decl_line(0x34)
-    1718        .dwattr $C$DW$139, DW_AT_decl_column(0x15)
-    1719$C$DW$140       .dwtag  DW_TAG_member
-    1720        .dwattr $C$DW$140, DW_AT_type(*$C$DW$T$50)
-    1721        .dwattr $C$DW$140, DW_AT_name("SYSCFG_bit")
-    1722        .dwattr $C$DW$140, DW_AT_TI_symbol_name("SYSCFG_bit")
-    1723        .dwattr $C$DW$140, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1724        .dwattr $C$DW$140, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1725        .dwattr $C$DW$140, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1726        .dwattr $C$DW$140, DW_AT_decl_line(0x3c)
-    1727        .dwattr $C$DW$140, DW_AT_decl_column(0x05)
-    1728        .dwendtag $C$DW$T$51
-    1729
-    1730        .dwattr $C$DW$T$51, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1731        .dwattr $C$DW$T$51, DW_AT_decl_line(0x33)
-    1732        .dwattr $C$DW$T$51, DW_AT_decl_column(0x08)
-    1733
-    1734$C$DW$T$53      .dwtag  DW_TAG_union_type
-    1735        .dwattr $C$DW$T$53, DW_AT_byte_size(0x04)
-    1736$C$DW$141       .dwtag  DW_TAG_member
-    1737        .dwattr $C$DW$141, DW_AT_type(*$C$DW$T$47)
-    1738        .dwattr $C$DW$141, DW_AT_name("GPCFG0")
-    1739        .dwattr $C$DW$141, DW_AT_TI_symbol_name("GPCFG0")
-    1740        .dwattr $C$DW$141, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1741        .dwattr $C$DW$141, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1742        .dwattr $C$DW$141, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1743        .dwattr $C$DW$141, DW_AT_decl_line(0x42)
-    1744        .dwattr $C$DW$141, DW_AT_decl_column(0x15)
-    1745$C$DW$142       .dwtag  DW_TAG_member
-    1746        .dwattr $C$DW$142, DW_AT_type(*$C$DW$T$52)
-    1747        .dwattr $C$DW$142, DW_AT_name("GPCFG0_bit")
-    1748        .dwattr $C$DW$142, DW_AT_TI_symbol_name("GPCFG0_bit")
-    1749        .dwattr $C$DW$142, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1750        .dwattr $C$DW$142, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1751        .dwattr $C$DW$142, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1752        .dwattr $C$DW$142, DW_AT_decl_line(0x4f)
-    1753        .dwattr $C$DW$142, DW_AT_decl_column(0x05)
-    1754        .dwendtag $C$DW$T$53
-    1755
-    1756        .dwattr $C$DW$T$53, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1757        .dwattr $C$DW$T$53, DW_AT_decl_line(0x41)
-    1758        .dwattr $C$DW$T$53, DW_AT_decl_column(0x08)
-    1759
-    1760$C$DW$T$55      .dwtag  DW_TAG_union_type
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   33
-
-    1761        .dwattr $C$DW$T$55, DW_AT_byte_size(0x04)
-    1762$C$DW$143       .dwtag  DW_TAG_member
-    1763        .dwattr $C$DW$143, DW_AT_type(*$C$DW$T$47)
-    1764        .dwattr $C$DW$143, DW_AT_name("GPCFG1")
-    1765        .dwattr $C$DW$143, DW_AT_TI_symbol_name("GPCFG1")
-    1766        .dwattr $C$DW$143, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1767        .dwattr $C$DW$143, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1768        .dwattr $C$DW$143, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1769        .dwattr $C$DW$143, DW_AT_decl_line(0x55)
-    1770        .dwattr $C$DW$143, DW_AT_decl_column(0x15)
-    1771$C$DW$144       .dwtag  DW_TAG_member
-    1772        .dwattr $C$DW$144, DW_AT_type(*$C$DW$T$54)
-    1773        .dwattr $C$DW$144, DW_AT_name("GPCFG1_bit")
-    1774        .dwattr $C$DW$144, DW_AT_TI_symbol_name("GPCFG1_bit")
-    1775        .dwattr $C$DW$144, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1776        .dwattr $C$DW$144, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1777        .dwattr $C$DW$144, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1778        .dwattr $C$DW$144, DW_AT_decl_line(0x62)
-    1779        .dwattr $C$DW$144, DW_AT_decl_column(0x05)
-    1780        .dwendtag $C$DW$T$55
-    1781
-    1782        .dwattr $C$DW$T$55, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1783        .dwattr $C$DW$T$55, DW_AT_decl_line(0x54)
-    1784        .dwattr $C$DW$T$55, DW_AT_decl_column(0x08)
-    1785
-    1786$C$DW$T$57      .dwtag  DW_TAG_union_type
-    1787        .dwattr $C$DW$T$57, DW_AT_byte_size(0x04)
-    1788$C$DW$145       .dwtag  DW_TAG_member
-    1789        .dwattr $C$DW$145, DW_AT_type(*$C$DW$T$47)
-    1790        .dwattr $C$DW$145, DW_AT_name("CGR")
-    1791        .dwattr $C$DW$145, DW_AT_TI_symbol_name("CGR")
-    1792        .dwattr $C$DW$145, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1793        .dwattr $C$DW$145, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1794        .dwattr $C$DW$145, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1795        .dwattr $C$DW$145, DW_AT_decl_line(0x68)
-    1796        .dwattr $C$DW$145, DW_AT_decl_column(0x15)
-    1797$C$DW$146       .dwtag  DW_TAG_member
-    1798        .dwattr $C$DW$146, DW_AT_type(*$C$DW$T$56)
-    1799        .dwattr $C$DW$146, DW_AT_name("CGR_bit")
-    1800        .dwattr $C$DW$146, DW_AT_TI_symbol_name("CGR_bit")
-    1801        .dwattr $C$DW$146, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1802        .dwattr $C$DW$146, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1803        .dwattr $C$DW$146, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1804        .dwattr $C$DW$146, DW_AT_decl_line(0x7e)
-    1805        .dwattr $C$DW$146, DW_AT_decl_column(0x05)
-    1806        .dwendtag $C$DW$T$57
-    1807
-    1808        .dwattr $C$DW$T$57, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1809        .dwattr $C$DW$T$57, DW_AT_decl_line(0x67)
-    1810        .dwattr $C$DW$T$57, DW_AT_decl_column(0x08)
-    1811
-    1812$C$DW$T$59      .dwtag  DW_TAG_union_type
-    1813        .dwattr $C$DW$T$59, DW_AT_byte_size(0x04)
-    1814$C$DW$147       .dwtag  DW_TAG_member
-    1815        .dwattr $C$DW$147, DW_AT_type(*$C$DW$T$47)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   34
-
-    1816        .dwattr $C$DW$147, DW_AT_name("ISRP")
-    1817        .dwattr $C$DW$147, DW_AT_TI_symbol_name("ISRP")
-    1818        .dwattr $C$DW$147, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1819        .dwattr $C$DW$147, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1820        .dwattr $C$DW$147, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1821        .dwattr $C$DW$147, DW_AT_decl_line(0x84)
-    1822        .dwattr $C$DW$147, DW_AT_decl_column(0x15)
-    1823$C$DW$148       .dwtag  DW_TAG_member
-    1824        .dwattr $C$DW$148, DW_AT_type(*$C$DW$T$58)
-    1825        .dwattr $C$DW$148, DW_AT_name("ISRP_bit")
-    1826        .dwattr $C$DW$148, DW_AT_TI_symbol_name("ISRP_bit")
-    1827        .dwattr $C$DW$148, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1828        .dwattr $C$DW$148, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1829        .dwattr $C$DW$148, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1830        .dwattr $C$DW$148, DW_AT_decl_line(0x8d)
-    1831        .dwattr $C$DW$148, DW_AT_decl_column(0x05)
-    1832        .dwendtag $C$DW$T$59
-    1833
-    1834        .dwattr $C$DW$T$59, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1835        .dwattr $C$DW$T$59, DW_AT_decl_line(0x83)
-    1836        .dwattr $C$DW$T$59, DW_AT_decl_column(0x08)
-    1837
-    1838$C$DW$T$61      .dwtag  DW_TAG_union_type
-    1839        .dwattr $C$DW$T$61, DW_AT_byte_size(0x04)
-    1840$C$DW$149       .dwtag  DW_TAG_member
-    1841        .dwattr $C$DW$149, DW_AT_type(*$C$DW$T$47)
-    1842        .dwattr $C$DW$149, DW_AT_name("ISP")
-    1843        .dwattr $C$DW$149, DW_AT_TI_symbol_name("ISP")
-    1844        .dwattr $C$DW$149, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1845        .dwattr $C$DW$149, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1846        .dwattr $C$DW$149, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1847        .dwattr $C$DW$149, DW_AT_decl_line(0x93)
-    1848        .dwattr $C$DW$149, DW_AT_decl_column(0x15)
-    1849$C$DW$150       .dwtag  DW_TAG_member
-    1850        .dwattr $C$DW$150, DW_AT_type(*$C$DW$T$60)
-    1851        .dwattr $C$DW$150, DW_AT_name("ISP_bit")
-    1852        .dwattr $C$DW$150, DW_AT_TI_symbol_name("ISP_bit")
-    1853        .dwattr $C$DW$150, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1854        .dwattr $C$DW$150, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1855        .dwattr $C$DW$150, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1856        .dwattr $C$DW$150, DW_AT_decl_line(0x9c)
-    1857        .dwattr $C$DW$150, DW_AT_decl_column(0x05)
-    1858        .dwendtag $C$DW$T$61
-    1859
-    1860        .dwattr $C$DW$T$61, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1861        .dwattr $C$DW$T$61, DW_AT_decl_line(0x92)
-    1862        .dwattr $C$DW$T$61, DW_AT_decl_column(0x08)
-    1863
-    1864$C$DW$T$63      .dwtag  DW_TAG_union_type
-    1865        .dwattr $C$DW$T$63, DW_AT_byte_size(0x04)
-    1866$C$DW$151       .dwtag  DW_TAG_member
-    1867        .dwattr $C$DW$151, DW_AT_type(*$C$DW$T$47)
-    1868        .dwattr $C$DW$151, DW_AT_name("IESP")
-    1869        .dwattr $C$DW$151, DW_AT_TI_symbol_name("IESP")
-    1870        .dwattr $C$DW$151, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   35
-
-    1871        .dwattr $C$DW$151, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1872        .dwattr $C$DW$151, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1873        .dwattr $C$DW$151, DW_AT_decl_line(0xa1)
-    1874        .dwattr $C$DW$151, DW_AT_decl_column(0x15)
-    1875$C$DW$152       .dwtag  DW_TAG_member
-    1876        .dwattr $C$DW$152, DW_AT_type(*$C$DW$T$62)
-    1877        .dwattr $C$DW$152, DW_AT_name("IESP_bit")
-    1878        .dwattr $C$DW$152, DW_AT_TI_symbol_name("IESP_bit")
-    1879        .dwattr $C$DW$152, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1880        .dwattr $C$DW$152, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1881        .dwattr $C$DW$152, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1882        .dwattr $C$DW$152, DW_AT_decl_line(0xaa)
-    1883        .dwattr $C$DW$152, DW_AT_decl_column(0x05)
-    1884        .dwendtag $C$DW$T$63
-    1885
-    1886        .dwattr $C$DW$T$63, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1887        .dwattr $C$DW$T$63, DW_AT_decl_line(0xa0)
-    1888        .dwattr $C$DW$T$63, DW_AT_decl_column(0x08)
-    1889
-    1890$C$DW$T$65      .dwtag  DW_TAG_union_type
-    1891        .dwattr $C$DW$T$65, DW_AT_byte_size(0x04)
-    1892$C$DW$153       .dwtag  DW_TAG_member
-    1893        .dwattr $C$DW$153, DW_AT_type(*$C$DW$T$47)
-    1894        .dwattr $C$DW$153, DW_AT_name("IECP")
-    1895        .dwattr $C$DW$153, DW_AT_TI_symbol_name("IECP")
-    1896        .dwattr $C$DW$153, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1897        .dwattr $C$DW$153, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1898        .dwattr $C$DW$153, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1899        .dwattr $C$DW$153, DW_AT_decl_line(0xb0)
-    1900        .dwattr $C$DW$153, DW_AT_decl_column(0x15)
-    1901$C$DW$154       .dwtag  DW_TAG_member
-    1902        .dwattr $C$DW$154, DW_AT_type(*$C$DW$T$64)
-    1903        .dwattr $C$DW$154, DW_AT_name("IECP_bit")
-    1904        .dwattr $C$DW$154, DW_AT_TI_symbol_name("IECP_bit")
-    1905        .dwattr $C$DW$154, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1906        .dwattr $C$DW$154, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1907        .dwattr $C$DW$154, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1908        .dwattr $C$DW$154, DW_AT_decl_line(0xb8)
-    1909        .dwattr $C$DW$154, DW_AT_decl_column(0x05)
-    1910        .dwendtag $C$DW$T$65
-    1911
-    1912        .dwattr $C$DW$T$65, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1913        .dwattr $C$DW$T$65, DW_AT_decl_line(0xaf)
-    1914        .dwattr $C$DW$T$65, DW_AT_decl_column(0x08)
-    1915
-    1916$C$DW$T$67      .dwtag  DW_TAG_union_type
-    1917        .dwattr $C$DW$T$67, DW_AT_byte_size(0x04)
-    1918$C$DW$155       .dwtag  DW_TAG_member
-    1919        .dwattr $C$DW$155, DW_AT_type(*$C$DW$T$47)
-    1920        .dwattr $C$DW$155, DW_AT_name("PMAO")
-    1921        .dwattr $C$DW$155, DW_AT_TI_symbol_name("PMAO")
-    1922        .dwattr $C$DW$155, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1923        .dwattr $C$DW$155, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1924        .dwattr $C$DW$155, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1925        .dwattr $C$DW$155, DW_AT_decl_line(0xc1)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   36
-
-    1926        .dwattr $C$DW$155, DW_AT_decl_column(0x15)
-    1927$C$DW$156       .dwtag  DW_TAG_member
-    1928        .dwattr $C$DW$156, DW_AT_type(*$C$DW$T$66)
-    1929        .dwattr $C$DW$156, DW_AT_name("PMAO_bit")
-    1930        .dwattr $C$DW$156, DW_AT_TI_symbol_name("PMAO_bit")
-    1931        .dwattr $C$DW$156, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1932        .dwattr $C$DW$156, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1933        .dwattr $C$DW$156, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1934        .dwattr $C$DW$156, DW_AT_decl_line(0xc7)
-    1935        .dwattr $C$DW$156, DW_AT_decl_column(0x05)
-    1936        .dwendtag $C$DW$T$67
-    1937
-    1938        .dwattr $C$DW$T$67, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1939        .dwattr $C$DW$T$67, DW_AT_decl_line(0xc0)
-    1940        .dwattr $C$DW$T$67, DW_AT_decl_column(0x08)
-    1941
-    1942$C$DW$T$69      .dwtag  DW_TAG_union_type
-    1943        .dwattr $C$DW$T$69, DW_AT_byte_size(0x04)
-    1944$C$DW$157       .dwtag  DW_TAG_member
-    1945        .dwattr $C$DW$157, DW_AT_type(*$C$DW$T$47)
-    1946        .dwattr $C$DW$157, DW_AT_name("IEPCLK")
-    1947        .dwattr $C$DW$157, DW_AT_TI_symbol_name("IEPCLK")
-    1948        .dwattr $C$DW$157, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1949        .dwattr $C$DW$157, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1950        .dwattr $C$DW$157, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1951        .dwattr $C$DW$157, DW_AT_decl_line(0xd0)
-    1952        .dwattr $C$DW$157, DW_AT_decl_column(0x15)
-    1953$C$DW$158       .dwtag  DW_TAG_member
-    1954        .dwattr $C$DW$158, DW_AT_type(*$C$DW$T$68)
-    1955        .dwattr $C$DW$158, DW_AT_name("IEPCLK_bit")
-    1956        .dwattr $C$DW$158, DW_AT_TI_symbol_name("IEPCLK_bit")
-    1957        .dwattr $C$DW$158, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1958        .dwattr $C$DW$158, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1959        .dwattr $C$DW$158, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1960        .dwattr $C$DW$158, DW_AT_decl_line(0xd5)
-    1961        .dwattr $C$DW$158, DW_AT_decl_column(0x05)
-    1962        .dwendtag $C$DW$T$69
-    1963
-    1964        .dwattr $C$DW$T$69, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1965        .dwattr $C$DW$T$69, DW_AT_decl_line(0xcf)
-    1966        .dwattr $C$DW$T$69, DW_AT_decl_column(0x08)
-    1967
-    1968$C$DW$T$71      .dwtag  DW_TAG_union_type
-    1969        .dwattr $C$DW$T$71, DW_AT_byte_size(0x04)
-    1970$C$DW$159       .dwtag  DW_TAG_member
-    1971        .dwattr $C$DW$159, DW_AT_type(*$C$DW$T$47)
-    1972        .dwattr $C$DW$159, DW_AT_name("SPP")
-    1973        .dwattr $C$DW$159, DW_AT_TI_symbol_name("SPP")
-    1974        .dwattr $C$DW$159, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1975        .dwattr $C$DW$159, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1976        .dwattr $C$DW$159, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1977        .dwattr $C$DW$159, DW_AT_decl_line(0xdb)
-    1978        .dwattr $C$DW$159, DW_AT_decl_column(0x15)
-    1979$C$DW$160       .dwtag  DW_TAG_member
-    1980        .dwattr $C$DW$160, DW_AT_type(*$C$DW$T$70)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   37
-
-    1981        .dwattr $C$DW$160, DW_AT_name("SPP_bit")
-    1982        .dwattr $C$DW$160, DW_AT_TI_symbol_name("SPP_bit")
-    1983        .dwattr $C$DW$160, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    1984        .dwattr $C$DW$160, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    1985        .dwattr $C$DW$160, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    1986        .dwattr $C$DW$160, DW_AT_decl_line(0xe1)
-    1987        .dwattr $C$DW$160, DW_AT_decl_column(0x05)
-    1988        .dwendtag $C$DW$T$71
-    1989
-    1990        .dwattr $C$DW$T$71, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    1991        .dwattr $C$DW$T$71, DW_AT_decl_line(0xda)
-    1992        .dwattr $C$DW$T$71, DW_AT_decl_column(0x08)
-    1993
-    1994$C$DW$T$73      .dwtag  DW_TAG_union_type
-    1995        .dwattr $C$DW$T$73, DW_AT_byte_size(0x04)
-    1996$C$DW$161       .dwtag  DW_TAG_member
-    1997        .dwattr $C$DW$161, DW_AT_type(*$C$DW$T$47)
-    1998        .dwattr $C$DW$161, DW_AT_name("PIN_MX")
-    1999        .dwattr $C$DW$161, DW_AT_TI_symbol_name("PIN_MX")
-    2000        .dwattr $C$DW$161, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2001        .dwattr $C$DW$161, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2002        .dwattr $C$DW$161, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2003        .dwattr $C$DW$161, DW_AT_decl_line(0xe9)
-    2004        .dwattr $C$DW$161, DW_AT_decl_column(0x15)
-    2005$C$DW$162       .dwtag  DW_TAG_member
-    2006        .dwattr $C$DW$162, DW_AT_type(*$C$DW$T$72)
-    2007        .dwattr $C$DW$162, DW_AT_name("PIN_MX_bit")
-    2008        .dwattr $C$DW$162, DW_AT_TI_symbol_name("PIN_MX_bit")
-    2009        .dwattr $C$DW$162, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2010        .dwattr $C$DW$162, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2011        .dwattr $C$DW$162, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2012        .dwattr $C$DW$162, DW_AT_decl_line(0xee)
-    2013        .dwattr $C$DW$162, DW_AT_decl_column(0x05)
-    2014        .dwendtag $C$DW$T$73
-    2015
-    2016        .dwattr $C$DW$T$73, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2017        .dwattr $C$DW$T$73, DW_AT_decl_line(0xe8)
-    2018        .dwattr $C$DW$T$73, DW_AT_decl_column(0x08)
-    2019
-    2020$C$DW$T$75      .dwtag  DW_TAG_union_type
-    2021        .dwattr $C$DW$T$75, DW_AT_byte_size(0x04)
-    2022$C$DW$163       .dwtag  DW_TAG_member
-    2023        .dwattr $C$DW$163, DW_AT_type(*$C$DW$T$47)
-    2024        .dwattr $C$DW$163, DW_AT_name("CTRL")
-    2025        .dwattr $C$DW$163, DW_AT_TI_symbol_name("CTRL")
-    2026        .dwattr $C$DW$163, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2027        .dwattr $C$DW$163, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2028        .dwattr $C$DW$163, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2029        .dwattr $C$DW$163, DW_AT_decl_line(0x2a)
-    2030        .dwattr $C$DW$163, DW_AT_decl_column(0x15)
-    2031$C$DW$164       .dwtag  DW_TAG_member
-    2032        .dwattr $C$DW$164, DW_AT_type(*$C$DW$T$74)
-    2033        .dwattr $C$DW$164, DW_AT_name("CTRL_bit")
-    2034        .dwattr $C$DW$164, DW_AT_TI_symbol_name("CTRL_bit")
-    2035        .dwattr $C$DW$164, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   38
-
-    2036        .dwattr $C$DW$164, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2037        .dwattr $C$DW$164, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2038        .dwattr $C$DW$164, DW_AT_decl_line(0x36)
-    2039        .dwattr $C$DW$164, DW_AT_decl_column(0x05)
-    2040        .dwendtag $C$DW$T$75
-    2041
-    2042        .dwattr $C$DW$T$75, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2043        .dwattr $C$DW$T$75, DW_AT_decl_line(0x29)
-    2044        .dwattr $C$DW$T$75, DW_AT_decl_column(0x08)
-    2045
-    2046$C$DW$T$77      .dwtag  DW_TAG_union_type
-    2047        .dwattr $C$DW$T$77, DW_AT_byte_size(0x04)
-    2048$C$DW$165       .dwtag  DW_TAG_member
-    2049        .dwattr $C$DW$165, DW_AT_type(*$C$DW$T$47)
-    2050        .dwattr $C$DW$165, DW_AT_name("STS")
-    2051        .dwattr $C$DW$165, DW_AT_TI_symbol_name("STS")
-    2052        .dwattr $C$DW$165, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2053        .dwattr $C$DW$165, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2054        .dwattr $C$DW$165, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2055        .dwattr $C$DW$165, DW_AT_decl_line(0x3c)
-    2056        .dwattr $C$DW$165, DW_AT_decl_column(0x15)
-    2057$C$DW$166       .dwtag  DW_TAG_member
-    2058        .dwattr $C$DW$166, DW_AT_type(*$C$DW$T$76)
-    2059        .dwattr $C$DW$166, DW_AT_name("STS_bit")
-    2060        .dwattr $C$DW$166, DW_AT_TI_symbol_name("STS_bit")
-    2061        .dwattr $C$DW$166, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2062        .dwattr $C$DW$166, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2063        .dwattr $C$DW$166, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2064        .dwattr $C$DW$166, DW_AT_decl_line(0x41)
-    2065        .dwattr $C$DW$166, DW_AT_decl_column(0x05)
-    2066        .dwendtag $C$DW$T$77
-    2067
-    2068        .dwattr $C$DW$T$77, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2069        .dwattr $C$DW$T$77, DW_AT_decl_line(0x3b)
-    2070        .dwattr $C$DW$T$77, DW_AT_decl_column(0x08)
-    2071
-    2072$C$DW$T$79      .dwtag  DW_TAG_union_type
-    2073        .dwattr $C$DW$T$79, DW_AT_byte_size(0x04)
-    2074$C$DW$167       .dwtag  DW_TAG_member
-    2075        .dwattr $C$DW$167, DW_AT_type(*$C$DW$T$47)
-    2076        .dwattr $C$DW$167, DW_AT_name("WAKEUP_EN")
-    2077        .dwattr $C$DW$167, DW_AT_TI_symbol_name("WAKEUP_EN")
-    2078        .dwattr $C$DW$167, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2079        .dwattr $C$DW$167, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2080        .dwattr $C$DW$167, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2081        .dwattr $C$DW$167, DW_AT_decl_line(0x47)
-    2082        .dwattr $C$DW$167, DW_AT_decl_column(0x15)
-    2083$C$DW$168       .dwtag  DW_TAG_member
-    2084        .dwattr $C$DW$168, DW_AT_type(*$C$DW$T$78)
-    2085        .dwattr $C$DW$168, DW_AT_name("WAKEUP_EN_bit")
-    2086        .dwattr $C$DW$168, DW_AT_TI_symbol_name("WAKEUP_EN_bit")
-    2087        .dwattr $C$DW$168, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2088        .dwattr $C$DW$168, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2089        .dwattr $C$DW$168, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2090        .dwattr $C$DW$168, DW_AT_decl_line(0x4b)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   39
-
-    2091        .dwattr $C$DW$168, DW_AT_decl_column(0x05)
-    2092        .dwendtag $C$DW$T$79
-    2093
-    2094        .dwattr $C$DW$T$79, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2095        .dwattr $C$DW$T$79, DW_AT_decl_line(0x46)
-    2096        .dwattr $C$DW$T$79, DW_AT_decl_column(0x08)
-    2097
-    2098$C$DW$T$81      .dwtag  DW_TAG_union_type
-    2099        .dwattr $C$DW$T$81, DW_AT_byte_size(0x04)
-    2100$C$DW$169       .dwtag  DW_TAG_member
-    2101        .dwattr $C$DW$169, DW_AT_type(*$C$DW$T$47)
-    2102        .dwattr $C$DW$169, DW_AT_name("CYCLE")
-    2103        .dwattr $C$DW$169, DW_AT_TI_symbol_name("CYCLE")
-    2104        .dwattr $C$DW$169, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2105        .dwattr $C$DW$169, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2106        .dwattr $C$DW$169, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2107        .dwattr $C$DW$169, DW_AT_decl_line(0x51)
-    2108        .dwattr $C$DW$169, DW_AT_decl_column(0x15)
-    2109$C$DW$170       .dwtag  DW_TAG_member
-    2110        .dwattr $C$DW$170, DW_AT_type(*$C$DW$T$80)
-    2111        .dwattr $C$DW$170, DW_AT_name("CYCLE_bit")
-    2112        .dwattr $C$DW$170, DW_AT_TI_symbol_name("CYCLE_bit")
-    2113        .dwattr $C$DW$170, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2114        .dwattr $C$DW$170, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2115        .dwattr $C$DW$170, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2116        .dwattr $C$DW$170, DW_AT_decl_line(0x55)
-    2117        .dwattr $C$DW$170, DW_AT_decl_column(0x05)
-    2118        .dwendtag $C$DW$T$81
-    2119
-    2120        .dwattr $C$DW$T$81, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2121        .dwattr $C$DW$T$81, DW_AT_decl_line(0x50)
-    2122        .dwattr $C$DW$T$81, DW_AT_decl_column(0x08)
-    2123
-    2124$C$DW$T$83      .dwtag  DW_TAG_union_type
-    2125        .dwattr $C$DW$T$83, DW_AT_byte_size(0x04)
-    2126$C$DW$171       .dwtag  DW_TAG_member
-    2127        .dwattr $C$DW$171, DW_AT_type(*$C$DW$T$47)
-    2128        .dwattr $C$DW$171, DW_AT_name("STALL")
-    2129        .dwattr $C$DW$171, DW_AT_TI_symbol_name("STALL")
-    2130        .dwattr $C$DW$171, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2131        .dwattr $C$DW$171, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2132        .dwattr $C$DW$171, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2133        .dwattr $C$DW$171, DW_AT_decl_line(0x5b)
-    2134        .dwattr $C$DW$171, DW_AT_decl_column(0x15)
-    2135$C$DW$172       .dwtag  DW_TAG_member
-    2136        .dwattr $C$DW$172, DW_AT_type(*$C$DW$T$82)
-    2137        .dwattr $C$DW$172, DW_AT_name("STALL_bit")
-    2138        .dwattr $C$DW$172, DW_AT_TI_symbol_name("STALL_bit")
-    2139        .dwattr $C$DW$172, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2140        .dwattr $C$DW$172, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2141        .dwattr $C$DW$172, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2142        .dwattr $C$DW$172, DW_AT_decl_line(0x5f)
-    2143        .dwattr $C$DW$172, DW_AT_decl_column(0x05)
-    2144        .dwendtag $C$DW$T$83
-    2145
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   40
-
-    2146        .dwattr $C$DW$T$83, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2147        .dwattr $C$DW$T$83, DW_AT_decl_line(0x5a)
-    2148        .dwattr $C$DW$T$83, DW_AT_decl_column(0x08)
-    2149
-    2150$C$DW$T$85      .dwtag  DW_TAG_union_type
-    2151        .dwattr $C$DW$T$85, DW_AT_byte_size(0x04)
-    2152$C$DW$173       .dwtag  DW_TAG_member
-    2153        .dwattr $C$DW$173, DW_AT_type(*$C$DW$T$47)
-    2154        .dwattr $C$DW$173, DW_AT_name("CTBIR0")
-    2155        .dwattr $C$DW$173, DW_AT_TI_symbol_name("CTBIR0")
-    2156        .dwattr $C$DW$173, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2157        .dwattr $C$DW$173, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2158        .dwattr $C$DW$173, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2159        .dwattr $C$DW$173, DW_AT_decl_line(0x68)
-    2160        .dwattr $C$DW$173, DW_AT_decl_column(0x15)
-    2161$C$DW$174       .dwtag  DW_TAG_member
-    2162        .dwattr $C$DW$174, DW_AT_type(*$C$DW$T$84)
-    2163        .dwattr $C$DW$174, DW_AT_name("CTBIR0_bit")
-    2164        .dwattr $C$DW$174, DW_AT_TI_symbol_name("CTBIR0_bit")
-    2165        .dwattr $C$DW$174, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2166        .dwattr $C$DW$174, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2167        .dwattr $C$DW$174, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2168        .dwattr $C$DW$174, DW_AT_decl_line(0x6f)
-    2169        .dwattr $C$DW$174, DW_AT_decl_column(0x05)
-    2170        .dwendtag $C$DW$T$85
-    2171
-    2172        .dwattr $C$DW$T$85, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2173        .dwattr $C$DW$T$85, DW_AT_decl_line(0x67)
-    2174        .dwattr $C$DW$T$85, DW_AT_decl_column(0x08)
-    2175
-    2176$C$DW$T$87      .dwtag  DW_TAG_union_type
-    2177        .dwattr $C$DW$T$87, DW_AT_byte_size(0x04)
-    2178$C$DW$175       .dwtag  DW_TAG_member
-    2179        .dwattr $C$DW$175, DW_AT_type(*$C$DW$T$47)
-    2180        .dwattr $C$DW$175, DW_AT_name("CTBIR1")
-    2181        .dwattr $C$DW$175, DW_AT_TI_symbol_name("CTBIR1")
-    2182        .dwattr $C$DW$175, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2183        .dwattr $C$DW$175, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2184        .dwattr $C$DW$175, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2185        .dwattr $C$DW$175, DW_AT_decl_line(0x75)
-    2186        .dwattr $C$DW$175, DW_AT_decl_column(0x15)
-    2187$C$DW$176       .dwtag  DW_TAG_member
-    2188        .dwattr $C$DW$176, DW_AT_type(*$C$DW$T$86)
-    2189        .dwattr $C$DW$176, DW_AT_name("CTBIR1_bit")
-    2190        .dwattr $C$DW$176, DW_AT_TI_symbol_name("CTBIR1_bit")
-    2191        .dwattr $C$DW$176, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2192        .dwattr $C$DW$176, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2193        .dwattr $C$DW$176, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2194        .dwattr $C$DW$176, DW_AT_decl_line(0x7c)
-    2195        .dwattr $C$DW$176, DW_AT_decl_column(0x05)
-    2196        .dwendtag $C$DW$T$87
-    2197
-    2198        .dwattr $C$DW$T$87, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2199        .dwattr $C$DW$T$87, DW_AT_decl_line(0x74)
-    2200        .dwattr $C$DW$T$87, DW_AT_decl_column(0x08)
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   41
-
-    2201
-    2202$C$DW$T$89      .dwtag  DW_TAG_union_type
-    2203        .dwattr $C$DW$T$89, DW_AT_byte_size(0x04)
-    2204$C$DW$177       .dwtag  DW_TAG_member
-    2205        .dwattr $C$DW$177, DW_AT_type(*$C$DW$T$47)
-    2206        .dwattr $C$DW$177, DW_AT_name("CTPPR0")
-    2207        .dwattr $C$DW$177, DW_AT_TI_symbol_name("CTPPR0")
-    2208        .dwattr $C$DW$177, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2209        .dwattr $C$DW$177, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2210        .dwattr $C$DW$177, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2211        .dwattr $C$DW$177, DW_AT_decl_line(0x82)
-    2212        .dwattr $C$DW$177, DW_AT_decl_column(0x15)
-    2213$C$DW$178       .dwtag  DW_TAG_member
-    2214        .dwattr $C$DW$178, DW_AT_type(*$C$DW$T$88)
-    2215        .dwattr $C$DW$178, DW_AT_name("CTPPR0_bit")
-    2216        .dwattr $C$DW$178, DW_AT_TI_symbol_name("CTPPR0_bit")
-    2217        .dwattr $C$DW$178, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2218        .dwattr $C$DW$178, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2219        .dwattr $C$DW$178, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2220        .dwattr $C$DW$178, DW_AT_decl_line(0x87)
-    2221        .dwattr $C$DW$178, DW_AT_decl_column(0x05)
-    2222        .dwendtag $C$DW$T$89
-    2223
-    2224        .dwattr $C$DW$T$89, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2225        .dwattr $C$DW$T$89, DW_AT_decl_line(0x81)
-    2226        .dwattr $C$DW$T$89, DW_AT_decl_column(0x08)
-    2227
-    2228$C$DW$T$91      .dwtag  DW_TAG_union_type
-    2229        .dwattr $C$DW$T$91, DW_AT_byte_size(0x04)
-    2230$C$DW$179       .dwtag  DW_TAG_member
-    2231        .dwattr $C$DW$179, DW_AT_type(*$C$DW$T$47)
-    2232        .dwattr $C$DW$179, DW_AT_name("CTPPR1")
-    2233        .dwattr $C$DW$179, DW_AT_TI_symbol_name("CTPPR1")
-    2234        .dwattr $C$DW$179, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2235        .dwattr $C$DW$179, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2236        .dwattr $C$DW$179, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2237        .dwattr $C$DW$179, DW_AT_decl_line(0x8d)
-    2238        .dwattr $C$DW$179, DW_AT_decl_column(0x15)
-    2239$C$DW$180       .dwtag  DW_TAG_member
-    2240        .dwattr $C$DW$180, DW_AT_type(*$C$DW$T$90)
-    2241        .dwattr $C$DW$180, DW_AT_name("CTPPR1_bit")
-    2242        .dwattr $C$DW$180, DW_AT_TI_symbol_name("CTPPR1_bit")
-    2243        .dwattr $C$DW$180, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2244        .dwattr $C$DW$180, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2245        .dwattr $C$DW$180, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/pr
-    2246        .dwattr $C$DW$180, DW_AT_decl_line(0x92)
-    2247        .dwattr $C$DW$180, DW_AT_decl_column(0x05)
-    2248        .dwendtag $C$DW$T$91
-    2249
-    2250        .dwattr $C$DW$T$91, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/am335x/p
-    2251        .dwattr $C$DW$T$91, DW_AT_decl_line(0x8c)
-    2252        .dwattr $C$DW$T$91, DW_AT_decl_column(0x08)
-    2253$C$DW$T$2       .dwtag  DW_TAG_unspecified_type
-    2254        .dwattr $C$DW$T$2, DW_AT_name("void")
-    2255$C$DW$T$4       .dwtag  DW_TAG_base_type
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   42
-
-    2256        .dwattr $C$DW$T$4, DW_AT_encoding(DW_ATE_boolean)
-    2257        .dwattr $C$DW$T$4, DW_AT_name("bool")
-    2258        .dwattr $C$DW$T$4, DW_AT_byte_size(0x01)
-    2259$C$DW$T$5       .dwtag  DW_TAG_base_type
-    2260        .dwattr $C$DW$T$5, DW_AT_encoding(DW_ATE_signed_char)
-    2261        .dwattr $C$DW$T$5, DW_AT_name("signed char")
-    2262        .dwattr $C$DW$T$5, DW_AT_byte_size(0x01)
-    2263$C$DW$T$6       .dwtag  DW_TAG_base_type
-    2264        .dwattr $C$DW$T$6, DW_AT_encoding(DW_ATE_unsigned_char)
-    2265        .dwattr $C$DW$T$6, DW_AT_name("unsigned char")
-    2266        .dwattr $C$DW$T$6, DW_AT_byte_size(0x01)
-    2267$C$DW$T$7       .dwtag  DW_TAG_base_type
-    2268        .dwattr $C$DW$T$7, DW_AT_encoding(DW_ATE_signed_char)
-    2269        .dwattr $C$DW$T$7, DW_AT_name("wchar_t")
-    2270        .dwattr $C$DW$T$7, DW_AT_byte_size(0x04)
-    2271$C$DW$T$8       .dwtag  DW_TAG_base_type
-    2272        .dwattr $C$DW$T$8, DW_AT_encoding(DW_ATE_signed)
-    2273        .dwattr $C$DW$T$8, DW_AT_name("short")
-    2274        .dwattr $C$DW$T$8, DW_AT_byte_size(0x02)
-    2275$C$DW$T$9       .dwtag  DW_TAG_base_type
-    2276        .dwattr $C$DW$T$9, DW_AT_encoding(DW_ATE_unsigned)
-    2277        .dwattr $C$DW$T$9, DW_AT_name("unsigned short")
-    2278        .dwattr $C$DW$T$9, DW_AT_byte_size(0x02)
-    2279$C$DW$T$10      .dwtag  DW_TAG_base_type
-    2280        .dwattr $C$DW$T$10, DW_AT_encoding(DW_ATE_signed)
-    2281        .dwattr $C$DW$T$10, DW_AT_name("int")
-    2282        .dwattr $C$DW$T$10, DW_AT_byte_size(0x04)
-    2283$C$DW$T$11      .dwtag  DW_TAG_base_type
-    2284        .dwattr $C$DW$T$11, DW_AT_encoding(DW_ATE_unsigned)
-    2285        .dwattr $C$DW$T$11, DW_AT_name("unsigned int")
-    2286        .dwattr $C$DW$T$11, DW_AT_byte_size(0x04)
-    2287$C$DW$T$32      .dwtag  DW_TAG_typedef, DW_AT_name("uint32_t")
-    2288        .dwattr $C$DW$T$32, DW_AT_type(*$C$DW$T$11)
-    2289        .dwattr $C$DW$T$32, DW_AT_language(DW_LANG_C)
-    2290        .dwattr $C$DW$T$32, DW_AT_decl_file("/usr/share/ti/cgt-pru/include/stdint.h")
-    2291        .dwattr $C$DW$T$32, DW_AT_decl_line(0x2f)
-    2292        .dwattr $C$DW$T$32, DW_AT_decl_column(0x1c)
-    2293
-    2294$C$DW$T$33      .dwtag  DW_TAG_array_type
-    2295        .dwattr $C$DW$T$33, DW_AT_type(*$C$DW$T$32)
-    2296        .dwattr $C$DW$T$33, DW_AT_language(DW_LANG_C)
-    2297        .dwattr $C$DW$T$33, DW_AT_byte_size(0x04)
-    2298$C$DW$181       .dwtag  DW_TAG_subrange_type
-    2299        .dwattr $C$DW$181, DW_AT_upper_bound(0x00)
-    2300        .dwendtag $C$DW$T$33
-    2301
-    2302
-    2303$C$DW$T$34      .dwtag  DW_TAG_array_type
-    2304        .dwattr $C$DW$T$34, DW_AT_type(*$C$DW$T$32)
-    2305        .dwattr $C$DW$T$34, DW_AT_language(DW_LANG_C)
-    2306        .dwattr $C$DW$T$34, DW_AT_byte_size(0x08)
-    2307$C$DW$182       .dwtag  DW_TAG_subrange_type
-    2308        .dwattr $C$DW$182, DW_AT_upper_bound(0x01)
-    2309        .dwendtag $C$DW$T$34
-    2310
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   43
-
-    2311
-    2312$C$DW$T$45      .dwtag  DW_TAG_array_type
-    2313        .dwattr $C$DW$T$45, DW_AT_type(*$C$DW$T$32)
-    2314        .dwattr $C$DW$T$45, DW_AT_language(DW_LANG_C)
-    2315        .dwattr $C$DW$T$45, DW_AT_byte_size(0x0c)
-    2316$C$DW$183       .dwtag  DW_TAG_subrange_type
-    2317        .dwattr $C$DW$183, DW_AT_upper_bound(0x02)
-    2318        .dwendtag $C$DW$T$45
-    2319
-    2320$C$DW$T$47      .dwtag  DW_TAG_volatile_type
-    2321        .dwattr $C$DW$T$47, DW_AT_type(*$C$DW$T$32)
-    2322$C$DW$T$12      .dwtag  DW_TAG_base_type
-    2323        .dwattr $C$DW$T$12, DW_AT_encoding(DW_ATE_signed)
-    2324        .dwattr $C$DW$T$12, DW_AT_name("long")
-    2325        .dwattr $C$DW$T$12, DW_AT_byte_size(0x04)
-    2326$C$DW$T$13      .dwtag  DW_TAG_base_type
-    2327        .dwattr $C$DW$T$13, DW_AT_encoding(DW_ATE_unsigned)
-    2328        .dwattr $C$DW$T$13, DW_AT_name("unsigned long")
-    2329        .dwattr $C$DW$T$13, DW_AT_byte_size(0x04)
-    2330$C$DW$T$14      .dwtag  DW_TAG_base_type
-    2331        .dwattr $C$DW$T$14, DW_AT_encoding(DW_ATE_signed)
-    2332        .dwattr $C$DW$T$14, DW_AT_name("long long")
-    2333        .dwattr $C$DW$T$14, DW_AT_byte_size(0x08)
-    2334$C$DW$T$15      .dwtag  DW_TAG_base_type
-    2335        .dwattr $C$DW$T$15, DW_AT_encoding(DW_ATE_unsigned)
-    2336        .dwattr $C$DW$T$15, DW_AT_name("unsigned long long")
-    2337        .dwattr $C$DW$T$15, DW_AT_byte_size(0x08)
-    2338$C$DW$T$16      .dwtag  DW_TAG_base_type
-    2339        .dwattr $C$DW$T$16, DW_AT_encoding(DW_ATE_float)
-    2340        .dwattr $C$DW$T$16, DW_AT_name("float")
-    2341        .dwattr $C$DW$T$16, DW_AT_byte_size(0x04)
-    2342$C$DW$T$17      .dwtag  DW_TAG_base_type
-    2343        .dwattr $C$DW$T$17, DW_AT_encoding(DW_ATE_float)
-    2344        .dwattr $C$DW$T$17, DW_AT_name("double")
-    2345        .dwattr $C$DW$T$17, DW_AT_byte_size(0x08)
-    2346$C$DW$T$18      .dwtag  DW_TAG_base_type
-    2347        .dwattr $C$DW$T$18, DW_AT_encoding(DW_ATE_float)
-    2348        .dwattr $C$DW$T$18, DW_AT_name("long double")
-    2349        .dwattr $C$DW$T$18, DW_AT_byte_size(0x08)
-    2350
-    2351$C$DW$T$92      .dwtag  DW_TAG_structure_type
-    2352        .dwattr $C$DW$T$92, DW_AT_name("my_resource_table")
-    2353        .dwattr $C$DW$T$92, DW_AT_byte_size(0x14)
-    2354$C$DW$184       .dwtag  DW_TAG_member
-    2355        .dwattr $C$DW$184, DW_AT_type(*$C$DW$T$93)
-    2356        .dwattr $C$DW$184, DW_AT_name("base")
-    2357        .dwattr $C$DW$184, DW_AT_TI_symbol_name("base")
-    2358        .dwattr $C$DW$184, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2359        .dwattr $C$DW$184, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2360        .dwattr $C$DW$184, DW_AT_decl_file("/var/lib/cloud9/common/resource_table_empty.h")
-    2361        .dwattr $C$DW$184, DW_AT_decl_line(0x18)
-    2362        .dwattr $C$DW$184, DW_AT_decl_column(0x18)
-    2363$C$DW$185       .dwtag  DW_TAG_member
-    2364        .dwattr $C$DW$185, DW_AT_type(*$C$DW$T$33)
-    2365        .dwattr $C$DW$185, DW_AT_name("offset")
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   44
-
-    2366        .dwattr $C$DW$185, DW_AT_TI_symbol_name("offset")
-    2367        .dwattr $C$DW$185, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
-    2368        .dwattr $C$DW$185, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2369        .dwattr $C$DW$185, DW_AT_decl_file("/var/lib/cloud9/common/resource_table_empty.h")
-    2370        .dwattr $C$DW$185, DW_AT_decl_line(0x1a)
-    2371        .dwattr $C$DW$185, DW_AT_decl_column(0x0b)
-    2372        .dwendtag $C$DW$T$92
-    2373
-    2374        .dwattr $C$DW$T$92, DW_AT_decl_file("/var/lib/cloud9/common/resource_table_empty.h")
-    2375        .dwattr $C$DW$T$92, DW_AT_decl_line(0x17)
-    2376        .dwattr $C$DW$T$92, DW_AT_decl_column(0x08)
-    2377
-    2378$C$DW$T$93      .dwtag  DW_TAG_structure_type
-    2379        .dwattr $C$DW$T$93, DW_AT_name("resource_table")
-    2380        .dwattr $C$DW$T$93, DW_AT_byte_size(0x10)
-    2381$C$DW$186       .dwtag  DW_TAG_member
-    2382        .dwattr $C$DW$186, DW_AT_type(*$C$DW$T$32)
-    2383        .dwattr $C$DW$186, DW_AT_name("ver")
-    2384        .dwattr $C$DW$186, DW_AT_TI_symbol_name("ver")
-    2385        .dwattr $C$DW$186, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
-    2386        .dwattr $C$DW$186, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2387        .dwattr $C$DW$186, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/rsc_types
-    2388        .dwattr $C$DW$186, DW_AT_decl_line(0x59)
-    2389        .dwattr $C$DW$186, DW_AT_decl_column(0x0b)
-    2390$C$DW$187       .dwtag  DW_TAG_member
-    2391        .dwattr $C$DW$187, DW_AT_type(*$C$DW$T$32)
-    2392        .dwattr $C$DW$187, DW_AT_name("num")
-    2393        .dwattr $C$DW$187, DW_AT_TI_symbol_name("num")
-    2394        .dwattr $C$DW$187, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
-    2395        .dwattr $C$DW$187, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2396        .dwattr $C$DW$187, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/rsc_types
-    2397        .dwattr $C$DW$187, DW_AT_decl_line(0x5a)
-    2398        .dwattr $C$DW$187, DW_AT_decl_column(0x0b)
-    2399$C$DW$188       .dwtag  DW_TAG_member
-    2400        .dwattr $C$DW$188, DW_AT_type(*$C$DW$T$34)
-    2401        .dwattr $C$DW$188, DW_AT_name("reserved")
-    2402        .dwattr $C$DW$188, DW_AT_TI_symbol_name("reserved")
-    2403        .dwattr $C$DW$188, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
-    2404        .dwattr $C$DW$188, DW_AT_accessibility(DW_ACCESS_ai_64_lic)
-    2405        .dwattr $C$DW$188, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/rsc_types
-    2406        .dwattr $C$DW$188, DW_AT_decl_line(0x5b)
-    2407        .dwattr $C$DW$188, DW_AT_decl_column(0x0b)
-    2408        .dwendtag $C$DW$T$93
-    2409
-    2410        .dwattr $C$DW$T$93, DW_AT_decl_file("/usr/lib/ti/pru-software-support-package/include/rsc_type
-    2411        .dwattr $C$DW$T$93, DW_AT_decl_line(0x58)
-    2412        .dwattr $C$DW$T$93, DW_AT_decl_column(0x08)
-    2413        .dwattr $C$DW$CU, DW_AT_language(DW_LANG_C)
-    2414
-    2415;***************************************************************
-    2416;* DWARF CIE ENTRIES                                           *
-    2417;***************************************************************
-    2418
-    2419$C$DW$CIE       .dwcie 14
-    2420        .dwcfi  cfa_register, 8
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   45
-
-    2421        .dwcfi  cfa_offset, 0
-    2422        .dwcfi  undefined, 0
-    2423        .dwcfi  undefined, 1
-    2424        .dwcfi  undefined, 2
-    2425        .dwcfi  undefined, 3
-    2426        .dwcfi  undefined, 4
-    2427        .dwcfi  undefined, 5
-    2428        .dwcfi  undefined, 6
-    2429        .dwcfi  undefined, 7
-    2430        .dwcfi  same_value, 8
-    2431        .dwcfi  same_value, 9
-    2432        .dwcfi  same_value, 10
-    2433        .dwcfi  same_value, 11
-    2434        .dwcfi  undefined, 12
-    2435        .dwcfi  undefined, 13
-    2436        .dwcfi  undefined, 14
-    2437        .dwcfi  undefined, 15
-    2438        .dwcfi  same_value, 16
-    2439        .dwcfi  same_value, 17
-    2440        .dwcfi  same_value, 18
-    2441        .dwcfi  same_value, 19
-    2442        .dwcfi  same_value, 20
-    2443        .dwcfi  same_value, 21
-    2444        .dwcfi  same_value, 22
-    2445        .dwcfi  same_value, 23
-    2446        .dwcfi  same_value, 24
-    2447        .dwcfi  same_value, 25
-    2448        .dwcfi  same_value, 26
-    2449        .dwcfi  same_value, 27
-    2450        .dwcfi  same_value, 28
-    2451        .dwcfi  same_value, 29
-    2452        .dwcfi  same_value, 30
-    2453        .dwcfi  same_value, 31
-    2454        .dwcfi  same_value, 32
-    2455        .dwcfi  same_value, 33
-    2456        .dwcfi  same_value, 34
-    2457        .dwcfi  same_value, 35
-    2458        .dwcfi  same_value, 36
-    2459        .dwcfi  same_value, 37
-    2460        .dwcfi  same_value, 38
-    2461        .dwcfi  same_value, 39
-    2462        .dwcfi  same_value, 40
-    2463        .dwcfi  same_value, 41
-    2464        .dwcfi  same_value, 42
-    2465        .dwcfi  same_value, 43
-    2466        .dwcfi  same_value, 44
-    2467        .dwcfi  same_value, 45
-    2468        .dwcfi  same_value, 46
-    2469        .dwcfi  same_value, 47
-    2470        .dwcfi  same_value, 48
-    2471        .dwcfi  same_value, 49
-    2472        .dwcfi  same_value, 50
-    2473        .dwcfi  same_value, 51
-    2474        .dwcfi  same_value, 52
-    2475        .dwcfi  same_value, 53
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   46
-
-    2476        .dwcfi  same_value, 54
-    2477        .dwcfi  same_value, 55
-    2478        .dwcfi  undefined, 56
-    2479        .dwcfi  undefined, 57
-    2480        .dwcfi  undefined, 58
-    2481        .dwcfi  undefined, 59
-    2482        .dwcfi  undefined, 60
-    2483        .dwcfi  undefined, 61
-    2484        .dwcfi  undefined, 62
-    2485        .dwcfi  undefined, 63
-    2486        .dwcfi  undefined, 64
-    2487        .dwcfi  undefined, 65
-    2488        .dwcfi  undefined, 66
-    2489        .dwcfi  undefined, 67
-    2490        .dwcfi  undefined, 68
-    2491        .dwcfi  undefined, 69
-    2492        .dwcfi  undefined, 70
-    2493        .dwcfi  undefined, 71
-    2494        .dwcfi  undefined, 72
-    2495        .dwcfi  undefined, 73
-    2496        .dwcfi  undefined, 74
-    2497        .dwcfi  undefined, 75
-    2498        .dwcfi  undefined, 76
-    2499        .dwcfi  undefined, 77
-    2500        .dwcfi  undefined, 78
-    2501        .dwcfi  undefined, 79
-    2502        .dwcfi  undefined, 80
-    2503        .dwcfi  undefined, 81
-    2504        .dwcfi  undefined, 82
-    2505        .dwcfi  undefined, 83
-    2506        .dwcfi  undefined, 84
-    2507        .dwcfi  undefined, 85
-    2508        .dwcfi  undefined, 86
-    2509        .dwcfi  undefined, 87
-    2510        .dwcfi  undefined, 88
-    2511        .dwcfi  undefined, 89
-    2512        .dwcfi  undefined, 90
-    2513        .dwcfi  undefined, 91
-    2514        .dwcfi  undefined, 92
-    2515        .dwcfi  undefined, 93
-    2516        .dwcfi  undefined, 94
-    2517        .dwcfi  undefined, 95
-    2518        .dwcfi  undefined, 96
-    2519        .dwcfi  undefined, 97
-    2520        .dwcfi  undefined, 98
-    2521        .dwcfi  undefined, 99
-    2522        .dwcfi  undefined, 100
-    2523        .dwcfi  undefined, 101
-    2524        .dwcfi  undefined, 102
-    2525        .dwcfi  undefined, 103
-    2526        .dwcfi  undefined, 104
-    2527        .dwcfi  undefined, 105
-    2528        .dwcfi  undefined, 106
-    2529        .dwcfi  undefined, 107
-    2530        .dwcfi  undefined, 108
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   47
-
-    2531        .dwcfi  undefined, 109
-    2532        .dwcfi  undefined, 110
-    2533        .dwcfi  undefined, 111
-    2534        .dwcfi  undefined, 112
-    2535        .dwcfi  undefined, 113
-    2536        .dwcfi  undefined, 114
-    2537        .dwcfi  undefined, 115
-    2538        .dwcfi  undefined, 116
-    2539        .dwcfi  undefined, 117
-    2540        .dwcfi  undefined, 118
-    2541        .dwcfi  undefined, 119
-    2542        .dwcfi  undefined, 120
-    2543        .dwcfi  undefined, 121
-    2544        .dwcfi  undefined, 122
-    2545        .dwcfi  undefined, 123
-    2546        .dwcfi  undefined, 124
-    2547        .dwcfi  undefined, 125
-    2548        .dwcfi  undefined, 126
-    2549        .dwcfi  undefined, 127
-    2550        .dwcfi  undefined, 128
-    2551        .dwcfi  undefined, 129
-    2552        .dwcfi  undefined, 130
-    2553        .dwcfi  undefined, 131
-    2554        .dwcfi  undefined, 132
-    2555        .dwcfi  undefined, 133
-    2556        .dwcfi  undefined, 134
-    2557        .dwendentry
-    2558
-    2559;***************************************************************
-    2560;* DWARF REGISTER MAP                                          *
-    2561;***************************************************************
-    2562
-    2563$C$DW$189       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b0")
-    2564        .dwattr $C$DW$189, DW_AT_location[DW_OP_reg0]
-    2565$C$DW$190       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b1")
-    2566        .dwattr $C$DW$190, DW_AT_location[DW_OP_reg1]
-    2567$C$DW$191       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b2")
-    2568        .dwattr $C$DW$191, DW_AT_location[DW_OP_reg2]
-    2569$C$DW$192       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b3")
-    2570        .dwattr $C$DW$192, DW_AT_location[DW_OP_reg3]
-    2571$C$DW$193       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b0")
-    2572        .dwattr $C$DW$193, DW_AT_location[DW_OP_reg4]
-    2573$C$DW$194       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b1")
-    2574        .dwattr $C$DW$194, DW_AT_location[DW_OP_reg5]
-    2575$C$DW$195       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b2")
-    2576        .dwattr $C$DW$195, DW_AT_location[DW_OP_reg6]
-    2577$C$DW$196       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b3")
-    2578        .dwattr $C$DW$196, DW_AT_location[DW_OP_reg7]
-    2579$C$DW$197       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b0")
-    2580        .dwattr $C$DW$197, DW_AT_location[DW_OP_reg8]
-    2581$C$DW$198       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b1")
-    2582        .dwattr $C$DW$198, DW_AT_location[DW_OP_reg9]
-    2583$C$DW$199       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b2")
-    2584        .dwattr $C$DW$199, DW_AT_location[DW_OP_reg10]
-    2585$C$DW$200       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b3")
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   48
-
-    2586        .dwattr $C$DW$200, DW_AT_location[DW_OP_reg11]
-    2587$C$DW$201       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b0")
-    2588        .dwattr $C$DW$201, DW_AT_location[DW_OP_reg12]
-    2589$C$DW$202       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b1")
-    2590        .dwattr $C$DW$202, DW_AT_location[DW_OP_reg13]
-    2591$C$DW$203       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b2")
-    2592        .dwattr $C$DW$203, DW_AT_location[DW_OP_reg14]
-    2593$C$DW$204       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b3")
-    2594        .dwattr $C$DW$204, DW_AT_location[DW_OP_reg15]
-    2595$C$DW$205       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b0")
-    2596        .dwattr $C$DW$205, DW_AT_location[DW_OP_reg16]
-    2597$C$DW$206       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b1")
-    2598        .dwattr $C$DW$206, DW_AT_location[DW_OP_reg17]
-    2599$C$DW$207       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b2")
-    2600        .dwattr $C$DW$207, DW_AT_location[DW_OP_reg18]
-    2601$C$DW$208       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b3")
-    2602        .dwattr $C$DW$208, DW_AT_location[DW_OP_reg19]
-    2603$C$DW$209       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b0")
-    2604        .dwattr $C$DW$209, DW_AT_location[DW_OP_reg20]
-    2605$C$DW$210       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b1")
-    2606        .dwattr $C$DW$210, DW_AT_location[DW_OP_reg21]
-    2607$C$DW$211       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b2")
-    2608        .dwattr $C$DW$211, DW_AT_location[DW_OP_reg22]
-    2609$C$DW$212       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b3")
-    2610        .dwattr $C$DW$212, DW_AT_location[DW_OP_reg23]
-    2611$C$DW$213       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b0")
-    2612        .dwattr $C$DW$213, DW_AT_location[DW_OP_reg24]
-    2613$C$DW$214       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b1")
-    2614        .dwattr $C$DW$214, DW_AT_location[DW_OP_reg25]
-    2615$C$DW$215       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b2")
-    2616        .dwattr $C$DW$215, DW_AT_location[DW_OP_reg26]
-    2617$C$DW$216       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b3")
-    2618        .dwattr $C$DW$216, DW_AT_location[DW_OP_reg27]
-    2619$C$DW$217       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b0")
-    2620        .dwattr $C$DW$217, DW_AT_location[DW_OP_reg28]
-    2621$C$DW$218       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b1")
-    2622        .dwattr $C$DW$218, DW_AT_location[DW_OP_reg29]
-    2623$C$DW$219       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b2")
-    2624        .dwattr $C$DW$219, DW_AT_location[DW_OP_reg30]
-    2625$C$DW$220       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b3")
-    2626        .dwattr $C$DW$220, DW_AT_location[DW_OP_reg31]
-    2627$C$DW$221       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b0")
-    2628        .dwattr $C$DW$221, DW_AT_location[DW_OP_regx 0x20]
-    2629$C$DW$222       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b1")
-    2630        .dwattr $C$DW$222, DW_AT_location[DW_OP_regx 0x21]
-    2631$C$DW$223       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b2")
-    2632        .dwattr $C$DW$223, DW_AT_location[DW_OP_regx 0x22]
-    2633$C$DW$224       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b3")
-    2634        .dwattr $C$DW$224, DW_AT_location[DW_OP_regx 0x23]
-    2635$C$DW$225       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b0")
-    2636        .dwattr $C$DW$225, DW_AT_location[DW_OP_regx 0x24]
-    2637$C$DW$226       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b1")
-    2638        .dwattr $C$DW$226, DW_AT_location[DW_OP_regx 0x25]
-    2639$C$DW$227       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b2")
-    2640        .dwattr $C$DW$227, DW_AT_location[DW_OP_regx 0x26]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   49
-
-    2641$C$DW$228       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b3")
-    2642        .dwattr $C$DW$228, DW_AT_location[DW_OP_regx 0x27]
-    2643$C$DW$229       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b0")
-    2644        .dwattr $C$DW$229, DW_AT_location[DW_OP_regx 0x28]
-    2645$C$DW$230       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b1")
-    2646        .dwattr $C$DW$230, DW_AT_location[DW_OP_regx 0x29]
-    2647$C$DW$231       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b2")
-    2648        .dwattr $C$DW$231, DW_AT_location[DW_OP_regx 0x2a]
-    2649$C$DW$232       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b3")
-    2650        .dwattr $C$DW$232, DW_AT_location[DW_OP_regx 0x2b]
-    2651$C$DW$233       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b0")
-    2652        .dwattr $C$DW$233, DW_AT_location[DW_OP_regx 0x2c]
-    2653$C$DW$234       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b1")
-    2654        .dwattr $C$DW$234, DW_AT_location[DW_OP_regx 0x2d]
-    2655$C$DW$235       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b2")
-    2656        .dwattr $C$DW$235, DW_AT_location[DW_OP_regx 0x2e]
-    2657$C$DW$236       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b3")
-    2658        .dwattr $C$DW$236, DW_AT_location[DW_OP_regx 0x2f]
-    2659$C$DW$237       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b0")
-    2660        .dwattr $C$DW$237, DW_AT_location[DW_OP_regx 0x30]
-    2661$C$DW$238       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b1")
-    2662        .dwattr $C$DW$238, DW_AT_location[DW_OP_regx 0x31]
-    2663$C$DW$239       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b2")
-    2664        .dwattr $C$DW$239, DW_AT_location[DW_OP_regx 0x32]
-    2665$C$DW$240       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b3")
-    2666        .dwattr $C$DW$240, DW_AT_location[DW_OP_regx 0x33]
-    2667$C$DW$241       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b0")
-    2668        .dwattr $C$DW$241, DW_AT_location[DW_OP_regx 0x34]
-    2669$C$DW$242       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b1")
-    2670        .dwattr $C$DW$242, DW_AT_location[DW_OP_regx 0x35]
-    2671$C$DW$243       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b2")
-    2672        .dwattr $C$DW$243, DW_AT_location[DW_OP_regx 0x36]
-    2673$C$DW$244       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b3")
-    2674        .dwattr $C$DW$244, DW_AT_location[DW_OP_regx 0x37]
-    2675$C$DW$245       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b0")
-    2676        .dwattr $C$DW$245, DW_AT_location[DW_OP_regx 0x38]
-    2677$C$DW$246       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b1")
-    2678        .dwattr $C$DW$246, DW_AT_location[DW_OP_regx 0x39]
-    2679$C$DW$247       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b2")
-    2680        .dwattr $C$DW$247, DW_AT_location[DW_OP_regx 0x3a]
-    2681$C$DW$248       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b3")
-    2682        .dwattr $C$DW$248, DW_AT_location[DW_OP_regx 0x3b]
-    2683$C$DW$249       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b0")
-    2684        .dwattr $C$DW$249, DW_AT_location[DW_OP_regx 0x3c]
-    2685$C$DW$250       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b1")
-    2686        .dwattr $C$DW$250, DW_AT_location[DW_OP_regx 0x3d]
-    2687$C$DW$251       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b2")
-    2688        .dwattr $C$DW$251, DW_AT_location[DW_OP_regx 0x3e]
-    2689$C$DW$252       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b3")
-    2690        .dwattr $C$DW$252, DW_AT_location[DW_OP_regx 0x3f]
-    2691$C$DW$253       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b0")
-    2692        .dwattr $C$DW$253, DW_AT_location[DW_OP_regx 0x40]
-    2693$C$DW$254       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b1")
-    2694        .dwattr $C$DW$254, DW_AT_location[DW_OP_regx 0x41]
-    2695$C$DW$255       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b2")
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   50
-
-    2696        .dwattr $C$DW$255, DW_AT_location[DW_OP_regx 0x42]
-    2697$C$DW$256       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b3")
-    2698        .dwattr $C$DW$256, DW_AT_location[DW_OP_regx 0x43]
-    2699$C$DW$257       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b0")
-    2700        .dwattr $C$DW$257, DW_AT_location[DW_OP_regx 0x44]
-    2701$C$DW$258       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b1")
-    2702        .dwattr $C$DW$258, DW_AT_location[DW_OP_regx 0x45]
-    2703$C$DW$259       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b2")
-    2704        .dwattr $C$DW$259, DW_AT_location[DW_OP_regx 0x46]
-    2705$C$DW$260       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b3")
-    2706        .dwattr $C$DW$260, DW_AT_location[DW_OP_regx 0x47]
-    2707$C$DW$261       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b0")
-    2708        .dwattr $C$DW$261, DW_AT_location[DW_OP_regx 0x48]
-    2709$C$DW$262       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b1")
-    2710        .dwattr $C$DW$262, DW_AT_location[DW_OP_regx 0x49]
-    2711$C$DW$263       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b2")
-    2712        .dwattr $C$DW$263, DW_AT_location[DW_OP_regx 0x4a]
-    2713$C$DW$264       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b3")
-    2714        .dwattr $C$DW$264, DW_AT_location[DW_OP_regx 0x4b]
-    2715$C$DW$265       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b0")
-    2716        .dwattr $C$DW$265, DW_AT_location[DW_OP_regx 0x4c]
-    2717$C$DW$266       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b1")
-    2718        .dwattr $C$DW$266, DW_AT_location[DW_OP_regx 0x4d]
-    2719$C$DW$267       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b2")
-    2720        .dwattr $C$DW$267, DW_AT_location[DW_OP_regx 0x4e]
-    2721$C$DW$268       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b3")
-    2722        .dwattr $C$DW$268, DW_AT_location[DW_OP_regx 0x4f]
-    2723$C$DW$269       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b0")
-    2724        .dwattr $C$DW$269, DW_AT_location[DW_OP_regx 0x50]
-    2725$C$DW$270       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b1")
-    2726        .dwattr $C$DW$270, DW_AT_location[DW_OP_regx 0x51]
-    2727$C$DW$271       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b2")
-    2728        .dwattr $C$DW$271, DW_AT_location[DW_OP_regx 0x52]
-    2729$C$DW$272       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b3")
-    2730        .dwattr $C$DW$272, DW_AT_location[DW_OP_regx 0x53]
-    2731$C$DW$273       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b0")
-    2732        .dwattr $C$DW$273, DW_AT_location[DW_OP_regx 0x54]
-    2733$C$DW$274       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b1")
-    2734        .dwattr $C$DW$274, DW_AT_location[DW_OP_regx 0x55]
-    2735$C$DW$275       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b2")
-    2736        .dwattr $C$DW$275, DW_AT_location[DW_OP_regx 0x56]
-    2737$C$DW$276       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b3")
-    2738        .dwattr $C$DW$276, DW_AT_location[DW_OP_regx 0x57]
-    2739$C$DW$277       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b0")
-    2740        .dwattr $C$DW$277, DW_AT_location[DW_OP_regx 0x58]
-    2741$C$DW$278       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b1")
-    2742        .dwattr $C$DW$278, DW_AT_location[DW_OP_regx 0x59]
-    2743$C$DW$279       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b2")
-    2744        .dwattr $C$DW$279, DW_AT_location[DW_OP_regx 0x5a]
-    2745$C$DW$280       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b3")
-    2746        .dwattr $C$DW$280, DW_AT_location[DW_OP_regx 0x5b]
-    2747$C$DW$281       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b0")
-    2748        .dwattr $C$DW$281, DW_AT_location[DW_OP_regx 0x5c]
-    2749$C$DW$282       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b1")
-    2750        .dwattr $C$DW$282, DW_AT_location[DW_OP_regx 0x5d]
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   51
-
-    2751$C$DW$283       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b2")
-    2752        .dwattr $C$DW$283, DW_AT_location[DW_OP_regx 0x5e]
-    2753$C$DW$284       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b3")
-    2754        .dwattr $C$DW$284, DW_AT_location[DW_OP_regx 0x5f]
-    2755$C$DW$285       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b0")
-    2756        .dwattr $C$DW$285, DW_AT_location[DW_OP_regx 0x60]
-    2757$C$DW$286       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b1")
-    2758        .dwattr $C$DW$286, DW_AT_location[DW_OP_regx 0x61]
-    2759$C$DW$287       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b2")
-    2760        .dwattr $C$DW$287, DW_AT_location[DW_OP_regx 0x62]
-    2761$C$DW$288       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b3")
-    2762        .dwattr $C$DW$288, DW_AT_location[DW_OP_regx 0x63]
-    2763$C$DW$289       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b0")
-    2764        .dwattr $C$DW$289, DW_AT_location[DW_OP_regx 0x64]
-    2765$C$DW$290       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b1")
-    2766        .dwattr $C$DW$290, DW_AT_location[DW_OP_regx 0x65]
-    2767$C$DW$291       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b2")
-    2768        .dwattr $C$DW$291, DW_AT_location[DW_OP_regx 0x66]
-    2769$C$DW$292       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b3")
-    2770        .dwattr $C$DW$292, DW_AT_location[DW_OP_regx 0x67]
-    2771$C$DW$293       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b0")
-    2772        .dwattr $C$DW$293, DW_AT_location[DW_OP_regx 0x68]
-    2773$C$DW$294       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b1")
-    2774        .dwattr $C$DW$294, DW_AT_location[DW_OP_regx 0x69]
-    2775$C$DW$295       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b2")
-    2776        .dwattr $C$DW$295, DW_AT_location[DW_OP_regx 0x6a]
-    2777$C$DW$296       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b3")
-    2778        .dwattr $C$DW$296, DW_AT_location[DW_OP_regx 0x6b]
-    2779$C$DW$297       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b0")
-    2780        .dwattr $C$DW$297, DW_AT_location[DW_OP_regx 0x6c]
-    2781$C$DW$298       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b1")
-    2782        .dwattr $C$DW$298, DW_AT_location[DW_OP_regx 0x6d]
-    2783$C$DW$299       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b2")
-    2784        .dwattr $C$DW$299, DW_AT_location[DW_OP_regx 0x6e]
-    2785$C$DW$300       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b3")
-    2786        .dwattr $C$DW$300, DW_AT_location[DW_OP_regx 0x6f]
-    2787$C$DW$301       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b0")
-    2788        .dwattr $C$DW$301, DW_AT_location[DW_OP_regx 0x70]
-    2789$C$DW$302       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b1")
-    2790        .dwattr $C$DW$302, DW_AT_location[DW_OP_regx 0x71]
-    2791$C$DW$303       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b2")
-    2792        .dwattr $C$DW$303, DW_AT_location[DW_OP_regx 0x72]
-    2793$C$DW$304       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b3")
-    2794        .dwattr $C$DW$304, DW_AT_location[DW_OP_regx 0x73]
-    2795$C$DW$305       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b0")
-    2796        .dwattr $C$DW$305, DW_AT_location[DW_OP_regx 0x74]
-    2797$C$DW$306       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b1")
-    2798        .dwattr $C$DW$306, DW_AT_location[DW_OP_regx 0x75]
-    2799$C$DW$307       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b2")
-    2800        .dwattr $C$DW$307, DW_AT_location[DW_OP_regx 0x76]
-    2801$C$DW$308       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b3")
-    2802        .dwattr $C$DW$308, DW_AT_location[DW_OP_regx 0x77]
-    2803$C$DW$309       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b0")
-    2804        .dwattr $C$DW$309, DW_AT_location[DW_OP_regx 0x78]
-    2805$C$DW$310       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b1")
-PRU Assembler Unix v2.1.5 Fri Jun  5 14:14:07 2020
-
-Tools Copyright (c) 2012-2017 Texas Instruments Incorporated
-/tmp/cloud9-examples/cycle.pru0.asm                                  PAGE   52
-
-    2806        .dwattr $C$DW$310, DW_AT_location[DW_OP_regx 0x79]
-    2807$C$DW$311       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b2")
-    2808        .dwattr $C$DW$311, DW_AT_location[DW_OP_regx 0x7a]
-    2809$C$DW$312       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b3")
-    2810        .dwattr $C$DW$312, DW_AT_location[DW_OP_regx 0x7b]
-    2811$C$DW$313       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b0")
-    2812        .dwattr $C$DW$313, DW_AT_location[DW_OP_regx 0x7c]
-    2813$C$DW$314       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b1")
-    2814        .dwattr $C$DW$314, DW_AT_location[DW_OP_regx 0x7d]
-    2815$C$DW$315       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b2")
-    2816        .dwattr $C$DW$315, DW_AT_location[DW_OP_regx 0x7e]
-    2817$C$DW$316       .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b3")
-    2818        .dwattr $C$DW$316, DW_AT_location[DW_OP_regx 0x7f]
-    2819        .dwendtag $C$DW$CU
-    2820
-
-No Assembly Errors, No Assembly Warnings
diff --git a/books/pru-cookbook/07more/code/delay-test.pru0.c b/books/pru-cookbook/07more/code/delay-test.pru0.c
deleted file mode 100644
index 337ecbb23cb0920a687b30b3e50dcdbf5ae86f86..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/delay-test.pru0.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// Shows how to call an assembly routine with one parameter
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-// The function is defined in delay.asm in same dir
-// We just need to add a declaration here, the defination can be
-// seperately linked
-extern void my_delay_cycles(uint32_t);
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while(1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		my_delay_cycles(1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		my_delay_cycles(1);
-	}
-}
diff --git a/books/pru-cookbook/07more/code/delay-test2.pru0.c b/books/pru-cookbook/07more/code/delay-test2.pru0.c
deleted file mode 100644
index 763b3a7d7b0452139cb817b0d56bf5e13688e0f6..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/delay-test2.pru0.c
+++ /dev/null
@@ -1,32 +0,0 @@
-// Shows how to call an assembly routine with a return value
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define	TEST	100
-
-// The function is defined in delay.asm in same dir
-// We just need to add a declaration here, the defination can be
-// seperately linked
-extern uint32_t my_delay_cycles(uint32_t);
-
-uint32_t ret;
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while(1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		ret = my_delay_cycles(1);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		ret = my_delay_cycles(1);
-	}
-}
diff --git a/books/pru-cookbook/07more/code/delay.pru0.asm b/books/pru-cookbook/07more/code/delay.pru0.asm
deleted file mode 100644
index 1c1cce7d1d986e55bc3bc3f8bf3cc3e3d783fc21..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/delay.pru0.asm
+++ /dev/null
@@ -1,9 +0,0 @@
-; This is an example of how to call an assembly routine from C.
-;	Mark A. Yoder, 9-July-2018
-	.global my_delay_cycles
-my_delay_cycles:
-delay:
-	sub		r14,   r14, 1		; The first argument is passed in r14
-	qbne	delay, r14, 0
-
-	jmp		r3.w2			; r3 contains the return address
\ No newline at end of file
diff --git a/books/pru-cookbook/07more/code/delay2.pru0.asm b/books/pru-cookbook/07more/code/delay2.pru0.asm
deleted file mode 100644
index e1f1da03d37ece54ca7c577b4244bd8abbbc921f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/delay2.pru0.asm
+++ /dev/null
@@ -1,15 +0,0 @@
-; This is an example of how to call an assembly routine from C with a retun value.
-;	Mark A. Yoder, 9-July-2018
-
-	.cdecls "delay-test2.pru0.c"
-
-	.global my_delay_cycles
-my_delay_cycles:
-delay:
-	sub		r14,   r14, 1		; The first argument is passed in r14
-	qbne	delay, r14, 0
-	
-	ldi		r14, TEST		; TEST is defined in delay-test2.c
-							; r14 is the return register
-
-	jmp		r3.w2			; r3 contains the return address
\ No newline at end of file
diff --git a/books/pru-cookbook/07more/code/logic.c b/books/pru-cookbook/07more/code/logic.c
deleted file mode 100644
index f774708d22f3ef26ede77fe45a8057d7f1e905f2..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/logic.c
+++ /dev/null
@@ -1,34 +0,0 @@
-// Access the CYCLE and STALL registers
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	// Copy lower 8 bits to r16
-	struct {
-	    uint8_t b0;
-	    uint8_t b1;
-	    uint8_t b2;
-	    uint8_t b3;
-	} r17;
-
-	// Clear SYSCFG[STANDBY_INIT] to enable OCP master port
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-	
-// 	r16.b0 = __R31.b0;
-	__asm(" mov r17.b0, r31.b0");
-	__delay_cycles(1);
-	r17.b1 = (uint32_t) __R31;
-	__delay_cycles(1);
-	r17.b2 = (uint32_t) __R31;
-	__delay_cycles(1);
-	r17.b3 = (uint32_t) __R31;
-
-    __xout(10, 16, 0, r17);
-
-	__halt();
-}
diff --git a/books/pru-cookbook/07more/code/logic_setup.sh b/books/pru-cookbook/07more/code/logic_setup.sh
deleted file mode 100644
index 2253459cf1f8efde2e61281525f26872a3940a42..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/logic_setup.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-#
-export PRUN=0
-export TARGET=logic
-echo PRUN=$PRUN
-echo TARGET=$TARGET
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_31 P9_29 P9_30 P9_28 P9_92 P9_27 P9_91 P9_25 "
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_36 P1_33 P2_32 P2_30 P1_31 P2_34 P2_28 P1_29"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruin
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/07more/code/resource_table_pru0.h b/books/pru-cookbook/07more/code/resource_table_pru0.h
deleted file mode 100644
index 06c148006b7a892d30f16d69891c6165e3525161..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/resource_table_pru0.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- *	* Redistributions of source code must retain the above copyright
- *	  notice, this list of conditions and the following disclaimer.
- *
- *	* Redistributions in binary form must reproduce the above copyright
- *	  notice, this list of conditions and the following disclaimer in the
- *	  documentation and/or other materials provided with the
- *	  distribution.
- *
- *	* Neither the name of Texas Instruments Incorporated nor the names of
- *	  its contributors may be used to endorse or promote products derived
- *	  from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- *  ======== rsc_table_pru.h ========
- *
- *  Define the resource table entries for PRU0. This will be
- *  incorporated into corresponding base images, and used by the remoteproc
- *  on the host-side to allocated/reserve resources.  Note the remoteproc
- *  driver requires that all PRU firmware be built with a resource table.
- *
- *
- */
-
-#ifndef _RSC_TABLE_PRU_H_
-#define _RSC_TABLE_PRU_H_
-
-#include <stddef.h>
-#include <rsc_types.h>
-#include "pru_virtio_ids.h"
-
-/*
- * Sizes of the virtqueues (expressed in number of buffers supported,
- * and must be power of 2)
- */
-#define PRU_RPMSG_VQ0_SIZE	2
-#define PRU_RPMSG_VQ1_SIZE	2
-
-/* flip up bits whose indices represent features we support */
-#define RPMSG_PRU_C0_FEATURES	1
-
-/* Definition for unused interrupts */
-#define HOST_UNUSED		255
-
-/* Mapping sysevts to a channel. Each pair contains a sysevt, channel */
-struct ch_map pru_intc_map[] = { {17, 1}, {18, 0}, {19, 2}, {20, 3}, {21, 0},
-	{22, 1}, {24, 4}, {25, 5}, {26, 6}, {27, 7},
-};
-
-struct my_resource_table {
-	struct resource_table base;
-
-	uint32_t offset[1]; /* Should match 'num' in actual definition */
-
-	/* intc definition */
-	struct fw_rsc_custom pru_ints;
-};
-
-#pragma DATA_SECTION(am335x_pru_remoteproc_ResourceTable, ".resource_table")
-#pragma RETAIN(am335x_pru_remoteproc_ResourceTable)
-struct my_resource_table am335x_pru_remoteproc_ResourceTable = {
-	1,	/* we're the first version that implements this */
-	1,	/* number of entries in the table */
-	0, 0,	/* reserved, must be zero */
-	/* offsets to entries */
-	{
-		offsetof(struct my_resource_table, pru_ints),
-	},
-
-	{
-		TYPE_CUSTOM, TYPE_PRU_INTS,
-		sizeof(struct fw_rsc_custom_ints),
-		{ /* PRU_INTS version */
-			0x0000,
-			/* Channel-to-host mapping, 255 for unused */
-			0, 1, 2, 3, 0, 6, 1, 7, HOST_UNUSED, HOST_UNUSED,
-			/* Number of evts being mapped to channels */
-			(sizeof(pru_intc_map) / sizeof(struct ch_map)),
-			/* Pointer to the structure containing mapped events */
-			pru_intc_map,
-		},
-	},
-};
-
-#endif /* _RSC_TABLE_PRU_H_ */
diff --git a/books/pru-cookbook/07more/code/setup.sh b/books/pru-cookbook/07more/code/setup.sh
deleted file mode 100644
index f1d0d9db334b125b68171dd18ce04abec94ace08..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/setup.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-#
-export TARGET=delay-test.pru0
-export TARGETasm=delay.pru0
-echo TARGET=$TARGET
-echo TARGETasm=$TARGETasm
-
-# Configure the PRU pins based on which Beagle is running
-machine=$(awk '{print $NF}' /proc/device-tree/model)
-echo -n $machine
-if [ $machine = "Black" ]; then
-    echo " Found"
-    pins="P9_31"
-elif [ $machine = "Blue" ]; then
-    echo " Found"
-    pins=""
-elif [ $machine = "PocketBeagle" ]; then
-    echo " Found"
-    pins="P1_33"
-else
-    echo " Not Found"
-    pins=""
-fi
-
-for pin in $pins
-do
-    echo $pin
-    config-pin $pin pruout
-    config-pin -q $pin
-done
diff --git a/books/pru-cookbook/07more/code/xin.pru1.c b/books/pru-cookbook/07more/code/xin.pru1.c
deleted file mode 100644
index 56d4a68209d974c51e50559cc6d90ff9046f3a68..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/xin.pru1.c
+++ /dev/null
@@ -1,34 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/examples/am335x/PRU_Direct_Connect1
-#include <stdint.h>
-#include "resource_table_empty.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-typedef struct {
-	uint32_t reg5;
-	uint32_t reg6;
-	uint32_t reg7;
-	uint32_t reg8;
-	uint32_t reg9;
-	uint32_t reg10;
-} bufferData;
-
-bufferData dmemBuf;
-
-/* PRU-to-ARM interrupt */
-#define PRU1_PRU0_INTERRUPT (18)
-#define PRU1_ARM_INTERRUPT (20+16)
-
-void main(void)
-{
-	/* Let PRU0 know that I am awake */
-	__R31 = PRU1_PRU0_INTERRUPT+16;
-
-	/* XFR registers R5-R10 from PRU0 to PRU1 */
-	/* 14 is the device_id that signifies a PRU to PRU transfer */
-	__xin(14, 5, 0, dmemBuf);
-
-	/* Halt the PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/07more/code/xout-cycle.pru0.c b/books/pru-cookbook/07more/code/xout-cycle.pru0.c
deleted file mode 100644
index 339fedfc38eed9d9372a0b55ee74dfc031be70c2..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/xout-cycle.pru0.c
+++ /dev/null
@@ -1,62 +0,0 @@
-// Version of xout.c with code to use CYCLE to count cycle times.
-#include <stdint.h>
-#include <pru_intc.h>
-#include <pru_ctrl.h>
-#include "resource_table_pru0.h"
-
-#define PRU0
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-typedef struct {
-	uint32_t reg5;
-	uint32_t reg6;
-	uint32_t reg7;
-	uint32_t reg8;
-	uint32_t reg9;
-	uint32_t reg10;
-} bufferData;
-
-bufferData dmemBuf;
-
-/* PRU-to-ARM interrupt */
-#define PRU1_PRU0_INTERRUPT (18)
-#define PRU0_ARM_INTERRUPT (19+16)
-
-void main(void)
-{
-	uint32_t cycleXX;		// Use a name that's easy to search
-	/* Clear the status of all interrupts */
-	CT_INTC.SECR0 = 0xFFFFFFFF;
-	CT_INTC.SECR1 = 0xFFFFFFFF;
-	
-	/* Load the buffer with default values to transfer */
-	dmemBuf.reg5 = 0xDEADBEEF;
-	dmemBuf.reg6 = 0xAAAAAAAA;
-	dmemBuf.reg7 = 0x12345678;
-	dmemBuf.reg8 = 0xBBBBBBBB;
-	dmemBuf.reg9 = 0x87654321;
-	dmemBuf.reg10 = 0xCCCCCCCC;
-
-	/* Poll until R31.30 (PRU0 interrupt) is set
-	 * This signals PRU1 is initialized */
-	while ((__R31 & (1<<30)) == 0) {
-	}
-
-	/* XFR registers R5-R10 from PRU0 to PRU1 */
-	/* 14 is the device_id that signifies a PRU to PRU transfer */
-	PRU0_CTRL.CTRL_bit.CTR_EN = 1;	// Enable cycle counter
-
-	__xout(14, 5, 0, dmemBuf);
-	
-	cycleXX = PRU0_CTRL.CYCLE;	// Read cycle and store in a register
-
-	/* Clear the status of the interrupt */
-	CT_INTC.SICR = PRU1_PRU0_INTERRUPT;
-
-	dmemBuf.reg5 = cycleXX;
-
-	/* Halt the PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/07more/code/xout.pru0.c b/books/pru-cookbook/07more/code/xout.pru0.c
deleted file mode 100644
index bfcdbf5f927700c2d250abc0f28850bb4884392f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/xout.pru0.c
+++ /dev/null
@@ -1,52 +0,0 @@
-// From: http://git.ti.com/pru-software-support-package/pru-software-support-package/trees/master/examples/am335x/PRU_Direct_Connect0
-#include <stdint.h>
-#include <pru_intc.h>
-#include "resource_table_pru0.h"
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-typedef struct {
-	uint32_t reg5;
-	uint32_t reg6;
-	uint32_t reg7;
-	uint32_t reg8;
-	uint32_t reg9;
-	uint32_t reg10;
-} bufferData;
-
-bufferData dmemBuf;
-
-/* PRU-to-ARM interrupt */
-#define PRU1_PRU0_INTERRUPT (18)
-#define PRU0_ARM_INTERRUPT (19+16)
-
-void main(void)
-{
-	/* Clear the status of all interrupts */
-	CT_INTC.SECR0 = 0xFFFFFFFF;
-	CT_INTC.SECR1 = 0xFFFFFFFF;
-
-	/* Load the buffer with default values to transfer */
-	dmemBuf.reg5 = 0xDEADBEEF;
-	dmemBuf.reg6 = 0xAAAAAAAA;
-	dmemBuf.reg7 = 0x12345678;
-	dmemBuf.reg8 = 0xBBBBBBBB;
-	dmemBuf.reg9 = 0x87654321;
-	dmemBuf.reg10 = 0xCCCCCCCC;
-
-	/* Poll until R31.30 (PRU0 interrupt) is set
-	 * This signals PRU1 is initialized */
-	while ((__R31 & (1<<30)) == 0) {
-	}
-
-	/* XFR registers R5-R10 from PRU0 to PRU1 */
-	/* 14 is the device_id that signifies a PRU to PRU transfer */
-	__xout(14, 5, 0, dmemBuf);
-
-	/* Clear the status of the interrupt */
-	CT_INTC.SICR = PRU1_PRU0_INTERRUPT;
-
-	/* Halt the PRU core */
-	__halt();
-}
diff --git a/books/pru-cookbook/07more/code/xout_run.sh b/books/pru-cookbook/07more/code/xout_run.sh
deleted file mode 100755
index 158cf472beddca5d3781df4026dbeea4de3338b7..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/07more/code/xout_run.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-# Be sure to start PRU 0 before PRU 1.  PRU 0 will wait for PRU 1 to signal it.
-make TARGET=xout.pru0
-make TARGET=xin.pru1
diff --git a/books/pru-cookbook/08ai/code/Makefile b/books/pru-cookbook/08ai/code/Makefile
deleted file mode 100644
index a7557fdaa22988d89cec879477ded78522d7116f..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/08ai/code/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-include /var/lib/cloud9/common/Makefile
diff --git a/books/pru-cookbook/08ai/code/pwm1.pru2_1.c b/books/pru-cookbook/08ai/code/pwm1.pru2_1.c
deleted file mode 100644
index d35f2185cffd779cb1f18e252fe5252b803cd26e..0000000000000000000000000000000000000000
--- a/books/pru-cookbook/08ai/code/pwm1.pru2_1.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdint.h>
-#include <pru_cfg.h>
-#include "resource_table_empty.h"
-#include "prugpio.h"
-
-#define P9_31 (0x1<<10)
-
-volatile register uint32_t __R30;
-volatile register uint32_t __R31;
-
-void main(void)
-{
-	uint32_t gpio = P9_31;	// Select which pin to toggle.;
-
-	/* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
-	CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
-
-	while(1) {
-		__R30 |= gpio;		// Set the GPIO pin to 1
-		__delay_cycles(100000000);
-		__R30 &= ~gpio;		// Clear the GPIO pin
-		__delay_cycles(100000000);
-	}
-}
diff --git a/books/pru-cookbook/code b/books/pru-cookbook/code
new file mode 160000
index 0000000000000000000000000000000000000000..155c7a92ca8352a75c97beb7d54ce022220d4f03
--- /dev/null
+++ b/books/pru-cookbook/code
@@ -0,0 +1 @@
+Subproject commit 155c7a92ca8352a75c97beb7d54ce022220d4f03