From 2d027477aee6b9b6be6d34338bb882dc1aa9b903 Mon Sep 17 00:00:00 2001
From: Deepak Khatri <lorforlinux@beagleboard.org>
Date: Wed, 2 Nov 2022 02:48:05 +0530
Subject: [PATCH] Squashed commit of the following:

commit 4ab3ff82f7f27693d6c34b80d0dab5713889c345
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Tue Oct 25 21:38:16 2022 -0400

    More spelling fixes

commit fce576baedbdb5b39ea36644aba3032c078aa10f
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Tue Oct 25 13:52:28 2022 -0400

    Fixed a bunch of spelling and linking errors

commit 185218eea48dfcffb544dc9e9509bec87f3aaa25
Merge: 39c2dd7 c3b7fb7
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Mon Oct 24 13:58:46 2022 -0400

    Merge branch 'main' of git.beagleboard.org:docs/docs.beagleboard.io

commit 39c2dd787ce8fa73031d86132cf8c26004bf557a
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Mon Oct 24 13:54:54 2022 -0400

    books/pru-cookbook/code: fix some spelling issues

commit c3de7ef6b26c3849b4a511cbc31d055037a695bd
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Mon Oct 24 13:44:15 2022 -0400

    books/pru-cookbook: fix references to code

commit c4a51c2282f7795d1ab7362b321270686651a7e7
Author: Jason Kridner <jkridner@beagleboard.org>
Date:   Mon Oct 24 12:18:03 2022 -0400

    books/pru-cookbook: move code to submodule
---
 .gitmodules                                   |    3 +
 boards/beaglebone/ai-64/ch04.rst              |    2 +-
 boards/beaglebone/ai-64/ch07.rst              |    2 +-
 boards/beaglebone/ai-64/ch11.rst              |    2 +-
 boards/beaglebone/ai/ch12.rst                 |    1 +
 boards/beaglebone/black/ch07.rst              |    8 +-
 boards/beaglebone/blue/accessories.rst        |    7 +-
 boards/beaglebone/blue/tests.rst              |    2 +-
 boards/beagleconnect/freedom/zephyr.rst       |    2 +-
 boards/pocketbeagle/original/ch06.rst         |    5 +-
 books/beaglebone-cookbook/01basics/basics.rst |    2 +-
 .../beaglebone-cookbook/02sensors/sensors.rst |    2 +-
 books/beaglebone-cookbook/09capes/capes.rst   |   12 +-
 books/beaglebone-cookbook/10parts/parts.rst   |    8 +-
 books/beaglebone-cookbook/code                |    2 +-
 books/pru-cookbook/01case/case.rst            |   70 +-
 books/pru-cookbook/01case/code/blink.sim      |    7 -
 books/pru-cookbook/01case/code/circle.py      |   43 -
 books/pru-cookbook/01case/code/e1.31-test.py  |   70 -
 .../pru-cookbook/01case/code/encoder_setup.sh |   49 -
 books/pru-cookbook/01case/code/fire.fseq      |  Bin 614428 -> 0 bytes
 .../pru-cookbook/01case/code/logic_install.sh |   34 -
 books/pru-cookbook/01case/code/main_pru1.c    |   53 -
 books/pru-cookbook/01case/code/my-config.json |   19 -
 books/pru-cookbook/01case/code/opc.py         |  177 -
 books/pru-cookbook/01case/code/pru1-servo.asm |  162 -
 books/pru-cookbook/01case/code/servo-test.c   |   84 -
 .../pru-cookbook/01case/code/servos_setup.sh  |   24 -
 books/pru-cookbook/02start/code/Makefile      |    1 -
 books/pru-cookbook/02start/code/ai.notes      |   59 -
 books/pru-cookbook/02start/code/hello.pru0.c  |   35 -
 .../pru-cookbook/02start/code/hello.pru1_1.c  |   35 -
 books/pru-cookbook/02start/code/hello2.pru0.c |   42 -
 books/pru-cookbook/02start/code/hello2.pru1.c |   43 -
 .../pru-cookbook/02start/code/hello2.pru1_0.c |   63 -
 .../pru-cookbook/02start/code/hello2.pru1_1.c |   63 -
 .../pru-cookbook/02start/code/hello2.pru2_0.c |   63 -
 .../pru-cookbook/02start/code/hello2.pru2_1.c |   63 -
 books/pru-cookbook/02start/code/setup.sh      |    5 -
 books/pru-cookbook/02start/code/setup2.sh     |    5 -
 books/pru-cookbook/02start/start.rst          |   63 +-
 books/pru-cookbook/03details/code/Makefile    |    1 -
 .../03details/code/am335x_pru.cmd             |   87 -
 .../03details/code/encoder_setup.sh           |   49 -
 .../pru-cookbook/03details/code/gpio_setup.sh |   28 -
 .../03details/code/servos_setup.sh            |   24 -
 books/pru-cookbook/03details/details.rst      |   68 +-
 .../pru-cookbook/04debug/code/AM335x_PRU.cmd  |   86 -
 books/pru-cookbook/04debug/code/Makefile      |    1 -
 books/pru-cookbook/04debug/code/copyright.c   |   32 -
 .../04debug/code/resource_table_empty.h       |   72 -
 books/pru-cookbook/04debug/code/uart1.pru0.c  |   88 -
 .../pru-cookbook/04debug/code/uart1.pru1_0.c  |   90 -
 books/pru-cookbook/04debug/code/uart2.pru0.c  |  126 -
 .../pru-cookbook/04debug/code/uart2.pru1_0.c  |  126 -
 books/pru-cookbook/04debug/code/uart_setup.sh |   28 -
 books/pru-cookbook/05blocks/code/Makefile     |    1 -
 books/pru-cookbook/05blocks/code/copyright.c  |   32 -
 books/pru-cookbook/05blocks/code/input.pru0.c |   26 -
 .../pru-cookbook/05blocks/code/input_setup.sh |   27 -
 .../05blocks/code/module/.gitignore           |    1 -
 .../05blocks/code/module/Makefile             |   25 -
 .../05blocks/code/module/install.sh           |    6 -
 .../code/module/rpmsg_client_sample.c         |  102 -
 .../05blocks/code/module/rpmsg_pru.c          |  359 --
 .../05blocks/code/module/setup.sh             |    1 -
 .../pru-cookbook/05blocks/code/neo-colors.py  |   41 -
 .../pru-cookbook/05blocks/code/neo-rainbow.py |   27 -
 books/pru-cookbook/05blocks/code/neo1.pru0.c  |   44 -
 .../pru-cookbook/05blocks/code/neo1.pru1_1.c  |   44 -
 books/pru-cookbook/05blocks/code/neo2.pru0.c  |   46 -
 .../pru-cookbook/05blocks/code/neo2.pru1_1.c  |   46 -
 books/pru-cookbook/05blocks/code/neo3.pru0.c  |   67 -
 .../pru-cookbook/05blocks/code/neo3.pru1_1.c  |   67 -
 books/pru-cookbook/05blocks/code/neo4.pru0.c  |  145 -
 .../pru-cookbook/05blocks/code/neo4.pru1_1.c  |  145 -
 books/pru-cookbook/05blocks/code/neo_setup.sh |   28 -
 books/pru-cookbook/05blocks/code/pwm-test.c   |   74 -
 books/pru-cookbook/05blocks/code/pwm1.pru0.c  |   22 -
 .../pru-cookbook/05blocks/code/pwm1.pru1_1.c  |   22 -
 books/pru-cookbook/05blocks/code/pwm2.pru0.c  |   22 -
 books/pru-cookbook/05blocks/code/pwm3.pru0.c  |   43 -
 books/pru-cookbook/05blocks/code/pwm4.pru0.c  |   50 -
 books/pru-cookbook/05blocks/code/pwm5.pru0.c  |   53 -
 books/pru-cookbook/05blocks/code/pwm6.pru0.c  |   56 -
 books/pru-cookbook/05blocks/code/pwm7-test.c  |   83 -
 books/pru-cookbook/05blocks/code/pwm7.pru0.c  |   57 -
 books/pru-cookbook/05blocks/code/pwm7.pru1.c  |   57 -
 .../pru-cookbook/05blocks/code/pwm7_setup.sh  |   28 -
 books/pru-cookbook/05blocks/code/pwm8.pru0.c  |   78 -
 books/pru-cookbook/05blocks/code/pwm8.pru1.c  |   66 -
 books/pru-cookbook/05blocks/code/pwm_setup.sh |   28 -
 .../05blocks/code/resource_table_empty.h      |   39 -
 books/pru-cookbook/05blocks/code/rgb1.pru0.c  |   80 -
 books/pru-cookbook/05blocks/code/rgb2.pru0.c  |   81 -
 books/pru-cookbook/05blocks/code/rgb3.pru0.c  |  114 -
 books/pru-cookbook/05blocks/code/rgb4.pru0.c  |   84 -
 books/pru-cookbook/05blocks/code/rgb_black.h  |   31 -
 books/pru-cookbook/05blocks/code/rgb_pocket.h |   45 -
 .../pru-cookbook/05blocks/code/rgb_python.py  |   78 -
 .../05blocks/code/rgb_python_setup.sh         |   41 -
 books/pru-cookbook/05blocks/code/rgb_setup.sh |   41 -
 .../05blocks/code/rgb_white.pru0.c            |   64 -
 .../pru-cookbook/05blocks/code/shared.pru0.c  |   63 -
 .../05blocks/code/shared_setup.sh             |   28 -
 books/pru-cookbook/05blocks/code/sine.map     |  338 --
 books/pru-cookbook/05blocks/code/sine.pru0.c  |   58 -
 .../05blocks/code/write_init_pins.sh          |    9 -
 books/pru-cookbook/06io/code/Makefile         |    1 -
 books/pru-cookbook/06io/code/gpio.pru0.c      |   23 -
 books/pru-cookbook/06io/code/setup.sh         |   28 -
 books/pru-cookbook/06io/io.rst                |    2 +-
 books/pru-cookbook/07more/code/Makefile       |    1 -
 books/pru-cookbook/07more/code/copyright.c    |   33 -
 books/pru-cookbook/07more/code/cycle.pru0.c   |   32 -
 books/pru-cookbook/07more/code/cycle.pru0.lst | 3082 -----------------
 .../07more/code/delay-test.pru0.c             |   28 -
 .../07more/code/delay-test2.pru0.c            |   32 -
 books/pru-cookbook/07more/code/delay.pru0.asm |    9 -
 .../pru-cookbook/07more/code/delay2.pru0.asm  |   15 -
 books/pru-cookbook/07more/code/logic.c        |   34 -
 books/pru-cookbook/07more/code/logic_setup.sh |   30 -
 .../07more/code/resource_table_pru0.h         |  105 -
 books/pru-cookbook/07more/code/setup.sh       |   30 -
 books/pru-cookbook/07more/code/xin.pru1.c     |   34 -
 .../07more/code/xout-cycle.pru0.c             |   62 -
 books/pru-cookbook/07more/code/xout.pru0.c    |   52 -
 books/pru-cookbook/07more/code/xout_run.sh    |    3 -
 books/pru-cookbook/07more/more.rst            |   62 +-
 books/pru-cookbook/08ai/ai.rst                |   26 +-
 books/pru-cookbook/08ai/code/Makefile         |    1 -
 books/pru-cookbook/08ai/code/pwm1.pru2_1.c    |   24 -
 books/pru-cookbook/code                       |    1 +
 books/pru-cookbook/projects.rst               |   18 +-
 intro/contribution/git-usage.rst              |    2 +-
 intro/support/getting-started.rst             |    2 +-
 projects/simppru/examples/read_counter.rst    |    2 +-
 137 files changed, 197 insertions(+), 9088 deletions(-)
 delete mode 100644 books/pru-cookbook/01case/code/blink.sim
 delete mode 100755 books/pru-cookbook/01case/code/circle.py
 delete mode 100755 books/pru-cookbook/01case/code/e1.31-test.py
 delete mode 100755 books/pru-cookbook/01case/code/encoder_setup.sh
 delete mode 100644 books/pru-cookbook/01case/code/fire.fseq
 delete mode 100644 books/pru-cookbook/01case/code/logic_install.sh
 delete mode 100644 books/pru-cookbook/01case/code/main_pru1.c
 delete mode 100644 books/pru-cookbook/01case/code/my-config.json
 delete mode 100755 books/pru-cookbook/01case/code/opc.py
 delete mode 100644 books/pru-cookbook/01case/code/pru1-servo.asm
 delete mode 100644 books/pru-cookbook/01case/code/servo-test.c
 delete mode 100755 books/pru-cookbook/01case/code/servos_setup.sh
 delete mode 100644 books/pru-cookbook/02start/code/Makefile
 delete mode 100644 books/pru-cookbook/02start/code/ai.notes
 delete mode 100644 books/pru-cookbook/02start/code/hello.pru0.c
 delete mode 100644 books/pru-cookbook/02start/code/hello.pru1_1.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru0.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru1.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru1_0.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru1_1.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru2_0.c
 delete mode 100644 books/pru-cookbook/02start/code/hello2.pru2_1.c
 delete mode 100755 books/pru-cookbook/02start/code/setup.sh
 delete mode 100755 books/pru-cookbook/02start/code/setup2.sh
 delete mode 100644 books/pru-cookbook/03details/code/Makefile
 delete mode 100644 books/pru-cookbook/03details/code/am335x_pru.cmd
 delete mode 100755 books/pru-cookbook/03details/code/encoder_setup.sh
 delete mode 100755 books/pru-cookbook/03details/code/gpio_setup.sh
 delete mode 100755 books/pru-cookbook/03details/code/servos_setup.sh
 delete mode 100644 books/pru-cookbook/04debug/code/AM335x_PRU.cmd
 delete mode 100644 books/pru-cookbook/04debug/code/Makefile
 delete mode 100644 books/pru-cookbook/04debug/code/copyright.c
 delete mode 100644 books/pru-cookbook/04debug/code/resource_table_empty.h
 delete mode 100644 books/pru-cookbook/04debug/code/uart1.pru0.c
 delete mode 100644 books/pru-cookbook/04debug/code/uart1.pru1_0.c
 delete mode 100644 books/pru-cookbook/04debug/code/uart2.pru0.c
 delete mode 100644 books/pru-cookbook/04debug/code/uart2.pru1_0.c
 delete mode 100644 books/pru-cookbook/04debug/code/uart_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/Makefile
 delete mode 100644 books/pru-cookbook/05blocks/code/copyright.c
 delete mode 100644 books/pru-cookbook/05blocks/code/input.pru0.c
 delete mode 100755 books/pru-cookbook/05blocks/code/input_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/module/.gitignore
 delete mode 100644 books/pru-cookbook/05blocks/code/module/Makefile
 delete mode 100755 books/pru-cookbook/05blocks/code/module/install.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/module/rpmsg_client_sample.c
 delete mode 100644 books/pru-cookbook/05blocks/code/module/rpmsg_pru.c
 delete mode 100755 books/pru-cookbook/05blocks/code/module/setup.sh
 delete mode 100755 books/pru-cookbook/05blocks/code/neo-colors.py
 delete mode 100755 books/pru-cookbook/05blocks/code/neo-rainbow.py
 delete mode 100644 books/pru-cookbook/05blocks/code/neo1.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo1.pru1_1.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo2.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo2.pru1_1.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo3.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo3.pru1_1.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo4.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/neo4.pru1_1.c
 delete mode 100755 books/pru-cookbook/05blocks/code/neo_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm-test.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm1.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm1.pru1_1.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm2.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm3.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm4.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm5.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm6.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm7-test.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm7.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm7.pru1.c
 delete mode 100755 books/pru-cookbook/05blocks/code/pwm7_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm8.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/pwm8.pru1.c
 delete mode 100755 books/pru-cookbook/05blocks/code/pwm_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/resource_table_empty.h
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb1.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb2.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb3.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb4.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb_black.h
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb_pocket.h
 delete mode 100755 books/pru-cookbook/05blocks/code/rgb_python.py
 delete mode 100755 books/pru-cookbook/05blocks/code/rgb_python_setup.sh
 delete mode 100755 books/pru-cookbook/05blocks/code/rgb_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/rgb_white.pru0.c
 delete mode 100644 books/pru-cookbook/05blocks/code/shared.pru0.c
 delete mode 100755 books/pru-cookbook/05blocks/code/shared_setup.sh
 delete mode 100644 books/pru-cookbook/05blocks/code/sine.map
 delete mode 100644 books/pru-cookbook/05blocks/code/sine.pru0.c
 delete mode 100755 books/pru-cookbook/05blocks/code/write_init_pins.sh
 delete mode 100644 books/pru-cookbook/06io/code/Makefile
 delete mode 100644 books/pru-cookbook/06io/code/gpio.pru0.c
 delete mode 100755 books/pru-cookbook/06io/code/setup.sh
 delete mode 100644 books/pru-cookbook/07more/code/Makefile
 delete mode 100644 books/pru-cookbook/07more/code/copyright.c
 delete mode 100644 books/pru-cookbook/07more/code/cycle.pru0.c
 delete mode 100644 books/pru-cookbook/07more/code/cycle.pru0.lst
 delete mode 100644 books/pru-cookbook/07more/code/delay-test.pru0.c
 delete mode 100644 books/pru-cookbook/07more/code/delay-test2.pru0.c
 delete mode 100644 books/pru-cookbook/07more/code/delay.pru0.asm
 delete mode 100644 books/pru-cookbook/07more/code/delay2.pru0.asm
 delete mode 100644 books/pru-cookbook/07more/code/logic.c
 delete mode 100644 books/pru-cookbook/07more/code/logic_setup.sh
 delete mode 100644 books/pru-cookbook/07more/code/resource_table_pru0.h
 delete mode 100644 books/pru-cookbook/07more/code/setup.sh
 delete mode 100644 books/pru-cookbook/07more/code/xin.pru1.c
 delete mode 100644 books/pru-cookbook/07more/code/xout-cycle.pru0.c
 delete mode 100644 books/pru-cookbook/07more/code/xout.pru0.c
 delete mode 100755 books/pru-cookbook/07more/code/xout_run.sh
 delete mode 100644 books/pru-cookbook/08ai/code/Makefile
 delete mode 100644 books/pru-cookbook/08ai/code/pwm1.pru2_1.c
 create mode 160000 books/pru-cookbook/code

diff --git a/.gitmodules b/.gitmodules
index 0c170ef1..4d6dbcd6 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/boards/beaglebone/ai-64/ch04.rst b/boards/beaglebone/ai-64/ch04.rst
index 866f1a78..4ea164d9 100644
--- a/boards/beaglebone/ai-64/ch04.rst
+++ b/boards/beaglebone/ai-64/ch04.rst
@@ -27,7 +27,7 @@ BeagleBone AI-64 is manufactured and warranted by partners listed at https://bea
 * Mark Yoder, professor at Rose-Hulman Institute of Technology
 * Kathy Giori, product engineer at ZEDEDA
 
-See `bbb.io/about <bbb.io/about>`_
+See `bbb.io/about <https://beagleboard.org/about>`_
 
 BeagleBone AI-64 has been designed by Seeed Studio (Seeed Development Limited) under guidance from BeagleBoard.org Foundation.
 
diff --git a/boards/beaglebone/ai-64/ch07.rst b/boards/beaglebone/ai-64/ch07.rst
index 81029ee7..64843aaa 100644
--- a/boards/beaglebone/ai-64/ch07.rst
+++ b/boards/beaglebone/ai-64/ch07.rst
@@ -35,7 +35,7 @@ The **GPIO** row is the expected gpio identifier number in the Linux
 kernel. 
 
 Each row includes the gpiochipX and pinY in the format of 
-`X Y`. You can use these values to direcly control the GPIO pins with the 
+`X Y`. You can use these values to directly control the GPIO pins with the 
 commands shown below.
 
 .. code::
diff --git a/boards/beaglebone/ai-64/ch11.rst b/boards/beaglebone/ai-64/ch11.rst
index 3298d419..a458bd15 100644
--- a/boards/beaglebone/ai-64/ch11.rst
+++ b/boards/beaglebone/ai-64/ch11.rst
@@ -11,7 +11,7 @@ All support for this design is through BeagleBoard.org community at: link: `Beag
 Hardware Design
 ------------------
 
-You can find all BeagleBone AI-64 hardware files `here <https://git.beagleboard.org/beagleboard/beaglebone-ai-64/-/tree/master/hw>`_ .
+You can find all BeagleBone AI-64 hardware files `here <https://git.beagleboard.org/beagleboard/beaglebone-ai-64>`_ under the `hw` folder.
 
 
 .. _software-updates:
diff --git a/boards/beaglebone/ai/ch12.rst b/boards/beaglebone/ai/ch12.rst
index a5700477..b225f981 100644
--- a/boards/beaglebone/ai/ch12.rst
+++ b/boards/beaglebone/ai/ch12.rst
@@ -30,6 +30,7 @@ the equipment.
 This Class A or B digital apparatus complies with Canadian ICES-003.
 Changes or modifications not expressly approved by the party responsible
 for compliance could void the user’s authority to operate the equipment.
+
 Cet appareil numérique de la classe A ou B est conforme à la norme
 NMB-003 du Canada. Les changements ou les modifications pas expressément
 approuvés par la partie responsible de la conformité ont pu vider
diff --git a/boards/beaglebone/black/ch07.rst b/boards/beaglebone/black/ch07.rst
index de80c32a..57022518 100644
--- a/boards/beaglebone/black/ch07.rst
+++ b/boards/beaglebone/black/ch07.rst
@@ -1175,7 +1175,11 @@ Serial cable is recommended as shown in *Figure 55* below.
 
 The cable can be purchased from several different places and must be the
 3.3V version TTL-232R-3V3. Information on the cable itself can be found
-direct from FTDI at: `pdf <http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL232R_CABLES.pdf>`_
+direct from FTDI at: `pdf <https://ftdichip.com/wp-content/uploads/2020/07/DS_USB_RS232_CABLES.pdf>`_
+
+.. note:
+
+   #TODO#: move accessory links to a single common document for all boards.
 
 Pin 1 of the cable is the black wire. That must align with the pin 1 on
 the board which is designated by the white dot next to the connector on
@@ -1183,7 +1187,7 @@ the board.
 
 Refer to the support WIKI `http://elinux.org/BeagleBoneBlack <http://elinux.org/BeagleBoneBlack>`_ for more sources of this cable and other options that will work.
 
-Table is the pinout of the connector as reflected in the schematic. It is the same as the FTDI cable which can be found at `http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf <http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf>`_ with the exception that only three pins are used on the board. The pin numbers are defined in *Table 14*. The signals are from the perspective of the board.
+Table is the pinout of the connector as reflected in the schematic. It is the same as the FTDI cable which can be found at `https://ftdichip.com/wp-content/uploads/2020/07/DS_USB_RS232_CABLES.pdf <https://ftdichip.com/wp-content/uploads/2020/07/DS_USB_RS232_CABLES.pdf>`_ with the exception that only three pins are used on the board. The pin numbers are defined in *Table 14*. The signals are from the perspective of the board.
 
 .. list-table:: J1 Serial Header Pins
    :header-rows: 1
diff --git a/boards/beaglebone/blue/accessories.rst b/boards/beaglebone/blue/accessories.rst
index 9bb37a61..3a44db18 100644
--- a/boards/beaglebone/blue/accessories.rst
+++ b/boards/beaglebone/blue/accessories.rst
@@ -3,6 +3,10 @@
 Accessories 
 ###############
 
+.. note::
+
+   #TODO#: We are going to work on a unified accessories page for all the boards and it should replace this.
+
 .. _chassis_and_kits:
 
 Chassis and kits
@@ -251,7 +255,8 @@ I2C devices
 ==============
 
 -  See
-   `One-Liner-Module-Tests#Grove_I2C_modules <One-Liner-Module-Tests#Grove_I2C_modules>`__
+   :ref:`One-Liner-Module-Tests#i2c <beaglebone-blue-one-liner-tests>`__
+-  See :ref:`bone101_i2c`.
 
 .. _uart_devices:
 
diff --git a/boards/beaglebone/blue/tests.rst b/boards/beaglebone/blue/tests.rst
index 6b89d828..944b9efe 100644
--- a/boards/beaglebone/blue/tests.rst
+++ b/boards/beaglebone/blue/tests.rst
@@ -9,7 +9,7 @@ ADC
 -  `Grove Rotary Angle
    Sensor <http://wiki.seeed.cc/Grove-Rotary_Angle_Sensor/>`__
    See output on adc_1
-   `source <https://github.com/StrawsonDesign/Robotics_Cape_Installer/blob/master/examples/rc_test_adc/rc_test_adc.c>`__
+   `source <https://git.beagleboard.org/beagleboard/librobotcontrol/-/blob/v1.1/examples/src/rc_test_adc.c>`__
 
 .. code:: bash
 
diff --git a/boards/beagleconnect/freedom/zephyr.rst b/boards/beagleconnect/freedom/zephyr.rst
index 60ab9573..a9e1dde8 100644
--- a/boards/beagleconnect/freedom/zephyr.rst
+++ b/boards/beagleconnect/freedom/zephyr.rst
@@ -127,7 +127,7 @@ Other systems
 Log into BeagleBone Green Gateway
 =================================
 
-These instructions assume an x86_64 computer runing Ubuntu 20.04.3 LTS, but any
+These instructions assume an x86_64 computer running Ubuntu 20.04.3 LTS, but any
 computer can be used to connect to your BeagleBone Green Gateway.
 
 #. Log onto the Seeed BeagleBone® Green Gateway using :code:`ssh`.
diff --git a/boards/pocketbeagle/original/ch06.rst b/boards/pocketbeagle/original/ch06.rst
index 39c36f61..e0ee74f7 100644
--- a/boards/pocketbeagle/original/ch06.rst
+++ b/boards/pocketbeagle/original/ch06.rst
@@ -195,8 +195,7 @@ Additional documentation is located on the Texas Instruments website at
 and also located at
 `http://github.com/beagleboard/am335x_pru_package. <http://github.com/beagleboard/am335x_pru_package>`__
 
-Example projects using the PRU-ICSS can be found at
-`processors.wiki.ti.com/index.php/PRU_Projects <http://processors.wiki.ti.com/index.php/PRU_Projects>`__.
+Example projects using the PRU-ICSS can be found in :ref:`pru-cookbook-home`.
 
 .. _pru_icss_features:
 
@@ -313,4 +312,4 @@ chart separately.
     | P2.34       | PRU0_5      | C13             | B3        |                              |                           | pr1_pru0_pru_r30_5 (Output)  | pr1_pru0_pru_r31_5 (Input)    |                                              |
     +-------------+-------------+-----------------+-----------+------------------------------+---------------------------+------------------------------+-------------------------------+----------------------------------------------+
     | P2.35       | A5/86       | U5              | F3        |                              |                           | pr1_pru1_pru_r30_8 (Output)  | pr1_pru1_pru_r31_8 (Input)    |                                              |
-    +-------------+-------------+-----------------+-----------+------------------------------+---------------------------+------------------------------+-------------------------------+----------------------------------------------+
\ No newline at end of file
+    +-------------+-------------+-----------------+-----------+------------------------------+---------------------------+------------------------------+-------------------------------+----------------------------------------------+
diff --git a/books/beaglebone-cookbook/01basics/basics.rst b/books/beaglebone-cookbook/01basics/basics.rst
index 95744e65..2d691dc6 100644
--- a/books/beaglebone-cookbook/01basics/basics.rst
+++ b/books/beaglebone-cookbook/01basics/basics.rst
@@ -313,7 +313,7 @@ This shows you a list of dates of the most recent Debian images (:ref:`basics_de
    Latest Debian images
 
 At the time of writing, we are using the *Bullseye* image.  
-Click on it's link. Scrolling up you'll find :ref:`basics_deb2`. 
+Click on its link. Scrolling up you'll find :ref:`basics_deb2`. 
 There are three types of snapshots, Minimal, IoT and Xfce Desktop. 
 IoT is the one we are running.
 
diff --git a/books/beaglebone-cookbook/02sensors/sensors.rst b/books/beaglebone-cookbook/02sensors/sensors.rst
index 79a3bf0e..d957ff08 100644
--- a/books/beaglebone-cookbook/02sensors/sensors.rst
+++ b/books/beaglebone-cookbook/02sensors/sensors.rst
@@ -684,7 +684,7 @@ tools to test the device. Because these are Linux command-line tools,
 you have to use *2* as the bus number. *i2cdetect*, shown in :ref:`js_i2cTools`, 
 shows which |I2C|  devices are on the bus. The *-r* flag indicates which bus to use. 
 Our TMP101 is appearing at address *0x498*. You can use the *i2cget* command to read 
-the value. It returns the temperature in hexidecimal and degrees C. 
+the value. It returns the temperature in hexadecimal and degrees C. 
 In this example, 0x18 = 24{deg}C, which is 75.2{deg}F. (Hmmm, the office is a bit warm today.) 
 Try warming up the TMP101 with your finger and running *i2cget* again.
 
diff --git a/books/beaglebone-cookbook/09capes/capes.rst b/books/beaglebone-cookbook/09capes/capes.rst
index 8374b0a9..07b81f1f 100644
--- a/books/beaglebone-cookbook/09capes/capes.rst
+++ b/books/beaglebone-cookbook/09capes/capes.rst
@@ -796,7 +796,7 @@ and PCB shown in :ref:`capes_miniDisplay_pcb`.
     PCB for MiniDisplay cape
 
 .. note::
-   #TODO#: The MiniDisplay cape is not currently available, so this example should be udpated.
+   #TODO#: The MiniDisplay cape is not currently available, so this example should be updated.
 
 A good starting point is to take the PCB layout for the MiniDisplay and edit it for your project. 
 The connectors for +P8+ and +P9+ are already in place and ready to go.
@@ -1153,10 +1153,14 @@ Solution
 ---------
 
 Complete capes have an |I2C| EEPROM on board that contains configuration information that is read at boot time. 
-`Adventures in BeagleBone Cape EEPROMs <http://bit.ly/1Fb64uF>`_ gives a helpful description of two methods for 
-programming the EEPROM.  `How to Roll your own BeagleBone Capes <http://bit.ly/1E5M7RJ>`_ is a good four-part 
+`Adventures in BeagleBone Cape EEPROMs <https://web.archive.org/web/20190108195421/http://azkeller.com:80/blog/?p=62>`_ gives a helpful description of two methods for 
+programming the EEPROM.  `How to Roll your own BeagleBone Capes <https://web.archive.org/web/20200222204651/http://papermint-designs.com/community/taxonomy/term/68>`_ is a good four-part 
 series on creating a cape, including how to wire and program the EEPROM.
 
+.. note::
+
+   The current effort to document how to enable software for a cape is ongoing at https://docs.beagleboard.org/latest/boards/capes.
+
 .. _capes_production:
 
 Putting Your Cape Design into Production
@@ -1172,7 +1176,7 @@ Solution
 ---------
 
 `CircuitHub <https://circuithub.com/>`_ offers a great tool to get a quick quote on assembled PCBs. 
-To make things simple, I downloaded the `CircuitCo MiniDisplay Cape Eagle design materials <https://elinux.org/Special:Badtitle/NS500:MiniDisplay_Cape>`_
+To make things simple, I downloaded the `CircuitCo MiniDisplay Cape Eagle design materials <https://elinux.org/MiniDisplay_Cape>`_
 and uploaded them to CircuitHub.
 
 After the design is uploaded, you'll need to review the parts to verify that CircuitHub has or 
diff --git a/books/beaglebone-cookbook/10parts/parts.rst b/books/beaglebone-cookbook/10parts/parts.rst
index a952cf1d..bc445be2 100644
--- a/books/beaglebone-cookbook/10parts/parts.rst
+++ b/books/beaglebone-cookbook/10parts/parts.rst
@@ -52,8 +52,6 @@ with jumper wires, and <<parts_breadboard>> shows where you can get breadboards.
     +-------------+--------------------------------------------------------------------------------------------+
     | Digikey     | http://www.digikey.com/product-detail/en/TW-E012-000/438-1049-ND/643115                    |
     +-------------+--------------------------------------------------------------------------------------------+
-    | RadioShack  | http://www.radioshack.com/solderless-breadboard-jumper-wire-kit/2760173.html#.VG5i1PnF8fA  |
-    +-------------+--------------------------------------------------------------------------------------------+
     | SparkFun    | https://www.sparkfun.com/products/124                                                      |
     +-------------+--------------------------------------------------------------------------------------------+
 
@@ -73,7 +71,7 @@ with jumper wires, and <<parts_breadboard>> shows where you can get breadboards.
     +-------------+---------------------------------------------------------------------------------------------------------------------------------------------+
     | SparkFun    | https://www.sparkfun.com/search/results?term=breadboard                                                                                     |
     +-------------+---------------------------------------------------------------------------------------------------------------------------------------------+
-    | CircuitCo   | http://elinux.org/CircuitCo:BeagleBone_Breadboard                                                                                           |
+    | CircuitCo   | https://elinux.org/BeagleBoneBreadboard (no longer manufactured, but design available)                                                      |
     +-------------+---------------------------------------------------------------------------------------------------------------------------------------------+
 
 If you want something more permanent, try `Adafruit's Perma-Proto Breadboard <https://www.adafruit.com/product/1609>`_, laid out like a breadboard.
@@ -234,7 +232,3 @@ Here are some things that don't fit in the other categories.
     | Nokia 5110 LCD                                      | `Adafruit 5110 LCD <http://bit.ly/1Ag6LgG>`_,                                         |
     |                                                     | `SparkFun 5110 LCD <http://bit.ly/19cizdu>`_                                          |
     +-----------------------------------------------------+---------------------------------------------------------------------------------------+
-    | BeagleBone LCD7                                     | `eLinux LCD7 <http://elinux.org/CircuitCo:BeagleBone_LCD7#Distributors>`_             |
-    +-----------------------------------------------------+---------------------------------------------------------------------------------------+
-    | MiniDisplay Cape                                    | `eLinux minidisplay <http://elinux.org/CircuitCo:MiniDisplay_Cape>`_                  |
-    +-----------------------------------------------------+---------------------------------------------------------------------------------------+
diff --git a/books/beaglebone-cookbook/code b/books/beaglebone-cookbook/code
index 269209bc..e103135d 160000
--- a/books/beaglebone-cookbook/code
+++ b/books/beaglebone-cookbook/code
@@ -1 +1 @@
-Subproject commit 269209bc64423a06e8caf11b91c7468805b287b2
+Subproject commit e103135d4cd1387e0bfa37b468e3137b9a34e60f
diff --git a/books/pru-cookbook/01case/case.rst b/books/pru-cookbook/01case/case.rst
index a07cfd58..6cc17c58 100644
--- a/books/pru-cookbook/01case/case.rst
+++ b/books/pru-cookbook/01case/case.rst
@@ -113,14 +113,14 @@ via the PRU that can be used out of the box.
 
 Just run:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
    bone$ sudo rc_test_servos -f 10 -p 1.5
 
 The ``-f 10`` says to use a frequency of 10 Hz and the ``-p 1.5`` says to set the position to ``1.5``.  The range of positions is
 ``-1.5`` to ``1.5``.   Run ``rc_test_servos -h`` to see all the options.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
    bone$ rc_test_servos -h
 
@@ -229,9 +229,9 @@ Solution
 The forth encoder can be implemented on the PRU. If you run ``rc_test_encoders_eqep`` 
 on the Blue, you will see the output of encoders E1-E3 which are connected to the eEQP hardware.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   bone$ *rc_test_encoders_eqep* 
+   bone$ rc_test_encoders_eqep
 
    Raw encoder positions
          E1   |      E2   |      E3   | 
@@ -288,13 +288,13 @@ Solution
 The forth encoder is implemented on the PRU and accessed with `sudo rc_test_encoders_pru`  
 
 .. note::
-   This command needs root permission, so the `sudo` is needed.  
+   This command needs root permission, so the `sudo` is needed.  The default password is `temppwd`.
 
 Here's what you will see
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   bone$ *sudo rc_test_encoders_pru*
+   bone$ sudo rc_test_encoders_pru
    [sudo] password for debian: 
 
    Raw encoder position
@@ -343,17 +343,17 @@ If you want to be running a newer image, there are instructions on the site for
 
 .. _case_installing_beaglelogic:
 
-.. code-block:: bash
+.. code-block:: shell-session
    :caption: Installing BeagleLogic
       
-   bone$ *git clone https://github.com/abhishek-kakkar/BeagleLogic*
-   bone$ *cd BeagleLogic/kernel*
-   bone$ *mv beaglelogic-00A0.dts beaglelogic-00A0.dts.orig*
-   bone$ *wget https://gist.githubusercontent.com/abhishek-kakkar/0761ef7b10822cff4b3efd194837f49c/raw/eb2cf6cfb59ff5ccb1710dcd7d4a40cc01cfc050/beaglelogic-00A0.dts*
-   bone$ *make overlay*
-   bone$ *sudo cp beaglelogic-00A0.dtbo /lib/firmware/*
-   bone$ *sudo update-initramfs -u -k \`uname -r`*
-   bone$ *sudo reboot*
+   bone$ git clone https://github.com/abhishek-kakkar/BeagleLogic
+   bone$ cd BeagleLogic/kernel
+   bone$ mv beaglelogic-00A0.dts beaglelogic-00A0.dts.orig
+   bone$ wget https://gist.githubusercontent.com/abhishek-kakkar/0761ef7b10822cff4b3efd194837f49c/raw/eb2cf6cfb59ff5ccb1710dcd7d4a40cc01cfc050/beaglelogic-00A0.dts
+   bone$ make overlay
+   bone$ sudo cp beaglelogic-00A0.dtbo /lib/firmware/
+   bone$ sudo update-initramfs -u -k \`uname -r`
+   bone$ sudo reboot
 
 Once the Bone has rebooted, browse to 192.168.7.2:4000 where you'll see
 :ref:`case_beaglelogic_capture`.  Here you can easily select the sample
@@ -386,17 +386,17 @@ logic analyzer on the Bone with no additional hardware needed.
 The kernel interface makes it easy to control the PRUs through the
 command line.  For example
 
-.. code-block:: bash
+.. code-block:: shell-session
       
-   bone$ *dd if=/dev/beaglelogic of=mydump bs=1M count=1*
+   bone$ dd if=/dev/beaglelogic of=mydump bs=1M count=1
 
 will capture a binary dump from the PRUs. The sample rate and number of 
 bits per sample can be controlled through ``/sys/``.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   bone$ *cd /sys/devices/virtual/misc/beaglelogic*
-   bone$ *ls*
+   bone$ cd /sys/devices/virtual/misc/beaglelogic
+   bone$ ls
    buffers      filltestpattern  power       state         uevent
    bufunitsize  lasterror        samplerate  subsystem
    dev          memalloc         sampleunit  triggerflags
@@ -407,9 +407,9 @@ bits per sample can be controlled through ``/sys/``.
 
 You can set the sample rate by simply writing to ``samplerate``.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   bone$ *echo 100000000 > samplerate*
+   bone$ echo 100000000 > samplerate
 
 `sysfs attributes Reference <https://beaglelogic.readthedocs.io/en/latest/sysfs_attributes.html>`_
 has more details on configuring via sysfs.
@@ -417,9 +417,9 @@ has more details on configuring via sysfs.
 If you run ``dmesg -Hw`` in another window you can see when a capture 
 is started and stopped.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   bone$ *dmesg -Hw*
+   bone$ dmesg -Hw
    [Jul25 08:46] misc beaglelogic: capture started with sample rate=100000000 Hz, sampleunit=1, triggerflags=0
    [  +0.086261] misc beaglelogic: capture session ended
 
@@ -583,11 +583,11 @@ explaining how the PRUs get this type of performance.
 
   .. _case_e1.31_example:
 
-  .. literalinclude:: code/e1.31-test.py
+  .. literalinclude:: ../code/01start/e1.31-test.py
      :caption: e1.31-test.py -Example of generating packets to control the NeoPixels
      :linenos:
 
-  :download:`e1.31-test.py <code/e1.31-test.py>` 
+  :download:`e1.31-test.py <../code/01start/e1.31-test.py>` 
 
   .. TODO document the code
 
@@ -748,10 +748,10 @@ following instructions at https://xlights.org/releases/.
 
 Run xLights and you'll see :ref:`case_xlights_setup`.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-   host$ *chmod +x xLights-2021.18-x86_64.AppImage*
-   host$ *./xLights-2021.18-x86_64.AppImage*
+   host$ chmod +x xLights-2021.18-x86_64.AppImage
+   host$ ./xLights-2021.18-x86_64.AppImage
 
 .. TODO update the figures.
 
@@ -985,7 +985,7 @@ You can `build simpPRU <https://simppru.readthedocs.io/en/latest/install/build/>
 source, more easily just `install it <https://simppru.readthedocs.io/en/latest/install/install/>`_. 
 On the Beagle run:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
    bone$ wget https://github.com/VedantParanjape/simpPRU/releases/download/1.4/simppru-1.4-armhf.deb
    bone$ sudo dpkg -i simppru-1.4-armhf.deb
@@ -996,15 +996,15 @@ Now, suppose you wanted to run the
 `LED blink <https://simppru.readthedocs.io/en/latest/examples/led_blink/>`_
 example which is reproduced here.
 
-.. literalinclude:: code/blink.sim
+.. literalinclude:: ../code/01start/blink.sim
    :caption: LED Blink (blink.sim)
    :linenos:
 
-:download:`blink.sim <code/blink.sim>`
+:download:`blink.sim <../code/01start/blink.sim>`
 
 Just run simppru
 
-.. code-block:: bash
+.. code-block:: shell-session
 
    bone$ simppru blink.sim --load 
    Detected TI AM335x PocketBeagle
@@ -1019,7 +1019,7 @@ Detected TI AM335x PocketBeagle
 The +--load+ flag caused the compiled code to be copied to +/lib/firmware+.
 To start just do:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
    bone$ cd /dev/remoteproc/pruss-core0/
    bone$ ls
diff --git a/books/pru-cookbook/01case/code/blink.sim b/books/pru-cookbook/01case/code/blink.sim
deleted file mode 100644
index 212a2168..00000000
--- 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 1feb41cc..00000000
--- 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 6016c9eb..00000000
--- 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 ffc4ad68..00000000
--- 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
GIT binary patch
literal 0
HcmV?d00001

literal 614428
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%0Dx5r6{zeP
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
Lc7CuLTlW6|<qhqc

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 7fb76122..00000000
--- 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 2216a9ed..00000000
--- 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 definition can be
-// separately 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 d1534cff..00000000
--- 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 36a3bbd6..00000000
--- 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 c8e66e52..00000000
--- 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 1f94e274..00000000
--- 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 330e8f34..00000000
--- 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 a7557fda..00000000
--- 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 d11ac1d4..00000000
--- 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 239a7ad0..00000000
--- 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 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 51a1b351..00000000
--- 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 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 a9be0143..00000000
--- 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 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 c3455870..00000000
--- 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 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 564e1bc9..00000000
--- 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 564e1bc9..00000000
--- 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 564e1bc9..00000000
--- 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 564e1bc9..00000000
--- 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 eaf9943a..00000000
--- 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 76dd6713..00000000
--- 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 e7a40243..3889fa93 100644
--- a/books/pru-cookbook/02start/start.rst
+++ b/books/pru-cookbook/02start/start.rst
@@ -9,8 +9,9 @@ latest software image on your beagle, how to run the Cloud9 IDE and how to
 blink an LED.
 
 If you already have your Beagle and know your way around it, you can find the
-code (and the whole book) on the PRU Cookbook github site: 
-https://github.com/MarkAYoder/PRUCookbook. 
+code at https://git.beagleboard.org/beagleboard/pru-cookbook-code and book
+contents at https://git.beagleboard.org/docs/docs.beagleboard.io under the
+books/pru-cookbook directory.
 
 Selecting a Beagle
 ********************
@@ -256,12 +257,12 @@ as shown in :ref:`start_c9_show_home`.
 
 If you want to edit files beyond your home directory you can link to the root file system by:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ *cd*
-    bone$ *ln -s / root*
-    bone$ *cd root*
-    bone$ *ls*
+    bone$ cd
+    bone$ ln -s / root
+    bone$ cd root
+    bone$ ls
     bbb-uEnv.txt  boot  etc   ID.txt  lost+found  mnt           opt   root  sbin  sys  usr
     bin           dev   home  lib     media       nfs-uEnv.txt  proc  run   srv   tmp  var
 
@@ -278,29 +279,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.
 
@@ -322,19 +323,19 @@ is some code that blinks the ``USR3`` LED ten times using the PRU.
 
 .. _start_hello:
 
-.. literalinclude:: code/hello.pru0.c
+.. literalinclude:: ../code/02start/hello.pru0.c
     :caption: hello.pru0.c
     :linenos:
 
-:download:`hello.pru0.c <code/hello.pru0.c>`
+:download:`hello.pru0.c <../code/02start/hello.pru0.c>`
 
 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 +348,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 +367,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 a7557fda..00000000
--- 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 67005475..00000000
--- 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 ffc4ad68..00000000
--- 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 e676ed7a..00000000
--- 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 330e8f34..00000000
--- 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/03details/details.rst b/books/pru-cookbook/03details/details.rst
index 8052ff00..6dd6cddd 100644
--- a/books/pru-cookbook/03details/details.rst
+++ b/books/pru-cookbook/03details/details.rst
@@ -32,15 +32,15 @@ Solution
 
 It's all on a GitHub repository.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ git clone https://github.com/MarkAYoder/PRUCookbook.git
+    bone$ git clone https://git.beagleboard.org/beagleboard/pru-cookbook-code
 
+.. note::
+   #TODO#: The version of code used needs to be noted in the documentation.
 
 .. note::
-   #TODO#: There needs to be a code-only repo that is validated against the documentation
-   code to be identical for specific version. The version needs to be noted in the
-   documentation.
+   #TODO#: Why is this documented in multiple places?
 
 .. _compiling_with_clpru_and_lnkpru:
 
@@ -58,7 +58,7 @@ Solution
 The PRU compiler and linker are already installed on many images.
 They are called ``clpru`` and ``lnkpru``.  Do the following to see if ``clpru`` is installed.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ which clpru
     /usr/bin/clpru
@@ -69,7 +69,7 @@ They are called ``clpru`` and ``lnkpru``.  Do the following to see if ``clpru``
     https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#TI_PRU_Code_Generation_Tools
     to install it.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ sudo apt update
     bone$ sudo apt install ti-pru-cgt-installer
@@ -85,7 +85,7 @@ In fact there are PRU versions of many of the standard code generation tools.
 code tools
 ~~~~~~~~~~~
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ ls /usr/bin/*pru
     /usr/bin/abspru    /usr/bin/clistpru  /usr/bin/hexpru      /usr/bin/ofdpru
@@ -109,13 +109,13 @@ Solution
 
 Edit ``/boot/uEnv.txt`` and enble pru_rproc by doing the following.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ *sudo vi /boot/uEnv.txt*
+    bone$ sudo vi /boot/uEnv.txt
 
 Around line 40 you will see:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     ###pru_rproc (4.19.x-ti kernel)
     uboot_overlay_pru=AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
@@ -123,7 +123,7 @@ Around line 40 you will see:
 Uncomment the ``uboot_overlay`` line as shown and then reboot.
 ``/dev/remoteproc`` should now be there.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ sudo reboot
     bone$ ls -ls /dev/remoteproc/
@@ -144,15 +144,15 @@ Solution
 
 Change to the directory of the code you want to run.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-    bone$ cd PRUCookbook/docs/06io/code
+    bone$ cd pru-cookbook-code/06io
     bone$ ls
     gpio.pru0.c  Makefile  setup.sh
 
 Source the setup file.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ source setup.sh
     TARGET=gpio.pru0
@@ -163,7 +163,7 @@ Source the setup file.
 
 Now you are ready to compile and run.  This is automated for you in the Makefile
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ make
     /var/lib/cloud9/common/Makefile:28: MODEL=TI_AM335x_BeagleBone_Black,TARGET=gpio.pru0,COMMON=/var/lib/cloud9/common
@@ -197,7 +197,7 @@ The file extension ``.pru0`` specifies the number of the PRU you are using
 
 You can override the ``TARGET`` on the command line.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cp gpio.pru0.c gpio.pru1.c
     bone$ export TARGET=gpio.pru1
@@ -206,7 +206,7 @@ Notice the ``TARGET`` doesn't have the ``.c`` on the end.
 
 You can also specify them when running ``make``.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cp gpio.pru0.c gpio.pru1.c
     bone$ make TARGET=gpio.pru1
@@ -215,11 +215,11 @@ The setup file also contains instructions to figure out which Beagle you are run
 and then configure the pins accordingly.
 
 
-.. literalinclude:: code/gpio_setup.sh
+.. literalinclude:: ../code/06io/gpio_setup.sh
    :caption: gpio_setup.sh
    :linenos:
 
-:download:`gpio_setup.sh <code/gpio_setup.sh>`
+:download:`gpio_setup.sh <../code/06io/gpio_setup.sh>`
 
 .. table::
 
@@ -257,7 +257,7 @@ Solution
 
 It's easy, if you already have ``TARGET`` set up:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ make stop
     -    Stopping PRU 0
@@ -272,7 +272,7 @@ is stopped.
 This assumes ``TARGET`` is set to the PRU you are using.
 If you want to control the other PRU use:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cp gpio.pru0.c gpio.pru1.c
     bone$ make TARGET=gpio.pru1
@@ -304,11 +304,11 @@ It's assumed you already know how Makefiles work.  If not, there are
 many resources online that can bring you up to speed.
 Here is the local ``Makefile`` used throughout this book.
 
-.. literalinclude:: code/Makefile
+.. literalinclude:: ../code/06io/Makefile
    :caption: Local Makefile
    :linenos:
 
-:download:`Makefile <code/Makefile>`
+:download:`Makefile <../code/06io/Makefile>`
 
 Each of the local Makefiles refer to the same standard Makefile. The details
 of how the Makefile works is beyond the scope of this cookbook.
@@ -335,11 +335,11 @@ The ``am57xx_pru.cmd`` does the same for the AI.
 Both files can be found in ``/var/lib/cloud9/common``.
 
 
-.. literalinclude:: code/am335x_pru.cmd
+.. literalinclude:: ../code/06io/am335x_pru.cmd
    :caption: am335x_pru.cmd
    :linenos:
 
-:download:`am335x_pru.cmd <code/am335x_pru.cmd>`
+:download:`am335x_pru.cmd <../code/06io/am335x_pru.cmd>`
 
 .. TODO does  this need updating?
 
@@ -412,7 +412,7 @@ The PRUs appear in the Linux file space at ``/dev/remoteproc/``.
 Finding the PRUs
 ~~~~~~~~~~~~~~~~~~~
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cd /dev/remoteproc/
     bone$ ls
@@ -420,7 +420,7 @@ Finding the PRUs
 
 Or if you are on the AI:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cd /dev/remoteproc/
     bone$ ls
@@ -430,7 +430,7 @@ You see there that the AI has two pairs of PRUs, plus a couple of DSPs and other
 
 Here we see PRU 0 and PRU 1 in the path.  Let's follow PRU 0.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cd pruss-core0
     bone$ ls
@@ -439,7 +439,7 @@ Here we see PRU 0 and PRU 1 in the path.  Let's follow PRU 0.
 Here we see the files that control PRU 0.  ``firmware`` tells where in ``/lib/firmware``
 to look for the code to run on the PRU.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
     bone$ cat firmware
     am335x-pru0-fw
@@ -464,11 +464,11 @@ everything is already configured for you.
 If you are on the Black or Pocket you'll need to run the following script.
 
 
-.. literalinclude:: code/servos_setup.sh
+.. literalinclude:: ../code/06io/servos_setup.sh
    :caption: servos_setup.sh
    :linenos:
 
-:download:`servos_setup.sh <code/servos_setup.sh>`
+:download:`servos_setup.sh <../code/06io/servos_setup.sh>`
 
 Discussion
 -----------
@@ -494,11 +494,11 @@ It depends on which Beagle you are running on.  If you are on the AI or Blue,
 everything is already configured for you.
 If you are on the Black or Pocket you'll need to run the following script.
 
-.. literalinclude:: code/encoder_setup.sh
+.. literalinclude:: ../code/06io/encoder_setup.sh
    :caption: encoder_setup.sh
    :linenos:
 
-:download:`encoder_setup.sh <code/encoder_setup.sh>`
+:download:`encoder_setup.sh <../code/06io/encoder_setup.sh>`
 
 Discussion
 -----------
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 b62f0440..00000000
--- 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 a7557fda..00000000
--- 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 a34918fa..00000000
--- 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 c14bd2b2..00000000
--- 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 e9b40d5c..00000000
--- 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 4c558bb9..00000000
--- 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 56ca985d..00000000
--- 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 c934ef7d..00000000
--- 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 db11d1f4..00000000
--- 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 a7557fda..00000000
--- 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 a34918fa..00000000
--- 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 9ed5d3b7..00000000
--- 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 35a0d9c3..00000000
--- 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 9b6dfc43..00000000
--- 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 9ca05d05..00000000
--- 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 89f497f0..00000000
--- 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 72b24524..00000000
--- 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 5a96b209..00000000
--- 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 3b313b36..00000000
--- 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 736a47b3..00000000
--- 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 ffd706a6..00000000
--- 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 5f2ce824..00000000
--- 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 2ad8d56d..00000000
--- 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 a30077ce..00000000
--- 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 6b243dcf..00000000
--- 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 8c1a9f13..00000000
--- 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 ee8dd638..00000000
--- 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 7fb54557..00000000
--- 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 7c120937..00000000
--- 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 8f98cbb2..00000000
--- 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 3bff5f71..00000000
--- 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 2ea5caa1..00000000
--- 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 1f8b737e..00000000
--- 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 bfa0d076..00000000
--- 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 4b2955a0..00000000
--- 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 ee0f7ec6..00000000
--- 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 60a97b81..00000000
--- 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 6df321f5..00000000
--- 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 cbb67698..00000000
--- 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 b95c5caa..00000000
--- 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 50d4788b..00000000
--- 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 aae4c778..00000000
--- 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 25499c3c..00000000
--- 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 interrupts so the PRUs can be synchronized.
-// 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 7d4da138..00000000
--- 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 interrupts so the PRUs can be synchronized.
-// 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 b69ed129..00000000
--- 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 07e97d9b..00000000
--- 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 9936d627..00000000
--- 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 eb43b357..00000000
--- 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 b14ad864..00000000
--- 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 6d06f121..00000000
--- 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 be7cf4ba..00000000
--- 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 45a91118..00000000
--- 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 25e35334..00000000
--- 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 72106746..00000000
--- 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 fc545144..00000000
--- 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 e62d98e0..00000000
--- 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 95d87c5d..00000000
--- 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 eefbcd55..00000000
--- 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 45872d39..00000000
--- 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 ed6b5778..00000000
--- 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 f5208236..00000000
--- 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 a7557fda..00000000
--- 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 bcab90ef..00000000
--- 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 e676ed7a..00000000
--- 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/06io/io.rst b/books/pru-cookbook/06io/io.rst
index ad4fdd59..b01cf603 100644
--- a/books/pru-cookbook/06io/io.rst
+++ b/books/pru-cookbook/06io/io.rst
@@ -189,7 +189,7 @@ If you are using an oscilloscope, look closely and you'll see the following.
 
     PWM with jitter
 
-The PRU is still as solid as before in it's timing, but now it's going through
+The PRU is still as solid as before in its timing, but now it's going through
 the OCP interface.  This interface is shared with other parts of the system,
 therefore the sometimes the PRU must wait for the other parts to finish.  
 When this happens the pulse width is a bit longer than usual thus adding
diff --git a/books/pru-cookbook/07more/code/Makefile b/books/pru-cookbook/07more/code/Makefile
deleted file mode 100644
index a7557fda..00000000
--- 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 63b6a419..00000000
--- 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 3217c2eb..00000000
--- 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 written 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 d10187ef..00000000
--- 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 written 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 9061e256..00000000
--- 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 definition can be
-// separately 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 7830ab9a..00000000
--- 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 definition can be
-// separately 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 1c1cce7d..00000000
--- 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 a66aa74d..00000000
--- 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 return 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 f774708d..00000000
--- 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 2253459c..00000000
--- 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 06c14800..00000000
--- 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 f1d0d9db..00000000
--- 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 56d4a682..00000000
--- 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 339fedfc..00000000
--- 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 bfcdbf5f..00000000
--- 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 158cf472..00000000
--- 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/07more/more.rst b/books/pru-cookbook/07more/more.rst
index 5965b10d..5f24de08 100644
--- a/books/pru-cookbook/07more/more.rst
+++ b/books/pru-cookbook/07more/more.rst
@@ -43,37 +43,37 @@ constant.  Our new ``delay_cycles`` can take a runtime delay value.
 
 .. _more_delay-test:
 
-.. literalinclude:: code/delay-test.pru0.c
+.. literalinclude:: ../code/07more/delay-test.pru0.c
    :caption: delay-test.pru0.c
    :linenos:
 
-:download:`delay-test.pru0.c <code/delay-test.pru0.c>`
+:download:`delay-test.pru0.c <../code/07more/delay-test.pru0.c>`
 
 :ref:`more_delay` is the assembly code.
 
 .. _more_delay:
 
-.. literalinclude:: code/delay.pru0.asm
+.. literalinclude:: ../code/07more/delay.pru0.asm
    :caption: delay.pru0.asm
    :linenos:
 
-:download:`delay.pru0.asm <code/delay.pru0.asm>`
+:download:`delay.pru0.asm <../code/07more/delay.pru0.asm>`
 
 The ``Makefile`` has one addition that needs to be made to compile both :ref:`more_delay-test`
 and :ref:`more_delay`. If you look in the local ``Makefile`` you'll see:
 
 .. _more_makefile:
 
-.. literalinclude:: code/Makefile
+.. literalinclude:: ../code/07more/Makefile
    :caption: Makefile
    :linenos:
 
-:download:`Makefile <code/Makefile>`
+:download:`Makefile <../code/07more/Makefile>`
 
 This Makefle includes a common Makefile at  ``/var/lib/cloud9/common/Makefile``, this the Makefile 
 you need to edit. Edit ``/var/lib/cloud9/common/Makefile`` and go to line 195.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
   $(GEN_DIR)/%.out: $(GEN_DIR)/%.o *$(GEN_DIR)/$(TARGETasm).o*
     @mkdir -p $(GEN_DIR)
@@ -87,10 +87,10 @@ this addition once you are done with this example since it will break the other
 
 The following will compile and run everything.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-  bone$ *config-pin P9_31 pruout*
-  bone$ *make TARGET=delay-test.pru0 TARGETasm=delay.pru0*
+  bone$ config-pin P9_31 pruout
+  bone$ make TARGET=delay-test.pru0 TARGETasm=delay.pru0
   /var/lib/cloud9/common/Makefile:29: MODEL=TI_AM335x_BeagleBone_Black,TARGET=delay-test.pru0
   -    Stopping PRU 0
   -	copying firmware file /tmp/cloud9-examples/delay-test.pru0.out to /lib/firmware/am335x-pru0-fw
@@ -166,21 +166,21 @@ Solution
 
 .. _more_test2:
 
-.. literalinclude:: code/delay-test2.pru0.c
+.. literalinclude:: ../code/07more/delay-test2.pru0.c
    :caption: delay-test2.pru0.c
    :linenos:
 
-:download:`delay-test2.pru0.c <code/delay-test2.pru0.c>`
+:download:`delay-test2.pru0.c <../code/07more/delay-test2.pru0.c>`
 
 :ref:`more_delay2` is the assembly code.
 
 .. _more_delay2:
 
-.. literalinclude:: code/delay2.pru0.asm
+.. literalinclude:: ../code/07more/delay2.pru0.asm
    :caption: delay2.pru0.asm
    :linenos:
 
-:download:`delay2.pru0.asm <code/delay2.pru0.asm>`
+:download:`delay2.pru0.asm <../code/07more/delay2.pru0.asm>`
 
 An additional feature is shown in line 4 of :ref:`more_delay2`.  The
 ``.cdecls "delay-test2.pru0.c"`` says to include any defines from ``delay-test2.pru0.c``
@@ -206,11 +206,11 @@ many times the PRU stalled fetching an instruction.
 
 .. _more_cycle:
 
-.. literalinclude:: code/cycle.pru0.c
+.. literalinclude:: ../code/07more/cycle.pru0.c
    :caption: cycle.pru0.c - Code to count cycles.
    :linenos:
 
-:download:`cycle.pru0.c <code/cycle.pru0.c>`
+:download:`cycle.pru0.c <../code/07more/cycle.pru0.c>`
 
 Discission
 ------------
@@ -244,26 +244,26 @@ You can see where ``cycle`` and ``stall`` are stored by looking into :ref:`more_
 
 .. _more_cycle_list0:
 
-.. literalinclude:: code/cycle.pru0.lst
+.. literalinclude:: ../code/07more/cycle.pru0.lst
    :caption: /tmp/cloud9-examples/cycle.pru0.lst Lines 113..119
    :lines: 113-119
    :lineno-start: 113
    :linenos:
 
-:download:`cycle.pru0.lst <code/cycle.pru0.lst>`
+:download:`cycle.pru0.lst <../code/07more/cycle.pru0.lst>`
 
 Here the ``LDI32`` instruction loads the address ``0x22000`` into ``r0``. This is the offset to 
 the ``CTRL`` registers. Later in the file we see :ref:`more_cycle_list1`.
  
 .. _more_cycle_list1:
 
-.. literalinclude:: code/cycle.pru0.lst
+.. literalinclude:: ../code/07more/cycle.pru0.lst
    :caption: /tmp/cloud9-examples/cycle.pru0.lst Lines 146..152
    :lines: 146-152
    :lineno-start: 146
    :linenos:
 
-:download:`cycle.pru0.lst <code/cycle.pru0.lst>`
+:download:`cycle.pru0.lst <../code/07more/cycle.pru0.lst>`
 
 
 The first ``LBBO`` takes the contents of ``r0`` and adds the offset 12 to it and copies 4 bytes 
@@ -274,10 +274,10 @@ thus ``STALL`` is now  in ``r0``.
 
 Now fire up **prudebug** and look at those registers. 
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-  bone$ *sudo prudebug*
-  PRU0> *r*
+  bone$ sudo prudebug
+  PRU0> r
   r
   r
   Register info for PRU0
@@ -319,28 +319,28 @@ The ``pass:[__]xout()`` and ``pass:[__]xin()`` intrinsics are able to transfer u
 
 .. _more_xout:
 
-.. literalinclude:: code/xout.pru0.c
+.. literalinclude:: ../code/07more/xout.pru0.c
    :caption: xout.pru0.c
    :linenos:
 
-:download:`xout.pru0.c <code/xout.pru0.c>`
+:download:`xout.pru0.c <../code/07more/xout.pru0.c>`
 
 PRU 1 waits at line 41 until PRU 0 signals it.  :ref:`more_xin` sends an
 interrupt to PRU 0 and waits for it to send the data.
 
 .. _more_xin:
 
-.. literalinclude:: code/xin.pru1.c
+.. literalinclude:: ../code/07more/xin.pru1.c
    :caption: xin.pru1.c
    :linenos:
 
-:download:`xin.pru1.c <code/xin.pru1.c>`
+:download:`xin.pru1.c <../code/07more/xin.pru1.c>`
 
 Use ``prudebug`` to see registers R5-R10 are transferred from PRU 0 to PRU 1.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
-  PRU0> *r*
+  PRU0> r
   Register info for PRU0
       Control register: 0x00000001
         Reset PC:0x0000  STOPPED, FREE_RUN, COUNTER_DISABLED, NOT_SLEEPING, PROC_DISABLED
@@ -441,8 +441,8 @@ If you really need speed, considering using ``pass:[__]xout()`` and ``pass:[__]x
 Copyright
 ==========
 
-.. literalinclude:: code/copyright.c
+.. literalinclude:: ../code/07more/copyright.c
    :caption: copyright.c
    :linenos:
 
-:download:`copyright.c <code/copyright.c>`
+:download:`copyright.c <../code/07more/copyright.c>`
diff --git a/books/pru-cookbook/08ai/ai.rst b/books/pru-cookbook/08ai/ai.rst
index d2e055c0..fdf9655e 100644
--- a/books/pru-cookbook/08ai/ai.rst
+++ b/books/pru-cookbook/08ai/ai.rst
@@ -155,7 +155,7 @@ Solution
 
 The ``show-pins.pl`` command does what you want, but you have to set it up first.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ cd ~/bin
 	bone$ ln -s /opt/scripts/device/bone/show-pins.pl .
@@ -164,7 +164,7 @@ This creates a symbolic link to the ``show-pins.pl`` command that is rather hidd
 away.  The link is put in the ``bin`` directory which is in the default command
 ``$PATH``.  Now you can run ``show-pins.pl`` from anywhere.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ *show-pins.pl*
 	P9.19a                    16   R6 7 fast rx  up  i2c4_scl
@@ -180,7 +180,7 @@ which direction they are set by using ``gpioinfo`` and the chip number.
 Unfortunately you subtract one from the port number to get the chip number.
 So ``P8.35b`` is on chip number 2.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ *gpioinfo 2*
 		line   0:      unnamed       unused   *input*  active-high 
@@ -194,7 +194,7 @@ Here we see both (lines 0 and 1) are set to input.
 
 Adding ``-v`` gives more details.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ *show-pins.pl -v*
 	...
@@ -210,7 +210,7 @@ Adding ``-v`` gives more details.
 
 The best way to use ``show-pins.pl`` is with ``grep``.  To see all the pru pins try:
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ *show-pins.pl  | grep -i pru | sort*
 	P8.13                    100   D3 c fast rx      pr1_pru1_gpi7
@@ -236,7 +236,7 @@ Problem
 
 I want to configure another pin for the PRU, but I get an error.
 
-.. code-block:: bash
+.. code-block:: shell-session
 		
 	bone$ *config-pin P9_31 pruout*
 	ERROR: open() for /sys/devices/platform/ocp/ocp:P9_31_pinmux/state failed, No such file or directory
@@ -271,14 +271,14 @@ We see that when ``P9_31a`` is set to ``MODE13`` it will be a PRU **out** pin.
 
 Next, find which kernel you are running.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ uname -a
 	Linux ai 4.14.108-ti-r131 #1buster SMP PREEMPT Tue Mar 24 19:18:36 UTC 2020 armv7l GNU/Linux
 
 I'm running the 4.14 version. Now look in ``/opt/source`` for your kernel.
 
-.. code-block:: bash
+.. code-block:: shell-session
 
 	bone$ cd /opt/source/
 	bone$ ls
@@ -288,9 +288,9 @@ I'm running the 4.14 version. Now look in ``/opt/source`` for your kernel.
 	*dtb-4.14-ti*                    pyctrl
 	dtb-4.19-ti                    py-uio
 
-``am5729-beagleboneai.dts`` is the file we need to edit.  Search for ``P9_31``. You'l see:
+``am5729-beagleboneai.dts`` is the file we need to edit.  Search for ``P9_31``. You'll see:
 
-.. code-block:: bash
+.. code-block:: shell-session
 	:linenos:
 
 	DRA7XX_CORE_IOPAD(0x36DC, MUX_MODE14) // B13: P9.30: mcasp1_axr10.off //
@@ -301,7 +301,7 @@ Change the ``MUX_MODE14`` to ``MUX_MODE13`` for output, or ``MUX_MODE12`` for in
 
 Compile and install.  The first time will take a while since it recompiles all the dts files.
 
-.. code-block:: bash
+.. code-block:: shell-session
 	:linenos:
 
 	bone$ make
@@ -358,11 +358,11 @@ the adapted code.
 
 .. _ai_pwm1:
 
-.. literalinclude:: code/pwm1.pru2_1.c
+.. literalinclude:: ../code/08ai/pwm1.pru2_1.c
    :caption: pwm1.pru2_1.c
    :linenos:
 
-:download:`pwm1.pru2_1.c <code/pwm1.pru2_1.c>`
+:download:`pwm1.pru2_1.c <../code/08ai/pwm1.pru2_1.c>`
 
 
 One line 6 ``P9_31`` is defined as ``(0x1:ref:`10)``, which means shift ``1`` over by 10 bits.
diff --git a/books/pru-cookbook/08ai/code/Makefile b/books/pru-cookbook/08ai/code/Makefile
deleted file mode 100644
index a7557fda..00000000
--- 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 d35f2185..00000000
--- 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 00000000..21a8ba35
--- /dev/null
+++ b/books/pru-cookbook/code
@@ -0,0 +1 @@
+Subproject commit 21a8ba352d2e6dd793d3029126e6a8c9481eeaf2
diff --git a/books/pru-cookbook/projects.rst b/books/pru-cookbook/projects.rst
index 60a2482b..3fbc73fc 100644
--- a/books/pru-cookbook/projects.rst
+++ b/books/pru-cookbook/projects.rst
@@ -45,8 +45,8 @@ documentation visit the PRU-ICSS wiki.
     **Type:** Project Tutorial Code Library
     
     **References:**
-        * http://beagleboard.org/CapeContest/entries/BeagleBone+DMX+Cape/
-        * http://blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/
+        * https://beagleboard.org/CapeContest/entries/BeagleBone+DMX+Cape/
+        * https://web.archive.org/web/20130921033304/blog.boxysean.com/2012/08/12/first-steps-with-the-beaglebone-pru/
         * https://github.com/boxysean/beaglebone-DMX
 
 .. dropdown:: **Interacto**
@@ -60,8 +60,8 @@ documentation visit the PRU-ICSS wiki.
     **Type:** Project 1 Project 2 Code Library
     
     **References:**
-        * http://beagleboard.org/CapeContest/entries/Interacto/
-        * http://www.hitchhikeree.org/beaglebone_capes/interacto/
+        * https://beagleboard.org/CapeContest/entries/Interacto/
+        * https://web.archive.org/web/20130507141634/http://www.hitchhikeree.org:80/beaglebone_capes/interacto/
         * https://github.com/cclark2/interacto_bbone_cape
 
 .. dropdown:: **Replicape: 3D Printer**
@@ -100,7 +100,10 @@ documentation visit the PRU-ICSS wiki.
     **References:**
         * http://beagleboard.org/CapeContest/entries/Geiger+Cape/
         * http://elinux.org/BeagleBone/GeigerCapePrototype
-        * https://github.com/mranostay/beaglebone-telemetry-presentation
+
+.. note::
+
+   #TODO#: the git repo was taken down
 
 .. dropdown:: **Servo Controller Foosball Table**
     :open:
@@ -143,10 +146,13 @@ documentation visit the PRU-ICSS wiki.
 
     **References:**
         * http://www.youtube.com/watch?v=dEes9k7-DYY
-        * https://github.com/cagdasc/Chubby1_v1
         * http://www.youtube.com/watch?v=JXyewd98e9Q
         * http://www.ti.com/lit/wp/spry235/spry235.pdf
 
+.. note::
+
+    #TODO#: The Chubby1_v1 repo on github.com for user cagdasc was taken down.
+
 .. dropdown:: **Software UART**
     :open:
 
diff --git a/intro/contribution/git-usage.rst b/intro/contribution/git-usage.rst
index 0607ed22..10062fb0 100644
--- a/intro/contribution/git-usage.rst
+++ b/intro/contribution/git-usage.rst
@@ -581,7 +581,7 @@ There are a lot of different nice guides to using Git on the web:
 -   `Understanding Git
     Conceptually <https://www.sbf5.com/~cduan/technical/git/>`_
 -   `git ready: git tips <http://gitready.com/>`_
--   <http://http://cheat.errtheblog.com/s/git>
+-   https://web.archive.org/web/20121115132047/http://cheat.errtheblog.com/s/git
 -   https://docs.scipy.org/doc/numpy-1.15.1/dev/gitwash/development_workflow.html Numpy is also
     evaluating git
 -   https://github.github.com/training-kit/downloads/github-git-cheat-sheet
diff --git a/intro/support/getting-started.rst b/intro/support/getting-started.rst
index 7428e3dc..dd2c78de 100644
--- a/intro/support/getting-started.rst
+++ b/intro/support/getting-started.rst
@@ -191,7 +191,7 @@ an older operating system or need additional drivers for serial access to older
 
 	1. Windows Driver Certification warning may pop up two or three times. Click "Ignore", "Install" or "Run".
 	2. To check if you're running 32 or 64-bit Windows see `this <https://support.microsoft.com/en-us/topic/determine-whether-your-computer-is-running-a-32-bit-version-or-64-bit-version-of-the-windows-operating-system-1b03ca69-ac5e-4b04-827b-c0c47145944b>`_.
-	3. On systems without the latest service release, you may get an error (0xc000007b). In that case, please install the following and retry: https://www.microsoft.com/en-us/download/confirmation.aspx?id=13523
+	3. On systems without the latest service release, you may get an error (0xc000007b). In that case, please perform the following and retry: https://answers.microsoft.com/en-us/windows/forum/all/windows-10-error-code-0xc000007b/02b74e7d-ce19-4ba4-90f0-e16e8d911866
 	4. You may need to reboot Windows.
 	5. These drivers have been tested to work up to Windows 10
 
diff --git a/projects/simppru/examples/read_counter.rst b/projects/simppru/examples/read_counter.rst
index 94411118..8177a350 100644
--- a/projects/simppru/examples/read_counter.rst
+++ b/projects/simppru/examples/read_counter.rst
@@ -18,7 +18,7 @@ Code
 Explanation
 ------------
 
-Since, PRU's hardware counter works at 200 MHz, it counts upto 2 x 108
+Since, PRU's hardware counter works at 200 MHz, it counts up to 2 x 108
 cycles in 1 second. So, this can be reliably used to count time without
 using ``delay``, as we can find exactly how much time 1 cycle takes.
 
-- 
GitLab