Initial commit
authorJason Reeder <jreeder@ti.com>
Wed, 20 Dec 2017 23:04:02 +0000 (17:04 -0600)
committerJason Reeder <jreeder@ti.com>
Wed, 20 Dec 2017 23:04:02 +0000 (17:04 -0600)
Signed-off-by: Jason Reeder <jreeder@ti.com>
23 files changed:
ARM_User_Space_App/Makefile [new file with mode: 0644]
ARM_User_Space_App/arm_user_space_app.c [new file with mode: 0644]
ARM_User_Space_App/gen/ARM_User_Space_App.out [new file with mode: 0755]
Makefile [new file with mode: 0644]
PRUMulti-channelADCInterfaceReferen_manifest.html [new file with mode: 0644]
PRU_ADS8688_Controller/AM335x_PRU.cmd [new file with mode: 0644]
PRU_ADS8688_Controller/Makefile [new file with mode: 0644]
PRU_ADS8688_Controller/PRU_ADS8688_Controller.c [new file with mode: 0644]
PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.asm [new file with mode: 0644]
PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.map [new file with mode: 0644]
PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.object [new file with mode: 0644]
PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.out [new file with mode: 0644]
PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.pp [new file with mode: 0644]
PRU_ADS8688_Controller/resource_table_empty.h [new file with mode: 0644]
PRU_ADS8688_Interface/.PRU_ADS8688_Interface.asm.swp [new file with mode: 0644]
PRU_ADS8688_Interface/AM335x_PRU.cmd [new file with mode: 0644]
PRU_ADS8688_Interface/Makefile [new file with mode: 0644]
PRU_ADS8688_Interface/PRU_ADS8688_Interface.asm [new file with mode: 0644]
PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.map [new file with mode: 0644]
PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.object [new file with mode: 0644]
PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.out [new file with mode: 0644]
dts/am335x-boneblack-pruadc.dts [new file with mode: 0755]
run.sh [new file with mode: 0755]

diff --git a/ARM_User_Space_App/Makefile b/ARM_User_Space_App/Makefile
new file mode 100644 (file)
index 0000000..1ad4b2e
--- /dev/null
@@ -0,0 +1,66 @@
+# ARM_CCT environment variable must point to the ARM cross-compile toolchain. E.g.:
+#(Desktop Linux) export ARM_CCT=$(HOME)/ti-processor-sdk-linux-rt-amxxx-evm-ww.xx.yy.zz/
+#linux-devkit/sysroots/x86_64-arago-linux/usr/bin
+
+ifndef ARM_CCT
+define ERROR_BODY
+
+*******************************************************************************
+ARM_CCT environment variable is not set. Examples given:
+(Desktop Linux) export ARM_CCT=$(HOME)/ti-processor-sdk-linux-rt-amxxx-evm-ww.xx.yy.zz/
+linux-devkit/sysroots/x86_64-arago-linux/usr/bin
+*******************************************************************************
+
+endef
+$(error $(ERROR_BODY))
+endif
+
+MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+CURRENT_DIR := $(notdir $(patsubst %/,%,$(dir $(MKFILE_PATH))))
+PROJ_NAME=$(CURRENT_DIR)
+GEN_DIR=gen
+
+#Math library for square root function
+CFLAGS=-lm
+
+TARGET=$(GEN_DIR)/$(PROJ_NAME).out
+SOURCES=$(wildcard *.c)
+
+all: printStart $(TARGET) printEnd
+
+printStart:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Building project: $(PROJ_NAME)'
+
+printEnd:
+       @echo ''
+       @echo 'Output files can be found in the "$(GEN_DIR)" directory'
+       @echo ''
+       @echo 'Finished building project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
+
+# Invokes the ARM x86 Cross Compiler to make the .out file
+$(TARGET):
+       @mkdir -p $(GEN_DIR)
+       @echo ''
+       @echo 'Building target: $@'
+       @echo 'Invoking: ARM x86 Cross Compiler'
+       $(ARM_CCT)/arm-linux-gnueabihf-gcc -Wall $(SOURCES) $(CFLAGS) -o $(TARGET) -lncurses -lpthread
+       @echo 'Finished building target: $@'
+
+.PHONY: all clean
+
+# Remove the $(GEN_DIR) directory
+clean:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Cleaning project: $(PROJ_NAME)'
+       @echo ''
+       @echo 'Removing files in the "$(GEN_DIR)" directory'
+       @rm -rf $(GEN_DIR)
+       @echo ''
+       @echo 'Finished cleaning project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
diff --git a/ARM_User_Space_App/arm_user_space_app.c b/ARM_User_Space_App/arm_user_space_app.c
new file mode 100644 (file)
index 0000000..68a87db
--- /dev/null
@@ -0,0 +1,306 @@
+/*
+ * Copyright (C) 2017 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 <sys/types.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <math.h>
+#include <time.h>
+#include <string.h>
+#include <sched.h>
+#include <pthread.h>
+#include <limits.h>
+#include <ncurses.h>
+
+#define PING_ADDR              0x9FFC0000
+#define PONG_ADDR              0x9FFE0000
+#define PING                   0
+#define PONG                   1
+#define DATA_READY             0x0000FFFF
+#define IN_PROGRESS            0x00000000
+#define NUM_CHANNELS           48
+#define NUM_DEVICES            6
+#define NUM_SAMPLES_PER_CYCLE  640
+#define MAX_CSV_SAMPLES                65536
+
+volatile float min[NUM_CHANNELS];
+volatile float max[NUM_CHANNELS];
+volatile float result[NUM_CHANNELS];
+volatile uint16_t compensation, delay;
+volatile int16_t csv_samples[MAX_CSV_SAMPLES];
+volatile uint16_t csv_channel = 0;
+volatile uint32_t csv_sample_num = 0;
+volatile uint32_t csv_counter = 0;
+
+struct buffer {
+       uint32_t flags;
+       uint32_t comp_delay;
+       uint32_t samples[NUM_CHANNELS*NUM_SAMPLES_PER_CYCLE];
+};
+
+void *capture_func(void *data)
+{
+        int i, j;
+       struct buffer *ping_ptr, *pong_ptr;
+       uint32_t samples[NUM_CHANNELS*NUM_SAMPLES_PER_CYCLE];
+       uint64_t cur_square_sum = 0;
+       int16_t cur_min = INT16_MAX;
+       int16_t cur_max = INT16_MIN;
+       int16_t signed_val;
+       struct timespec sleep;
+       uint8_t curr_buff = PING;
+
+       /* Open the /dev/mem device to access the shared buffers */
+        int fd = open("/dev/mem",O_RDWR|O_SYNC);
+        if(fd < 0)
+        {
+                printf("Can't open /dev/mem\n");
+                return NULL;
+        }
+       /* mmap 128kB ping and pong buffers */
+        ping_ptr = (struct buffer *) mmap(0, getpagesize()*32, PROT_READ|PROT_WRITE, MAP_SHARED, fd, PING_ADDR);
+        pong_ptr = (struct buffer *) mmap(0, getpagesize()*32, PROT_READ|PROT_WRITE, MAP_SHARED, fd, PONG_ADDR);
+        if(ping_ptr == NULL || pong_ptr == NULL)
+        {
+                printf("Can't mmap\n");
+                return NULL;
+        }
+
+       /* put sine wave in memory */
+       /*
+       for(i = 0; i < NUM_SAMPLES_PER_CYCLE; i++) {
+               for(j = 0; j < NUM_CHANNELS; j++) {
+                       ping_ptr->samples[i*NUM_CHANNELS+j] = sine_wave[i];
+                       pong_ptr->samples[i*NUM_CHANNELS+j] = sine_wave[i];
+               }
+       }
+       */
+
+       /* Configure the sleep delay to 250us */
+       sleep.tv_sec = 0;
+       sleep.tv_nsec = 250000L;
+
+       /* Wait until PING buffer is in progress before beginning */
+       while (ping_ptr->flags != IN_PROGRESS)
+               nanosleep(&sleep, NULL);
+
+       while(1) {
+               /* Wait for the buffers to be ready and then memcpy the sample
+                * data to local memory. If the buffer is not ready yet, go to
+                * sleep for 250us before checking again. This thread is
+                * running at the highest priority so it needs to sleep when
+                * not in use or it will starve all other threads.
+                */
+               if (curr_buff == PING) {
+                       while (ping_ptr->flags != DATA_READY)
+                               nanosleep(&sleep, NULL);
+                       compensation = ping_ptr->comp_delay >> 16;
+                       delay = ping_ptr->comp_delay & 0xFFFF;
+                       memcpy(samples, ping_ptr->samples, sizeof(samples));
+                       curr_buff = PONG;
+               }
+               else {
+                       while (pong_ptr->flags != DATA_READY)
+                               nanosleep(&sleep, NULL);
+                       compensation = pong_ptr->comp_delay >> 16;
+                       delay = pong_ptr->comp_delay & 0xFFFF;
+                       memcpy(samples, pong_ptr->samples, sizeof(samples));
+                       curr_buff = PING;
+               }
+
+               /* Iterate through a full cycle for each channel */
+               for (j = 0; j < NUM_CHANNELS; j++) {
+                       for(i = 0; i < NUM_SAMPLES_PER_CYCLE; i++) {
+                               /* Convert the ADC code to it's signed equivalent */
+                               signed_val = (uint16_t)samples[i*NUM_CHANNELS+j] - 0x8000;
+                               if (j == csv_channel && csv_counter < csv_sample_num)
+                                       csv_samples[csv_counter++] = signed_val;
+                               /* Check for min and max values throughout the cycle */
+                               if(signed_val < cur_min)
+                                       cur_min = signed_val;
+                               if(signed_val > cur_max)
+                                       cur_max = signed_val;
+                               /* Accumulate the squares to be used in the RMS calc */
+                               cur_square_sum += signed_val * signed_val;
+                       }
+                       /* Convert the min and max from ADC codes to voltages and store them */
+                       min[j] = (float)cur_min * 0.0003125;
+                       max[j] = (float)cur_max * 0.0003125;
+                       /* Complete the Root Mean Square (RMS) calculation for this channel and store it */
+                       result[j] = (sqrt(cur_square_sum / 640.0)) * 0.0003125;
+                       /* Reset the current variables to defaults for the next channel iteration */
+                       cur_min = INT16_MAX;
+                       cur_max = INT16_MIN;
+                       cur_square_sum = 0;
+               }
+       }
+
+        return NULL;
+}
+
+void *print_func(void *data)
+{
+       int i;
+       float frequency;
+
+       /* Initialize the screen */
+       initscr();
+       /* Set the timeout to 250ms for waiting for user input */
+       timeout(250);
+       curs_set(0);
+
+       /* Print each channel's min, max, and RMS values to the screen */
+       while (1) {
+               for(i = 0; i < NUM_CHANNELS/2; i++) {
+                       mvprintw(i, 0, "Ch%02d Vpp:[%.3f,%.3f]", i, min[i], max[i]);
+                       mvprintw(i, 28, "RMS:%.3f", result[i]);
+                       mvprintw(i, 39, "| Ch%02d Vpp:[%.3f,%.3f]", i+NUM_CHANNELS/2, min[i+NUM_CHANNELS/2], max[i+NUM_CHANNELS/2]);
+                       mvprintw(i, 69, "RMS:%.3f", result[i+NUM_CHANNELS/2]);
+               }
+
+               frequency = (1.0 / ((delay * NUM_CHANNELS / NUM_DEVICES + compensation) * 0.000000005)) / NUM_SAMPLES_PER_CYCLE;
+               
+               mvprintw(NUM_CHANNELS/2 + 1, 0, "Delay:%d, Compensation:%d", delay, compensation);
+               mvprintw(NUM_CHANNELS/2 + 2, 0, "Estimated Frequency:%.3f Hz", frequency);
+               mvprintw(NUM_CHANNELS/2 + 4, 0, "Press any key to exit");
+               /* Refresh the screen with the latest data */
+               refresh();
+               /* If a character is received then exit the while(1) loop */
+               if(getch() != -1)
+                       break;
+       }
+
+       /* Close the window */
+       endwin();
+
+       return NULL;
+}
+
+int main(int argc, char* argv[])
+{
+        struct sched_param param;
+        pthread_attr_t attr;
+        pthread_t capture_thread, print_thread;
+        int ret;
+       uint32_t i;
+       FILE *fp;
+
+       /* Check for command line arguments requesting to create a CSV file
+        * argv[1] - CSV file name
+        * argv[2] - Channel number to store results from
+        * argv[3] - Number of samples to store (max of 32000)
+        * example given:
+        *      ./ARM_User_Space_App.out chan3_2048samples.csv 3 2048
+        */ 
+       if(argc == 4) {
+               csv_sample_num = atoi(argv[3]);
+               if (csv_sample_num > MAX_CSV_SAMPLES)
+                       csv_sample_num = MAX_CSV_SAMPLES;
+               csv_channel = atoi(argv[2]);
+               if (csv_channel > NUM_CHANNELS)
+                       csv_channel = 0;
+       }
+       
+
+        /* Lock memory */
+        if(mlockall(MCL_CURRENT|MCL_FUTURE) == -1) {
+                printf("mlockall failed: %m\n");
+                exit(-2);
+        }
+        /* Initialize pthread attributes (default values) */
+        ret = pthread_attr_init(&attr);
+        if (ret) {
+                printf("init pthread attributes failed\n");
+                goto out;
+        }
+        /* Set the stack size, need at least 0x1E000 for the samples array */
+        ret = pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + 0x20000);
+        if (ret) {
+            printf("pthread setstacksize failed\n");
+            goto out;
+        }
+        /* Set scheduler policy and priority of pthread */
+        ret = pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
+        if (ret) {
+                printf("pthread setschedpolicy failed\n");
+                goto out;
+        }
+        param.sched_priority = 99;
+        ret = pthread_attr_setschedparam(&attr, &param);
+        if (ret) {
+                printf("pthread setschedparam failed\n");
+                goto out;
+        }
+        /* Use scheduling parameters of attr */
+        ret = pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
+        if (ret) {
+                printf("pthread setinheritsched failed\n");
+                goto out;
+        }
+        /* Create a pthread with specified attributes (priority 99) */
+        ret = pthread_create(&capture_thread, &attr, capture_func, NULL);
+        if (ret) {
+                printf("create capture_thread failed\n");
+                goto out;
+        }
+        /* Create a pthread with lower priority to print the results */
+        ret = pthread_create(&print_thread, NULL, print_func, NULL);
+        if (ret) {
+                printf("create capture_thread failed\n");
+                goto out;
+        }
+        /* Join the print thread and wait until it is done (key press) */
+        ret = pthread_join(print_thread, NULL);
+        if (ret)
+                printf("join capture_thread failed: %m\n");
+
+       /* Write the samples to a csv file if requested */
+       if(argc == 4) {
+               fp = fopen(argv[1], "w+");
+               for (i = 0; i < csv_sample_num; i++) {
+                       fprintf(fp, "%d\n", csv_samples[i]);
+               }
+               fclose(fp);
+
+               printf("\n%s file created with %d sample(s) from channel %d\n\n", argv[1], csv_sample_num, csv_channel);
+       }
+       
+out:
+        return ret;
+}
diff --git a/ARM_User_Space_App/gen/ARM_User_Space_App.out b/ARM_User_Space_App/gen/ARM_User_Space_App.out
new file mode 100755 (executable)
index 0000000..6540f44
Binary files /dev/null and b/ARM_User_Space_App/gen/ARM_User_Space_App.out differ
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..ef00f66
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+SUBDIRS=PRU_ADS8688_Controller PRU_ADS8688_Interface ARM_User_Space_App
+
+all: $(SUBDIRS)
+
+$(SUBDIRS):
+       @$(MAKE) -C $@
+
+clean:
+       @for d in $(SUBDIRS); do (cd $$d; $(MAKE) clean ); done
+
+.PHONY: all clean $(SUBDIRS)
+
+
+
diff --git a/PRUMulti-channelADCInterfaceReferen_manifest.html b/PRUMulti-channelADCInterfaceReferen_manifest.html
new file mode 100644 (file)
index 0000000..5281ac4
--- /dev/null
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r\r
+<head>\r\r
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r\r
+  <meta http-equiv="Content-Style-Type" content="text/css" />\r\r
+  <meta name="generator" content="pandoc" />\r\r
+  <title>Manifest File</title>\r\r
+  <style type="text/css">code{white-space: pre;}</style>\r\r
+  <link href="data:text/css;charset=utf-8,%0A%0A%0A%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28%27data%3Afont%2Fwoff2%3Bbase64%2Cd09GMgABAAAAADzUABIAAAAAhjgAADxwAAEZmgAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbDBx0BmAAgUwIgSIJjzQREAqBpESBjUIBNgIkA4ZsE70QC4M8AAQgBYIyB4QoDIIJG8J3CQg7WxX5j0PthLRbJVvedpUoKlTzFUWwcUCG52fZ%2F%2F%2F%2F%2F3lJxxAlWAMiaNd12%2F9PqJmJKW5iyEExieloQ9KxVuZAQ07T1g7vfgVloomBA%2FUEiuEMCGVsPBsLc9rD3dPKhTisOejgNULCLyjxoeYlBGuZsjRKads6GS6b8QRDIttvKSa68bAbLrwP31TZsuGVyrv7lPcTS4bG9tKpUh76wlIon84X%2FsDUs5lHxlTP%2Fif%2BNs2eosU%2Fnf%2FBfw%2FriGqqb%2BffLOvzVA9JiiYPkV3xr7qrZ%2Fbum4pAxULkIPkZgBBQJu%2F2AG2zs1GxcgYq2FMQpj1RETESsbAKmzJyopiJzNnDKkTX5pwurDm2%2Fl%2BkLvK%2F%2Bx%2FAP6A2ZgrZRvjS1KSQBer9XuGyk3Iw3zfX%2B1eWZFmG4CQDj7CYnr8CXBV4ueyfuup7tsiSJbYtuxH%2FjmfaSz7qPupZoCCZ%2BkF0QXRpQIvhcQTov6omea3KKY0pFP4oK73IomFDl%2BISgLSDg2T3m9LqWHnZhsdUX6Zbs2x9S8bARE7Ay%2By7Qf%2FnllVniRftubDauc4suapKNQPzE8citiadRhUeQAB2Or6gcE01zLrqvv3azJyYfdvFLJRBRNN%2BrORtiKb4r90jEQolkS9CXdeapUUtovJYdjvKac7KcpzMaA1l%2FuGrT4aVVrGvMVAuLrBgPpJTtAv0AsQv4mpVYhTdrISsR3HVOUDRuJh4nIdPy752XK3pgwsJHaOiCfRBCMYnBZa2NQIs0MJBCLKQcLAUFiLHsSb1NBwDuVM%2B%2BS0pbMpCb4wnNT80UzMTE9QxNEqUXUj%2BXtWyBRikfCGFLhWNnelMh67A%2Bx%2BBHyAogRS0C1I6L0lJt9RGUJGUzgZAjQekU04ENxHSBYHaRMdLMVd257vKTeW69pbnoi9NTzZ4puUyQp2QCOOWBcHlBVHZINQPsqpeQjArJqPxaQKweFrTR1P%2Fk%2BXq%2B%2FE66DKZ2KGI2ZjJZNOIfxEploB4nMfYbCEuPnLbpwkSihwCCsbniQTAguiPVErkU4mUNL%2BUgcJFiymBc06kZQAgwjK%2Bx5hwzplJMQDIJhWEDSTOGJKlWpoIMEUadBm6RwiOj8PFkZ74BMmB3NPHvuQZdmtwhPKxaCIC1O5pSECsQvXqWxLjy0SwLDAMtWW45JcEf9qVQU4AAOvKcpvthncBrrn3f6P2TFH5pL6ErAoIPAgbyH0bD2BVQtHJQvXeU9iytiHI6oIFw3FX7KYd%2Fws48OV6eVger6oIUYdoQXQh%2BhBbCAZCg0ws5P%2F%2F30%2BhOw99btm1DAYcrQBRhWi8jM0FaH419ud9hVS%2F0ut62vSv6Q%2FT11%2BiySYajVNbtUV%2Fb5%2FexPSeyXTDklT41IpZiv4R2m3Dfcp9KWoG9CMAOmZLgoOTwv9t%2FXjG7O9no%2FSNV51dlkUn2AXcpNQTLI0adKlSGjJgNWg3YlhoCCEQH%2BDv5%2Bvj7eXp4Y5zw7piXJyd0I6nHeztbG2srSxPIeDmZidNDQ30YVA9XR1tprpw1uhWsieLKhwIhGlDCFAphITMFTNSlJXCvFS7BnGYV1RMYWUSk86rwpJKpWQBZbBSCbm2Z1laCiZ6RfcBbuU87snz7Dx7R5L4WZIjvKrod%2BrtYCMx9O8mwhLRGcX3ibFESNJCqbD2cGBXU%2FncuJtPLlOhOxfmmcPUG5mPZuIouu1w9CKPimlUnXUEk4VEgpJLUlkHBxWtYuH7JsyXkXXj7AS4sDsaU8uIxeWw2Z6h9iA3uWnrBnnWSoOFDnWyWxohn666Da3a54egEGCM4tGe%2Fq6VLupikmKFCY7LkmodtkTc48IxKTyS9g%2BEon9%2FU0Gfmor%2F91YEWgYeaf9eEUU9e7fPaySLVll%2FZPSApEe2n04%2F31YHDfx09bMcma9lC2vvLpFPB%2FysabdbsZqgVGlqkCjKQZaCw9RL5J8Wfq78fbpRRBgkAAxoN%2B77EOTWB8wGH4agD%2FWBsmqI94A%2BFBiQym357qjcbDkjVNVS8mFxqGkbhEW5Q0rbxes%2B9DWsbK1TFiIP2X%2Fhky3m5JlDhoxIiRi5oUREAgQUJuwkwnKXsPYD82bP2nAFm5nLbZFniAVCw4pU%2Bqg9HOyqPE6GeWwEVpAL1OD4ReXMWGnlZg8RK1l6TAzjjnw3zNBtlCkyLGpSVg1rGp%2BrMhHlAiC6HaUwo4ZUViqrXkR1biihit4A5P8VJcWHBXYcMDHm%2BVEtaISkshedHnqp6MBKe1ILH2yAviHdNTbXS94mvwv%2FXjJusom6TmqUVBr6dCPYTMTqM4WFYrEPaeGMiEBczEg9JsYNFvESiiy%2BaBSdP6UREzNPxAMb5yCrnRydl5oLRghNYHpYqm5Mgj6bGcLtSEgUSpzEqZvZQFUoCd%2F491qYH9vIUigQkxnUr0rZ1DjE2gzGWOAk0qO4y%2BJrS01dMjSQ4BtaLQQN1jAHBNY3Z6by%2BicjUAwNoFPEHxGQX4a1QACbwPpnIaq0UdSymS9t3E1qlrFMKJ%2FBEWWA%2FWb4dE4kRd6bmY5kiLfD64zt8%2BWeHB%2BcZTDDLXesW9PnCSGUaC%2FE0%2Fg8RZElPKlHYd4R7O5c%2FqbimL%2BpNfRGnjFI1Yl%2BT0jLaWSclz9Gb1iMoXN8hCL0wWchLqS69sXHGrHBDM6USOEEjrLDEcJdS7xNCJA%2Fn3BSiMbMyQ2EY0xIu4G4X%2BP7uAO45rs8N8kzl2cvL4xlqOUwSd5HLl85EA942MMMthyFVM0aP%2BLaJViU0jrK0n3ILadidX5Df0hDFXwCIWJ0r4T58QM6uleTuOxYSd5zM7DK9LQcKM%2BQeJzGwd2LDM6BRtSKpoM5txsh5UZ5vkuBS74pKpYGVnlVvQ5o%2BQbwNE%2B9qX3yYO35Jmz%2Bn5HIpUfJ2vyfcGnkNDFvIWM3%2Bl0SAJ48tws8taOvAL%2BPojsDoRsZILghY5rGbIwyhURLrWp55YC9KERyteUrrJvBxgK83RyXPcVHMCoV1zkeyAymKLA4qBuCE17rUFLPeFWiZKX9NFIPkWfjuZHm4voKGHuz5gt7xXpTvCZPhpARHTMjea8%2FwnPKhOSEpZhhrY3kuKgm88Euz4ZRsxiLqrUUXDCM2Sh%2FKjJmOI83BylGUktaOGk4F61UfJ35fCC5yHDGsBjkhYxBFaw8KhGxVNLhVakk7yq4dSzlWFZijCc1zkeTkYwYnyJoLlobOWOUa2uxks1KRCtDLiVjk7zikMsiyxS%2FO%2BRxwCZCqTBKXOZTycx5EuMsI%2Fy25wHe4lzgXyOx2rgm%2FVNMKc6TRgCgiHfgRiM%2FFYcSvBA7nUJ2UqhAvL6znIECFAsKRIF0WBJkLQgKX9nAKe6KytVSyscM%2FYoBzpAcZ0LQDwAHwYTaxCTnK7Eg7dJpjEys%2BmX%2BymSpJybTABwIUK3FISB%2BvfEPpaYfX6dhYCS%2FArvbXpMxAOujddHcKCy9oAuosBwO%2Fd66aodBZ6D7bZbgOVjxhKzQcG9DNEl3hATNHPFDklxcc4NylfRkG88t2VfSoUwj1nL97IcKprRrU0xLaftUQLvKqBE0YCLFJ3XjQTVlx5kKoTYQIvTnMDpYqQumFfIquUaT3%2BTlFnBAUcDaS6Ykgm4D6mHZ3T5LS7ASqCHVNII69RkiqGYX8m%2BKFuRyLBfKpASn%2BovFuh8NjOEFNgt3km%2FK1AYKDnTQbKHVKfxpUg74CJVZ%2FQzVmPSrAGHPRrKIU8EQJywFPBHiZyoRp9ZiqatfCUYZAy10RUjDNhY0ApFk%2FRCyRru7v1GbH2EdpTUYrJNxdP9Ib3%2BKy%2BLdDlcvu7brITIlW20bGBWyvH0bbUTBXw42%2BLKEajBc93Xyvzg460i8KDqQpbI8P3hvRfdjuH3yYpVuP7ea3AJpxwwZtyHxnXa%2FnKVrKjEQL0ouoeIxVpsuMrmtKoWLpgAemjUmg13xepWbjuhaStVsQCvFIriQZRKfAWu5xpjxjqLR%2B92hNWoQUpec70wOSdjJSPAalndek2pgvd9VjXFyCq44wwNIpqzRTtwaEINuYuVywyQb9DmkDnaB%2BQq%2FKBrBntgVwLySNWNI3LTiTgU3U4wpJTHRMn%2BLtfsYleDP1XfFrU2cbdHOGW1GMxq7WE17UZzrbpJsXeX1zvkSyQmmvmRPyMTrQqFtbSYuvTlGSycJKvDElm2kcqatiRtM%2BXAOliz6XR6Ql9bpw5unABUyOZmgUjozRPHLFnqBm%2FwT1OcWK8qbpMEwmn6fkxQEFdGYoZxDwFdZbaHVC%2FztMekCVCMn9lawhkKL7TRk45pkUC%2B5tZSrFzs5CgqwTej3T7yWhaE5gLHwn%2B0h%2B1rVeqVTATVL7Tx7iWvUzv%2FJv4Af1N%2B6fX3rQ6vzx0zd7AM9pZGZ08pB7ixFyHMPMxRekmvk8%2B3fknvFVjbKAAscRdHPQn3bUdqk4DItx4uAP4uJoEdaEbR9%2BhVL1jrs8QEmOsah78uflhUlTGTIDO74%2BgLrewWOW3kkDAFWPFFoTSDBczNkV%2BTIpFW0FdcpU7qk8OkJ36V4143X8%2FRiB6b0k02n%2BPhuQfsjDBbaNp6O24mTETI5ypKMLGM%2BSlrrls1SDdfGMEMfrBVHTthLvtRiagZGJqAA2xWj%2FLQSS0wDnrjYqKDWY%2FRsARcIH4dVTFwMoU%2Bztku1jDMPKPHUi0CfPBUERXHmkBwha9YGGWoT4OvQAnlRhh0FcT9RN9eB9p2k9lUBEL4Kdj9SqUBb3XloMCJaYYQk4unEKTGtoGNjJ0UjPt%2BF0WKcKYdukt4QMO73z5xqVuff5E9rtA%2FfYyz%2FMnjX2wNnKQ6l27H9CWD%2BRO1%2B1pn9i7z%2FJfyrHBDGtR4e3FSyagyypIf%2BrO7UH43VZHiezC5WmiLqWU%2BxfgZqHdvoYE0uUczILmJXnvYQMuvrM9eFXgB8GyglGRDci42j%2F97nBN%2Fc2w9KTWDMBTid2ylcc0NoRoKMCdY%2B9XNfyvR1x19xfBrMibf6RUaTKowUrS5N7Dy3sl8q6yweBdOJHvfOYiQnu8iCUlX75Ez%2ByPPLUvSO5cXrlTFVGP2yqazi%2BDhaRUHVMTJzYyZcq0nRnU9ws8xROWtlaAxirS8Tbqt4mbE2nUu2ExdSdJ1Dt2%2FjOykL4PKLdSEIpa8QNypx84hVFSRca1604waGkUD0TyhAH%2FRT2vxpWMp0yEZk9toonGknwSgn97RBT1ampeL6tJ%2FCfGT4kdwVLcjyqvbqO67OKxmgbJzJWVBM5mqTNsYBERk3uj8adjIxDI%2BZHZM8eh835zUILIO2%2BSXKwJp9UIGbuKzbWJZ2NadauiyPJhjjgDOiMrQMWYVi8Vc2bUH2U%2BrnIASPySLy%2B6FkoLOAyxMMvE85z04IXu4pv%2BjPSofeKtXzYo3loMlVucEoR1aBZtgFt7Uk1A8CTZfhJlFQSN9GQQcIfRJ%2F0WFcWY1XK0BA4YkZuXRbkev7njNeq0XSet7ub29Cdc6t6TT5P6n%2FDEquLSQhlN6OtJJXVa7taVdntCPWBuVy2kThB89AhmQoY9JUclVtB3yZE%2F5EKRI%2FWR31zf0nq3wnRUu1XfBKJSb%2B87VxAAI%2FX7ErAZUgZgPNnfDmXeiVlaqbMzzlt6XPsvZ0nbW6A6D3zUKXbqGHxqvKtoc5crxS7qLwGAbJaLPtkpjrRpyNdM8fjceFhJSYMO9r6iLFvEKJGYZlsTIJ4YkyUMEx91H8UGDAEN59eGv0JettWx37%2BNmLtlctzWeP1eNg4%2B4jgYG%2BnMlx36HAQPeh7bEXxQc1sI6fag097394Tlss8Fq3N2tXtZetrm6FQcFnPOKL8d6J0UGhGVHi3LgvPV3c4QwXYohJghOdXYX9k1GzOZ8QGGkfo0ey6Vgbnh64wGlPreR2h3dUFDlzlGNHXDSrWo11Xy3N0knfiB38owN%2FfZ1biv5wcfbt5smBxuWm298%2Ft27VXO5rGe3a0JCEi7E3mof7ai61bn%2F%2B%2FvdtpXF5oGWq646GkbKicU19htpCodYv1%2FGIaVIvaTrii2uulsZCRYZxDdzwQKW7pnusdoxdw56oNYw4fq0WFwNCkYvUk9AIMFEOf5%2F1gSXXSXKxx9jYojEuTk6uNkjn06onF3i6SjzO5v9mKzjvPyn4SP959KOYUnxM%2Fv7xZyniS4Zju%2B4Qp03fzq4NyhlqhxjeHJBniFExDgfjwWSGcR0UttJ4hjE9m9lp1Yin11cVEwfs4nyCs7aGP955tz9Xe1bmcMfRGvTZ5PTLyLru2UZN0LTS6HzLns5vkrRl3TCTnkize%2FDoAiOJgabGlvHNjorUlrzi6FFkmis%2BMxT73o9x%2BGHVBdvv98Cv12%2Bz2STuyQz%2FQe7rRvF5kHlUz41qe92Dojegl5svIAL%2F%2FSr16XM13bFImFk9f84iJ6pHg2BpOc7vcofyKMq2tKxpnzEcGS3f6KUa9%2BEXVNIGnD7%2BceP58a2XfwjffSEe%2BH6zoXtutLn5fHNYu3tIKTbJd7YlCaMJe6Wp2XWbCUtAaEOZN2%2B8uzCUxpxtwc0Gtl8s4P17%2F8n7v29d%2FhtRW%2B2dw83qfX9ZjBaWy2F2tp%2BvzY8527GCbXNkshUGk4rqc%2BLD6WU9Tg122dXhCU3Z3s54bBiL5qLQ6KuW%2BPm7oYQF2DJgIYiy%2BuLN7sv%2FxHbbn7JyoB%2FMG88uDjU1DrUSWe7BJViS%2F2xLgpP51lyqzC6ofLfu9CHFj5U5JdVs7V11nZu%2B2stxYmfls3b479R2wimJUcOqB6ptdbpO6xknVcG%2FYCn09kLAeMFzlCAtlnS3jhh8JQVLDUhkZBT4tkOj4bYVl2PvXDu4NO6un%2BEZW5QeT0CTo3RmDX3DSy6bVMaDhuAPvaXJQfQkCT%2BQQVBbTGLHyK2ZWx%2F%2BW8aMq2KUVA%2BV55hE8r2JhVYZ2ZbZZ%2B5Lk0G%2FI5zczPd%2FJzCv4b%2BnNjUkCh%2B21z4F%2BD5cnhe6P%2Fy%2FtR05aylhNwUCo2XeNXph12N%2BdwIKu9yo9%2BMymzS6DiHoFipFGVLG123A7bxzekKTlxlNIzWqEl7WsHXQo4%2F%2FSQxiVLnnsioKptOW%2F8rUQ8zOVbVU8UouuSMXkF%2BU0SraYOs%2Fu9Ys2zutn7lEVpKej%2BBPL95%2FPY53az7vrU9gvEupKia3AyK8ZUJe3nyIlpbOiV9NO3CEseEf5jkbNe9k8iM7ItWZttSxj5eTSmRnpAVq9b8vm1ToJ1iPF7km%2FiUvKJj75v0Wwal9A78oaeKgbghBqLKadFfdbP0%2FA2MzgjMVGxjLEMwYQ0qeiQxrxip4xyXmkDOY2eDI1Wu7mu9uKK6zKh1IZh123N3yzDfeKnLRYLK1%2FbRFZEFSXXcHzqFTAhrfeSBNFO%2B%2FxqYGpK6AtF2lLfCfgVXE95sgGT7XkeBcXkbcvQ5Sl4JqufWaEZ8%2FiYpttneJrElOiKrC2MU04vaijf6x%2BPLtF8LY4Cf867dvDUNsOfip2Uf1Ccf63Qqg3192Pd9q7m%2B%2BUr91FVX5wa72O%2FW2E5H0S8M9hkcGRYmKvrquNksBt3d0YQl1TVsxUfDmd9zhhsbmsZIrT3BoHeaKCv%2BzcK3zUCjswCR5bPwM1cs%2BusG%2FGXkTN7XZP%2Frv5t5Dni%2Bqles5XtlJTfKyii73q4K%2F8p%2B4hKplu0vT3unEde5A%2Fdt5c3%2Bd1ASBINr%2FTI1dXNxcW72wub60BENv8BYhP3gjkA0eV0lozmZAp0uv36ZPPdwPGJGnHiiikRtCSmXm3XIvbo%2BoEnhcaWql%2BRWlLnUeako2Lo8rhyw1Z0NW5etRN6XjmFxox0oVo5HBffX3%2BoXLKc7pzgvr83r2D5kPl7TKSqwmzLWolRchjsdMeDnrc9e1s8dOLZMMly1A9K%2Bteh1A5JkORPI8T%2FdUKKZEEhYLSam%2B6KUEBK5%2FQo8dp3nAZlHfer9Vtem36ynrkUNAH2SgkbPXipVuamPIXK5CAOQsyD9xAJc%2FuDR81kte5oIIpjQjP796Am9R7GeyjIhZvzy5fPSFdnZmtCvuvOiG6FQaNSwtws34Zdj9j%2FrS0p%2BN76XO%2BNj5g3XrcgBRRU5%2BiVg8iDp4s2asffXNm67rY13tT%2Ffute9hEhQ%2BCkPBCiCTH77ndK5b1CWUalj4jG0P8PuqG21b0631bfpaxSmcV%2FyPMBmZTyb3nmX3S4n6CHld5bD8H6EyJnuMtXRH7x37%2BlgL%2B%2FnOftehc7HCN1UDMXFhq8d3Pkk%2FJX0TXl7aHJmdcG8LhnVDxNdelXePS3U6nKvl2Bm92FTZ5Gyue67ZObTFBNN0jcujtDCRoYU1bio2Loo40rbKnEmWW%2F%2Bja8uIYZIV4aS7cdjq3NX2Rp7eVVX%2B296W%2BJJmqlqLte8pe8dQjFGgbspwGpe%2Fej0Io6D1AwhtJ9bt3ShMDU3HsDbJRakig%2FbUUjrt29Gvn%2FSiooyejYq8MsZkz6V7Dkr8e3L4hBwJuA83jLZ14%2BruTWQQB8eZN7ShGRu2W1t3GBpn6xl%2FiBqpxCi4%2BOACg%2F%2FhfMZIukVsPJni4RPBsTHZG5f2H9K2GCKFqeyhzdghGysximUQ9%2FmUY%2F2ArbJMRvbZ1tkL8Zy3vzinu%2BnioSMHV6neDjLzHQtNEfC5AIITLsTlXFy6un8T28Dhid4L9zD0Fn6LIeTrm%2FkXIgKrCwNLmX5sfVFdIDAJljT%2B%2BFoagUKI7A8%2FGhwceXiwN3L%2F%2FOD5Q8NJBRdIS0YFrTXBBVWp3A5yDB31zXh4ZCRlI8XSL16MtF8Q2IZZREMNfa%2B2b%2Fc9dPTO5nTOCu%2FDXp%2FdGjWppx3W%2FcKau8dGklKfTt77PXdUXKW9jM8dnnMYL%2BEqReFgjDHh7meVu1ykUczL%2FH4vDq5afhtknzJONbZCmHS9OH%2FnYR6G7WPAPRnIqA0goDPC%2BhxY1mcCT6d6VjxgX50dcbOtGHKpyM5xdzK9HWdVj1rFVjVaytFM%2FcHZJRPJssanfevO%2BXVjXN9F%2F3e69DQzLoKEUlzHbQJzQM%2BlQ%2FQB1Sot4s1wCbQb16%2Fs3Ub1qQvj5j5U%2B76QcgEN0bxums8lLlVV8xsMY%2BQuyGBKM%2FLOmWV5Lm6K1J0xLeYBGoFzFW%2FQuGs0q3EFGgip23710YT8d5zpIrxQ%2BQpkUHvwEsfr1tAEv2xx6dSly7oAFDf3KcvnUD4StBrw81XBnCbtN9eli%2BwqL3dZZipmHHfN%2Fiw0%2FQQZFheEKH1TCn2BjTB5KJlII2YJ1F0R2BllmycXheTWlwpQidEWZ%2FnjvNpXIisG%2FKf64Hbmm2q9VqwHQML1yuKn15syWHkuUru0P9llEUMPKxWozy8KSTbvujV2RaAuw%2FU8TzSipOdkKZj63zhV7EzojEtrwmSdCIE5nYhRN7cscQzpSEhvwBVB3LQ9tENVoA%2FHB%2F8%2BnVxlnr0d9r011xk3G6Sro4n9zOfkUy0iN5h3trWXZf%2F6p9ZhonLIQ7AeIgqvLbdIn%2Bjff3C3Z3u4vt72tPH5raujePvyLq%2FGgsKCOgNOCedJPLryZeJrO1uk%2FpbZ92fXS67bzz27hVvcz3dPqaiNIFaUJ%2BEYJQm4qvJIIrPaPSu7zD2RUUEkVpUnYEsq4nAV5URieaV7ypmCrO5eGu1cD5nS20%2BhdQ9C3J7m35tSFxIULXEYc5gTgofA9iX2Y3mA2rzgXBBHt2lQ%2Fbd68XooaN4oiFDlDXU3wGcQ8u7UbET2aETroxgx%2BhXqXjSqLdo%2BH99lecGlvSM1zL%2FO3ZDl11L3jnX3YQm6zRu6YhpQUefpZvZnqg3FuB7JDHUiN8d4lyVz7AWrfDPxLZlL1i7ygXEuCgQyyhumn46yiNaHoQsRaz4YBbvhaVnd1SuqmGSPFPeXBRWaFn6LP4Fd3fl8f%2B%2Fxj2tn6HY29FQLy2bcjc2IiK3tGxGbWxHbGyuhETu7OxF3VkOTNyYnTU0nJqaMJqcMZ6YmjQynZvb%2BkxWr46KjgidG10VlxCYmdiUPidCEDJht8UkWxlFkKyajKjlvffpSfNYWFxEjlCmUaG3lr0%2FoyMZAIiCR2VhCR416cAcNoxWhFUnDBncYObeqyFQzrWtO7P%2BZ5hcdgPYkoCNSZiv9AvO9NI9rRu7EVMa2FYhw2KXOcnabee5EoBMVwSVgObHvrQzuAoOxwC0L9G9oxgcyuPMURgCN7O9HyXrelrOyAvAUsk6de3jyh1chBP9oiKclxhfjiIqBYRBOwYwMVnlLaZZfSEdL9eTQkp4B6o2ff6KL8rTZwJnFhhEW1aqgxaXgYKD5DT01JynWB%2BPg6%2BLinGlMwYQe1Z6KrOrOtlFt%2B%2FpvxrQ2elvJBD155VumAqFQ9L%2Fxnst3e4f5qtRaJDI4rzqCiRLi%2BD50P%2BjAOYUVEKYAojOHuScqci%2Fw%2Fvaffws%2F%2BPftSYPOfWcHjHViHnS%2BtqnMQ2JYpA7kjZRNO18%2FA0sTH1SabPBshiVlXh%2BqBOM1pjFdiCKhhPCKSOcoiMnLzKExXkfLyIX%2BwWFuJ2toQaA%2FPywvmUTMyy8g0klJ0jBbBrhxZmG1IrUiaJjgphJKl7WeuJi49zgy36M1Gp9LsvdQ9bKOL8vK92uHxZjbVqxHXb%2FKvzCG1U12DAnxj4wPRlMjtOeNK%2FPsHDDOaCes1WNacQJlf5pEsizwcU%2Fw%2Be6MyXneVieGr9mhqY7xWNm%2FupDtY4oGDoQbZlazO9idc%2F4F2Vwi2uaNcEFHwc%2BrscEgqiJhu86Kio2KiYhaXUwkMTI%2BdjUhKi4%2BOlYtvez90PqrqC7HJ7VrdiM9PfS41x0RXZHjS2q9tjWfIpveZSzEpfjPpIqODs3GovFdRgfTJNzIkBEHnwlya5V9YXasvZR%2B3qjHAL6a0h14rPLI862GofYr1du3LJ3avlY2UIJdrZx1IKNYa2%2BL2siE7oS%2BlbH5yykY9uuzZjg%2BzzMgJd212D8qP9ARQ8KiPKwdQ0%2F5VQaWKD7jcubmHl18eue3bjYKJSLM%2Bn%2FN%2FSu2mEzdIKn5OU0DeGSxu%2BF1VCxjKMgwEhU8FpWx%2FEbiaeoVsRpbYrcuXr%2BNAGuDJOgUvvUrXidVDC6NTnZEpYSENA%2BPsOPOiV4QG0yz27fIqzkvcU6su2Q4pj6QX%2FlYXaSa8MlfT5XBz1%2BLijx%2BHpdLtT68dVWajUt9W050iIBjaGdxCR7H1Z4pd7I7G4bqh1Va50e7%2FZOHp3gD0303PO75ZzOprmalxl%2FFfsIS1WNrM41E3fleyMgEoCY7E4Onkb0jGGc6gTTAI5vqic%2BmeUaXF3ei4H%2BOoxJ2mR4oSirg0HEwZBG3y8BakAcIkmec56NSGdcpZNQnhf%2FJRBL82fTe07w%2BMELMy%2FEmBwABnH2USKib%2BkjnosANo7N88xl%2B6%2B5pidTov65yRhYAdBXC3aKrUpKJTHRiqLJ0pzffoMNA3dtu%2FdyfANzACLD4lRUEoQdp4kOjFWGF7x2ou9nVzyThIHERkw9lt7IdyDaZ13KLt45Bz0kPxKo8Ivt0g%2FTbgvU7tb2%2F2hx0PhweZN3de8K%2Be57Txsdk3S9pGpQ8B%2BkpGyTIrn8urkwoSeaEppUXlqrkBFuWMyqZAUiqqsXhXGx%2BdmJCDi02NpcSn1CQnRph7WSPRM5lYW192QaFttdCYB6Z%2BEN9THFQXQuTx7HgXEoV0YwA9TZ1g0IQfx3HgXOzqqD%2B91nhLDm59fRlgCUniF9ZUAqNkbTKLXD6F%2FpTXoHAezU5Xy%2FfVUObL%2F99DCuvrO7liRVoUmwh4GijW74i9RcDg0OVsChxq7witTgnJDhcHTL4IS%2BrKI1ELSjIoZxJSSUzFPrxT1PXkNwyFKgb%2FuBZ03mN%2BRWmgFg45ejT8l8pWBWtsVN6DTq%2FvT7WzXLqaEaPH0PAJwFOKUvNVMCXVTqkL6ynd7w1FI2tOU8gP6T%2BKiUTF8Wi7ebtloRO51pkkfRahYiHZ%2Fbjx33DP%2BxHofEc2GOLtY8LsAxkAWVt0gCjPcD0EgZ2ShnA2vI7sNHdqjld1AQcfV%2FvSa0%2Bq%2FTR%2FgH0fc%2FYUenZog9aOt65r0ZAOB0zfJle%2BCrh%2FUisKEeusFHKQEjlFcFoZUPv%2FsWgod2Rwpf733uTyMvwUP5WP%2BJTneUhnB4S4cu44avYe5McylYe7FiE0%2B0w7EXYm4Ql21n5EbTLuoHzrTgLoW8QsvxhyOqzIaSvO1b%2Birpy1BnYqJtH26MUQj84ZPmvDtJ89Eo9PmXm7zyc3iHhy7PhvUmzxahfVL6F%2Ff4f4vyuCKEfbV82h6z%2B0kFawR%2F8Ic6vIIR%2BYcjy4h2k1aJE2BYHIdUzNZCJ7ARbgP%2B2NVMOYB1yRZ6XlFzCWrGEK4V7Fp7fh1rnw8qM%2BaO1dE2rD7IXBwyXtd1nTypsUPk%2B7MYlhv0SGJFdZbJpZdWx%2BL9vP%2Fw058WPYbhNLhAYD4pjIUsmkOvlGk9Ae6vxmAHaJ6pAHTCs1rbQ19IWHakImgdhbqKKZoq5027aAtS%2FbeYAH8yh7TKaK%2BpH7SrmAN60J8xFWm0OwKGVvJqoyK%2Bh3h50qLs9kQ8wnYk6U6y1GY6hpLxNaSpoB%2F0hIE6mI0YBZXOlz4M%2Bij6KrEJnBpB7%2Bka2cqyLteJNIMgQaJvSAkAEOSSiwALKzo6zPyLdR2qzPwsXC7H6izblK01ArjhoLwILdg%2FvBF5ub68UiQDi1pEq5siO2vsmdSbSLab049%2FvbP01kQZhA9pT2yXN1Pl4d3txEfcg0g9JUkONP5BVivDf%2Beg89HXrfNK7rnO3c9aATViSx2BsTnb%2FOP0N9jEuj%2FdsOipxwZ2UPhldJM%2BhqMYThuMeJzjimpC4o%2BIGDSKqRT2bZ%2B%2Ftq%2FKdUaKuwDr7qdaU7r2W%2FLASNVbDJAYkFFt37nzft%2B3Dn%2Bu6o4NIOIUDkwi8ASkf%2Bxyv%2Bk4nAVs26jy%2Fb916HDF%2BWShyA9AQx8nbdq1o%2Bwai9%2Fqg3zA%2BHEfF6C3xUNCHMaQisLUik74%2FxR%2FqulPCJyJId6%2B6TjNeW7BErLvRYnGzE7eWnjqkro7qweX2jt7WzbphgcF%2F3Uo6M0WVBS6c%2Fi6jU6hgTJeH483x0VJvmnHFnz7r5Eu6YLaP9C1pUbNBh8Os9TP%2BihmG%2F45Q81rRxt43MpiZWf5XlUWDoaL%2F6EbY11IZskC6vjxFZedYU3Eu%2BcnQ9ZnlKc5LEBGyf1x30PsBC2qh1pZNYuqA819OQlH9QLq9DmBx1drYkv0ETKKE7QE%2B3qVmfm7gWYFWOtInTlBABRTsFrgoFJDN%2BQe8ghZKvWLvUkCUOUyNhGN914OMiMeal6%2FhjPvtQ42Gyo4tacDkQIlKFTcjj3SALhlsfY%2BBogaDOmEzBJ3IaWjFayxLDm%2FA41m1xPrtEAJj4HWh6PMexarqvCZGsV5PXrNmYlybaAIaVPhsqv535p7wEIoxWHkuEjKRN3Bjk0cssmwm54t1LuNcGHQssiIifD6EenIAdCnl%2FMlLSusXaK2GGhfTDFw%2BnwPQEW3WMu8u3nKcuh0q4muKBmX9o5xRlvfOz%2BpxvoQoAlvi8BVEseIFQLzIKZpN8R0ac85xLAzdbqnbz2raa%2FZ7CfVkhWxguR8FGDgV%2B8FRWA%2FdQggAy6pt9STWF1qHXVGjPVhqFdKWfgbfH6%2FPybWUVqCKOrxHW4virYMPdNXNRDV134XcvmewdVqU6iQMJVF4BGhbi6%2FrsVQQ4En0JzjB6TVJgs33LaD1lj4nEQqoGhpZyead99yzOcBI46cdwMquJu9ZVVa8xGKlLPZN1Mubp%2FqHrBgC7At9Qy4v9fPn%2BMeZyx9%2BxHF6QpujH%2F0y35%2B6wMOjCyFPdUmkYBiLyWB0%2BEROuk6UIROcO%2FczqMD518X0AY%2BFOTZaiHVys8jMoeq8wpgO3fEV2kPcjxWQ9fOGcUV6xzXvaw8v8TiPdVcIQw0R1NXYIZgCUZ8hSLpFkln38GYKKjIJEklt0T9BKYWgn0gR6fJjTHyfuL9iCkg4EedSyTaNjGbinSqKrEnT7izD52MYvgSA1Dq%2BRGLd78dIQj1Lj3hCSCIKbTXxJ7JMc2RSsEmHjDGLX6jlKXW9M%2BTpgwVbIbSLHp%2BMhpJ5RYKXc7O%2FOZmOAByNgMfLeBY1HGZEY%2Bm6FtuuTMSIaDHuELcIfcTYy6R5nN48lr6HYfQ5sj4xmVgzoTFMUy8pTH16ZUGJhQxQ5%2FMIcyHwZ4SIZtMrGIodYeuHQmFiRQWAOd84IWXt%2BBKFbTYCYajnb8i0b%2BtUE6H6yPKczYOskSs0fEapwCxfFqESFJmb%2FeKdezIJElAHgh82coKqyha%2BvMLI21YBusHRhkSJObmx7GLYyoQwC%2BUulk2Ekc3eZUga4jiVdUDVUhKpJTGEmVruJjPYn6nZiOGg1Fr94AQiNwlGwiRbZGOqJSNajU9egUDxozGwBjX2DCVjFcBJWCfIEjaYkOSiEl9OEKWeZnS9BSgJCMk1cKSnWoxqfOavNZnaD9QR6DdMDntCmPEfxUUCtqQBErC1Ldd91kgonepcgrXZL7Lk%2BAthG%2Fxjs5hukeWXk6bxGXrYJGm5vOfMX7CU5kppyeAKqaDskrmPhZ5rEaMx9QJJvp4rqIt3wlGItBT99uIKWAf40K5eYvH9wsEgXjg6RKoo9rTgK1ch0Gs1phF0N1I3m%2FvSABKq7C7kAG5ReCNRxUZLLGoRc8SjQOfDmF%2BJEWjciXt5bQpYLHLJCinnNDVWXioBT00BpKbvCczwAS9SDP0Y1vHOQ7wzj2PzfC2nPyZ3IQkkfbkYTdeN%2BNnbyDypqleyH94jFtnBZLHeejik9%2Fz07s57wM5WN2o1bI7Qpt9J3bbO9%2F2xJ9aPtEzJsfIq1ppPHtuStwLAFzh3Zw%2FAax5FxCqqjYkGp9hHVNqTIuX%2FnPY9%2BCHPW0rHQWVfUF0kg1bLIFeFAdlflFgtcikpiiYZvQRYm2VsZUGm55B2HT03O9Y3YIYERKIBgoWw7rkpnfMZxx33S7Raj6qy9A1WRwcpmjY2GI5JJbnT%2FE%2FsfF%2B33VeMZAgFIAU7XpWSDzam7KtkIHJyAyiDnRpRmfjTLbJuZRh4%2F5iyybFZuvKZXyxxjr5frhjLTTqDkSvZzt5P0Dk7aE5qxxUaDBrbVB0MoxlPJpUKgcUBwSp4n5U1c%2BsFFPecw%2Bhz05AXkwTsh%2Fv%2Bu0w09dG7k0BdT7cUecveW3vjNbFFwXOfED5EEWy4R19MwxoWZB8%2B%2BEc4gHgJURKYrHkWZSVVG7LC6Lu%2Fyj1Jf%2BfDrwD3TDnJtalTH2x6ugD%2B3Lh8OJ7ESiuWJunkuUFagviyrgvk%2BRYjEaRfm35SSmXBSX9EVQt4jVihTdBqwwyK7adx0dqbUx8owyxySevNjnjNYJBHAGM7hKzwxSR8hzTOM%2FHuPkgpsyifAVj3c%2BSVREw%2BbWA81vpI0OW03FJEbZir1rOQOTRefgB5QyOuLVHYjmDrv7R%2FOUK1wRQLu%2FcDAKq%2FbbwDFi285lWmmLNgsDjj83FD0lmo8DBFiskRvrN%2Fls51y%2BYXxb4OXLVT5dJ8DWQylXVTv4M3TYBg3xBqIF%2B%2B3pi%2Fx3HRc6mNYKGhe95Py3LNYOu6dnQ7t3avWSmDJB6c606XLNZCd9bHySOYSxOmITVzjZPJQuXBu6CfTvos%2F4NI6UV%2Fzkxp5EG73IUraubALTXq5tzoTxDoYfK8aSaS4o7%2B5FyiHz4dPaJzPt%2FeMy%2B53Q%2FhoFzlOLcHmvutTuDrxqCFw%2Fbr0c4N24jMNp0W3OzJs%2BdUYjLySqaYrE8xNXl4XIZuiC2Y%2FT2okht7i9JIhyKhtR%2F%2FM6%2FnIyGmpgI0oJTbNIVz9%2F%2BH9fi%2BVR9izUG0o5%2FPUtylRen6qomwdW0nf9WUhKKp%2FISkIcw64Za66sA5j3kLdlbxOkX67Lm0FkDP2mfB%2BKlPYbYh9aHm1hIkV%2BVuFLNevIxedIV57pw3sOIPK2Ly4YO%2F69LBYiEmSTcD9tpr7TQms7lSS7w4akMUPE0EvV%2F7B%2BdXTvrGSfJ5GNIQssF8qrKbLyCRhzQsQ3%2FNlzmci%2FxKzJ0ai4nIaYAQiqyoIy1NMVRpuI5xH2c77%2Fn1dtiYEEAKDy7LlHuln%2FvKWhnPQaaAquw%2FQLAdA0W%2B6XQO6N9K7oN2LkMDtH8%2FmRX2J9ZTMOc6ytcULn0b5sv%2FwqO3JZ2Awh1ZB%2BlY%2BEf4ywOMD2TOJYAtZI9uwTiVmh9rOtVwfvLk98UqKPtfvSAvdVZMlsnIjJYF3h9gnEi%2BGLvNZvaejXX5S9yyR%2Fj07%2F8fWvOmPhZLNnB88rHUonwssp9qer%2BvPbmsvcCixgRSpYGQhRQ80PASi0YRSkVE%2Fagksk6JHoyzW7TIMRMOWlWPT%2B4GPoYKoUap%2FIPhTyW5CeXl4soyww0ImMqhKSiLd8XBsP%2FYb2L%2FsmfWpPfZTNyHV3Akyxidu5tWs6nsPw0M1NKo4Lx8U4Y7HXxz3yTmTE61JRzb%2F5puraZxgud11xMFgDdQK%2FdQTeaNmr%2FE%2BIwIDwrz2LCfolHhV%2Fybj%2F3ME57jGPwYgQV5qGIzNgJPqY%2Fhr9wuqeKqcQSKNSp81%2BGgV%2FGS44SVY9wq6fzz6v2BjJcQpcSFO5C7k%2FeHm5vNlRs4lGkUnzyVeAaIfZh0bZx8o8q7MlDnnw5WgWf95XqAlbvdpl%2Bs%2BLav6%2BltDvr3j4ePto%2BuNHf47p7nq63DuLvdVk8ynd5TaAuJPU5cuRlJy0aM%2Bm3i0McychfySsX2GxJ4N%2FAxiFYNRap3nMrHDfyXWeZUno8A6qbSLljKn3Z8eiVHq2u00R3nvC8SdD8oRVF9Rh%2F7Z%2F8GP8YkAnmggovybRkiC7ytcQkrIQacCg0I8kNIWGs0qwdH%2BB74lLZz%2FYDczXf%2BRNNRUYhRe9u9uR5o0fz6Kq%2F%2BvqtyXMyDsXTofuk6p66pYkaHhbWOutXSgxvKiiO%2FvMIrFDkxTzitx4HgK%2FAKjztUlSmPAPe9pmYOY1DjmJLrufFdJ21QSj%2Bi5mj2hj77FA%2FhmSTzOM0054UPvW3TTIe1WrdlOVpn%2BLfuuMt3D3QYYTyXKenK2xviclsvyOIKkLW9Eb9ffrzgjnQXiWEwuyWS3Ve7QXIB50Oqp7KP1%2FiCbrbYTcIN%2BrpxQCqW0vKkZv%2F7KzTs%2FMGnFdHXJKyvTf4SJDnklRZ02taSdrWev8WwJUzNZXCQcX0FTYraWryRyugVGdii5W9n9jXA%2FtfUR%2BGb2XxVqjbny2E85uCTJ19eG%2BFeP2F3lvcZB44hJlPCtj38aWQECQjatV%2B1IHMt3ABj55%2FGcVpVgzw1O60cFqdIt7s81vEdWU3Gk%2FFVPZ2YyXTSThDnw6QKw2IBb1iw8JLaZwgNTNLRbq30q2jGMcE7odKxOL70RUFyY9aLYabhrBOi3u%2BmRVoUSNsVmo2h7Q9pLd%2BmJ8fYeSDcopo%2FQo%2BmLpHGP7Wp8g2dy7WtAAQAYrl7ur8Qd39v7P8AiX9fXfbNrRC16qx%2BXFn5mz09nBuYxALMfZNNtQBMbpmOAOYe%2BqdtVmD9zXxHfZS3rYzmkoCSN7sGVj2F2Uwgs1XZ0CG58ZFjA7NECljkHDJFkN49OX5yLK0Ciw5W%2BUyxShKJvkzH05G0Cc2U6WU6WUqxHdThCDFHLbJmOjEi5DVZQNvEVgMraoehJDUnOkQfUG9OUPR6dL7rTQNto037AFpjpyj3BPW1IOOlZDp5ey8Xcw0wnuFE9gDl1YC8I35tACdWoiK8IzMIonb0f6QnqpMqMt%2BYqTuoiz2oWVRQeDQzlkG4Dc0UUQNFtDcnshidGclmdIk8tBVn7JWKcSV79dMOaFNzQykIGLajkggGCSJYnxNQQRwyOT4qEVdvnnMoyNUccUIXiNpmJXXEQj1xahgRXw5h618C7IFzVD1VAv%2F%2FxelKtE2IXNKpR%2F53M80Bmed07IHpcl4VAHZ37fUbEM%2BcNiPqnEtIvktRZvi%2Fvwkw%2F0YaaZvMObcEamqkEO8mgTH2G1v5lxmOS1Hb8ARThSIcUET7Q8UoyDzWHeUGMueWQO0JKcS7SQBw84DCzeYUq2isRs7LAeaKZJIOlIDDJ%2FnBEU4Nte3kbWporw5OgoYGLFbJFLCY6BcSsytzqQ0nL9PEKcomxZFOs62lOxQ7W0TM9015QkAAVr7ZpS21LADMD9cRAe3kxUtcS0as2Vw7incZj6nrw%2BQXuCFrEpKldNJlCtlypBAJEwWBiIH2QlaiyoGrCFU1dY2aVAvaOrp6%2BgaGRo46jqsTOHX25wYA3AAAAAAAAAAAAAAAAH%2FrgH3t1NJ7bPjslz%2BXQ742%2FGfH4OBq0ZwEMoVKs9mWc9uwY7c9H%2Bf6v2ucKYgCAIAFAAAAAAAAAPDZeoZMxu57fJ%2Fv1%2BlX0R%2FEma%2FdVA5sLGdbGouxcizGgjYW7dm6Tvf0TPq3axrD7HuLcTlr1%2B6II6cuV5EbkUoUCYKIgfasMrw%2BS7bXzz788sciiUyh0mxu7DFeRERERERERET829HX5puaxiSz73U%2BNuRAUAIRAxkOz0KqPRERERERfc6eCYex3lf6DL%2F8wT2bGNkFx3VZs0hKBoVKs9mWc9uwY7c9Hz9ioR%2Bzc8MwMzMzMzMzM%2FPn1vT%2Fhdn7Fnu9jvU3xlaiRCBiIMPtWShRi4iIiIiIDGwhIl2t6ffVTGF229ThHhn3PX6fpV%2F%2BxJmvxxYPz2eVnwSEbgJbshSVLmRkywWrgJDXMCnim4srQmgCEgUGWkSSJFOoNJuVbCvHXoVU1dQ1alrVgraOrp6%2BgaGRo45r1gmcOuscXaMb9FDLHimDlWfh62ka3%2Bx96whBCUQMZNj%2B38Ju09gwu0177G8K4x1hLMZiLPI45AO%2FQCFDCUiWQulCRrYcKiASJioJRAy0aJUEMoVKs1kpQGWoqKqpa2hqaevo6ukbGBo56jhYJ3DqzHU36NKbjL5timPYAAAAAAAAABQJ9UmSqvNLklRdLj1f%2BjyOa4sF8JEHG%2Fkkv0Ahw6bOHIvFscXieFNY%2FNacQyRYVBKIGGjRKglkCpVms1KYylBRVVPX0NTS1tHV0zcwNHK0STbwC6%2FdiAw8SzYdwBgzLJLIFCrN5rnupe%2Bf3zNHMEY%2FZquz4772CMOK%2BOYMztOLdfvy%2FOOTMEY%2FZgF%2FAAAAAHDeNw9j9DEKwzfoaxt7AsTY7WOHjx0ydjZERERExNidOuEdx%2BnqXNclShwQERFRdmNmZmbmL79vBz%2BzvsvrwXz8AoWsShVlSElZRVVNXUNTS1tHV0%2FfwNDIkZv06J6J8u1IXl4%2BVA8olORBob4n5BxKzkI%2BQila2AGGYRiGYbgiQyKFG5FSbxERERER6R8dHo%2FH4%2FF4fP%2B78SGXjKy877HPO%2FlEVBEEQVRVVRVRJBoeRc1QMxRFUTMzM0MNZUeSJEmSJEmSJNu2bdu2bdu2AQAAAACACgAAAAAAAAAAAACghQl%2Fi4GZIZm%2BSZJMr52nlqUVq611VGvjvsW%2FnLVrd8SRU5eryI1IJYoEQcRAe1YZXp8lk8KQSCIiIiIiAwMLIZHJZFVVVVXVgYGFkikUipmZmZnZwMDCKHhUKhUAAAAYGFiASqPRSJIkyYGBBWnOWlVVVVVVVVVV9XwfHzDeEdw9PL28ffrZ%2Fvlj42yMMcYYY4wfkyRJkmTbtm37uCztTrrJDwAAAAAAAAAAAEDAnyMU8SLee%2B%2B9VFBKaV3rtDHGWGutc8557z0QyT0AAEg3kiRJkgcAAAAAQEREREQkIiIiImJmZmZmFhERERFRVVVVVT3vsTRGP2bzZ2ZmZmZ9EwYz58595ty6COacc8455%2FzuLl363aV3nSTxM1MHBAA%2BU0N5YrdpQbLMhQNiYX%2F8umRyFLY6Q84RIA841ARJH7I4Vog9iF3YfKwIVeHHipJFuyClBSrnK0uCDBB4MTJQBUiQhC5NDAonVHEHJF7mKCBO5iUcNAjnA0KCPh4EAnwpBVmvoiLJtEshmGl5R%2F5AS0ZbHpnFlrk%2FJ2cmRlZO4gwkoZTLRJGEwTSkWGiqG5U5L%2B5cuPKBl5NPsmAG%2FgtSy3uiKpkNfQaIX2VaSJgIUWJAxEmQ%2FNb%2BO540GbLkyFOgSIkyFarUqDtBgyYt2iB06NIDBaPPgCEjxkycZMYcHIIFJJRTLFmxZsOWHXsOTnOE5sSZCwxXWG6%2FFnqd8%2BDJizcfvvz4C4AXiCBIsBChwhCFixApSrQYEwaVY7qiw1sVGtQ6Z9RQCKkJYROyO4yvvqnXqcqap77oMeaH734aMGnLpimx4jSJd1OCG7a9k%2BjArj3TknzW7J67DiX74Fi1FCSp0qXJ0CcTWVYTX3%2FpaLLleC9XvjwFihRa0q9EsTNKHfnoIr4Zs%2B574oE583gWreNasKHSuKuuuRwiPoVojDGJuV9fOJ%2BY2nHLbXcy49K0NDH6eSQ43AkjnnlZAoUal0lJEHa9lJJ50zDWGY5QZ2EBTjyfTqHSsxIopEzKmYzEIlCCiaehu1xnXwgBIqB1lDZOaM4NLQGZlXfRmp4IeR%2Bgr%2B3lidT2xMK09VGyBBgSSlBT%2BF%2FbhKMtCuU%2BuyO13fUOCkh5gohAPSqRjpTQTtRd6nQV2mdvNe0Pfq63hS5BA3mCoIxUIshZftSiyPu0RWQOWURwlUV2zh6LLNLXH0ogBNL5dz5QYtonwhO1KOM37OCTOOCf7qQWBMkoZo4SJA6awEeImlzJlQaij6aA0Ghqh%2FhuXr69gfO%2BBPM1DWufSXB7NW9%2Bn6uyyNy7FwSr9%2B4%2FCLLe%2B8GnLABej%2B9aBQA%3D%27%29%20format%28%27woff2%27%29%3B%0Aunicode%2Drange%3A%20U%2B0000%2D00FF%2C%20U%2B0131%2C%20U%2B0152%2D0153%2C%20U%2B02C6%2C%20U%2B02DA%2C%20U%2B02DC%2C%20U%2B2000%2D206F%2C%20U%2B2074%2C%20U%2B20AC%2C%20U%2B2212%2C%20U%2B2215%3B%0A%7D%0A%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20600%3B%0Asrc%3A%20url%28%27data%3Afont%2Fwoff2%3Bbase64%2Cd09GMgABAAAAAD8kABIAAAAAiowAAD7AAAEZmgAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbDBx0BmAAgUwIgSYJjzQRDAqBrFiBlGQBNgIkA4ZsE70QC4M8AAQgBYJoB4QoDIIYG6l7Z9BbO0QSerOUWMD9%2F1cTRZXq2KKIMQ6wzSjJ%2Fv%2F%2F%2F7TkRIYSYiG1VafTff%2BDiA2TMhx6R6GCiKKipNXRGIIlEUHG3ELP2MRhdzx4LfCiOw5RpfZw4irWRaVroe2CMIx3WUxkQNxk6z461hFuVKenMJLHnEzY2FGtGIcST7Sp1cxTYd8E50vso%2FyPErfe33BNR2HDauKu3AktsDKFzxgVf7HfsTCZGph8ip%2F4Uwt9iS3xxX%2Fjfik50%2BuSSvluohaoxGhW%2BQffZ0VxQ%2FGM8sOOfD3skKRo8vC8f%2F27ju6d9yKpcgWhygSeSCgqcvLLdBLvHsBtzrwRdYwKMEHBAIxCG6PBxMBITIzIX70341Y99elDvde3%2F30frfnvzA4t8N0FHiQ%2FnyhlhYpTFKZKttIVlLGFqAtdnOXCPfh%2Fppp%2F5s%2FMptmdsGE2YZeAAAIiCELEKsEJcKJwJ%2FKynfnO1bVyn4tOV3TO9YVUOtHOcq59RemitP%2BpqmCq3alMuiDl8%2F5IMr1QhE46pskVkHI%2B0pVKL2OFsw0Pdt%2ByZtn6Fo%2BZb26vHjKL5K9xJojdAa1M3xoi2sTMDYexavi4tFLAtdy6hn5NhRHIvdLOsRxnVwW7mrbd%2FdLaMceF1hxqKaWqy1M0wnGOUpUjcZlXCIOSPyiwgRYekEwk0wQSeYETiachON3GSksRmej5eOx5AgFckz8qFxU4sFuBDwh2aNMare3AjGQ4P3L7FXIFJNjEd3EIjsBrNet%2Fjg%2FqRyg6IBQYDvgdMlk3NkNNgB%2BqwG7TqarbF%2FI8LPB7hDBogrwqc%2B2nJJCrmTE6e%2FO3AQw9WXmJicB2G0w%2BCQKLMusyiTVt%2B7VeBVQSlulYqexUqapgXzGwx058eVSam5Ez%2F%2BqsWpG8bIipC1c0vuzbiq7kJ8HXR3gQZsaCScAk2ZMEttfCnh1JcHeCS9i7uQq5uxgQkxCzfoeYlIwvhVCl0IVcNN12t9cdPdngmZbLCHVCIoxbFgSXF0Rlg1A%2FyKp6CYHaWA%2Bi8bm1dBjU8NCvvWp%2Bi8tPihQN4Xy4MWSPrDmG2TSlyfUr8c9%2BGtZUM29n7LsMByrIY8kQ1PSvN5MwN7xjeYm%2BZ6Fjs63IOyxLAcXRh0WHA3Sqhv%2FAGHf0OMAboONkkhqh6SqMber2rJnbwoSAyHiIyrZsPBhdDfcIJb1nz97ZXbZD3r3ZFlX9JDujMWp3NHVAWo4OtbwMm74D8lx9V0Y15%2FoRyh%2B3InYAAFhd436DrdGmAGD5%2BNuJDlyQOSrMzssDFPcaaerubRRgeZJJFtd9djWV1yY2p3ObD5ylFJt2%2FadoQueV%2FDg%2FXT4TExATEQOJSYnpiZmJRYvdAHH8%2Fy%2BjtWSl2ZY9ZgB1bSrGJybUT%2FcDGJ8qjlexgDmei4II%2Ff%2FX39P%2FTz7C0c2jG0c9R51H5Uf5R14frfzfuZJeMY2qWxgvm6qGecX0LG078j3V3XHJBsQFAKcMC4MEe%2F7%2FyuP9kBhfhu4hm%2F7KaGIj0k6NG9SmfP41vG3Zrkm1SRWSNuu%2Fe%2Faao7dacorBO2u0EiaE6x12ujLc4K%2FPVqeL%2BfFsemsy7svMaJWUFIM3FSaHwOESCaBWCCiq1AtWXDTiiFS1TONIcT2HKAj3o0GLG41VDRcQOcGCtdgk52DWC7r180lc4Pl0QVx4gd6WCT%2BHaQMvW%2FrMvV1qCH3fTjJoJZ5UIggyI4IgoVpSWH1R2pWcPCfPJeJLXJvrm4iEiydOtD%2BeimF%2B5HD4kheX0rA65wh6RJWAyj1SxSz2W1qlMghMHDWRluntJCyhuxbhJUQk6uLtGl6EG%2F9mC7ysmM7DgVmeLW5rBOxijW1gxT4%2FOLkQI5yW%2FObPgeqSOYxzqjBW4pJspA5LVt3PxUNI%2BUz2D1Dz1r8%2FAZsLS%2F%2BdSkBLwEMdfCVknc3u7fMqU91qa2%2F4psvks3WTyec7tZBhX%2Befc8PvvTSw%2BvUC2bz05k2zneojGQqtjgapOpXFH7C442UOzsig8vzVuvWICkgAMIC5UhBAoCx6LLoXq2AO9IITTeQS8OHQgPTdvu9TSuN9JpJXzjmAxWZUWyeomrOsmF26aMN0IYo7XNkd%2B0j%2FywvbfIXOHjbZKBEUpnQJIQsgUMCQOo2gNUva6kX4jXdyX9qbSmUPnWUUMFmtWOU%2F8ouymnsMxRHWQylQjjU4PaS4EFZWuenDmRNFvkx2U05uhSl%2BhCIngoU45VV3VKcnecajWAPomTiDKaVTeVJWHwS16yrjlt6EOf8jaZBcnhMnwKQpF6Jc0whYyp7PzqOTy1mIfJ60DMAGaBvWc0bmFrHf6R8y%2BGJGTXYwprNRzlptfQYLfBOierCgUijOYy3tEVKIqh7S2xrbTSrq%2F0pQ%2FSBzcmGbRUT1rKkPNroDpXZicoG01xAZAQ7hXE1qLs0Cr40IwceagKo1ShLC79OButaQgQm%2B5DjaNhGpUpCZ9iSLVeM2FwBTuQeEAv2GbBSqEt%2BcNM%2Bx4ZLAtzRdEBrEYAIEYjcRU%2FXYlR6oMBkw8IhfQiAfhtVQApvE2nUkrrX%2BqG%2BjkGxUZqMWschJoQCpJkB%2Bc3ymIn8LXmsOZ7RA%2FRmKctblKy1ZKs8hmCKbs1aO6gsZgS2R38s3086QF5m3NZbEkSNInPQ%2BHzg%2B3B219WZWCPF4rJcIaSlPjBu8X6Q3hRB8x0swhhdeAUuhI5E3WmzkJgswT1jwF4rzVxsIn33RIIKffNmksyqRWdBdfzDOGT1Bf9Rn0JfkAK52V%2FpC3MO9PEApajj8TZdihx6CiDFYTmIKG64AG7k11kPjxlg%2B9ZghNsRaTqpVnbT1chLyoC2oREi%2BEnHkPgCnF2km0ayUFLwzpdWmpSlQdkj9TPKA8pIAHQCLZuGkE5dzCRIyuee97L%2FsDXORLLDs5VUbh5ZuAbdtxjo6YB9i73dps1tCohcGpb3N%2Fo2lChSykdkIjUYjvG9OTk8f6PeAeeZl4RsBoOwLyHOz%2FE0A5RAStnLRutoJ1uwgiYXLr%2BE0HccEPK%2FCdjBLBFKtnFrhVBQxFIHMI0VgGb0ci4Z3ZZbMgg9AZQaF9dd6qiT1BRASK6uXNStArgxCupzRTBgjKtNNyxe1MAojJoOOa6Kkt6kTKaP2VfKjQzFXSlVy5E3XjHlt%2Bip6X4dQBZNhk4sS%2BXzgfAY6h3jmZ3nMIfSZ77GwTWveLWWz3fuSCs6xVGy6lrA75Hw83W35lLf4yOfNDUanh7xnPst5ddz7IZonglh3LlIy9zwee55J3vPavK7JvI%2BDu6%2FissBTOysy5%2BmULZZbAVsOD9ilPSn%2FQWZz%2Fr8P7Ttkj9mdcGtYwrZodSLJQ%2B6QwW7EqQrd1qYCeIoNvJiJBj%2BHUloE21dP0OZOArKgmfeqoENgiIYReCWDTpT3sjOR42oe2bZzNvekQiDdTIY3kYWQzzZk2y20TNXjMTKEmU3WNYvOQe5npVEGnBXPzeRCNNRrmWtXTDiJ88ey%2BfTQkOtB3lcYBvue6kmMQ4aBJt%2B36ZyanpCTqW7MmpnJNc5EgRIBPME5l%2BLH0xqsAgYEiMWH66keclCIIam%2F%2FSlPGhZigOzVcLRjPnRSL1G9ypYipsukjrlHnZRQYQ%2F1l%2BnjnCxKkrKsdUYHsv5BhLzFBAtlZmmEeKFj0Mll2z0B%2BekC3QSnu183K1BOP4rN5ytSUDSVUl3jTyPDYKaLA4SqRMwyq0H8nLLp%2BgGD4ox9qVaOSYG%2Bzjm7njrpFQUJ%2B1SV0oMszjTQ8aQY%2F5N8fzYDLlAVQFoyilNy7kI2Wqb%2BlNg2s7D9sWSAdYnbu5Nl0Lo%2F9IDx8VOdA0hzsrzyuCbBM8yrFPJ548FJ5PEePHVGyIDEOssj1SnSiX7r2XDD%2FMqVq0%2BWU7QiW518PVzmZGrFAUh5cSzHbuepYnJUzfVe8vUXBJ0XGSUDJPQo2vZM%2Biz3MTpUq9oasCSV9WKB51W2UnR4SP%2BLPDnkaUDV1hS4xVK5iJaKlRJNiHSbJDYpy53lq%2FKmczRL4rQkS2MVqBGwD3NZZLSejKXO8HJsWS6lfDLy8oBVIgjXlM4zrUqIalKrbIJnWX7gxPZPoMZAU%2B56EbNGQMA5VPDU9ApfLcGKKov0G0MhorJE%2FbCv%2BDhndWCyI7k7jtgtazSSe8pCs9TCNmXeXxnj9WTbvB0ue9Nd0eJTUzdGVYzG7kHcuM5Xl%2FnaqlhZE8u2preKWGqL%2BgYmvy7HDm4F8EzYDNtKWM5Exps5DwBXl7Mqq9kQ7mXC%2B3ugpiQPEueMNhYXt3YjM9kucrbbT1q1vUaJlpLcXUBRpSOyfb%2FYss49aSU3Nhj43W0xAoqiwLaKx2l0uhuryEPut4BaROoDlOFSDDjXRmkjQrB8BEeRpRyMrBsDwoL8lZzd2K6QykvH%2BeSp0XwamLEbvLa1LkVft6S40qV1LFXOis34riXFSJmcOE6T7ZOXtrN2GrO2b9K1z4L5Fb4oE%2BVLSLHVl5YeJzWNaQKVjtwu8zyRiRpCAyQw%2BoFkpUUWDFbBlnWNHkqmL2VhxHShTTlPC922JexLPaXgzXpFJv5eCp14MTrbvUH%2BWI9gica0DOFbhQxEEMO4o21dAx87XIWKzBgCAbwYEcVYWqlY8z5XGhNt2uQVRdOkVn0qTGJPbuR%2Fp8XLm2LTW%2F7KJ0A1gxMNAFRuno%2BLh4l34i2hZ6DH%2FkAyplaVVm30WOpw60ZGug0V5yDJJfjtiFcQQosvxpncSRafyoaFXT5o1l01obLuYI3uMcZsQeGYfBIM4GhoUsbpJuoQs853zYBh6HTjaJ9TxoIB6aZQU7oCGxYrDRkpjM2O0UYx7CKjpM9JJTWgm6Q2wSgZiLNrtEy5IQIJWTBvwxmtkqURTNaCVU4cg5oirAdlYdnCdoMICCI9xaug%2Fh7myP0D%2Bd8Og5yRteexX3IbNBKgHWp1zHoa8p4Lu%2FPA5P0TpFPDDmCZ1V%2BnlYzBmrgTlgQNkJLp1lxS8wtycW6XtlgwGrw2%2FejN5HICJzHBUdH19Tx0A6vb9mMEyxBSFM%2BzGsR11sUN%2FkuOKndSCrsd9OyB8XJ01p4zD%2Bm%2FeLsjFuN9Av52cimX1Bgq71KNL7WnKRlazHD057DpoZFGEydpIXfh3A%2Bqvxi0oaq%2Bl31YMubDz6WeIxmqmhb12Hm9tGgWpnfCPkzjTplElR457RnWkMKJ1QJP0da7wnxblLCrHCkho1J3mX96gA6ITIfWkGIOSPM6BZY4bGuhJGbTjm69Txi2c2WDG4MNnQH0Doni%2Fpa%2BeVjXCYjsj4RYg4hvMQJjON4RJm3cyBjWEQJIoOxDO836oQNqX2gbM9LCZEiUlCIYyiDPBkAZdX7ANZzMv92vn3b0jTZFbY1kvrV0RsV5Kv2ktHK19mfBLbd09PIflDaaRshdSal4TSIvmLGT6QKCRa%2Bz1dBisAY2CVimm%2FGQ7deOsxOK%2B%2BbpXJFBzIQy0OR3JJFFI7wClRCkxAJ4w1b%2BZ9fDyCMlugBY0ogh5xqhXIFZsFcMuYek9fyILz3Nxgb1JM7eH0J7Jzazqp67Msis1by9KNuIHsf2KSgK0SEdCvBLQHiLuQn4pdbI6DJmJkJktySDcJJxbsWarFGROOsYd3ewtXnG%2BX3APWoJ0NQ8BQQknCSI4Kb6qUx%2FcXNw61pZI2BQuC0UikBZQG1sZXkejMqwVibDbxuKGt7DagmydCvbtgzhrlr0w1t%2BdQvqCNJ1S9p2DAf3h%2FZH67r%2Fy186PptJJlHL5HtTq9yHWfd%2BUDVC7znIHuu4ArE2kTajyv400sNbYxzdWR0btCNWsNF6w1rGULjQDIzccp6hZ2flAQIPCBy80rWAu0to2zKiLQPYo4EKXbJJprR0psn5sVgoPWk%2Faanu%2FPB8HdzQfSHqK1WhV2aSISuZYaJXvFB%2B0nHcVN118WIdUtt7zlF2XW1kdHH9ZeokpJEINomYjQS7hpsbO1rDbN3t6O3px9KCU%2BKDTG1jET4kQvpWBnGx09Mj3KwaVX0wMHZrvZeMy55ocHextgvW3PliLlgzpABSLi%2FxR56gCk5oDu0Z9FXLhVShr90m39wmTZXdvbwsW88d3yztqVkW1VK5VrtM7trMmyxdvfxWtkea3i7tr9kRlaPlkklODRE8CBA611oJ7kCWI7eCT7T8hUAHcSEyyYLv44uGiqqHq4uHiiuHFeoeKk8QJW6aMV8%2FPRWBzq9RrnFnJlnCrWESdhbCmm8YDI7kUzkeBdGMPgdxjwqZlj5Jvoz6c%2Fk7OSrjMvz3t9%2FEL1HyhP85OUlU0lJJtOf%2FbQgUMkzngz3XfAJMdGdrY8pvIu9c130xFE%2Fo7A0tUk2G%2BcZGBdnXG2LtUmoTsMcO6Vvf7g%2F7Wtwqne5t%2FvuNYVQVIoHNbxkvFaUb4B7oJ9%2BTfcP5tdNm311xV9Wrtys5M2YibJU4l%2BbxxSPBPw5doxRoimtbK2N49mPG1GIfvAw%2BBtePyC6tHI8v90bcoU%2BiEzTWxwSzwiTayM8ozjbeSdCyfMu3eWCnuK%2Fq2tRRmEdro5zHoR9oqL1%2BtS8rFiTpx6qHCXedCoez3YFz%2B52f%2F6bnZlKy63HGrz77un8ChM8bTiuTxP5%2BS0ivI6cQihMRRIhlpH5h9bwZICFxfLX7tV38G5ukRNb63ufZ5pfMmX0OJTMxI%2FSHrz%2FQbE4Rchfr4Fm2Ubcimn5OU%2FvZBJJxyWlFsVhkRlaWzlaGLp7Edg%2Fsl%2BDjoCGPRJv4KsVp%2BETbOBB8tE3xFoNuPR5ZTcvOfK4fzv5jZ9Jz6bSNXHz2%2Bd4xkDyvP61KxqglIa2xJDm%2BKDGupdDTxaw2cTfn42hjVTncsh3Cq7UyBe9PeD8T9Ob%2BJDVTtmeG7P0J1eHbpadOT5WkaH3Bt5duG6gWDy0NKXq23OSnTksPwMOPUb%2BUwBQk3Jbsax2LMQuA2Ue4BHm2aCIk0QMbkW%2FvHM%2F1wOWjnYNC7d1hRp5IxQujqjIY3AZWx9ccFAq3Mw559brY5aI1I8QWj%2BaEMqlYF1u7tk3u3975AbyMGBeA8nLv8TUH2rpvNvblU1Lkdz3QG%2BiwOABpaoOefXRp33f4gWso8qd5UVnw6Pch6vYkAmLscja2wC7B%2BOEIllrUg0CQK5SLKv6ANKep1047vrmFpxp9VQIEdXJGkra9%2BhweUmIamE3N6EnkZqgRKuktXeZ4%2Fo2N5avrSWWeBy6g3K1113H3X2U1LglXF9ZkqXb5b%2BdcnIL5FecjzE0JjNB2H%2BSxsVNm8JtOB%2F2RB0czGIcVS1C7hpSjz1mwcripAdroHUxG3G935vNdyV42mT%2F6f2z1NxBF0mvSmwjD%2FvdzTje6%2FvwYSOuo4vkFnmfIfREvRATkYr0rivyOt5zQK7eQQ%2B9YJf%2FLlzwn0RlCCcp69mLAJ1rLPubr7KNjq%2BMn9WtVPsZ862guoztXQMv7VLtJO7p%2FIYrcA%2FKNigKceKo2k95xXuGku2wpCx2zmgsTh7OQbVFdgcxlOjbWD6uHf7RIfr98WgGJfNS5%2B5N7YQwYDTrB6CUjZxVAUuGykI4awjxRe%2FXvJw6kcD%2BHlodRDPnviRpG7Zm%2FXz4U7pMbHOyXAbfwzTNfwLIc8jx8cMDJzvyQ%2B8Gjx9wysLI%2Fx%2FJfuavxaNvBwfbi4Iw43kfMTalJbOvM%2F8POsBGyYImJN%2BGESpfSVl%2BQiqWzqyKRkNQS0tbYDivrv4sGQdZ7D9kF8fXZbBioGWShcIn%2F2dVVA%2BKVr9KRpndRdogbKjFqwXrVrm23dIxq%2F8ndXTf44iKyJjrOD62rbBcGLdJrNqnAm5M1Jj%2Be9W%2FDt%2Fsl0SOjQ62kL7TpY2yKon%2F6PzWMdPX1o3zrJCGSo1diNKN%2FRI9Hv3NyFvJCNLeimOCaq6xyXl4ANWtG4JXyQ8smhc2XrOJ%2B1NNP5g4vmTntVba46hns5ffZISyvHd%2BzmrqCYqUuWIp0njJTob5AvnOGOUQ6AG%2B%2BLc8xIGXmJ4JybUlT8rWgSy21CJ6o%2FUlZBJ1DreDM06nEZbq9%2FaFbycz4SifS9BEgfj0aBNzWAMuxmGbvs6Ra6e%2FEgw8ePXs%2FEBXiETTtShBBdy26j6iNSGurguNy4tjlJQ7N1O%2Fe%2BcnNLmmePjLEz%2BmuVENn69cCI7aNDrT0%2Fb1JdW2WRj%2FYJzDQoU4Veh3e5aL0QMXz3sOx5TOaptTaojSvQpoOmkofrJWTnaXifezuiTwr25nS3l18JZtc%2BiDQcZ3jZK%2B1cDNEtNfPFSV1UiyxbRCHycmpy1MJEH%2FO39QSHLxs8pQD%2BRCL6XJdb9HkyaJJUkO%2B9fabIlEpIc7dU1TcO%2B3jqGYmtljzsovZ%2FyjjMiWMke21M%2BSMVorR6%2Fs5A%2BSkrLXJ8bR5CImTEqRAx8qsefHkL%2F0Z8SV1c9uNCp9uCS%2B5OQeZgev0S2uR2YVMOd8pcokFUEX1Zpbmi%2BbR8BEo7M7Y9ExSnIzhLUdBWzuYjy%2BMRd%2FsDSptGlR63V%2B373xpV7MLrgSWspD0XBibqSub1tyUfPW%2BqRybSsILvDZwVjUydzCTdZAI7owcfrV8VxnLVCni9w%2BRi0yanwpzg2ENCob8Yz1o0dDA4Ai%2FrcehftEB2EA8LuaiOxWbHFlOGtyTPGdSx%2FmejCGsyra9TrjSCvWyc9T5lQTYzBRiVDcBG5iZGUF%2BtbS0zoPN%2BSZN2aGVvffOX%2FcNDVAH%2BD53Y0qCZnZY%2B7JOPz6I5fJ5kxqUeIa46OwH4329sio%2B9DyIi16iZxI2N2VwR%2FocNS5WwqRo0%2B8Q9B%2FVbCrIW274leHV7f3zXqJXEjYvpfeWBZarK%2FIGdrP2UtVmzCGyqEIVeleelVv5qu59PpHmJjOn4u9PvBpqSFqiIB8xUaA8c0nmgFMJFBbmfJHlakuNZlP4opnCup4qSDPWd8psGZMFqW3D4srQS0LG6sRk%2BiwY01We2ntTcjvzdnlKxupU4uLU9qkCC8u5ym5gOwLiRMdfsoTE9cUDhWvesswB7RDFciz0kOexoFZh%2F1iZCWGfyyKLTFo%2Bg3hxnc%2F6rec3nj7LMtlcdOk%2BzJD7EabvLTlrmV0WW%2FSmfnnppg18cMiSMBms4QVtNcrVSHTSx2mY9jg6CNzyIvCY2HjZVwW2ONiekb%2FrD%2BnbOdjbGQ43uq0KYtgpen15dfPe%2B15iQEoE5zqSvkCptAuYoa6O0nVbGH3p6KAGM9dzwl8CfigZ9SIqfqSpHL0u8%2FXIUgpqTj%2FUpwIx5XXOYlp6mMz0hy5zylbzI4V1bToWgtbTIrELzkyUUYMGTojpd%2FrfdAa8ULYGA1sDawODOgo4wqllscXQZSvXH9f%2BEy4%2FTnVWtLFkm4Sb9ZrdkQlQz4eSQV%2BZmYe520E%2F1XW0RCYZ5nLSXTHa9Qelh6NR1FgUSnb1jRTTG%2FF1eZQ%2FGkcxdkKxUd1nLlzJNgz0n4e5djjrV8iPKcY8gCDGnTYhKIPAxfRGalUW5YoKox59sVjdL%2BqXgk6eS0y19ze3vK1G0N%2Ba8wmpMonhd5JI13LRSDKsmQ0MJxsniaBBKVqQ%2Bcx%2BKvWrYF%2FRsbKytnLvzyqW5nA0DIawkzEc%2FBCrR6JerF%2FbEVnl%2FfVvTXhbtLextYo63cB8iqwXWJo%2Fs7BYfIsEzxZ2lLCSl1xfHEbCR1osCNtPLgtvFI66GRNtFS53WZa8hTEZkePTN6aBZ1%2Fdc5i4GwYOyMyMj01P9TXC470hmenx0emZRr74OCPv1NTY2MxUHwNcirNBekrs88lgny68T06mh3dxPguR443JzdGTyBCGVF8W%2FXhdxV%2FLX8N%2F%2BfJSsEawVrDqKO%2FHdzeQvkEFhqeGhYYl6Dil7RDpMDkyqjrtMXnCreO6j6xpC141jt9wMUwrzCZHrd%2B0oj7sFsmZZFtcdN6%2Bdz%2FL4jZCek4NeZ4hX%2BGr6SVZoJXmbhA95qWobB5qmq8dCgmAJ2IbNTzNXK05HOKMTLRUNN9ra%2F5fqpjo5updqv5qaxkbqSefdSLa9xki4pqLykIaErWThe834tTilw8%2BPX%2F45PsdUo45pChIS7tFeW0Vg1nfWMOsrmM2lhdcMLt7u5idRRfCcm83SLyru1e8t1Osp7tbQqLr9VEX6%2BgTtwCpswh5PYzRhEZFBgYHdoV30QRTwcyg5q5x2pq4YvNCUl5S8hyFvgVFKFjV2cvNDYmS10Wq%2BA50Yfinxq3Ly7d%2Fgd9vFRUAon%2Bw%2BvXLmrIDQwmiQ%2FviSkuU5lZwc2MYTMfWtDqpr9rwouDenIur60wObX9Ljgm7PqY9x0CwXEztTOy099NyZhbzSTNzpPy56VznakenqmpnC%2F8AKyt%2FLBQR4A%2BDBQSIvq%2Fq35xbNVz1jVhIMbQ%2FpN1hic85PoqOgATpa3xTx4Q4YeJJsb25lRk4tFtlbgoptVBaxv413M7DRgrD5RFmTZzIu1meYNhQYpN8Oyd5FZ8VNJ6mYaato%2BslnYmO2ibr%2BWTXE3R52g%2F5dczj%2BxTYuQ125i00OEs7%2FjwuzbMNXYxdL2VWRhWhAwtsXKjlaW9JQEyhzbk%2BNIo6D%2BiIc%2BufW576vv3Bxs%2Ff1Id%2F35opZt711D87eHuYn6uahOdhzLWOFB2G%2BNAd1TJOtlwuHoqclpNAxlK7UpzHODtF8O11gRQu%2Fdr7ZxoqB2bbegYnaqoHpj92RFiHOTvLRkRZh%2B5dhUqacPBi%2B7u8BNwEMF0Y7MAiv%2F%2FV2fxu%2FP%2BR%2FAck6a%2FRkzLBwcgKf9tEb0NvuE0IJsS1SwspiRx6Era1ezrbYykb5RAQ5YKBG3rZKn4Aa3gCRvd1mAz0YSqAfOXVVMV3Of9R5Q39Iq41rk19BLmmMS3R%2F%2BHhO7w6CySnEsgRpWulxFm3jPjfbtRXdJfLY%2Bpr6p3NHFC6qAHD2l1z86QUqDmsGxBglmZQQhLM3PSTShLyNZs%2BKLPD5BZgvIunlhI8RZertUiX1EI3n%2FzFlb8RL21zJNpQXvr5XqOt5kv2U%2Bt0idsoN7380FGwQdyEzpKT7rX4V%2B5u1eUX%2FMevy0ysL47eZU31JRcQ6wg32i2g94%2BtEJnGai5mLkIii1keYDdDRw%2F5CGjHg76t2VDIanmLiul8laGZU7xlLCwg0R5sGmihYaUFtleHZdlFELNCggrPyQvAXz%2B%2BpOoypqV3DC4GN77cuLo2RYNYXC%2FsQFp2OCntqfh%2B9qmNq32185XpDXGN3lZ8vM82YPmA9l4PLzgINQnDJM1jyB2Tt7%2FW1nUmFZcQvbJpammKvfRM2CPTSXSkw%2FToMvwSrL8YoHe1eTnUf58Lsx6f0jA9fegYjjecbq%2F7WeGUuRnroGcnhybnG8XYneQ5pU5FVuU3Jn7kIVZWZFRltTXWlLXklWeN2IGe8IzXlF%2BhACqIkQXEEAwFg00tdQ1MLP5cixoeQNOSIB14aLYLMrqwlt4PcFcSZWTmm%2BNmHZJdpYYEciTQ2UqjTuHAttRGE8SQ6TJ2jny2xC4cv%2FqCgUOrTfDOqSIz21ul7Sfh5SzXoDRu6%2BeAD5z30%2BbJ8QkUpbYNSfoIhf%2FSZgmTxgye0XMGnqhBYGN%2FzjCIa25woFMWGI%2Fh0duAFAmuCW5CIBKaew%2B4mZnv8e6loUGALeLocsTFT1rIWGC64NWkZ2OX%2B5aw6W3smb5w9ey%2Ft8RXDG3lPbXYHglPuTm0dD8IXgqeSV8oLUyfnZ7PmCUXp84Yl2yFZ5MYSJ%2Bzk4sjNPwOCbDAYCw2AdHIP7tsFEhtFDY%2Fzy%2BjPjKNTU8JDSUmYf1TksICsxMz%2FdXGlZTH1YJDlEblVDIP5exA1nKWIBBSEEdgJKWTsfLIXxzMyVYAl8yYlVaphlyZdZ9l3w7HzAPnH5kSvTDCifLn14zqBf%2BvL3l5zEePNfYIzL1mYiL3eEdrflrBjEcaG0mcvWbSIltnN7kL3HgG4tVsTp8OcJ%2B7u2HGcv34FJT9UOtBPN0NYyrxz28HeFDh6FdZNv2clFFMSMgs0XjzcrLK4uOzSjhHD%2B6RAvRXDeXu4QF8GB4TM698Mt9GN8kandf8xaiA6uW%2Fwoe7hHvWah8JPeCprskBaysUVxhuphv0fzaa4t%2B3PcvlkqSAXFZbKflL9fHL2t1O6MkaeJR87jn%2F%2FZ%2FJD84P5hLzTabVkw2HvGl8NwrQLDsw6teCtbCAlB1R7swPsJrd3AmwKsJXKHqvFff%2FxywD%2FgzvO%2BefVFrZFX%2F4fin7bZZonTwL5FVJiG%2FaJt4k1FXoRG%2FolH7oHIoXjlkonRf3PmYadmtA7%2FTMgigj7RsLyFhtEDqNn%2BeOUYsqmXxDPtX7byMOoZMkHTo1GTpH%2F7ljm6K2gFUboRMfwqz5OHesWtRn%2BZyZaZ0rtrkd8AMmOw6YfjVgzmcDxr%2Bf8uK8MXONTk1%2BMaig5QEaMDl0wBQbJ8Zm6rjfgLQUOgm10Okwce54WIzZFeVdwYes2%2BaZqwGT4wZM5x4wJ04ZL%2BhzOmObJ6A2dfmCddMV6JTxaj63%2FpOLxi8BGEyDh%2ByQT1333%2Fnc1cBA%2FK7abqD%2Fzv4%2BmokH2rCS50s8gNVyKcx6F2HRp6o0k7L%2BnH%2B%2Fnv5Yh%2FIWsNlpACwtZKucxwDQbdBGKQG6bZ1HO3tEW0ePpW3f4xGABYyc6J0%2BcPFu27QAKP9xKoDXKNEuTFUS4qLdowqIj51tZNijXwFQ7kR9ljjXx1CpuxXo9PaH%2BB0m3wU7cNFwxQKgupzypGkXMQVI99NV9YB8gRDw3AOfE7qvlNINqBNpyBWTU8wdHwOGNsITVt4AUEBDagVkwHKxOKBe3onCf8bp%2FQn%2Bw4PdGi3iFyB91OPdBuTb4%2BQYoU%2FAQ9H4xN7IH3f3MiNx5Hyw4AZw3awHY8l2awYznN%2FZWyEyOTc0IcVRsb%2FEKeyWUO7sdv2g08yQVTyG2fcUvDojgu%2BGZxuJj8rD79ucZYGRMkyVJI5LmhWjzmO6ZwSOrORcVxFesHZYhuXR2GfsHkh8Bq2r3MRtA%2B5SDGXCbohCu92u12bYcny4R9uizqGMGeu2HZoPbTYGFPHR2snMjWYngrFcYG6A%2B1Hx9RkXu71mD67bJ%2FEUT06Em0mR%2F4DiXZs5127bdLBeGhjMUK6HsWAzratL%2FWyZGcNBrkCLtzEP09XJ8rTu8xkPoYe6n52civVZ%2B%2BM5mc9X%2BK2b%2FL9vu5T3Kzy1nmXlJO3fJGEHafb6N5itdVEejsDnh3h8urT5fCHG0CzzZrzgd4dZsjphp3Oclqhedae2Cx7r2B156Q6fMK9EA4ZJiaXndz4CImHHMdgEtq3DRkVOFA0icArejq8FGXOPuMixh2%2BfI9WQSWj%2FUTs1tO4nAN%2FdVAluu3YFxpgSeio5oMO%2FiTUlDmjFgCLCJLvN5qiBkHij7%2FOl%2FIeiphD%2FdYC5LCAkOfgN4Qq8BaZZSQAgzdFfgoZHaPmZZAR0DoSJ3ITdTi1b2xakKhzLIL8i8Kh1CiumGbJ0oQPzgRFzYsOgeABesW35qMndh15WU1rXho1aE14xHr0j5O4F0q1fGgvb0vrcwdep1wCwlf1ELOboytK9SFmG02l3xdQLe1tCIvKwLdc7Q35XnYBgTcaTcwZaU8Inp6Ct%2BPMlavaWWovKlMgUBrWa8RlYHDY0DPM%2F9UzhXY7%2BVrJuBOYKAN0V1QsUQuTfCAJ0tXdUNWYShgAy8HgWZklyepHjh3ul1P5AvbW8IiMfzfbGFIACTsgbHJD%2BDkV6QyUHkaBf1%2BVYbM65GY%2BXywjg%2BYuApbuoEaGPDSJByvbHqyZSwoMFMXF%2BLNWm%2BhdRira8uiL30P8h6EpIk2yjHFvDwSXZyyRatfgVr6yuI%2BmhKhstloF28aZiIQ0trU8%2Fbf369%2Fr3DSpwOQFkmh0a4Xf4ZD2l%2FxEjsAB8FlhmK%2BYBcfAsf2MEoW0UuZIX55PJMN0dBlDq3y%2Fbl0K4E0X3IuufYTFuG%2FAWSJaWLebMOQ3wXOvwMc2m3ctMU0CYtaKG5QewbeCT2Se84n5y6wyStVicic%2F%2BfvSNMZvy4UMWpXf9Bo%2BXsB6UThiKgF2VhZUvx10qeAYjRsfmc7OhFb0JaLwAT8nJ3OtVDqxg9a4y1kW6rhXzqfGziV9pXWFvpxXA4RKgdlfCq28Fi2e%2FSFShbVhXKVxKmdQb%2BQ%2BB69fLjlkAhm64vOHI5YZZIzElZ6AxIhi43ygaboRA5%2BSGIsYbYlsSgaEUANmQYsrHqbGJVB3O3BHHC6To%2BZY2WUlTn%2Fq7mIkUNNkWQFLql0RMdoS%2BmmnrPeDAZywBEQRy8XTj%2BxKV0M1a1pSR9Co1JLOakgJGS%2BCZnsa2IhmJI4lQogqc5CqcfL2VPEta1nbst1MRBEyRgJb9ZmxL22HaKKllhcB5EdVQaJdTG6AmI6j6aZbwqgWTA%2FUk6RowmnkPi0Xpe4DoPYlI4yKZf71sKSYIOFRBfknAqN1gyulcoCBho8CWRQzqtxeZTi%2B9xOOTATq4tOWMdAc6BNboJrYRV5fETIysCJzIBgZtnnUnz56SyuZMZym4T21Pc%2BYKG0BXrwHIa2SlL7OkSjYks8Pg6l3sIwmPllsH7OVMjjDPJeXhOcNA20zYdjBBE%2BYipeBxesh0w5BAy65t%2FBSGJpH3uFgToFR1qxo%2B9s5GGgCFkQPVEgiYaDoms5Z99AWBQxj0PONNG0vJvWx5N9K8xPA%2Bk4iRc2ZyRH6gBGoJhGhKzMkt1MfkS3Y0RFUscmP0q%2BEQ6g2YxYlRDCBoJKRZbFfk4HkHjo1TNBYR%2FHiOziN6%2FY509ibuuqnCQBEheEVpzTUGf%2FtNlykCEfopFysImA4eeGCejzOhWqUBqBNNCzDq2Z5tmKr5ALljdFCMkSI7%2FdDHFOU%2FgGv9zIuaj1aSc99MfX9tcDGnfC%2BPnkdK2UPu9AGnedt1vPAuY0bKawMPNwtKg%2FEpO0uJLke%2BEZAhbZBdAF00bRXFYaJrh9ijsrNjJD%2FRFSJKKWvQuWrvzLJdoV2AOddHTGq4KDAg8m0Tdfr%2BaSVRtlOFJXYNKQ4ctWV0IMvVhGosSxC6HUqYkfxYKbSgRvOLZiVpnGUedQS%2Bsi8wjwh9hggEV3LgZQq%2BG1qM3q8RrW2bx9OSzj7DtzPZb9LTCvhS9TPxxTPx%2Fa%2Bfx%2Fd3i%2Fa%2BUl9doNTVYvHZx9cWekmfs1TFuuuKhjITF4eO5hYAeyonGBBoJYQIcV%2BocEn5hVRHgHGD3bBT2YhNBPODK0NgQBw67r21R%2F%2BpJ%2FWD%2BpG9ZR%2Fb%2F2zIrmExuvMyqp4NC3vUT8OwEJndVcVe071e6xf11%2FWn%2Bkf67%2FqFpk%2Bo%2BwqqFoEGyFQsh0PGLdUZRZWaCd0nYrEoXSXemKNL4JoSW8tYfrSiwjwv7ICoyFCgsGqbFACbbo%2FxHmfTLA5HpB6m8hE3eKxwRgtq8TDIS2R4h0tgflEFIqx5DPM8BqMjBR6KbezYG%2BDBzoXquDLUqPousQgehNLh29rJeGY8wQhq1RWaMOghdg%2BNIlt2Zposk8OQ96C6Auu6CtVRTcZ141RfSGu9C1ZLiCopw%2FXb0ryQooJO001cnCZS73jj0GG32W2tkDYK4d6AGIXPBcD7HrKsekSm0f%2BpMWYdSC5TcglPfqFxMFfE6vu2UrV5QCkFI5A3MJghtbEneGAeMSaL%2FNUvcspnoGDjyQ%2FWh9hmPczUIl5AvUtG6WfmmsDWBF4P%2BCw9KkbgUst8q%2FdtGHCo%2B5b3HcR79LegYTgVfOeGn%2FIOxjH0PRaHMQGKWtJa3k2UGJtP25vbMAuZDwjAofEuZ1nuQ8uDJ%2F7mwYbdYD9RJwPieIi4n3yK%2B%2BlFzD9Ynai0NLEtb2nZYjcylDb6dz2lt%2BiX9HcSRPFQRaETgQNDQweX3pptsuVHFEmYAHr4BOnfRo1lLvEMgO%2FxqJdNo%2BofhE%2Frt%2Bpf1n%2Bvaes6ZTjTf6TBCLPrWuG%2BSAQNE70ChjY0oCH2ObB5XnEWO%2FEkmUJJgIZ2AujyRq%2B4p%2B2ajEZHNDRAGZciwyuzyLaX0ORk53Pf24FtllN3nA27TnMzpHxMUk2jNyup2eC7Z9cb%2BNnvzLqhj4ymvRjXfpT2KqVBT10p%2Bi4qq%2FJFfHUkER0rCyCl3tkWZdULbOkf6VyFybAbS7VdM0laACch1xIL6vD2IpAHLeX%2BnM%2BUdzawMhqw74E3G17eTlmA1zFKuZjjzL3SCZvalwBqS4%2Fh%2FtCSyjxMWv2Tp1rGTchXAGROCDIkeOyqkY5UhDl44pm1e4AiaLxN39PtfHjXHTdnYPimeoBAkvZVM%2FY%2F%2BQn8bpFtTkTn%2B%2B1nPjlN29rZA%2FPxJzj7ue1lOQVMqEqFWwDXscMPXxfVtZ%2B7QK2u5w8fAExtqbWNUPksf5Qx52dDw5a30sFK7evxM9iG7CJyGbvG84bD%2F1GmVRQtIwLAnVGuCzM6%2FOf6Zowx072rLBSxOKUQuCjXlsUjXEVhqtdz6wQITJGZ%2FrZmhHvmlpshzEULFiRthq7NWXdcCG2fRtGJB%2FcVwIzV6A01pvYb90ZONjU7mVBkRpyu7od%2FAIJBXZu9kooYFO4qHRTYvOoblrL0RVyD3NAnGVrGkZL2hVz%2FH%2Bn8LPzZnSVMTmkeBStdkJxpnpMjIE5vtcDcVeZAC9C0dCheTDFN%2B4z8bJ1lQT3uk%2BDSpKpf4A9C0dvncAhJyMUPyPOi8OvKRInuVbAVTUKdYsQVlunHgXi%2FHQIsIImGJtz7KpV%2BlcDVTBjJZeLoYZCCiGOKaOnWUzICSKbFSvX9lfy0VTV3XwIeZBnf0jqwnmUTzMkCPmHBqZF81yS4idq0IBVU0acAdaS0BWKpvk66MaOAHZC5GLQ2j5hF4izrpM35nfeQjhJ29%2B69S%2FU%2B%2Fx4ldt35vm0n0Hhp2kzw9oI5B41uaET3a8xs1r%2FMbJyn5sSbNR3jeTvv0Yofw%2FLePtD6yvz7SF8k9B4epzzHf4v9WqSpMWFS0QOLAOZueZ6F8U0Yona8pDURMoNUpJcIxPpCBA8oyUCCf02hC1oJSaeRPLInpJxHyeXPcd%2FEMP2iYMC6srrKhac31vM4hHFJgLx7dQPrMXv9jD%2F89Wx0vA9M40cg%2BD8U7jVCYsET2MkVXh8O4Li%2BHplbkFHhup5lbQZtCOJjkxdT1xU9G1fK%2BpyplMtYwCx0HIqbjtwjE73sPdI0nN%2FHOwD8rzLvEXso2jcG4vCKQtoXLzPsIfSAZgpBrXBlby9WI52w24FO%2BjbG0P9PZwbiXCWnK0jWfsXv3a1m5nyVny8uOAfjDpjBoKnns%2Bo9escAxu8DQ2ptADz1awOO%2Fre931%2FGqmCru0WxupfPAeJWr%2Fj2oRpPY%2FbheRh7Ht8tnuPu3Wlszg%2FEHgG7j3VXPmJ6%2B0A3LWA3LEOqquWwiOxe5Xa57D06w4nfxxe4%2BT9d%2Bh6J70YmKW2YLh5x7n4g2xYmArSnJb%2B9KCqTaO6UWhm%2By%2FMjgoD2GcEXj4Ll%2BO%2FZTu3MZEwDillsyajV7wOTeEee%2F92e7MNChwyIOxu1XnxM43TcOLMmZMT4HRoYhnI9rO0WG6vmdW3WQvZIU0xvJcHjxQM1joctFUUYI90%2BNTYTIlj%2BrsO%2B7IWcec1U61q8rtfmAQ7QDRZVDOtg1K9W0H%2FH%2FUMdOr6%2F9wJaF5MY2pKOSgE6Rmx8pOzLZRlTMjxDEb7gC%2BKykqTYdB3amioZqUWznp1i%2BnyVZdOztPO8pZ6yzXlMOX7IDshVu6IaVysWtrcDnLPC%2BEobanCPAGbovGy5gcHkGXXOVC7R9E9obwa%2Bg8ziJFMtLvwnANdN%2FWwTrHTrSphCwMGpbzdp4RysAwwrLmpcdzAOvk09f%2FFdoYEn%2BN7%2Bv9%2FTlKY%2F9OFa%2F%2FWa%2FCnWejOwp3%2BAIAwI1w3lVnayF4iZBA98PhFPtAJRZW%2Bsm%2Fr9Pq2BHKqq5BTf%2B9W9GIQkFe5KVBfPK%2Bs%2BayVPRsfGzK1GOlVQ%2FXu8AFe%2FFZPHET88c1gH17Ogbb2utFIA5APOpo3C8z7SOJ%2Fh78xmw8sREdXxiZenCML15uCUSkQAx6GXReGktYLOHehj5FHoZvLRvkv0ftdjw8NRNqOpt5iLUTd6CVSnvlt3v%2BxYQCcXlK58CYl7kqFz6WQCVyZemvSsafXJLg4HlcFfy%2BZLTnSvl5h8MlX%2F7kCeSps8IJiMh4CqoovVXDQMUjd4%2BCTxhjZAyQcMgzmtCMfCh4%2B4mOAoJvw4OC0W3qU0x6lHvhdAAACPxahdZ7c292Q1%2BEZH%2F4OS%2BRPiXTLN9RYR%2F9v%2B7ywDL51m4gcw81NTjRKjq%2F%2BvA2aX%2BRMcEs1%2FOvOat%2Bu2hZG6MCB3V20iqyS7bvKUK1lEd8y%2BXfBKX2TlPKiRYlh9WIUbeWVx4FwGltUjW0SxrVNn8tR6XD2OHmlPjMdDtIoJjtxc1gVOBxCwrsPSjK1XFtGsAG1bC41DQnsRiRrXcSabtV0JHaWbZL%2Fwa8KLqqNg73NyZ7YeIaFeAIXdYPnVHMLtk%2BH6C9BfjwnNqeuzgHoHk9yutlQA9%2BoVQbhExJ86nYJrO9f6R3f5DjsKF1ffMp8Sr3i8jUt31lcb%2BcipZX64u%2B8EQ8n6mit08xMFn6o%2B5lMkSeNQGysM0F2Oqwbir1aA8iqzwkuxBqbDfOWghkRz4GlnJ8L0Ejji2UrppLK0kl03v%2FyFbhkMxQeaw%2FXnqUD8KmHC5FPqnaBYR0kT1t0MRemcTZOAkGJfmGxOil3XzqDzKFFtzZm23uUo1%2B8Y%2F54DpL%2Be1rRDypqbIlfJMhzU3UAI9Le0jL1ujcuZYM%2BPTI16AL3pFHnqIW06rU9gNTcFfD2x17GqRspXK8DzAxx63pRKCX0%2FV73pdW1MXqS6qIDdR90lKR%2F%2FZlkSuChCUAbJF8q61IWy8qAOeTB2p6fhRvk1nGsGmAAaj%2FQRAwOCbXc7OcqPf3Si139duThdJdsiBxG7cxQkZF%2Fifll%2B%2FN5%2F46LRf%2FHIQiAvHUtMzFlCrNk8ew7iSsyTBDKFSiuZswyVzVzOyCsoKlWmKlBVU9fQ1NLW0atfVgMYGv1ZhIo2AAAAAAAAAAAAAADA3xqjh84Oz8Pw2idf7iB0h8EbYRib1uI5hFR6i5bJrWBt01bi3P33NIigCABgAAAAAAAAfC5nEUWu7%2FPA6%2Fs26ZPvCxrE7yjSGFvKuZbGYqyVYzEWY9GW666d0DvSv40HGB69pxh3EHdHUeMmoaa%2BGcK1CLEhlLVltRd9J9tdn3v45IvGhVR6iy09yyVJkiRJkuTfHm%2F90PMgssij97gbm3NAhAll7RPeCaV6ERERERH5vM7CHa57vtZr%2BOSLwRua0cgY32mcxgtIpbdomdwK1jZtJX6UYneOzZ4ZVVVVVVVVVVX9fB4M33h0n4ZXdKzcGLsWESaUtU97J7SizczMzMzMBl2YWf%2Br6ffvofdoX1Nn8IT7POi19cmXBvFrbtB44awIQqKvKcychbJ6NvYc2XIhIBokbp68ZSUSKRkphkpLRz7LLyAoJFKGW7b0ciSvoKhUmVUFqmrqGppa2jp69StrAEOjxmiOFmhTZVvqoMo742t5D3xeJEokkSlUWgfu%2F8%2BBw3sYPve5PT8vGK8Yi7EYi9CEcCCQ0ZFMYM6CrJ6NPQdyITFPkiVTqLR0Vj7wCwgKiTT0zNCC7biez89CKiCB5Obg7tl6wNPL2Rt9FX1%2FSmNcAQAAAAAAALKi%2B5EEAKH3AwAAhD4XP%2FjCRx6c%2F%2FULRPwQGka4RSCjIzt0xsPF4nD94vAFi9%2FkTUjMlmTJFCotnZUP%2FAKCQiJl8pSFnLyCopKyiqqauoamlraO3g6yEfEXdW1hOuCdbdcDLMsadD5%2BAUEhkTPvHL5%2FvtsoPNmfU3fIPS4IQG6evBHj9n7Tvjz%2FkDWe7M8pUo6IiIiIzvsS4cl%2BjBj4hv1y8wcBc%2B73ucfnHpl7GzMzMzNz7k9NfmNMO2TbtkjRQERERGqaqqqqqn75v01%2F2n23Fw3gCGQ0K4vPRjKycvIKikrKKqpq6hqaWto6ehbti3sn5HwdcXJyBuoAAoM8jB89geTA4CxKBIZoKQEEiUCQwLY%2FUAiAQBsAgroBAAAAAAAAdcXpdDodj06n63s%2FPngF197nw%2Bvd%2B4QQQgghhBBCCCGEUX6EEEIIIYQQQgghhBBCGGOMMcYYY4wxxhhjjDEhhBBCCCGEEEIIIYQQQimllFJKKaWUUkoppZQyxhhjjDHGGGOMMcYYY%2F3c469l1mo5tZq0pmmaptVE%2ByXUb%2BuPv%2F3rqf6N%2B3Tcwe6OVuMmoaa%2BGcK1CLEhlLVltRd9J5vn4ZxzzjnnnPNB2YJzIYQQQgghhBCDsoUQUkoppZRSSikHZQsplVJKKaWUUkoNyhZKAdfr9QAAAMCgbAG9hYUFSZIkSZIWZ%2FmAR%2BMVEGFCWXvun1OgZEmSJMm2bdu2iSciIiIiosNVlvZLOvZ%2BAAAAAAAAAAAAAAAAAAAAAAD0GKFhaBiqajRhmqZltUKWbdu24ziO67qu53kecx7cMzMzc5EmhBBCCCGklFJKKaVUSimllFJKa6211lprhwQAAAAAICIiIiISEREREZ3jYV18zi%2FLMTMzM3PZYxARERGp2VRVVVXVzMzMzDoHSdCxaDdS4H0kPJzQyOanzB2Qis8u%2F5ru7T%2Ffos5IVgbM5GzeGcb1xc7UrDV%2BfbO41Os7K6re03ntaZKtSP7CiUHzFg4%2Fd%2FIXJoiPCKH8oK7kADEmTMYxnjFfPvWzCo4YRbzcErIYk6kY5GVVKi1zTB%2FFCxKRmFGlFOSl%2BOkLVpQDRbdXR9Kj7ItTlHiL7KhvhPovKRFwArAsVFC5HrwTnjIES6bM2UDbiYrUKFG5MNxwYM2yzar3Aelia89QNZ3eyIxZv8HxjTev%2BcyPHQdOXLjx4MWHnwBBQoSJECXmOhBxEiRJkSZDlhx5ipQoU6FKjToNmrRo06FLjz4DhoyAQRgzYcqMOQvQiwB%2FzlmBQ7Bmw5YdJBQ0ew4cOXHmwpUbdxgePHnxdkObTFlmVHorW5F8DXq0JypXJGr7cd8wvviqUJVcS577rFGvby591%2Bqmdav6%2BfBVws8mf2s2nMG6Z8%2B%2BAQE%2BIXvovgcCnXsvT7AgIcKECtcsQpTIZ%2F3zN0a0WHHeiUeQIFGyJONaEKVIlebCB5MeGXTLgWcODblt1Jg7ho1YlqPPrDnTicaPiTb1aZRmfktlgaxt15ZtOzV8Ehp6LebYIBUVYzP6iFP8cXjfCJw%2FtfkEF7FptYWJiqqbQ40Je1wMDh8T6Y8LisBdiepw1qB8b2%2B8sf9FXw5HXzoi3Zf6QzcfHVHdrnvrhC9etP0LV01%2FdVH3x3f1l2bTQ1%2Bl%2F8%2BMRVCxg9vjtn980fTpYL%2FEEb%2FE5qJlj0ThDt9C%2BgvzhDlnlpqmWL%2Bw%2FSN09twFkYfJl9qh%2BVIx5F8yRH1JD7Hy7%2B%2BpzxZKffweCkWYEMK4N2fhHop78QW%2Foiq8vOztRA8%2F3ePRMMw2In4zxPY7wEdHjdp13Goj%2FDgkOGl3tEN8v%2Fjw9gaL%2BzPMjmqI%2FSbD9Z%2B22f2uLBLz9GkYTj199ixsgIk%2BhT0PdCtVpwAA%27%29%20format%28%27woff2%27%29%3B%0Aunicode%2Drange%3A%20U%2B0000%2D00FF%2C%20U%2B0131%2C%20U%2B0152%2D0153%2C%20U%2B02C6%2C%20U%2B02DA%2C%20U%2B02DC%2C%20U%2B2000%2D206F%2C%20U%2B2074%2C%20U%2B20AC%2C%20U%2B2212%2C%20U%2B2215%3B%0A%7D%0A%0Ahtml%2C%20body%2C%20div%2C%20span%2C%20applet%2C%20object%2C%20iframe%2C%20h1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%2C%20p%2C%20blockquote%2C%20pre%2C%20a%2C%20abbr%2C%20acronym%2C%20address%2C%20big%2C%20cite%2C%20code%2C%20del%2C%20dfn%2C%20em%2C%20img%2C%20ins%2C%20kbd%2C%20q%2C%20s%2C%20samp%2C%20small%2C%20strike%2C%20strong%2C%20sub%2C%20sup%2C%20tt%2C%20var%2C%20b%2C%20u%2C%20i%2C%20center%2C%20dl%2C%20dt%2C%20dd%2C%20ol%2C%20ul%2C%20li%2C%20fieldset%2C%20form%2C%20label%2C%20legend%2C%20table%2C%20caption%2C%20tbody%2C%20tfoot%2C%20thead%2C%20tr%2C%20th%2C%20td%2C%20article%2C%20aside%2C%20canvas%2C%20details%2C%20embed%2C%20figure%2C%20figcaption%2C%20footer%2C%20header%2C%20hgroup%2C%20menu%2C%20nav%2C%20output%2C%20ruby%2C%20section%2C%20summary%2C%20time%2C%20mark%2C%20audio%2C%20video%20%7B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%200%3B%0A%7D%0A%0A%23tiHeader%20ul%20%7B%0Alist%2Dstyle%2Dtype%3A%20none%3B%0A%7D%0A%23tiHeader%20%2Enav%20%7B%0Abackground%3A%20%23c00%3B%0Aheight%3A%2041%2E375px%3B%0A%7D%0A%23tiHeader%20%23top%5Flogo%20%7B%0Aheight%3A%2036px%3B%0A%7D%0A%23content%20%7B%0Apadding%3A%201em%3B%0Amax%2Dwidth%3A%201200px%3B%0Aoverflow%3A%20auto%3B%0Amargin%3A%200%20auto%3B%0A%7D%0A%23tiFooter%20%7B%0Aclear%3A%20both%3B%0Acolor%3A%20%23b0b0b0%3B%0Afont%2Dsize%3A%20%2E9em%3B%0Apadding%3A%201em%202em%3B%0Apadding%3A%201em%202rem%3B%0Aborder%2Dtop%3A%201px%20solid%20%23e0e0e0%3B%0Abackground%3A%20%23fff%3B%0A%7D%0A%23tiFooter%20p%20%7B%0Amax%2Dwidth%3A%2060em%3B%0A%7D%0A%23tiFooter%20a%20%7B%0Acolor%3A%20%23b0b0b0%3B%0A%7D%0A%23tiFooter%20a%3Ahover%20%7B%0Acolor%3A%20%23c00%3B%0A%7D%0A%0Abody%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014px%3B%0Aline%2Dheight%3A%201%2E6%3B%0Acolor%3A%20%23555%3B%0Abackground%2Dcolor%3A%20%23fff%3B%0Amargin%3A%200%20auto%3B%0A%7D%0Abody%3E%2A%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200%20%21important%3B%0A%7D%0Abody%3E%2A%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200%20%21important%3B%0A%7D%0A%0Ap%2C%20blockquote%2C%20ul%2C%20ol%2C%20dl%2C%20table%2C%20pre%20%7B%0Amargin%3A%2015px%200%3B%0A%7D%0A%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%20%7B%0Amargin%3A%200%200%20%2E5em%200%3B%0Apadding%3A%200%3B%0Afont%2Dweight%3A%20600%3B%0Acolor%3A%20%23333%3B%0A%2Dwebkit%2Dfont%2Dsmoothing%3A%20antialiased%3B%0A%7D%0Ah1%20tt%2C%20h1%20code%2C%20h2%20tt%2C%20h2%20code%2C%20h3%20tt%2C%20h3%20code%2C%20h4%20tt%2C%20h4%20code%2C%20h5%20tt%2C%20h5%20code%2C%20h6%20tt%2C%20h6%20code%20%7B%0Afont%2Dsize%3A%20inherit%3B%0A%7D%0Ah1%20%7B%0Afont%2Dsize%3A%202em%3B%0A%7D%0Ah2%20%7B%0Afont%2Dsize%3A%201%2E6em%3B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0A%7D%0Ah3%20%7B%0Afont%2Dsize%3A%201%2E4em%3B%0A%7D%0Ah4%20%7B%0Afont%2Dsize%3A%201%2E2em%3B%0A%7D%0Ah5%20%7B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Ah6%20%7B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Abody%3Eh2%3Afirst%2Dchild%2C%20body%3Eh1%3Afirst%2Dchild%2C%20body%3Eh1%3Afirst%2Dchild%2Bh2%2C%20body%3Eh3%3Afirst%2Dchild%2C%20body%3Eh4%3Afirst%2Dchild%2C%20body%3Eh5%3Afirst%2Dchild%2C%20body%3Eh6%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200%3B%0Apadding%2Dtop%3A%200%3B%0A%7D%0Aa%3Afirst%2Dchild%20h1%2C%20a%3Afirst%2Dchild%20h2%2C%20a%3Afirst%2Dchild%20h3%2C%20a%3Afirst%2Dchild%20h4%2C%20a%3Afirst%2Dchild%20h5%2C%20a%3Afirst%2Dchild%20h6%20%7B%0Amargin%2Dtop%3A%200%3B%0Apadding%2Dtop%3A%200%3B%0A%7D%0Ah1%2Bp%2C%20h2%2Bp%2C%20h3%2Bp%2C%20h4%2Bp%2C%20h5%2Bp%2C%20h6%2Bp%20%7B%0Amargin%2Dtop%3A%2010px%3B%0A%7D%0A%0Aa%20%7B%0Acolor%3A%20%23189%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Ahover%20%7B%0Atext%2Ddecoration%3A%20underline%3B%0A%7D%0A%0Aul%2C%20ol%20%7B%0Apadding%2Dleft%3A%2030px%3B%0A%7D%0Aul%20li%20%3E%20%3Afirst%2Dchild%2C%0Aol%20li%20%3E%20%3Afirst%2Dchild%2C%0Aul%20li%20ul%3Afirst%2Dof%2Dtype%2C%0Aol%20li%20ol%3Afirst%2Dof%2Dtype%2C%0Aul%20li%20ol%3Afirst%2Dof%2Dtype%2C%0Aol%20li%20ul%3Afirst%2Dof%2Dtype%20%7B%0Amargin%2Dtop%3A%200px%3B%0A%7D%0Aul%20ul%2C%20ul%20ol%2C%20ol%20ol%2C%20ol%20ul%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Adl%20%7B%0Apadding%3A%200%3B%0A%7D%0Adl%20dt%20%7B%0Afont%2Dsize%3A%2014px%3B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dstyle%3A%20italic%3B%0Apadding%3A%200%3B%0Amargin%3A%2015px%200%205px%3B%0A%7D%0Adl%20dt%3Afirst%2Dchild%20%7B%0Apadding%3A%200%3B%0A%7D%0Adl%20dt%3E%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200px%3B%0A%7D%0Adl%20dt%3E%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200px%3B%0A%7D%0Adl%20dd%20%7B%0Amargin%3A%200%200%2015px%3B%0Apadding%3A%200%2015px%3B%0A%7D%0Adl%20dd%3E%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200px%3B%0A%7D%0Adl%20dd%3E%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200px%3B%0A%7D%0A%0Apre%2C%20code%2C%20tt%20%7B%0Afont%2Dsize%3A%2012px%3B%0Afont%2Dfamily%3A%20Consolas%2C%20%22Liberation%20Mono%22%2C%20Courier%2C%20monospace%3B%0A%7D%0Acode%2C%20tt%20%7B%0Amargin%3A%200%200px%3B%0Apadding%3A%200px%200px%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Aborder%3A%201px%20solid%20%23eaeaea%3B%0Abackground%2Dcolor%3A%20%23f8f8f8%3B%0Aborder%2Dradius%3A%203px%3B%0A%7D%0Apre%3Ecode%20%7B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Awhite%2Dspace%3A%20pre%3B%0Aborder%3A%20none%3B%0Abackground%3A%20transparent%3B%0A%7D%0Apre%20%7B%0Abackground%2Dcolor%3A%20%23f8f8f8%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Afont%2Dsize%3A%2013px%3B%0Aline%2Dheight%3A%2019px%3B%0Aoverflow%3A%20auto%3B%0Apadding%3A%206px%2010px%3B%0Aborder%2Dradius%3A%203px%3B%0A%7D%0Apre%20code%2C%20pre%20tt%20%7B%0Abackground%2Dcolor%3A%20transparent%3B%0Aborder%3A%20none%3B%0A%7D%0Akbd%20%7B%0A%2Dmoz%2Dborder%2Dbottom%2Dcolors%3A%20none%3B%0A%2Dmoz%2Dborder%2Dleft%2Dcolors%3A%20none%3B%0A%2Dmoz%2Dborder%2Dright%2Dcolors%3A%20none%3B%0A%2Dmoz%2Dborder%2Dtop%2Dcolors%3A%20none%3B%0Abackground%2Dcolor%3A%20%23DDDDDD%3B%0Abackground%2Dimage%3A%20linear%2Dgradient%28%23F1F1F1%2C%20%23DDDDDD%29%3B%0Abackground%2Drepeat%3A%20repeat%2Dx%3B%0Aborder%2Dcolor%3A%20%23DDDDDD%20%23CCCCCC%20%23CCCCCC%20%23DDDDDD%3B%0Aborder%2Dimage%3A%20none%3B%0Aborder%2Dradius%3A%202px%202px%202px%202px%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dwidth%3A%201px%3B%0Afont%2Dfamily%3A%20%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3B%0Aline%2Dheight%3A%2010px%3B%0Apadding%3A%201px%204px%3B%0A%7D%0A%0Ablockquote%20%7B%0Aborder%2Dleft%3A%204px%20solid%20%23DDD%3B%0Apadding%3A%200%2015px%3B%0Acolor%3A%20%23777%3B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Ablockquote%3E%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200px%3B%0A%7D%0Ablockquote%3E%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200px%3B%0A%7D%0A%0Ahr%20%7B%0Aclear%3A%20both%3B%0Amargin%3A%2015px%200%3B%0Aheight%3A%200px%3B%0Aoverflow%3A%20hidden%3B%0Aborder%3A%20none%3B%0Abackground%3A%20transparent%3B%0Aborder%2Dbottom%3A%201px%20dotted%20silver%3B%0Apadding%3A%200%3B%0A%7D%0A%0Atable%20%7B%0Aborder%2Dcollapse%3A%20collapse%3B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Atable%20th%20%7B%0Abackground%3A%20%23F0F0F0%3B%0Acolor%3A%20%23555%3B%0Atext%2Dalign%3A%20left%3B%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0Atable%20th%2C%20table%20td%20%7B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Apadding%3A%206px%2013px%3B%0A%7D%0Atable%20tr%20%7B%0Aborder%2Dtop%3A%201px%20solid%20%23ccc%3B%0Abackground%2Dcolor%3A%20%23fff%3B%0A%7D%0Atable%20tr%3Anth%2Dchild%282n%29%20%7B%0Abackground%2Dcolor%3A%20%23f8f8f8%3B%0A%7D%0A%0Aimg%20%7B%0Amax%2Dwidth%3A%20100%25%0A%7D%0A%2Eplatform%20%7B%0Abackground%3A%20%23cc0000%3B%0Atext%2Dalign%3A%20right%3B%0A%7D%0A" rel="stylesheet" type="text/css" />\r\r
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">\r\r
\r\r
+</head><body>\r\r
+<header id="tiHeader">\r\r
+  <div class="top">\r\r
+    <ul>\r\r
+      <li id="top_logo">\r\r
+        <a href="http://www.ti.com">\r\r
+          <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARgAAAAkCAMAAABln9XcAAAAYFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAAAAAAADMAADMAAAAAAAAAAAAAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAADMAAAAAADMAAC6smRcAAAAHnRSTlMAv0CAEO/fMGCfz0Agj4C/cK9Q32MQnzCPIK/PUO9FOfcdAAAFOElEQVRo3u2Z3XqbMAyGBf53IAHSJu3asfu/y9n6wVCcbd1O+jzjOyAUVFl+LUtOC4d+r8sP0gUOHWA+Deb7AagK5jV9nuHQDsx7+nyHQzswp/P5/AqHNmDeTie4n9LlRHqGtbTaqoV/kGtR8LWFYFBXuKbEeeafTrCWn7ca4R/kTfJgevjaKmC+ZSYvpyqYcf4gDX+lglnBF1cBc85Mns41MHpWmUSbJoQLPVkPfyv289V30grMKTO5f6uB6aZlQooetP8LmLdUbjOTVIBvBUzRBoyZFwWgTwMw0GeSXlWhKeanIfodGEe/D+ywAfBoq+wE01w0tnIXm0HLth4AyMM40rgkhS9hLurpmZOB5yHMRRNAF0x20497MHyuu1LTJjBPvwCj7SwyoIPUHEVvGVGHt30huMsYR3GTQ6shFNt+U89cuTeOyLQARGbkMRh8jszqdYQW0LERMgMuQxnKLT8CnlhEVwLzDoC1d0F1fQwGR4oZhVMpIB2RfA6m5+hkSaFLhhlBmE1lKzU4I+Kn8iyjSy9DmouNk9boxPXJN+ZN2yqcJ6YTkOKsOA9s6Z4NuY4a0NvEBtgv0sDTHBxmkdZTNDnYQUM3mDwH4BJb9JpgcZ7wk9vzYzAqj47yA6280dBjKGhmIkeqGBA446pgMlO0U9mWS5nxOAu26gPIuD0+aguYhsFIDjULmBKhZ4OoCUzyB+JDRy+GuunxW5FoV3vLg9+AKRq4EvDcwxzyk5YMR6LV6RqYiEnOYIpt10EBAw7KuHUwjaGA3GyaAmY9XkRgCKaTEKitpAC4EeCLpx2YV6y910+BcXilhTKcG6DN7DRuX0ntfmIqOzBKIRkEM6CtEtsCBhgMVRddA6OoqIVZfQDTNjSejhSRuCw+cJsFj4taI/Odz71/CsY0TRPnZmHBgSAMi1MwelWmm7YOBgImeQajTbGtgnE9FusaGFoInegIGImQwVCNVRUwvRRpVSdzoXPvn4JhNVC8RyDFnDoTl9UUKMtXwVC2xR4nXmx3YFjWQxUM8k14AxQwJAFDZPwOjExGJiAFeHfu/dRWGhhMZ2Z5BY56txFqbhjxrdF1MJjkhn7ZKbbdg7GNTc8VPADT5fFtsv+wlRSDkW1dAQPah1jWg9pz0TvW3pfPgQEnSYKuW27log5YXcC3VTCgmSrLjWK73Uo0s1AHU/qRgCkRChjwFTAFjikx3Da1Nx9t4H6+fAqMJKPROVMtpUpssrAeNA5I8TEY2f5RbG0dDE1+KpPCwQYG0/KSV7sS24cKGBWkGhQwVFCu5+v6PMc5c305wZ+A0bEFh+EOtJ5+Nsv0LARTTqSuCqb4DWaS2c5dFUxL57SOENCDFsHIeBUwOjoBA2EDhm+CLmBWKXMDeMbvAqwLYnmCovrJ17ZZg7W584zSs32Kry/1eJpSfJPG7RG3fryA4SRX4Itt86BdYxpSy/GJ3WSRBYJBHxswcYlwAaOXxPWrdm0HB92AW190vrxI6tyBlDv3HksBbjuAzs6LlEuDDfLWjAv3IRu70k9KwuiRzqEtXlG5XXfFthMHoxaQtpMi33c6lq9O5K7FlNFiioaiAUK+CJl2CWHiMiXy9a/Y385ZaSe93aEu36CSr5UmvHqAvhH5lXEY+pgxKA0isXR4FeYKYPS9zbaD3owGbrmDbqSc8di9bOjEneNqwabNStpLUIgWwawD7X3DvvZaH1/enuHQOmVEdzjEKsfg4x9uO10FzPF/pQdVBg5tdTvAPNAbgTl60k7yR/BDH3W6XX9c/mswPwGgceILR4q+4gAAAABJRU5ErkJggg==" />\r\r
+        </a>\r\r
+      </li>\r\r
+    </ul>\r\r
+  </div>\r\r
+  <div class="nav">\r\r
+  </div>\r\r
+</header><div id="content">\r\r
+<h2 id="ProductName">\r\r
+<!-- @Start Product -->\r\r
+PRU Multi-channel ADC Interface Reference Design Demo Manifest\r\r
+<!-- @End Product -->\r\r
+</h2>\r\r
+\r\r
+<h4 id="ReleaseDate">\r\r
+<!-- @Start Date -->\r\r
+11-06-2017\r\r
+<!-- @End Date -->\r\r
+</h4>\r\r
+\r\r
+\r\r
+<h4 id="SRASID">\r\r
+<!-- @Start Date -->\r\r
+Manifest ID - SRAS00004475\r\r
+<!-- @End Date -->\r\r
+</h4>\r\r
+</div><div id="content">\r\r
+<h4>Legend</h4>\r\r
+<p>(explanation of the fields in the Manifest Table below)</p>\r\r
+<table>\r\r
+<tbody>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Software Name </b>\r\r
+</td>\r\r
+<td>\r\r
+The name of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Version</b>\r\r
+</td>\r\r
+<td>\r\r
+Version of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>License Type</b>\r\r
+</td>\r\r
+<td>\r\r
+Type of license(s) under which TI will be providing\r\r
+software to the licensee (e.g. BSD-3-Clause, GPL-2.0, TI Text File  License, TI\r\r
+Commercial License). The license could be under Commercial terms or Open Source. See Open Source Reference License Disclaimer in\r\r
+the Disclaimers Section. Whenever possible, TI will use an <a href="http://spdx.org/licenses/"> SPDX Short Identifier </a> for an Open Source\r\r
+License. TI Commercial license terms are not usually included in the manifest and are conveyed through a variety \r\r
+of means such as a clickwrap license upon install, \r\r
+a signed license agreement and so forth.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Location</b>\r\r
+</td>\r\r
+<td>\r\r
+The directory name and path on the media or a specific file where the Software is located. Typically fully qualified path names \r\r
+are not used and instead the relevant top level directory of the application is given. \r\r
+A notation often used in the manifests is [as installed]/directory/*. Note that the asterisk implies that all\r\r
+files under that directory are licensed as the License Type field denotes. Any exceptions to this will \r\r
+generally be denoted as [as installed]/directory/* except as noted below which means as shown in subsequent rows of \r\r
+the manifest.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Delivered As</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Source&#8221;, &#8220;Binary&#8221; or &#8220;Source\r\r
+and Binary&#8221; and is the primary form the content of the Software is delivered\r\r
+in. If the Software is delivered in an archive format, this field\r\r
+applies to the contents of the archive. If the word Limited is used\r\r
+with Source, as in &#8220;Limited Source&#8221; or &#8220;Limited Source and Binary&#8221; then\r\r
+only portions of the Source for the application are provided.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Modified by TI</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Yes&#8221; or &#8220;No&#8221;. A &#8220;Yes&#8221; means\r\r
+TI has made changes to the Software. A &#8220;No&#8221; means TI has not made any\r\r
+changes. Note: This field is not applicable for Software &#8220;Obtained\r\r
+from&#8221; TI.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Obtained from</b>\r\r
+</td>\r\r
+<td>\r\r
+This field specifies from where or from whom TI obtained\r\r
+the Software. It may be a URL to an Open Source site, a 3<sup>rd</sup>\r\r
+party licensor, or TI. See Links Disclaimer in the Disclaimers\r\r
+Section.\r\r
+</td>\r\r
+</tr>\r\r
+</tbody>\r\r
+</table>\r\r
+</div><div id="content">\r\r
+<h3>Disclaimers</h3>\r\r
+<h4>Export Control Classification Number (ECCN)</h4>\r\r
+<p>Any use of ECCNs listed in the Manifest is at the user&#8217;s risk\r\r
+and without recourse to TI. Your\r\r
+company, as the exporter of record, is responsible for determining the\r\r
+correct classification of any item at\r\r
+the time of export. Any export classification by TI of Software is for\r\r
+TI&#8217;s internal use only and shall not be construed as a representation\r\r
+or warranty\r\r
+regarding the proper export classification for such Software or whether\r\r
+an export\r\r
+license or other documentation is required for exporting such Software</p>\r\r
+<h3>Links in the Manifest</h3>\r\r
+<p>Any\r\r
+links appearing on this Manifest\r\r
+(for example in the &#8220;Obtained from&#8221; field) were verified at the time\r\r
+the Manifest was created. TI makes no guarantee that any listed links\r\r
+will\r\r
+remain active in the future.</p>\r\r
+<h3>Open Source License References</h3>\r\r
+<p>Your company is responsible for confirming the\r\r
+applicable license terms for any open source Software\r\r
+listed in this Manifest that was not &#8220;Obtained from&#8221; TI. Any open\r\r
+source license\r\r
+specified in this Manifest for Software that was\r\r
+not &#8220;Obtained from&#8221; TI is for TI&#8217;s internal use only and shall not be\r\r
+construed as a representation or warranty regarding the proper open\r\r
+source license terms\r\r
+for such Software.</p>\r\r
+</div><div id="content">\r\r
+<h4>Export Information</h4>\r\r
+<p>ECCN for Software included in this release:</p>\r\r
+Publicly Available\r\r
+</div><div id="content">\r\r
+<!-- h3>Manifest Table</h3 -->\r\r
\r
+ <table> \r
+ <tbody> \r
\r
+ <h2> \r
+  PRU Multi-channel ADC Interface Reference Design Demo Manifest Table \r
+ </h2> \r
\r
+  \r
+ <p> \r
\r
+ See the Legend above for a description of these columns. \r
\r
+ </p> \r
+  \r
+ <table id="targetpackages" name="targetpackages"> \r
+ <thead>  \r
+       <tr> \r
+               <td><b>Software Name</b></td> \r
+               <td><b>Version</b></td> \r
+               <td><b>License Type</b></td> \r
+               <td><b>Delivered As</b></td> \r
+               <td><b>Modified by TI</b></td> \r
+               <td></td> \r
+               <td></td> \r
+       </tr> \r
+ </thead>  \r
\r
\r
+ <tbody> \r
+       <tr> \r
+               <td id="name" name="name" rowspan="2"> \r
+ PRU_ADS8688_Interface \r
+ </td> \r
+               <td id="version" name="version" rowspan="2"> \r
+ 1.0.0 \r
+ </td> \r
+               <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+               <td id="delivered" name="delivered" rowspan="2"> \r
+ Source \r
+ </td> \r
+               <td id="modified" name="modified" rowspan="2"> \r
+ Yes \r
+ </td> \r
+               <td><b>Location</b></td> \r
+               <td id="location" name="location"> \r
+ tida01555/PRU_ADS8688_Interface/ \r
+ </td> \r
+       </tr> \r
+       <tr> \r
+               <td><b>Obtained from</b></td> \r
+               <td id="obtained" name="obtained"> \r
+ TI \r
+ </td> \r
+       </tr> \r
\r
+ <tbody> \r
+       <tr> \r
+               <td id="name" name="name" rowspan="2"> \r
+ PRU_ADS8688_Controller \r
+ </td> \r
+               <td id="version" name="version" rowspan="2"> \r
+ 1.0.0 \r
+ </td> \r
+               <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+               <td id="delivered" name="delivered" rowspan="2"> \r
+ Source \r
+ </td> \r
+               <td id="modified" name="modified" rowspan="2"> \r
+ Yes \r
+ </td> \r
+               <td><b>Location</b></td> \r
+               <td id="location" name="location"> \r
+ tida01555/PRU_ADS8688_Controller/ \r
+ </td> \r
+       </tr> \r
+       <tr> \r
+               <td><b>Obtained from</b></td> \r
+               <td id="obtained" name="obtained"> \r
+ TI \r
+ </td> \r
+       </tr> \r
\r
+ <tbody> \r
+       <tr> \r
+               <td id="name" name="name" rowspan="2"> \r
+ ARM_User_Space_App \r
+ </td> \r
+               <td id="version" name="version" rowspan="2"> \r
+ 1.0.0 \r
+ </td> \r
+               <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+               <td id="delivered" name="delivered" rowspan="2"> \r
+ Source \r
+ </td> \r
+               <td id="modified" name="modified" rowspan="2"> \r
+ Yes \r
+ </td> \r
+               <td><b>Location</b></td> \r
+               <td id="location" name="location"> \r
+ tida01555/ARM_User_Space_App/ \r
+ </td> \r
+       </tr> \r
+       <tr> \r
+               <td><b>Obtained from</b></td> \r
+               <td id="obtained" name="obtained"> \r
+ TI \r
+ </td> \r
+       </tr> \r
\r
+ </tbody> \r
+ </table> \r
+  \r
+ </p> \r
+ </p> \r
+ <p> \r
+\r\r
+</div><div id="content">\r\r
+<h4>Credits</h4>\r\r
+<BR> <BR><BR><BR><BR>\r\r
+</div><div id="content">\r\r
+<h4>Licenses</h4>\r\r
+<BR><h3><b> PRU Multi-channel ADC Interface Reference Design Demo Licenses </b></h3><BR> <BR><BR> Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/<BR> <BR> <BR> Redistribution and use in source and binary forms, with or without<BR> modification, are permitted provided that the following conditions<BR> are met:<BR> <BR>       * Redistributions of source code must retain the above copyright<BR>         notice, this list of conditions and the following disclaimer.<BR> <BR>       * Redistributions in binary form must reproduce the above copyright<BR>         notice, this list of conditions and the following disclaimer in the<BR>         documentation and/or other materials provided with the<BR>         distribution.<BR> <BR>       * Neither the name of Texas Instruments Incorporated nor the names of<BR>         its contributors may be used to endorse or promote products derived<BR>         from this software without specific prior written permission.<BR> <BR> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<BR> "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<BR> LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR<BR> A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT<BR> OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,<BR> SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT<BR> LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<BR> DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<BR> THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT<BR> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE<BR> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<BR> <BR>\r\r
+</div>\r\r
+<footer id="tiFooter">\r\r
+  <p>TI is a global semiconductor design and manufacturing company. Innovate\r\r
+  with 100,000+ analog ICs and embedded processors, along with software, tools\r\r
+  and the industry's largest sales/support staff.</p>\r\r
+</footer>\r\r
+</body></html>
\ No newline at end of file
diff --git a/PRU_ADS8688_Controller/AM335x_PRU.cmd b/PRU_ADS8688_Controller/AM335x_PRU.cmd
new file mode 100644 (file)
index 0000000..8803377
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2017 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.
+ *
+ *
+ * AM335x_PRU.cmd
+ * 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.
+ */
+
+/* Link using C conventions */
+-cr
+
+/* 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 = 0x1F800000     CREGISTER=31
+       PRUADC_DDR_CARVEOUT     : org = 0x9F800000 len = 0x00800000     
+       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
+
+       .shared_mem     >  PRU_SHAREDMEM, PAGE 2
+       .pru1_mem       >  PRU_DMEM_1_0, PAGE 1
+       .pruadc_ddr_carveout    >  PRUADC_DDR_CARVEOUT, PAGE 2
+       .resource_table > PRU_DMEM_0_1, PAGE 1
+}
diff --git a/PRU_ADS8688_Controller/Makefile b/PRU_ADS8688_Controller/Makefile
new file mode 100644 (file)
index 0000000..f2b8cc3
--- /dev/null
@@ -0,0 +1,125 @@
+# PRU_CGT environment variable must point to the TI PRU code gen tools directory. E.g.:
+#(Desktop Linux) export PRU_CGT=/path/to/pru/code/gen/tools/ti-cgt-pru_2.x.y
+#(Windows) set PRU_CGT=C:/path/to/pru/code/gen/tools/ti-cgt-pru_2.x.y
+#(ARM Linux*) export PRU_CGT=/usr/share/ti/cgt-pru
+#
+# *ARM Linux also needs to create a symbolic link to the /usr/bin/ directory in
+# order to use the same Makefile
+#(ARM Linux) ln -s /usr/bin/ /usr/share/ti/cgt-pru/bin
+
+ifndef PRU_CGT
+define ERROR_BODY
+
+*******************************************************************************
+PRU_CGT environment variable is not set. Examples given:
+(Desktop Linux) export PRU_CGT=/path/to/pru/code/gen/tools/ti-cgt-pru_2.1.2
+(Windows) set PRU_CGT=C:/path/to/pru/code/gen/tools/ti-cgt-pru_2.1.2
+(ARM Linux*) export PRU_CGT=/usr/share/ti/cgt-pru
+
+*ARM Linux also needs to create a symbolic link to the /usr/bin/ directory in
+order to use the same Makefile
+(ARM Linux) ln -s /usr/bin/ /usr/share/ti/cgt-pru/bin
+*******************************************************************************
+
+endef
+$(error $(ERROR_BODY))
+endif
+
+# PRU_SSP environment variable must point to the PRU Software Support Package. E.g.:
+#(Desktop Linux) export PRU_SSP=/path/to/pru_software_support_package
+#(Windows) set PRU_SSP=C:/path/to/pru_software_support_package
+#(ARM Linux*) export PRU_SSP=/path/to/pru_software_support_package
+
+ifndef PRU_SSP
+define ERROR_BODY
+
+*******************************************************************************
+PRU_SSP environment variable must point to the PRU Software Support Package. E.g.:
+(Desktop Linux) export PRU_SSP=/path/to/pru_software_support_package
+(Windows) set PRU_SSP=C:/path/to/pru_software_support_package
+(ARM Linux*) export PRU_SSP=/path/to/pru_software_support_package
+PRU_CGT environment variable is not set. Examples given:
+*******************************************************************************
+
+endef
+$(error $(ERROR_BODY))
+endif
+
+MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+CURRENT_DIR := $(notdir $(patsubst %/,%,$(dir $(MKFILE_PATH))))
+PROJ_NAME=$(CURRENT_DIR)
+LINKER_COMMAND_FILE=./AM335x_PRU.cmd
+LIBS=--library=$(PRU_SSP)/lib/rpmsg_lib.lib
+INCLUDE=--include_path=$(PRU_SSP)/include --include_path=$(PRU_SSP)/include/am335x
+STACK_SIZE=0x100
+HEAP_SIZE=0x100
+GEN_DIR=gen
+
+#Common compiler and linker flags (Defined in 'PRU Optimizing C/C++ Compiler User's Guide)
+CFLAGS=-v3 -o2 --display_error_number --endian=little --hardware_mac=on --asm_directory=$(GEN_DIR) --obj_directory=$(GEN_DIR) --pp_directory=$(GEN_DIR) -ppd -ppa
+#Linker flags (Defined in 'PRU Optimizing C/C++ Compiler User's Guide)
+LFLAGS=--reread_libs --warn_sections --stack_size=$(STACK_SIZE) --heap_size=$(HEAP_SIZE)
+
+TARGET=$(GEN_DIR)/$(PROJ_NAME).out
+MAP=$(GEN_DIR)/$(PROJ_NAME).map
+OBJECTS=$(patsubst %.asm,$(GEN_DIR)/%.object,$(wildcard *.asm))
+OBJECTS+=$(patsubst %.c,$(GEN_DIR)/%.object,$(wildcard *.c))
+
+
+all: printStart $(TARGET) printEnd
+
+printStart:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Building project: $(PROJ_NAME)'
+
+printEnd:
+       @echo ''
+       @echo 'Output files can be found in the "$(GEN_DIR)" directory'
+       @echo ''
+       @echo 'Finished building project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
+
+# Invokes the linker (-z flag) to make the .out file
+$(TARGET): $(OBJECTS) $(LINKER_COMMAND_FILE)
+       @echo ''
+       @echo 'Building target: $@'
+       @echo 'Invoking: PRU Linker'
+       $(PRU_CGT)/bin/clpru $(CFLAGS) -z -i$(PRU_CGT)/lib -i$(PRU_CGT)/include $(LFLAGS) -o $(TARGET) $(OBJECTS) -m$(MAP) $(LINKER_COMMAND_FILE) --library=libc.a $(LIBS)
+       @echo 'Finished building target: $@'
+
+# Invokes the compiler on all assembly files in the directory to create the object files
+$(GEN_DIR)/%.object: %.asm
+       @mkdir -p $(GEN_DIR)
+       @echo ''
+       @echo 'Building file: $<'
+       @echo 'Invoking: PRU Compiler'
+       $(PRU_CGT)/bin/clpru --include_path=$(PRU_CGT)/include $(INCLUDE) $(CFLAGS) -fe $@ $<
+
+# Invokes the compiler on all c files in the directory to create the object files
+$(GEN_DIR)/%.object: %.c
+       @mkdir -p $(GEN_DIR)
+       @echo ''
+       @echo 'Building file: $<'
+       @echo 'Invoking: PRU Compiler'
+       $(PRU_CGT)/bin/clpru -k --include_path=$(PRU_CGT)/include $(INCLUDE) $(CFLAGS) -fe $@ $<
+
+.PHONY: all clean
+
+# Remove the $(GEN_DIR) directory
+clean:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Cleaning project: $(PROJ_NAME)'
+       @echo ''
+       @echo 'Removing files in the "$(GEN_DIR)" directory'
+       @rm -rf $(GEN_DIR)
+       @echo ''
+       @echo 'Finished cleaning project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
+
+# Includes the dependencies that the compiler creates (-ppd and -ppa flags)
+-include $(OBJECTS:%.object=%.pp)
+
diff --git a/PRU_ADS8688_Controller/PRU_ADS8688_Controller.c b/PRU_ADS8688_Controller/PRU_ADS8688_Controller.c
new file mode 100644 (file)
index 0000000..6e51031
--- /dev/null
@@ -0,0 +1,391 @@
+/*
+ * Copyright (C) 2017 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 <pru_ctrl.h>
+#include "resource_table_empty.h"
+
+volatile register uint32_t __R30;
+volatile register uint32_t __R31;
+
+/* Scratchpad constants */
+#define SCRATCHPAD_0   10
+#define SCRATCHPAD_1   11
+#define SCRATCHPAD_2   12
+
+/* Specific register numbers shared through the Scratchpads */
+#define CONFIG_REG     15
+#define DELAY_REG      21
+#define RESULT_REG     22
+#define STATUS_REG     28
+#define REQUEST_REG    29
+
+/* Request register bit mapping */
+#define START_BIT      (1 << 0)
+#define CONTINUOUS_BIT (1 << 1)
+#define RECV_READY_BIT (1 << 2)
+#define RECV_ACK_BIT   (1 << 3)
+
+/* Response register bit mapping */
+#define SEND_READY_BIT (1 << 0)
+#define SEND_ACK_BIT   (1 << 1)
+#define SEND_DONE_BIT  (1 << 2)
+
+/* Sample/config mode */
+#define ONE_SHOT       0
+#define CONTINUOUS     1
+
+/* ADS8688 configuration definitions */
+/* Command Register formatting */
+#define CMD_REG(x)             (x << 8)
+#define NOOP                   0x00
+#define STDBY                  0x82
+#define PWR_DN                 0x83
+#define AUTO_RST               0xA0
+#define RST                    0x85
+#define MAN_CH(chan)           (0xC0 | (4 * chan))
+#define MAN_AUX                        0xE0
+/* Program Register formatting */
+#define PROG_REG(reg, rw, data)        ((reg << 9) | (rw << 8) | data)
+#define AUTO_SEQ_EN            (0x01)
+#define CHAN_PWR_DN            (0x02)
+#define CHAN_INPUT_RANGE(chan) (0x05 + chan)
+#define COMM_READ_BACK         (0x3F)
+/* Read or write for the program register formatting */
+#define WRITE                  1
+#define READ                   0
+/* Channel input range constants */
+#define PLUSMINUS25VREF                0
+#define PLUSMINUS125VREF       1
+#define PLUSMINUS0625VREF      2
+#define PLUS25VREF             5
+#define PLUS125VREF            6
+
+/* Oversampling constants (must be a power of 2 to achieve timings in the PRU) */
+#define OVERSAMPLE             1
+
+/* Frequency estimation constants */
+#define FREQ_EST_DEVICE                0
+#define FREQ_EST_CHANNEL       5
+#define FREQ_EST_CYCLES                5
+#define MIN_DELAY              710 //55Hz
+#define DEFAULT_DELAY          781 //50Hz
+#define DEFAULT_COMP           2   //50Hz
+#define MAX_DELAY              868 //45Hz
+
+/* Information about devices and channels connected */
+#define CHANS_PER_DEVICE       8
+#define DEVICES                        6
+#define NUM_CHANS              CHANS_PER_DEVICE * DEVICES
+#define SAMPLES_PER_CYCLE      640
+
+/* Ping and Pong buffer information */
+#define PING_ADDR      0x9FFC0000
+#define PONG_ADDR      0x9FFE0000
+#define PING           0
+#define PONG           1
+#define DATA_READY     0x0000FFFF
+#define IN_PROGRESS    0x00000000
+
+
+uint32_t data_buf[DEVICES];
+uint32_t config_buf[DEVICES];
+
+/* Send cycle delay between samples value */
+send_delay(uint32_t delay_val) {
+       /* Send the cycle delay to the other PRU through Scratchpad 0 */
+       __xout(SCRATCHPAD_0, DELAY_REG, 0, delay_val);
+}
+
+/* Send configurations or commands */
+send_command(uint16_t continuous) {
+       uint32_t        request, status = 0;
+       uint32_t        temp;
+
+       /* Check to make sure the SPI coprocessor is ready */
+       while (!(status & SEND_READY_BIT)) {
+               __xin(SCRATCHPAD_1, STATUS_REG, 0, temp);
+               status = temp;
+       } 
+       /* Push the configuration values for each ADC */
+       __xout(SCRATCHPAD_0, CONFIG_REG, 0, config_buf);
+       
+       /* Send the start command to kick off the transfer */
+       request = START_BIT;
+       if (continuous)
+               request |= CONTINUOUS_BIT;
+       __xout(SCRATCHPAD_1, REQUEST_REG, 0, request);
+
+       /* Wait for SPI coprocessor to acknowledge the command */
+       while (!(status & SEND_ACK_BIT)) {
+               __xin(SCRATCHPAD_1, STATUS_REG, 0, status);
+       } 
+
+       /* Clear the start bit */
+       request &= ~START_BIT;
+       __xout(SCRATCHPAD_1, REQUEST_REG, 0, request);
+}
+
+/* Receive response */
+receive_data() {
+       uint32_t        request, status = 0;
+       uint32_t        temp;
+
+       /* Read the current request to get start and continuous */
+       __xin(SCRATCHPAD_1, REQUEST_REG, 0, request);
+
+       /* Set the ready bit, clear the ack bit */
+       request |= RECV_READY_BIT;
+       request &= ~RECV_ACK_BIT;
+       __xout(SCRATCHPAD_1, REQUEST_REG, 0, request);
+
+       /* Clear the ready bit, set the ack bit in the temp variable 
+        * Wait until after done signal is received to send 
+        */
+       request &= ~RECV_READY_BIT;
+       request |= RECV_ACK_BIT;
+
+       /* Wait for the done signal */
+       while (!(status & SEND_DONE_BIT)) {
+               __xin(SCRATCHPAD_1, STATUS_REG, 0, temp);
+               status = temp;
+       } 
+
+       /* Send ack bit one cycle before pulling data to save time */
+       __xout(SCRATCHPAD_1, REQUEST_REG, 0, request);
+
+       /* Pull the data into data_buf */
+       __xin(SCRATCHPAD_2, RESULT_REG, 0, data_buf);
+}
+
+/* Send intial ADC configurations */
+adc_init() {
+       uint32_t status = 0;
+       uint32_t temp;
+
+       /* Check to make sure the SPI coprocessor is ready */
+       while (!(status & SEND_READY_BIT)) {
+               __xin(SCRATCHPAD_1, STATUS_REG, 0, temp);
+               status = temp;
+       }
+       /* Send reset command to all devices in parallel */
+       config_buf[0] = CMD_REG(RST);
+       config_buf[1] = CMD_REG(RST);
+       config_buf[2] = CMD_REG(RST);
+       config_buf[3] = CMD_REG(RST);
+       config_buf[4] = CMD_REG(RST);
+       config_buf[5] = CMD_REG(RST);
+       send_command(ONE_SHOT);
+       receive_data();
+
+       /* Set device 0 channel 0's input range to 0-2.5vRef */
+       /*
+       config_buf[0] = PROG_REG(CHAN_INPUT_RANGE(0), WRITE, PLUS125VREF);
+       send_command(ONE_SHOT);
+       receive_data();
+       */
+
+       /* Only enable channel 6 on all devices */
+       config_buf[0] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       config_buf[1] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       config_buf[2] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       config_buf[3] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       config_buf[4] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       config_buf[5] = PROG_REG(AUTO_SEQ_EN, WRITE, 0xFF);
+       send_command(ONE_SHOT);
+       receive_data();
+
+       __delay_cycles(200);
+
+       /* Put devices into auto reset mode in parallel */
+       config_buf[0] = CMD_REG(AUTO_RST);
+       config_buf[1] = CMD_REG(AUTO_RST);
+       config_buf[2] = CMD_REG(AUTO_RST);
+       config_buf[3] = CMD_REG(AUTO_RST);
+       config_buf[4] = CMD_REG(AUTO_RST);
+       config_buf[5] = CMD_REG(AUTO_RST);
+       send_command(ONE_SHOT);
+       receive_data();
+
+       /* Initial delay set for 50Hz */
+       send_delay(DEFAULT_DELAY);
+
+       /* Send the NOOP command to kick off the sampling */
+       config_buf[0] = CMD_REG(NOOP);
+       config_buf[1] = CMD_REG(NOOP);
+       config_buf[2] = CMD_REG(NOOP);
+       config_buf[3] = CMD_REG(NOOP);
+       config_buf[4] = CMD_REG(NOOP);
+       config_buf[5] = CMD_REG(NOOP);
+       send_command(CONTINUOUS);
+
+       /* Enable the cycle counter */
+       PRU0_CTRL.CTRL_bit.CTR_EN = 1;
+       PRU0_CTRL.CYCLE = 0;
+
+}
+
+typedef struct {
+       int32_t chan_data[CHANS_PER_DEVICE];
+} adc_device;
+
+#pragma DATA_SECTION(debug, ".shared_mem")
+volatile far int32_t debug[10];
+
+uint32_t chan_data_temp[NUM_CHANS];
+
+void main(void)
+{
+       uint32_t i, j, idx;
+       uint32_t oversample = 1;
+       int32_t last_pol = 1;
+       uint32_t zero_crossings = 0;
+       uint32_t start, stop, elapsed, delay, compensation = 0;
+       uint32_t zero = 0;
+       uint32_t curr_addr;
+       uint8_t curr_buff;
+       uint32_t num_captured = 0;
+
+       delay = DEFAULT_DELAY;
+       compensation = DEFAULT_COMP;
+
+       /* Select the ping buffer first */
+       curr_addr = PING_ADDR + 8;
+       curr_buff = PING;
+
+       /* This PRU comes up first, zero out the status registers */
+       __xout(SCRATCHPAD_1, STATUS_REG, 0, zero);
+       __xout(SCRATCHPAD_1, REQUEST_REG, 0, zero);
+
+       /* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
+       CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
+
+       /* ADC init */
+       adc_init();
+
+       while (1) {
+               for (i = 0; i < CHANS_PER_DEVICE; i++) {
+                       /* receive parallel data from the ADCs */
+                       if (i < compensation)
+                               send_delay(delay + 1);
+                       else
+                               send_delay(delay);
+                       receive_data();
+                       for (j = 0; j < DEVICES; j++) {
+                               idx = j*CHANS_PER_DEVICE+i;
+
+                               /* Clear the accumulated value if first sample */
+                               if (oversample == 1)
+                                       chan_data_temp[idx] = 0;
+
+                               /* Accumulate samples until oversample value is reached */
+                               chan_data_temp[idx] += (uint16_t)data_buf[j];
+
+                               /* Perform oversampling */
+                               if (oversample == OVERSAMPLE) {
+                                       chan_data_temp[idx] = (uint16_t)((chan_data_temp[idx] + (OVERSAMPLE/2)) / OVERSAMPLE);
+                                       /* Frequency estimation using zero crossings */
+                                       if (j == FREQ_EST_DEVICE && i == FREQ_EST_CHANNEL) {
+                                               if (((last_pol > 0) && ((int16_t)(chan_data_temp[idx] - 0x8000) < 0)) || 
+                                                   ((last_pol < 0) && ((int16_t)(chan_data_temp[idx] - 0x8000) > 0))) {
+                                                       zero_crossings++;
+                                                       last_pol = ~last_pol;
+
+                                                       /* First crossing, get the start timestamp */
+                                                       if (zero_crossings == 1) {
+                                                               start = PRU0_CTRL.CYCLE;
+                                                       }
+                                                       /* Last crossing, get the stop timestamp */
+                                                       else if (zero_crossings == ((FREQ_EST_CYCLES * 2) + 1)) {
+                                                               stop = PRU0_CTRL.CYCLE;
+                                                               elapsed = stop - start;
+                                                               delay = elapsed/(SAMPLES_PER_CYCLE * FREQ_EST_CYCLES);
+                                                               compensation = delay % CHANS_PER_DEVICE;
+                                                               delay = delay / CHANS_PER_DEVICE;
+                                                               if (delay < MIN_DELAY) {
+                                                                       delay = MIN_DELAY;
+                                                                       compensation = 0;
+                                                               }
+                                                               else if (delay > MAX_DELAY) {
+                                                                       delay = MAX_DELAY;
+                                                                       compensation = CHANS_PER_DEVICE - 1;
+                                                               }
+                                                               PRU0_CTRL.CYCLE = 0;
+                                                               zero_crossings = 0;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+               }
+               if (oversample++ == OVERSAMPLE) {
+                       oversample = 1;
+                       /* Copy the oversampled data from each channel to the current buffer */
+                       memcpy((void *)curr_addr, chan_data_temp, CHANS_PER_DEVICE * DEVICES * 4);
+                       /* Increment the address for the next set of channel data */
+                       curr_addr += CHANS_PER_DEVICE * DEVICES * 4;
+
+                       /* A full sample has been captured, switch buffers */
+                       if (++num_captured == SAMPLES_PER_CYCLE) {
+                               if (curr_buff == PING) {
+                                       /* Mark the first 4 bytes of the ping buffer with the ready flag */
+                                       *(volatile uint32_t *)PING_ADDR = DATA_READY;
+                                       /* Mark the next 4 bytes of the ping buffer with delay and comp values */
+                                       *(volatile uint32_t *)(PING_ADDR + 4) = ((uint16_t)compensation) << 16 | ((uint16_t) delay);
+                                       /* Mark the first 4 bytes of the pong buffer with the in progress flag */
+                                       *(volatile uint32_t *)PONG_ADDR = IN_PROGRESS;
+                                       /* Set the current address for samples to the address after the flag */
+                                       curr_addr = PONG_ADDR + 8;
+                                       /* Update the current buffer */
+                                       curr_buff = PONG;
+                               }
+                               else {
+                                       /* Mark the first 4 bytes of the pong buffer with the ready flag */
+                                       *(volatile uint32_t *)PONG_ADDR = DATA_READY;
+                                       /* Mark the next 4 bytes of the pong buffer with delay and comp values */
+                                       *(volatile uint32_t *)(PONG_ADDR + 4) = ((uint16_t)compensation) << 16 | ((uint16_t) delay);
+                                       /* Mark the first 4 bytes of the ping buffer with the in progress flag */
+                                       *(volatile uint32_t *)PING_ADDR = IN_PROGRESS;
+                                       /* Set the current address for samples to the address after the flag */
+                                       curr_addr = PING_ADDR + 8;
+                                       /* Update the current buffer */
+                                       curr_buff = PING;
+                               }
+                               num_captured = 0;
+                       }
+               }
+       }
+}
+
diff --git a/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.asm b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.asm
new file mode 100644 (file)
index 0000000..34ba3e4
--- /dev/null
@@ -0,0 +1,3844 @@
+;******************************************************************************
+;* PRU C/C++ Codegen                                              Unix v2.1.4 *
+;* Date/Time created: Wed Nov 22 12:19:17 2017                                *
+;******************************************************************************
+       .compiler_opts --abi=eabi --endian=little --hll_source=on --object_format=elf --silicon_version=3 --symdebug:dwarf --symdebug:dwarf_version=3 
+
+$C$DW$CU       .dwtag  DW_TAG_compile_unit
+       .dwattr $C$DW$CU, DW_AT_name("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$CU, DW_AT_producer("TI PRU C/C++ Codegen Unix v2.1.4 Copyright (c) 2012-2015 Texas Instruments Incorporated")
+       .dwattr $C$DW$CU, DW_AT_TI_version(0x01)
+       .dwattr $C$DW$CU, DW_AT_comp_dir("/home/a0273976local/git/tida01555/PRU_ADS8688_Controller")
+       .global __PRU_CREG_PRU_CFG
+
+$C$DW$1        .dwtag  DW_TAG_subprogram, DW_AT_name("memcpy")
+       .dwattr $C$DW$1, DW_AT_TI_symbol_name("memcpy")
+       .dwattr $C$DW$1, DW_AT_type(*$C$DW$T$3)
+       .dwattr $C$DW$1, DW_AT_declaration
+       .dwattr $C$DW$1, DW_AT_external
+$C$DW$2        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$2, DW_AT_type(*$C$DW$T$3)
+$C$DW$3        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$3, DW_AT_type(*$C$DW$T$107)
+$C$DW$4        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$4, DW_AT_type(*$C$DW$T$11)
+       .dwendtag $C$DW$1
+
+
+$C$DW$5        .dwtag  DW_TAG_subprogram, DW_AT_name("__xin")
+       .dwattr $C$DW$5, DW_AT_TI_symbol_name("__xin")
+       .dwattr $C$DW$5, DW_AT_declaration
+       .dwattr $C$DW$5, DW_AT_external
+$C$DW$6        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$6, DW_AT_type(*$C$DW$T$11)
+$C$DW$7        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$7, DW_AT_type(*$C$DW$T$11)
+$C$DW$8        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$8, DW_AT_type(*$C$DW$T$11)
+$C$DW$9        .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$9, DW_AT_type(*$C$DW$T$105)
+       .dwendtag $C$DW$5
+
+
+$C$DW$10       .dwtag  DW_TAG_subprogram, DW_AT_name("__xout")
+       .dwattr $C$DW$10, DW_AT_TI_symbol_name("__xout")
+       .dwattr $C$DW$10, DW_AT_declaration
+       .dwattr $C$DW$10, DW_AT_external
+$C$DW$11       .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$11, DW_AT_type(*$C$DW$T$11)
+$C$DW$12       .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$12, DW_AT_type(*$C$DW$T$11)
+$C$DW$13       .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$13, DW_AT_type(*$C$DW$T$11)
+$C$DW$14       .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$14, DW_AT_type(*$C$DW$T$105)
+       .dwendtag $C$DW$10
+
+
+$C$DW$15       .dwtag  DW_TAG_subprogram, DW_AT_name("__delay_cycles")
+       .dwattr $C$DW$15, DW_AT_TI_symbol_name("__delay_cycles")
+       .dwattr $C$DW$15, DW_AT_declaration
+       .dwattr $C$DW$15, DW_AT_external
+$C$DW$16       .dwtag  DW_TAG_formal_parameter
+       .dwattr $C$DW$16, DW_AT_type(*$C$DW$T$11)
+       .dwendtag $C$DW$15
+
+       .weak   ||CT_CFG||
+||CT_CFG||:    .usect  ".creg.PRU_CFG.noload.near",68,1
+$C$DW$17       .dwtag  DW_TAG_variable, DW_AT_name("CT_CFG")
+       .dwattr $C$DW$17, DW_AT_TI_symbol_name("CT_CFG")
+       .dwattr $C$DW$17, DW_AT_location[DW_OP_addr ||CT_CFG||]
+       .dwattr $C$DW$17, DW_AT_type(*$C$DW$T$99)
+       .dwattr $C$DW$17, DW_AT_external
+       .dwattr $C$DW$17, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$17, DW_AT_decl_line(0xf2)
+       .dwattr $C$DW$17, DW_AT_decl_column(0x17)
+       .global ||pru_remoteproc_ResourceTable||
+       .sect   ".resource_table:retain", RW
+       .retain
+       .align  1
+       .elfsym ||pru_remoteproc_ResourceTable||,SYM_SIZE(20)
+||pru_remoteproc_ResourceTable||:
+       .bits   1,32                    ; pru_remoteproc_ResourceTable.base.ver @ 0
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.num @ 32
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[0] @ 64
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[1] @ 96
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.offset[0] @ 128
+
+$C$DW$18       .dwtag  DW_TAG_variable, DW_AT_name("pru_remoteproc_ResourceTable")
+       .dwattr $C$DW$18, DW_AT_TI_symbol_name("pru_remoteproc_ResourceTable")
+       .dwattr $C$DW$18, DW_AT_location[DW_OP_addr ||pru_remoteproc_ResourceTable||]
+       .dwattr $C$DW$18, DW_AT_type(*$C$DW$T$93)
+       .dwattr $C$DW$18, DW_AT_external
+       .dwattr $C$DW$18, DW_AT_decl_file("resource_table_empty.h")
+       .dwattr $C$DW$18, DW_AT_decl_line(0x40)
+       .dwattr $C$DW$18, DW_AT_decl_column(0x1a)
+       .global ||data_buf||
+       .common ||data_buf||,24,1
+$C$DW$19       .dwtag  DW_TAG_variable, DW_AT_name("data_buf")
+       .dwattr $C$DW$19, DW_AT_TI_symbol_name("data_buf")
+       .dwattr $C$DW$19, DW_AT_location[DW_OP_addr ||data_buf||]
+       .dwattr $C$DW$19, DW_AT_type(*$C$DW$T$132)
+       .dwattr $C$DW$19, DW_AT_external
+       .dwattr $C$DW$19, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$19, DW_AT_decl_line(0x7a)
+       .dwattr $C$DW$19, DW_AT_decl_column(0x0a)
+       .global ||config_buf||
+       .common ||config_buf||,24,1
+$C$DW$20       .dwtag  DW_TAG_variable, DW_AT_name("config_buf")
+       .dwattr $C$DW$20, DW_AT_TI_symbol_name("config_buf")
+       .dwattr $C$DW$20, DW_AT_location[DW_OP_addr ||config_buf||]
+       .dwattr $C$DW$20, DW_AT_type(*$C$DW$T$132)
+       .dwattr $C$DW$20, DW_AT_external
+       .dwattr $C$DW$20, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$20, DW_AT_decl_line(0x7b)
+       .dwattr $C$DW$20, DW_AT_decl_column(0x0a)
+       .global ||debug||
+||debug||:     .usect  ".shared_mem",40,1
+$C$DW$21       .dwtag  DW_TAG_variable, DW_AT_name("debug")
+       .dwattr $C$DW$21, DW_AT_TI_symbol_name("debug")
+       .dwattr $C$DW$21, DW_AT_location[DW_OP_addr ||debug||]
+       .dwattr $C$DW$21, DW_AT_type(*$C$DW$T$125)
+       .dwattr $C$DW$21, DW_AT_external
+       .dwattr $C$DW$21, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$21, DW_AT_decl_line(0x109)
+       .dwattr $C$DW$21, DW_AT_decl_column(0x16)
+       .global ||chan_data_temp||
+       .common ||chan_data_temp||,192,1
+$C$DW$22       .dwtag  DW_TAG_variable, DW_AT_name("chan_data_temp")
+       .dwattr $C$DW$22, DW_AT_TI_symbol_name("chan_data_temp")
+       .dwattr $C$DW$22, DW_AT_location[DW_OP_addr ||chan_data_temp||]
+       .dwattr $C$DW$22, DW_AT_type(*$C$DW$T$133)
+       .dwattr $C$DW$22, DW_AT_external
+       .dwattr $C$DW$22, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$22, DW_AT_decl_line(0x10b)
+       .dwattr $C$DW$22, DW_AT_decl_column(0x0a)
+;      /home/a0273976local/ti-cgt-pru_2.1.4/bin/optpru /tmp/16837JLdgNL /tmp/168373AbKQP 
+;      /home/a0273976local/ti-cgt-pru_2.1.4/bin/acpiapru -@/tmp/168375urK45 
+       .sect   ".text:send_delay"
+       .clink
+       .global ||send_delay||
+
+$C$DW$23       .dwtag  DW_TAG_subprogram, DW_AT_name("send_delay")
+       .dwattr $C$DW$23, DW_AT_low_pc(||send_delay||)
+       .dwattr $C$DW$23, DW_AT_high_pc(0x00)
+       .dwattr $C$DW$23, DW_AT_TI_symbol_name("send_delay")
+       .dwattr $C$DW$23, DW_AT_external
+       .dwattr $C$DW$23, DW_AT_type(*$C$DW$T$10)
+       .dwattr $C$DW$23, DW_AT_TI_begin_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$23, DW_AT_TI_begin_line(0x7e)
+       .dwattr $C$DW$23, DW_AT_TI_begin_column(0x01)
+       .dwattr $C$DW$23, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$23, DW_AT_decl_line(0x7e)
+       .dwattr $C$DW$23, DW_AT_decl_column(0x01)
+       .dwattr $C$DW$23, DW_AT_TI_max_frame_size(0x00)
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 126,column 32,is_stmt,address ||send_delay||,isa 0
+
+       .dwfde $C$DW$CIE, ||send_delay||
+$C$DW$24       .dwtag  DW_TAG_formal_parameter, DW_AT_name("delay_val")
+       .dwattr $C$DW$24, DW_AT_TI_symbol_name("delay_val")
+       .dwattr $C$DW$24, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$24, DW_AT_location[DW_OP_regx 0x38]
+
+;***************************************************************
+;* FNAME: send_delay                    FR SIZE:   0           *
+;*                                                             *
+;* FUNCTION ENVIRONMENT                                        *
+;*                                                             *
+;* FUNCTION PROPERTIES                                         *
+;*                            0 Auto,  0 SOE     *
+;***************************************************************
+
+||send_delay||:
+;* --------------------------------------------------------------------------*
+;* r14_0 assigned to delay_val
+$C$DW$25       .dwtag  DW_TAG_variable, DW_AT_name("delay_val")
+       .dwattr $C$DW$25, DW_AT_TI_symbol_name("delay_val")
+       .dwattr $C$DW$25, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$25, DW_AT_location[DW_OP_regx 0x38]
+       .dwcfi  cfa_offset, 0
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 128,column 2,is_stmt,isa 0
+        MOV       r21, r14              ; [ALU_PRU] |128| delay_val
+        XOUT      0x0a, &r21.b0, 0x04   ; [ALU_PRU] |128| 
+$C$DW$26       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$26, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$26, DW_AT_TI_return
+        JMP       r3.w2                 ; [ALU_PRU] 
+       .dwattr $C$DW$23, DW_AT_TI_end_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$23, DW_AT_TI_end_line(0x81)
+       .dwattr $C$DW$23, DW_AT_TI_end_column(0x01)
+       .dwendentry
+       .dwendtag $C$DW$23
+
+       .sect   ".text:send_command"
+       .clink
+       .global ||send_command||
+
+$C$DW$27       .dwtag  DW_TAG_subprogram, DW_AT_name("send_command")
+       .dwattr $C$DW$27, DW_AT_low_pc(||send_command||)
+       .dwattr $C$DW$27, DW_AT_high_pc(0x00)
+       .dwattr $C$DW$27, DW_AT_TI_symbol_name("send_command")
+       .dwattr $C$DW$27, DW_AT_external
+       .dwattr $C$DW$27, DW_AT_type(*$C$DW$T$10)
+       .dwattr $C$DW$27, DW_AT_TI_begin_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$27, DW_AT_TI_begin_line(0x84)
+       .dwattr $C$DW$27, DW_AT_TI_begin_column(0x01)
+       .dwattr $C$DW$27, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$27, DW_AT_decl_line(0x84)
+       .dwattr $C$DW$27, DW_AT_decl_column(0x01)
+       .dwattr $C$DW$27, DW_AT_TI_max_frame_size(0x00)
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 132,column 35,is_stmt,address ||send_command||,isa 0
+
+       .dwfde $C$DW$CIE, ||send_command||
+$C$DW$28       .dwtag  DW_TAG_formal_parameter, DW_AT_name("continuous")
+       .dwattr $C$DW$28, DW_AT_TI_symbol_name("continuous")
+       .dwattr $C$DW$28, DW_AT_type(*$C$DW$T$115)
+       .dwattr $C$DW$28, DW_AT_location[DW_OP_regx 0x38]
+
+;***************************************************************
+;* FNAME: send_command                  FR SIZE:   0           *
+;*                                                             *
+;* FUNCTION ENVIRONMENT                                        *
+;*                                                             *
+;* FUNCTION PROPERTIES                                         *
+;*                            0 Auto,  0 SOE     *
+;***************************************************************
+
+||send_command||:
+;* --------------------------------------------------------------------------*
+;* r28_0 assigned to status
+$C$DW$29       .dwtag  DW_TAG_variable, DW_AT_name("status")
+       .dwattr $C$DW$29, DW_AT_TI_symbol_name("status")
+       .dwattr $C$DW$29, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$29, DW_AT_location[DW_OP_regx 0x70]
+;* r29_0 assigned to request
+$C$DW$30       .dwtag  DW_TAG_variable, DW_AT_name("request")
+       .dwattr $C$DW$30, DW_AT_TI_symbol_name("request")
+       .dwattr $C$DW$30, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$30, DW_AT_location[DW_OP_regx 0x74]
+;* r14_0 assigned to continuous
+$C$DW$31       .dwtag  DW_TAG_variable, DW_AT_name("continuous")
+       .dwattr $C$DW$31, DW_AT_TI_symbol_name("continuous")
+       .dwattr $C$DW$31, DW_AT_type(*$C$DW$T$116)
+       .dwattr $C$DW$31, DW_AT_location[DW_OP_regx 0x38]
+       .dwcfi  cfa_offset, 0
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 133,column 27,is_stmt,isa 0
+        ZERO      &r28, 4               ; [ALU_PRU] |133| status
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 137,column 2,is_stmt,isa 0
+        JMP       ||$C$L2||             ; [ALU_PRU] |137| 
+;* --------------------------------------------------------------------------*
+||$C$L1||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 138,column 3,is_stmt,isa 0
+        XIN       0x0b, &r28.b0, 0x04   ; [ALU_PRU] |138| 
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L2||
+;* --------------------------------------------------------------------------*
+||$C$L2||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 137,column 9,is_stmt,isa 0
+        QBBC      ||$C$L1||, r28, 0x00  ; [ALU_PRU] |137| status
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 142,column 2,is_stmt,isa 0
+        LDI       r0, ||config_buf||    ; [ALU_PRU] |142| config_buf
+        LBBO      &r15.b0, r0, 0, 24    ; [ALU_PRU] |142| 
+        XOUT      0x0a, &r15.b0, 0x18   ; [ALU_PRU] |142| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 147,column 3,is_stmt,isa 0
+        QBEQ      ||$C$L3||, r14.w0, 0x00 ; [ALU_PRU] |147| continuous
+;* --------------------------------------------------------------------------*
+        LDI       r29, 0x0003           ; [ALU_PRU] |147| request
+        JMP       ||$C$L4||             ; [ALU_PRU] |147| 
+;* --------------------------------------------------------------------------*
+||$C$L3||:    
+        LDI       r29, 0x0001           ; [ALU_PRU] |147| request
+;* --------------------------------------------------------------------------*
+||$C$L4||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 148,column 2,is_stmt,isa 0
+        XOUT      0x0b, &r29.b0, 0x04   ; [ALU_PRU] |148| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 151,column 2,is_stmt,isa 0
+        JMP       ||$C$L6||             ; [ALU_PRU] |151| 
+;* --------------------------------------------------------------------------*
+||$C$L5||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 152,column 3,is_stmt,isa 0
+        XIN       0x0b, &r28.b0, 0x04   ; [ALU_PRU] |152| 
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L6||
+;* --------------------------------------------------------------------------*
+||$C$L6||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 151,column 9,is_stmt,isa 0
+        QBBC      ||$C$L5||, r28, 0x01  ; [ALU_PRU] |151| status
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 156,column 2,is_stmt,isa 0
+        CLR       r29, r29, 0x00000000  ; [ALU_PRU] |156| request,request
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 157,column 2,is_stmt,isa 0
+        XOUT      0x0b, &r29.b0, 0x04   ; [ALU_PRU] |157| 
+$C$DW$32       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$32, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$32, DW_AT_TI_return
+        JMP       r3.w2                 ; [ALU_PRU] 
+       .dwattr $C$DW$27, DW_AT_TI_end_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$27, DW_AT_TI_end_line(0x9e)
+       .dwattr $C$DW$27, DW_AT_TI_end_column(0x01)
+       .dwendentry
+       .dwendtag $C$DW$27
+
+       .sect   ".text:receive_data"
+       .clink
+       .global ||receive_data||
+
+$C$DW$33       .dwtag  DW_TAG_subprogram, DW_AT_name("receive_data")
+       .dwattr $C$DW$33, DW_AT_low_pc(||receive_data||)
+       .dwattr $C$DW$33, DW_AT_high_pc(0x00)
+       .dwattr $C$DW$33, DW_AT_TI_symbol_name("receive_data")
+       .dwattr $C$DW$33, DW_AT_external
+       .dwattr $C$DW$33, DW_AT_type(*$C$DW$T$10)
+       .dwattr $C$DW$33, DW_AT_TI_begin_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$33, DW_AT_TI_begin_line(0xa1)
+       .dwattr $C$DW$33, DW_AT_TI_begin_column(0x01)
+       .dwattr $C$DW$33, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$33, DW_AT_decl_line(0xa1)
+       .dwattr $C$DW$33, DW_AT_decl_column(0x01)
+       .dwattr $C$DW$33, DW_AT_TI_max_frame_size(0x00)
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 161,column 16,is_stmt,address ||receive_data||,isa 0
+
+       .dwfde $C$DW$CIE, ||receive_data||
+
+;***************************************************************
+;* FNAME: receive_data                  FR SIZE:   0           *
+;*                                                             *
+;* FUNCTION ENVIRONMENT                                        *
+;*                                                             *
+;* FUNCTION PROPERTIES                                         *
+;*                            0 Auto,  0 SOE     *
+;***************************************************************
+
+||receive_data||:
+;* --------------------------------------------------------------------------*
+;* r28_0 assigned to status
+$C$DW$34       .dwtag  DW_TAG_variable, DW_AT_name("status")
+       .dwattr $C$DW$34, DW_AT_TI_symbol_name("status")
+       .dwattr $C$DW$34, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$34, DW_AT_location[DW_OP_regx 0x70]
+;* r29_0 assigned to request
+$C$DW$35       .dwtag  DW_TAG_variable, DW_AT_name("request")
+       .dwattr $C$DW$35, DW_AT_TI_symbol_name("request")
+       .dwattr $C$DW$35, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$35, DW_AT_location[DW_OP_regx 0x74]
+       .dwcfi  cfa_offset, 0
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 166,column 2,is_stmt,isa 0
+        XIN       0x0b, &r29.b0, 0x04   ; [ALU_PRU] |166| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 169,column 2,is_stmt,isa 0
+        SET       r29, r29, 0x00000002  ; [ALU_PRU] |169| request,request
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 170,column 2,is_stmt,isa 0
+        CLR       r29, r29, 0x00000003  ; [ALU_PRU] |170| request,request
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 171,column 2,is_stmt,isa 0
+        XOUT      0x0b, &r29.b0, 0x04   ; [ALU_PRU] |171| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 162,column 27,is_stmt,isa 0
+        ZERO      &r28, 4               ; [ALU_PRU] |162| status
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 176,column 2,is_stmt,isa 0
+        CLR       r29, r29, 0x00000002  ; [ALU_PRU] |176| request,request
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 177,column 2,is_stmt,isa 0
+        SET       r29, r29, 0x00000003  ; [ALU_PRU] |177| request,request
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 180,column 2,is_stmt,isa 0
+        JMP       ||$C$L8||             ; [ALU_PRU] |180| 
+;* --------------------------------------------------------------------------*
+||$C$L7||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 181,column 3,is_stmt,isa 0
+        XIN       0x0b, &r28.b0, 0x04   ; [ALU_PRU] |181| 
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L8||
+;* --------------------------------------------------------------------------*
+||$C$L8||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 180,column 9,is_stmt,isa 0
+        QBBC      ||$C$L7||, r28, 0x02  ; [ALU_PRU] |180| status
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 186,column 2,is_stmt,isa 0
+        XOUT      0x0b, &r29.b0, 0x04   ; [ALU_PRU] |186| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 189,column 2,is_stmt,isa 0
+        XIN       0x0c, &r22.b0, 0x18   ; [ALU_PRU] |189| 
+        LDI       r0, ||data_buf||      ; [ALU_PRU] |189| data_buf
+        SBBO      &r22.b0, r0, 0, 24    ; [ALU_PRU] |189| 
+$C$DW$36       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$36, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$36, DW_AT_TI_return
+        JMP       r3.w2                 ; [ALU_PRU] 
+       .dwattr $C$DW$33, DW_AT_TI_end_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$33, DW_AT_TI_end_line(0xbe)
+       .dwattr $C$DW$33, DW_AT_TI_end_column(0x01)
+       .dwendentry
+       .dwendtag $C$DW$33
+
+       .sect   ".text:adc_init"
+       .clink
+       .global ||adc_init||
+
+$C$DW$37       .dwtag  DW_TAG_subprogram, DW_AT_name("adc_init")
+       .dwattr $C$DW$37, DW_AT_low_pc(||adc_init||)
+       .dwattr $C$DW$37, DW_AT_high_pc(0x00)
+       .dwattr $C$DW$37, DW_AT_TI_symbol_name("adc_init")
+       .dwattr $C$DW$37, DW_AT_external
+       .dwattr $C$DW$37, DW_AT_type(*$C$DW$T$10)
+       .dwattr $C$DW$37, DW_AT_TI_begin_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$37, DW_AT_TI_begin_line(0xc1)
+       .dwattr $C$DW$37, DW_AT_TI_begin_column(0x01)
+       .dwattr $C$DW$37, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$37, DW_AT_decl_line(0xc1)
+       .dwattr $C$DW$37, DW_AT_decl_column(0x01)
+       .dwattr $C$DW$37, DW_AT_TI_max_frame_size(0x16)
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 193,column 12,is_stmt,address ||adc_init||,isa 0
+
+       .dwfde $C$DW$CIE, ||adc_init||
+
+;***************************************************************
+;* FNAME: adc_init                      FR SIZE:  22           *
+;*                                                             *
+;* FUNCTION ENVIRONMENT                                        *
+;*                                                             *
+;* FUNCTION PROPERTIES                                         *
+;*                            0 Auto, 22 SOE     *
+;***************************************************************
+
+||adc_init||:
+;* --------------------------------------------------------------------------*
+;* r0_0  assigned to $O$C1
+;* r21_0 assigned to $O$C2
+;* r8_0  assigned to $O$C3
+;* r7_0  assigned to $O$C4
+;* r6_0  assigned to $O$C5
+;* r5_0  assigned to $O$C6
+;* r4_0  assigned to $O$C7
+;* r1_0  assigned to $O$C8
+;* r0_0  assigned to $O$C9
+;* r0_0  assigned to $O$C10
+;* r0_0  assigned to $O$C11
+;* r28_0 assigned to status
+$C$DW$38       .dwtag  DW_TAG_variable, DW_AT_name("status")
+       .dwattr $C$DW$38, DW_AT_TI_symbol_name("status")
+       .dwattr $C$DW$38, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$38, DW_AT_location[DW_OP_regx 0x70]
+       .dwcfi  cfa_offset, 0
+        SUB       r2, r2, 0x16          ; [ALU_PRU] 
+       .dwcfi  cfa_offset, 22
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 194,column 18,is_stmt,isa 0
+        ZERO      &r28, 4               ; [ALU_PRU] |194| status
+        SBBO      &r3.b2, r2, 0, 22     ; [ALU_PRU] 
+       .dwcfi  save_reg_to_mem, 14, -22
+       .dwcfi  save_reg_to_mem, 15, -21
+       .dwcfi  save_reg_to_mem, 16, -20
+       .dwcfi  save_reg_to_mem, 17, -19
+       .dwcfi  save_reg_to_mem, 18, -18
+       .dwcfi  save_reg_to_mem, 19, -17
+       .dwcfi  save_reg_to_mem, 20, -16
+       .dwcfi  save_reg_to_mem, 21, -15
+       .dwcfi  save_reg_to_mem, 22, -14
+       .dwcfi  save_reg_to_mem, 23, -13
+       .dwcfi  save_reg_to_mem, 24, -12
+       .dwcfi  save_reg_to_mem, 25, -11
+       .dwcfi  save_reg_to_mem, 26, -10
+       .dwcfi  save_reg_to_mem, 27, -9
+       .dwcfi  save_reg_to_mem, 28, -8
+       .dwcfi  save_reg_to_mem, 29, -7
+       .dwcfi  save_reg_to_mem, 30, -6
+       .dwcfi  save_reg_to_mem, 31, -5
+       .dwcfi  save_reg_to_mem, 32, -4
+       .dwcfi  save_reg_to_mem, 33, -3
+       .dwcfi  save_reg_to_mem, 34, -2
+       .dwcfi  save_reg_to_mem, 35, -1
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 198,column 2,is_stmt,isa 0
+        JMP       ||$C$L10||            ; [ALU_PRU] |198| 
+;* --------------------------------------------------------------------------*
+||$C$L9||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 199,column 3,is_stmt,isa 0
+        XIN       0x0b, &r28.b0, 0x04   ; [ALU_PRU] |199| 
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L10||
+;* --------------------------------------------------------------------------*
+||$C$L10||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 198,column 9,is_stmt,isa 0
+        QBBC      ||$C$L9||, r28, 0x00  ; [ALU_PRU] |198| status
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 204,column 2,is_stmt,isa 0
+        LDI       r1, ||config_buf||    ; [ALU_PRU] |204| $O$C8,config_buf
+        LDI       r0, 0x8500            ; [ALU_PRU] |204| $O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 205,column 2,is_stmt,isa 0
+        ADD       r4, r1, 0x04          ; [ALU_PRU] |205| $O$C7,$O$C8
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 210,column 2,is_stmt,isa 0
+        LDI       r14.w0, 0x0000        ; [ALU_PRU] |210| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 204,column 2,is_stmt,isa 0
+        SBBO      &r0, r1, 0, 4         ; [ALU_PRU] |204| $O$C8,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 206,column 2,is_stmt,isa 0
+        ADD       r5, r1, 0x08          ; [ALU_PRU] |206| $O$C6,$O$C8
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 207,column 2,is_stmt,isa 0
+        ADD       r6, r1, 0x0c          ; [ALU_PRU] |207| $O$C5,$O$C8
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 205,column 2,is_stmt,isa 0
+        SBBO      &r0, r4, 0, 4         ; [ALU_PRU] |205| $O$C7,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 208,column 2,is_stmt,isa 0
+        ADD       r7, r1, 0x10          ; [ALU_PRU] |208| $O$C4,$O$C8
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 209,column 2,is_stmt,isa 0
+        ADD       r8, r1, 0x14          ; [ALU_PRU] |209| $O$C3,$O$C8
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 206,column 2,is_stmt,isa 0
+        SBBO      &r0, r5, 0, 4         ; [ALU_PRU] |206| $O$C6,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 207,column 2,is_stmt,isa 0
+        SBBO      &r0, r6, 0, 4         ; [ALU_PRU] |207| $O$C5,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 208,column 2,is_stmt,isa 0
+        SBBO      &r0, r7, 0, 4         ; [ALU_PRU] |208| $O$C4,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 209,column 2,is_stmt,isa 0
+        SBBO      &r0, r8, 0, 4         ; [ALU_PRU] |209| $O$C3,$O$C11
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 210,column 2,is_stmt,isa 0
+$C$DW$39       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$39, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$39, DW_AT_name("send_command")
+       .dwattr $C$DW$39, DW_AT_TI_call
+        JAL       r3.w2, ||send_command|| ; [ALU_PRU] |210| send_command
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 211,column 2,is_stmt,isa 0
+$C$DW$40       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$40, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$40, DW_AT_name("receive_data")
+       .dwattr $C$DW$40, DW_AT_TI_call
+        JAL       r3.w2, ||receive_data|| ; [ALU_PRU] |211| receive_data
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 221,column 2,is_stmt,isa 0
+        LDI       r0, 0x03ff            ; [ALU_PRU] |221| $O$C10
+        SBBO      &r0, r1, 0, 4         ; [ALU_PRU] |221| $O$C8,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 222,column 2,is_stmt,isa 0
+        SBBO      &r0, r4, 0, 4         ; [ALU_PRU] |222| $O$C7,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 223,column 2,is_stmt,isa 0
+        SBBO      &r0, r5, 0, 4         ; [ALU_PRU] |223| $O$C6,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 224,column 2,is_stmt,isa 0
+        SBBO      &r0, r6, 0, 4         ; [ALU_PRU] |224| $O$C5,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 225,column 2,is_stmt,isa 0
+        SBBO      &r0, r7, 0, 4         ; [ALU_PRU] |225| $O$C4,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 226,column 2,is_stmt,isa 0
+        SBBO      &r0, r8, 0, 4         ; [ALU_PRU] |226| $O$C3,$O$C10
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 227,column 2,is_stmt,isa 0
+$C$DW$41       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$41, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$41, DW_AT_name("send_command")
+       .dwattr $C$DW$41, DW_AT_TI_call
+        JAL       r3.w2, ||send_command|| ; [ALU_PRU] |227| send_command
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 228,column 2,is_stmt,isa 0
+$C$DW$42       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$42, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$42, DW_AT_name("receive_data")
+       .dwattr $C$DW$42, DW_AT_TI_call
+        JAL       r3.w2, ||receive_data|| ; [ALU_PRU] |228| receive_data
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 230,column 2,is_stmt,isa 0
+        .newblock
+        LDI32    r21, 99
+$1:     SUB      r21, r21, 1
+        QBNE     $1, r21, 0            ; [ALU_PRU] |230| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 233,column 2,is_stmt,isa 0
+        LDI       r0, 0xa000            ; [ALU_PRU] |233| $O$C9
+        SBBO      &r0, r1, 0, 4         ; [ALU_PRU] |233| $O$C8,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 234,column 2,is_stmt,isa 0
+        SBBO      &r0, r4, 0, 4         ; [ALU_PRU] |234| $O$C7,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 235,column 2,is_stmt,isa 0
+        SBBO      &r0, r5, 0, 4         ; [ALU_PRU] |235| $O$C6,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 236,column 2,is_stmt,isa 0
+        SBBO      &r0, r6, 0, 4         ; [ALU_PRU] |236| $O$C5,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 237,column 2,is_stmt,isa 0
+        SBBO      &r0, r7, 0, 4         ; [ALU_PRU] |237| $O$C4,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 238,column 2,is_stmt,isa 0
+        SBBO      &r0, r8, 0, 4         ; [ALU_PRU] |238| $O$C3,$O$C9
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 239,column 2,is_stmt,isa 0
+$C$DW$43       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$43, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$43, DW_AT_name("send_command")
+       .dwattr $C$DW$43, DW_AT_TI_call
+        JAL       r3.w2, ||send_command|| ; [ALU_PRU] |239| send_command
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 240,column 2,is_stmt,isa 0
+$C$DW$44       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$44, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$44, DW_AT_name("receive_data")
+       .dwattr $C$DW$44, DW_AT_TI_call
+        JAL       r3.w2, ||receive_data|| ; [ALU_PRU] |240| receive_data
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 243,column 2,is_stmt,isa 0
+        LDI       r14, 0x030d           ; [ALU_PRU] |243| 
+$C$DW$45       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$45, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$45, DW_AT_name("send_delay")
+       .dwattr $C$DW$45, DW_AT_TI_call
+        JAL       r3.w2, ||send_delay|| ; [ALU_PRU] |243| send_delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 246,column 2,is_stmt,isa 0
+        ZERO      &r21, 4               ; [ALU_PRU] |246| $O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 252,column 2,is_stmt,isa 0
+        LDI       r14.w0, 0x0001        ; [ALU_PRU] |252| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 246,column 2,is_stmt,isa 0
+        SBBO      &r21, r1, 0, 4        ; [ALU_PRU] |246| $O$C8,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 247,column 2,is_stmt,isa 0
+        SBBO      &r21, r4, 0, 4        ; [ALU_PRU] |247| $O$C7,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 248,column 2,is_stmt,isa 0
+        SBBO      &r21, r5, 0, 4        ; [ALU_PRU] |248| $O$C6,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 249,column 2,is_stmt,isa 0
+        SBBO      &r21, r6, 0, 4        ; [ALU_PRU] |249| $O$C5,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 250,column 2,is_stmt,isa 0
+        SBBO      &r21, r7, 0, 4        ; [ALU_PRU] |250| $O$C4,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 251,column 2,is_stmt,isa 0
+        SBBO      &r21, r8, 0, 4        ; [ALU_PRU] |251| $O$C3,$O$C2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 252,column 2,is_stmt,isa 0
+$C$DW$46       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$46, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$46, DW_AT_name("send_command")
+       .dwattr $C$DW$46, DW_AT_TI_call
+        JAL       r3.w2, ||send_command|| ; [ALU_PRU] |252| send_command
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 255,column 2,is_stmt,isa 0
+        LDI32     r0, 0x00022000        ; [ALU_PRU] |255| $O$C1
+        LBBO      &r1, r0, 0, 4         ; [ALU_PRU] |255| 
+        SET       r1, r1, 0x00000003    ; [ALU_PRU] |255| 
+        SBBO      &r1, r0, 0, 4         ; [ALU_PRU] |255| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 256,column 2,is_stmt,isa 0
+        SBBO      &r21, r0, 12, 4       ; [ALU_PRU] |256| $O$C1,$O$C2
+        LBBO      &r3.b2, r2, 0, 22     ; [ALU_PRU] 
+       .dwcfi  restore_reg, 14
+       .dwcfi  restore_reg, 15
+       .dwcfi  restore_reg, 16
+       .dwcfi  restore_reg, 17
+       .dwcfi  restore_reg, 18
+       .dwcfi  restore_reg, 19
+       .dwcfi  restore_reg, 20
+       .dwcfi  restore_reg, 21
+       .dwcfi  restore_reg, 22
+       .dwcfi  restore_reg, 23
+       .dwcfi  restore_reg, 24
+       .dwcfi  restore_reg, 25
+       .dwcfi  restore_reg, 26
+       .dwcfi  restore_reg, 27
+       .dwcfi  restore_reg, 28
+       .dwcfi  restore_reg, 29
+       .dwcfi  restore_reg, 30
+       .dwcfi  restore_reg, 31
+       .dwcfi  restore_reg, 32
+       .dwcfi  restore_reg, 33
+       .dwcfi  restore_reg, 34
+       .dwcfi  restore_reg, 35
+        ADD       r2, r2, 0x16          ; [ALU_PRU] 
+       .dwcfi  cfa_offset, 0
+$C$DW$47       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$47, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$47, DW_AT_TI_return
+        JMP       r3.w2                 ; [ALU_PRU] 
+       .dwattr $C$DW$37, DW_AT_TI_end_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$37, DW_AT_TI_end_line(0x102)
+       .dwattr $C$DW$37, DW_AT_TI_end_column(0x01)
+       .dwendentry
+       .dwendtag $C$DW$37
+
+       .sect   ".text:main"
+       .clink
+       .global ||main||
+
+$C$DW$48       .dwtag  DW_TAG_subprogram, DW_AT_name("main")
+       .dwattr $C$DW$48, DW_AT_low_pc(||main||)
+       .dwattr $C$DW$48, DW_AT_high_pc(0x00)
+       .dwattr $C$DW$48, DW_AT_TI_symbol_name("main")
+       .dwattr $C$DW$48, DW_AT_external
+       .dwattr $C$DW$48, DW_AT_TI_begin_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$48, DW_AT_TI_begin_line(0x10d)
+       .dwattr $C$DW$48, DW_AT_TI_begin_column(0x06)
+       .dwattr $C$DW$48, DW_AT_decl_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$48, DW_AT_decl_line(0x10d)
+       .dwattr $C$DW$48, DW_AT_decl_column(0x06)
+       .dwattr $C$DW$48, DW_AT_TI_max_frame_size(0x4b)
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 270,column 1,is_stmt,address ||main||,isa 0
+
+       .dwfde $C$DW$CIE, ||main||
+
+;***************************************************************
+;* FNAME: main                          FR SIZE:  75           *
+;*                                                             *
+;* FUNCTION ENVIRONMENT                                        *
+;*                                                             *
+;* FUNCTION PROPERTIES                                         *
+;*                           33 Auto, 42 SOE     *
+;***************************************************************
+
+||main||:
+;* --------------------------------------------------------------------------*
+;* r15_0 assigned to $O$C1
+;* r0_0  assigned to $O$C2
+;* r5_0  assigned to i
+$C$DW$49       .dwtag  DW_TAG_variable, DW_AT_name("i")
+       .dwattr $C$DW$49, DW_AT_TI_symbol_name("i")
+       .dwattr $C$DW$49, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$49, DW_AT_location[DW_OP_reg20]
+;* r12_0 assigned to j
+$C$DW$50       .dwtag  DW_TAG_variable, DW_AT_name("j")
+       .dwattr $C$DW$50, DW_AT_TI_symbol_name("j")
+       .dwattr $C$DW$50, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$50, DW_AT_location[DW_OP_regx 0x30]
+;* r0_0  assigned to idx
+$C$DW$51       .dwtag  DW_TAG_variable, DW_AT_name("idx")
+       .dwattr $C$DW$51, DW_AT_TI_symbol_name("idx")
+       .dwattr $C$DW$51, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$51, DW_AT_location[DW_OP_reg0]
+;* r6_0  assigned to oversample
+$C$DW$52       .dwtag  DW_TAG_variable, DW_AT_name("oversample")
+       .dwattr $C$DW$52, DW_AT_TI_symbol_name("oversample")
+       .dwattr $C$DW$52, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$52, DW_AT_location[DW_OP_reg24]
+$C$DW$53       .dwtag  DW_TAG_variable, DW_AT_name("last_pol")
+       .dwattr $C$DW$53, DW_AT_TI_symbol_name("last_pol")
+       .dwattr $C$DW$53, DW_AT_type(*$C$DW$T$123)
+       .dwattr $C$DW$53, DW_AT_location[DW_OP_breg8 9]
+;* r7_0  assigned to zero_crossings
+$C$DW$54       .dwtag  DW_TAG_variable, DW_AT_name("zero_crossings")
+       .dwattr $C$DW$54, DW_AT_TI_symbol_name("zero_crossings")
+       .dwattr $C$DW$54, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$54, DW_AT_location[DW_OP_reg28]
+$C$DW$55       .dwtag  DW_TAG_variable, DW_AT_name("start")
+       .dwattr $C$DW$55, DW_AT_TI_symbol_name("start")
+       .dwattr $C$DW$55, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$55, DW_AT_location[DW_OP_breg8 13]
+;* r1_0  assigned to stop
+$C$DW$56       .dwtag  DW_TAG_variable, DW_AT_name("stop")
+       .dwattr $C$DW$56, DW_AT_TI_symbol_name("stop")
+       .dwattr $C$DW$56, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$56, DW_AT_location[DW_OP_reg4]
+;* r4_0  assigned to delay
+$C$DW$57       .dwtag  DW_TAG_variable, DW_AT_name("delay")
+       .dwattr $C$DW$57, DW_AT_TI_symbol_name("delay")
+       .dwattr $C$DW$57, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$57, DW_AT_location[DW_OP_reg16]
+;* r8_0  assigned to compensation
+$C$DW$58       .dwtag  DW_TAG_variable, DW_AT_name("compensation")
+       .dwattr $C$DW$58, DW_AT_TI_symbol_name("compensation")
+       .dwattr $C$DW$58, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$58, DW_AT_location[DW_OP_regx 0x20]
+;* r9_0  assigned to curr_addr
+$C$DW$59       .dwtag  DW_TAG_variable, DW_AT_name("curr_addr")
+       .dwattr $C$DW$59, DW_AT_TI_symbol_name("curr_addr")
+       .dwattr $C$DW$59, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$59, DW_AT_location[DW_OP_regx 0x24]
+$C$DW$60       .dwtag  DW_TAG_variable, DW_AT_name("curr_buff")
+       .dwattr $C$DW$60, DW_AT_TI_symbol_name("curr_buff")
+       .dwattr $C$DW$60, DW_AT_type(*$C$DW$T$112)
+       .dwattr $C$DW$60, DW_AT_location[DW_OP_breg8 0]
+;* r11_0 assigned to num_captured
+$C$DW$61       .dwtag  DW_TAG_variable, DW_AT_name("num_captured")
+       .dwattr $C$DW$61, DW_AT_TI_symbol_name("num_captured")
+       .dwattr $C$DW$61, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$61, DW_AT_location[DW_OP_regx 0x2c]
+;* r14_0 assigned to $O$U116
+;* r1_0  assigned to $O$U45
+;* r13_0 assigned to $O$U41
+;* r10_0 assigned to $O$K32
+       .dwcfi  cfa_offset, 0
+        SUB       r2, r2, 0x4b          ; [ALU_PRU] 
+       .dwcfi  cfa_offset, 75
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 289,column 2,is_stmt,isa 0
+        ZERO      &r28, 4               ; [ALU_PRU] |289| 
+        SBBO      &r3.b2, r2, 33, 42    ; [ALU_PRU] 
+       .dwcfi  save_reg_to_mem, 14, -42
+       .dwcfi  save_reg_to_mem, 15, -41
+       .dwcfi  save_reg_to_mem, 16, -40
+       .dwcfi  save_reg_to_mem, 17, -39
+       .dwcfi  save_reg_to_mem, 18, -38
+       .dwcfi  save_reg_to_mem, 19, -37
+       .dwcfi  save_reg_to_mem, 20, -36
+       .dwcfi  save_reg_to_mem, 21, -35
+       .dwcfi  save_reg_to_mem, 22, -34
+       .dwcfi  save_reg_to_mem, 23, -33
+       .dwcfi  save_reg_to_mem, 24, -32
+       .dwcfi  save_reg_to_mem, 25, -31
+       .dwcfi  save_reg_to_mem, 26, -30
+       .dwcfi  save_reg_to_mem, 27, -29
+       .dwcfi  save_reg_to_mem, 28, -28
+       .dwcfi  save_reg_to_mem, 29, -27
+       .dwcfi  save_reg_to_mem, 30, -26
+       .dwcfi  save_reg_to_mem, 31, -25
+       .dwcfi  save_reg_to_mem, 32, -24
+       .dwcfi  save_reg_to_mem, 33, -23
+       .dwcfi  save_reg_to_mem, 34, -22
+       .dwcfi  save_reg_to_mem, 35, -21
+       .dwcfi  save_reg_to_mem, 36, -20
+       .dwcfi  save_reg_to_mem, 37, -19
+       .dwcfi  save_reg_to_mem, 38, -18
+       .dwcfi  save_reg_to_mem, 39, -17
+       .dwcfi  save_reg_to_mem, 40, -16
+       .dwcfi  save_reg_to_mem, 41, -15
+       .dwcfi  save_reg_to_mem, 42, -14
+       .dwcfi  save_reg_to_mem, 43, -13
+       .dwcfi  save_reg_to_mem, 44, -12
+       .dwcfi  save_reg_to_mem, 45, -11
+       .dwcfi  save_reg_to_mem, 46, -10
+       .dwcfi  save_reg_to_mem, 47, -9
+       .dwcfi  save_reg_to_mem, 48, -8
+       .dwcfi  save_reg_to_mem, 49, -7
+       .dwcfi  save_reg_to_mem, 50, -6
+       .dwcfi  save_reg_to_mem, 51, -5
+       .dwcfi  save_reg_to_mem, 52, -4
+       .dwcfi  save_reg_to_mem, 53, -3
+       .dwcfi  save_reg_to_mem, 54, -2
+       .dwcfi  save_reg_to_mem, 55, -1
+        XOUT      0x0b, &r28.b0, 0x04   ; [ALU_PRU] |289| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 290,column 2,is_stmt,isa 0
+        ZERO      &r29, 4               ; [ALU_PRU] |290| 
+        XOUT      0x0b, &r29.b0, 0x04   ; [ALU_PRU] |290| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 293,column 2,is_stmt,isa 0
+        LBCO      &r0, __PRU_CREG_PRU_CFG, $CSBREL(||CT_CFG||+4), 4 ; [ALU_PRU] |293| CT_CFG
+        CLR       r0, r0, 0x00000004    ; [ALU_PRU] |293| 
+        SBCO      &r0, __PRU_CREG_PRU_CFG, $CSBREL(||CT_CFG||+4), 4 ; [ALU_PRU] |293| CT_CFG
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 296,column 2,is_stmt,isa 0
+$C$DW$62       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$62, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$62, DW_AT_name("adc_init")
+       .dwattr $C$DW$62, DW_AT_TI_call
+        JAL       r3.w2, ||adc_init||   ; [ALU_PRU] |296| adc_init
+        ZERO      &r10, 4               ; [ALU_PRU] $O$K32
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 272,column 22,is_stmt,isa 0
+        LDI       r6, 0x0001            ; [ALU_PRU] |272| oversample
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 274,column 26,is_stmt,isa 0
+        ZERO      &r7, 4                ; [ALU_PRU] |274| zero_crossings
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 279,column 24,is_stmt,isa 0
+        ZERO      &r11, 4               ; [ALU_PRU] |279| num_captured
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 281,column 2,is_stmt,isa 0
+        LDI       r4, 0x030d            ; [ALU_PRU] |281| delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 282,column 2,is_stmt,isa 0
+        LDI       r8, 0x0002            ; [ALU_PRU] |282| compensation
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 285,column 2,is_stmt,isa 0
+        LDI32     r9, 0x9ffc0008        ; [ALU_PRU] |285| curr_addr
+        LDI32     r0, 0x00022000        ; [ALU_PRU] $O$K73
+        SBBO      &r0, r2, 21, 4        ; [ALU_PRU] $C$SP6,$O$K73
+        LDI32     r0, 0x9ffc0000        ; [ALU_PRU] $O$Q1
+        SBBO      &r0, r2, 1, 4         ; [ALU_PRU] $C$SP1,$O$Q1
+        LDI32     r0, 0x9ffe0000        ; [ALU_PRU] $O$Q2
+        SBBO      &r0, r2, 5, 4         ; [ALU_PRU] $C$SP2,$O$Q2
+        LDI       r0, 0xffff            ; [ALU_PRU] $O$K108
+        SBBO      &r0, r2, 17, 4        ; [ALU_PRU] $C$SP5,$O$K108
+        LDI       r0, ||chan_data_temp|| ; [ALU_PRU] $O$K35,chan_data_temp
+        SBBO      &r0, r2, 29, 4        ; [ALU_PRU] $C$SP8,$O$K35
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 273,column 19,is_stmt,isa 0
+        LDI       r0, 0x0001            ; [ALU_PRU] |273| last_pol
+        SBBO      &r0, r2, 9, 4         ; [ALU_PRU] |273| $C$SP3,last_pol
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 286,column 2,is_stmt,isa 0
+        LDI       r0.b0, 0x00           ; [ALU_PRU] |286| curr_buff
+        SBBO      &r0.b0, r2, 0, 1      ; [ALU_PRU] |286| $C$SP0,curr_buff
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L11||
+;*
+;*   Loop source line                : 298
+;*   Loop closing brace source line  : 389
+;*   Known Minimum Trip Count        : 1
+;*   Known Maximum Trip Count        : 4294967295
+;*   Known Max Trip Count Factor     : 1
+;* --------------------------------------------------------------------------*
+||$C$L11||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 299,column 8,is_stmt,isa 0
+        ZERO      &r5, 4                ; [ALU_PRU] |299| i
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L12||
+;*
+;*   Loop source line                : 299
+;*   Loop closing brace source line  : 352
+;*   Known Minimum Trip Count        : 8
+;*   Known Maximum Trip Count        : 8
+;*   Known Max Trip Count Factor     : 8
+;* --------------------------------------------------------------------------*
+||$C$L12||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 301,column 4,is_stmt,isa 0
+        QBLT      ||$C$L13||, r8, r5    ; [ALU_PRU] |301| i,compensation
+;* --------------------------------------------------------------------------*
+        MOV       r14, r4               ; [ALU_PRU] delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 304,column 5,is_stmt,isa 0
+        JMP       ||$C$L14||            ; [ALU_PRU] |304| 
+;* --------------------------------------------------------------------------*
+||$C$L13||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 302,column 5,is_stmt,isa 0
+        ADD       r14, r4, 0x01         ; [ALU_PRU] |302| delay
+;* --------------------------------------------------------------------------*
+||$C$L14||:    
+$C$DW$63       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$63, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$63, DW_AT_name("send_delay")
+       .dwattr $C$DW$63, DW_AT_TI_call
+        JAL       r3.w2, ||send_delay|| ; [ALU_PRU] |302| send_delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 305,column 4,is_stmt,isa 0
+$C$DW$64       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$64, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$64, DW_AT_name("receive_data")
+       .dwattr $C$DW$64, DW_AT_TI_call
+        JAL       r3.w2, ||receive_data|| ; [ALU_PRU] |305| receive_data
+        LDI       r13, ||data_buf||     ; [ALU_PRU] $O$U41,data_buf
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 306,column 9,is_stmt,isa 0
+        ZERO      &r12, 4               ; [ALU_PRU] |306| j
+        SBBO      &r5, r2, 25, 4        ; [ALU_PRU] $C$SP7,$O$U28
+;* --------------------------------------------------------------------------*
+;*   BEGIN LOOP ||$C$L15||
+;*
+;*   Loop source line                : 306
+;*   Loop closing brace source line  : 351
+;*   Known Minimum Trip Count        : 6
+;*   Known Maximum Trip Count        : 6
+;*   Known Max Trip Count Factor     : 6
+;* --------------------------------------------------------------------------*
+||$C$L15||:    
+        LBBO      &r0, r2, 25, 4        ; [ALU_PRU] $O$U28,$C$SP7
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 310,column 5,is_stmt,isa 0
+        QBNE      ||$C$L16||, r6, 0x01  ; [ALU_PRU] |310| oversample
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 311,column 6,is_stmt,isa 0
+        LSL       r14, r0, 0x02         ; [ALU_PRU] |311| idx
+        LBBO      &r1, r2, 29, 4        ; [ALU_PRU] |311| $O$K35,$C$SP8
+        SBBO      &r10, r1, r14, 4      ; [ALU_PRU] |311| $O$K35,$O$K32
+;* --------------------------------------------------------------------------*
+||$C$L16||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 314,column 5,is_stmt,isa 0
+        LSL       r1, r0, 0x02          ; [ALU_PRU] |314| idx
+        LBBO      &r0, r2, 29, 4        ; [ALU_PRU] |314| $O$K35,$C$SP8
+        ADD       r1, r1, r0            ; [ALU_PRU] |314| $O$U45,$O$K35
+        LBBO      &r0.w0, r13, 0, 2     ; [ALU_PRU] |314| $O$U41
+        LBBO      &r14, r1, 0, 4        ; [ALU_PRU] |314| $O$U45
+        ADD       r0, r14, r0.w0        ; [ALU_PRU] |314| 
+        SBBO      &r0, r1, 0, 4         ; [ALU_PRU] |314| $O$U45
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 317,column 5,is_stmt,isa 0
+        QBNE      ||$C$L22||, r6, 0x01  ; [ALU_PRU] |317| oversample
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 318,column 6,is_stmt,isa 0
+        MOV       r15, r0.w0            ; [ALU_PRU] |318| $O$C1,$O$C2
+        SBBO      &r15, r1, 0, 4        ; [ALU_PRU] |318| $O$U45,$O$C1
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 320,column 6,is_stmt,isa 0
+        QBNE      ||$C$L22||, r12, 0x00 ; [ALU_PRU] |320| j
+;* --------------------------------------------------------------------------*
+        QBNE      ||$C$L22||, r5, 0x05  ; [ALU_PRU] |320| i
+;* --------------------------------------------------------------------------*
+        LBBO      &r0, r2, 9, 4         ; [ALU_PRU] last_pol,$C$SP3
+        LDI       r14, 0x0000           ; [ALU_PRU] |320| 
+        XOR       r0.b3, r0.b3, 0x80    ; [ALU_PRU] |320| 
+        XOR       r14.b3, r14.b3, 0x80  ; [ALU_PRU] |320| 
+        QBGE      ||$C$L17||, r0, r14   ; [ALU_PRU] |320| 
+;* --------------------------------------------------------------------------*
+        LDI       r0.w2, 0x00           ; [ALU_PRU] |320| 
+        LDI       r0.w0, 0x8000         ; [ALU_PRU] |320| 
+        XOR       r0.b3, r0.b3, 0x80    ; [ALU_PRU] |320| 
+        ADD       r0.w0, r15.w0, r0.w0  ; [ALU_PRU] |320| $O$C1
+        XOR       r0.b1, r0.b1, 0x80    ; [ALU_PRU] |320| 
+        QBLE      ||$C$L17||, r0.w0, r0.w2 ; [ALU_PRU] |320| 
+;* --------------------------------------------------------------------------*
+        JMP       ||$C$L18||            ; [ALU_PRU] |320| 
+;* --------------------------------------------------------------------------*
+||$C$L17||:    
+        LBBO      &r0, r2, 9, 4         ; [ALU_PRU] last_pol,$C$SP3
+        LDI       r14, 0x0000           ; [ALU_PRU] |320| 
+        XOR       r0.b3, r0.b3, 0x80    ; [ALU_PRU] |320| 
+        XOR       r14.b3, r14.b3, 0x80  ; [ALU_PRU] |320| 
+        QBLE      ||$C$L22||, r0, r14   ; [ALU_PRU] |320| 
+;* --------------------------------------------------------------------------*
+        LBBO      &r0.w2, r1, 0, 2      ; [ALU_PRU] |320| $O$U45
+        LDI       r0.w0, 0x8000         ; [ALU_PRU] |320| 
+        ADD       r0.w0, r0.w2, r0.w0   ; [ALU_PRU] |320| 
+        XOR       r0.b1, r0.b1, 0x80    ; [ALU_PRU] |320| 
+        LDI       r0.w2, 0x00           ; [ALU_PRU] |320| 
+        XOR       r0.b3, r0.b3, 0x80    ; [ALU_PRU] |320| 
+        QBGE      ||$C$L22||, r0.w0, r0.w2 ; [ALU_PRU] |320| 
+;* --------------------------------------------------------------------------*
+||$C$L18||:    
+        LBBO      &r0, r2, 9, 4         ; [ALU_PRU] last_pol,$C$SP3
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 327,column 8,is_stmt,isa 0
+        ADD       r7, r7, 0x01          ; [ALU_PRU] |327| zero_crossings,zero_crossings
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 324,column 8,is_stmt,isa 0
+        NOT       r0, r0                ; [ALU_PRU] |324| last_pol,last_pol
+        SBBO      &r0, r2, 9, 4         ; [ALU_PRU] |324| $C$SP3,last_pol
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 327,column 8,is_stmt,isa 0
+        QBEQ      ||$C$L21||, r7, 0x01  ; [ALU_PRU] |327| zero_crossings
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 331,column 13,is_stmt,isa 0
+        QBNE      ||$C$L22||, r7, 0x0b  ; [ALU_PRU] |331| zero_crossings
+;* --------------------------------------------------------------------------*
+        LBBO      &r0, r2, 21, 4        ; [ALU_PRU] $O$K73,$C$SP6
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 334,column 9,is_stmt,isa 0
+        LDI       r15, 0x0c80           ; [ALU_PRU] |334| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 332,column 9,is_stmt,isa 0
+        LBBO      &r1, r0, 12, 4        ; [ALU_PRU] |332| stop,$O$K73
+        LBBO      &r0, r2, 13, 4        ; [ALU_PRU] |332| start,$C$SP4
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 334,column 9,is_stmt,isa 0
+        RSB       r14, r0, r1           ; [ALU_PRU] |334| start,stop
+$C$DW$65       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$65, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$65, DW_AT_name("__pruabi_divu")
+       .dwattr $C$DW$65, DW_AT_TI_call
+        JAL       r3.w2, ||__pruabi_divu|| ; [ALU_PRU] |334| __pruabi_divu
+        MOV       r4, r14               ; [ALU_PRU] |334| delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 337,column 9,is_stmt,isa 0
+        LDI       r0, 0x02c6            ; [ALU_PRU] |337| 
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 335,column 9,is_stmt,isa 0
+        AND       r8, r4, 0x07          ; [ALU_PRU] |335| compensation,delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 337,column 9,is_stmt,isa 0
+        LSR       r4, r4, 0x03          ; [ALU_PRU] |337| delay,delay
+        QBLT      ||$C$L19||, r0, r4    ; [ALU_PRU] |337| delay
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 341,column 14,is_stmt,isa 0
+        LDI       r0, 0x0364            ; [ALU_PRU] |341| 
+        QBLE      ||$C$L20||, r0, r4    ; [ALU_PRU] |341| delay
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 342,column 10,is_stmt,isa 0
+        LDI       r4, 0x0364            ; [ALU_PRU] |342| delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 343,column 10,is_stmt,isa 0
+        LDI       r8, 0x0007            ; [ALU_PRU] |343| compensation
+        JMP       ||$C$L20||            ; [ALU_PRU] |343| 
+;* --------------------------------------------------------------------------*
+||$C$L19||:    
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 338,column 10,is_stmt,isa 0
+        LDI       r4, 0x02c6            ; [ALU_PRU] |338| delay
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 339,column 10,is_stmt,isa 0
+        ZERO      &r8, 4                ; [ALU_PRU] |339| compensation
+;* --------------------------------------------------------------------------*
+||$C$L20||:    
+        LBBO      &r0, r2, 21, 4        ; [ALU_PRU] $O$K73,$C$SP6
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 346,column 9,is_stmt,isa 0
+        ZERO      &r7, 4                ; [ALU_PRU] |346| zero_crossings
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 345,column 9,is_stmt,isa 0
+        SBBO      &r10, r0, 12, 4       ; [ALU_PRU] |345| $O$K73,$O$K32
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 346,column 9,is_stmt,isa 0
+        JMP       ||$C$L22||            ; [ALU_PRU] |346| 
+;* --------------------------------------------------------------------------*
+||$C$L21||:    
+        LBBO      &r0, r2, 21, 4        ; [ALU_PRU] $O$K73,$C$SP6
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 328,column 9,is_stmt,isa 0
+        LBBO      &r0, r0, 12, 4        ; [ALU_PRU] |328| start,$O$K73
+        SBBO      &r0, r2, 13, 4        ; [ALU_PRU] |328| $C$SP4,start
+;* --------------------------------------------------------------------------*
+||$C$L22||:    
+        LBBO      &r0, r2, 25, 4        ; [ALU_PRU] $O$U28,$C$SP7
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 306,column 16,is_stmt,isa 0
+        ADD       r0, r0, 0x08          ; [ALU_PRU] |306| $O$U28,$O$U28
+        ADD       r13, r13, 0x04        ; [ALU_PRU] |306| $O$U41,$O$U41
+        ADD       r12, r12, 0x01        ; [ALU_PRU] |306| j,j
+        SBBO      &r0, r2, 25, 4        ; [ALU_PRU] |306| $C$SP7,$O$U28
+        QBGT      ||$C$L15||, r12, 0x06 ; [ALU_PRU] |306| j
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 299,column 15,is_stmt,isa 0
+        ADD       r5, r5, 0x01          ; [ALU_PRU] |299| i,i
+        QBGT      ||$C$L12||, r5, 0x08  ; [ALU_PRU] |299| i
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 353,column 3,is_stmt,isa 0
+        ADD       r6, r6, 0x01          ; [ALU_PRU] |353| oversample,oversample
+        QBNE      ||$C$L11||, r6, 0x02  ; [ALU_PRU] |353| oversample
+;* --------------------------------------------------------------------------*
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 356,column 4,is_stmt,isa 0
+        MOV       r14, r9               ; [ALU_PRU] |356| curr_addr
+        LBBO      &r15, r2, 29, 4       ; [ALU_PRU] |356| $O$K35,$C$SP8
+        LDI       r16, 0x00c0           ; [ALU_PRU] |356| 
+$C$DW$66       .dwtag  DW_TAG_TI_branch
+       .dwattr $C$DW$66, DW_AT_low_pc(0x00)
+       .dwattr $C$DW$66, DW_AT_name("memcpy")
+       .dwattr $C$DW$66, DW_AT_TI_call
+        JAL       r3.w2, ||memcpy||     ; [ALU_PRU] |356| memcpy
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 354,column 4,is_stmt,isa 0
+        LDI       r6, 0x0001            ; [ALU_PRU] |354| oversample
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 358,column 4,is_stmt,isa 0
+        ADD       r9, r9, 0xc0          ; [ALU_PRU] |358| curr_addr,curr_addr
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 361,column 4,is_stmt,isa 0
+        ADD       r11, r11, 0x01        ; [ALU_PRU] |361| num_captured,num_captured
+        LDI       r0, 0x0280            ; [ALU_PRU] |361| 
+        QBNE      ||$C$L11||, r0, r11   ; [ALU_PRU] |361| num_captured
+;* --------------------------------------------------------------------------*
+        LSL       r0, r8.w0, 0x10       ; [ALU_PRU] compensation
+        OR        r14, r0, r4.w0        ; [ALU_PRU] $O$U116,delay
+        LBBO      &r0.b0, r2, 0, 1      ; [ALU_PRU] curr_buff,$C$SP0
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 362,column 5,is_stmt,isa 0
+        QBNE      ||$C$L23||, r0.b0, 0x00 ; [ALU_PRU] |362| curr_buff
+;* --------------------------------------------------------------------------*
+        LBBO      &r0, r2, 1, 4         ; [ALU_PRU] $O$Q1,$C$SP1
+        LBBO      &r1, r2, 17, 4        ; [ALU_PRU] $O$K108,$C$SP5
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 370,column 6,is_stmt,isa 0
+        LDI32     r9, 0x9ffe0008        ; [ALU_PRU] |370| curr_addr
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 364,column 6,is_stmt,isa 0
+        SBBO      &r1, r0, 0, 4         ; [ALU_PRU] |364| $O$Q1,$O$K108
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 366,column 6,is_stmt,isa 0
+        SBBO      &r14, r0, 4, 4        ; [ALU_PRU] |366| $O$Q1,$O$U116
+        LBBO      &r0, r2, 5, 4         ; [ALU_PRU] |366| $O$Q2,$C$SP2
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 368,column 6,is_stmt,isa 0
+        SBBO      &r10, r0, 0, 4        ; [ALU_PRU] |368| $O$Q2,$O$K32
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 372,column 6,is_stmt,isa 0
+        LDI       r0.b0, 0x01           ; [ALU_PRU] |372| curr_buff
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 373,column 5,is_stmt,isa 0
+        JMP       ||$C$L24||            ; [ALU_PRU] |373| 
+;* --------------------------------------------------------------------------*
+||$C$L23||:    
+        LBBO      &r0, r2, 5, 4         ; [ALU_PRU] $O$Q2,$C$SP2
+        LBBO      &r1, r2, 17, 4        ; [ALU_PRU] $O$K108,$C$SP5
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 382,column 6,is_stmt,isa 0
+        LDI32     r9, 0x9ffc0008        ; [ALU_PRU] |382| curr_addr
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 376,column 6,is_stmt,isa 0
+        SBBO      &r1, r0, 0, 4         ; [ALU_PRU] |376| $O$Q2,$O$K108
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 378,column 6,is_stmt,isa 0
+        SBBO      &r14, r0, 4, 4        ; [ALU_PRU] |378| $O$Q2,$O$U116
+        LBBO      &r0, r2, 1, 4         ; [ALU_PRU] |378| $O$Q1,$C$SP1
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 380,column 6,is_stmt,isa 0
+        SBBO      &r10, r0, 0, 4        ; [ALU_PRU] |380| $O$Q1,$O$K32
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 384,column 6,is_stmt,isa 0
+        LDI       r0.b0, 0x00           ; [ALU_PRU] |384| curr_buff
+;* --------------------------------------------------------------------------*
+||$C$L24||:    
+        SBBO      &r0.b0, r2, 0, 1      ; [ALU_PRU] |384| $C$SP0,curr_buff
+       .dwpsn  file "PRU_ADS8688_Controller.c",line 386,column 5,is_stmt,isa 0
+        ZERO      &r11, 4               ; [ALU_PRU] |386| num_captured
+        JMP       ||$C$L11||            ; [ALU_PRU] |386| 
+       .dwattr $C$DW$48, DW_AT_TI_end_file("PRU_ADS8688_Controller.c")
+       .dwattr $C$DW$48, DW_AT_TI_end_line(0x186)
+       .dwattr $C$DW$48, DW_AT_TI_end_column(0x01)
+       .dwendentry
+       .dwendtag $C$DW$48
+
+;*****************************************************************************
+;* UNDEFINED EXTERNAL REFERENCES                                             *
+;*****************************************************************************
+       .global ||__pruabi_divu||
+       .global ||memcpy||
+
+;******************************************************************************
+;* TYPE INFORMATION                                                           *
+;******************************************************************************
+
+$C$DW$T$20     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$20, DW_AT_byte_size(0x04)
+$C$DW$67       .dwtag  DW_TAG_member
+       .dwattr $C$DW$67, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$67, DW_AT_name("REVID")
+       .dwattr $C$DW$67, DW_AT_TI_symbol_name("REVID")
+       .dwattr $C$DW$67, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
+       .dwattr $C$DW$67, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$67, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$67, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$67, DW_AT_decl_line(0x2d)
+       .dwattr $C$DW$67, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$20
+
+       .dwattr $C$DW$T$20, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$20, DW_AT_decl_line(0x2c)
+       .dwattr $C$DW$T$20, DW_AT_decl_column(0x13)
+$C$DW$T$49     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$49, DW_AT_type(*$C$DW$T$20)
+
+$C$DW$T$21     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$21, DW_AT_byte_size(0x04)
+$C$DW$68       .dwtag  DW_TAG_member
+       .dwattr $C$DW$68, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$68, DW_AT_name("IDLE_MODE")
+       .dwattr $C$DW$68, DW_AT_TI_symbol_name("IDLE_MODE")
+       .dwattr $C$DW$68, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
+       .dwattr $C$DW$68, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$68, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$68, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$68, DW_AT_decl_line(0x37)
+       .dwattr $C$DW$68, DW_AT_decl_column(0x0d)
+$C$DW$69       .dwtag  DW_TAG_member
+       .dwattr $C$DW$69, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$69, DW_AT_name("STANDBY_MODE")
+       .dwattr $C$DW$69, DW_AT_TI_symbol_name("STANDBY_MODE")
+       .dwattr $C$DW$69, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x02)
+       .dwattr $C$DW$69, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$69, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$69, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$69, DW_AT_decl_line(0x38)
+       .dwattr $C$DW$69, DW_AT_decl_column(0x0d)
+$C$DW$70       .dwtag  DW_TAG_member
+       .dwattr $C$DW$70, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$70, DW_AT_name("STANDBY_INIT")
+       .dwattr $C$DW$70, DW_AT_TI_symbol_name("STANDBY_INIT")
+       .dwattr $C$DW$70, DW_AT_bit_offset(0x1b), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$70, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$70, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$70, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$70, DW_AT_decl_line(0x39)
+       .dwattr $C$DW$70, DW_AT_decl_column(0x0d)
+$C$DW$71       .dwtag  DW_TAG_member
+       .dwattr $C$DW$71, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$71, DW_AT_name("SUB_MWAIT")
+       .dwattr $C$DW$71, DW_AT_TI_symbol_name("SUB_MWAIT")
+       .dwattr $C$DW$71, DW_AT_bit_offset(0x1a), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$71, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$71, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$71, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$71, DW_AT_decl_line(0x3a)
+       .dwattr $C$DW$71, DW_AT_decl_column(0x0d)
+$C$DW$72       .dwtag  DW_TAG_member
+       .dwattr $C$DW$72, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$72, DW_AT_name("rsvd6")
+       .dwattr $C$DW$72, DW_AT_TI_symbol_name("rsvd6")
+       .dwattr $C$DW$72, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1a)
+       .dwattr $C$DW$72, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$72, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$72, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$72, DW_AT_decl_line(0x3b)
+       .dwattr $C$DW$72, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$21
+
+       .dwattr $C$DW$T$21, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$21, DW_AT_decl_line(0x36)
+       .dwattr $C$DW$T$21, DW_AT_decl_column(0x13)
+$C$DW$T$51     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$51, DW_AT_type(*$C$DW$T$21)
+
+$C$DW$T$22     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$22, DW_AT_byte_size(0x04)
+$C$DW$73       .dwtag  DW_TAG_member
+       .dwattr $C$DW$73, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$73, DW_AT_name("PRU0_GPI_MODE")
+       .dwattr $C$DW$73, DW_AT_TI_symbol_name("PRU0_GPI_MODE")
+       .dwattr $C$DW$73, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
+       .dwattr $C$DW$73, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$73, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$73, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$73, DW_AT_decl_line(0x45)
+       .dwattr $C$DW$73, DW_AT_decl_column(0x0d)
+$C$DW$74       .dwtag  DW_TAG_member
+       .dwattr $C$DW$74, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$74, DW_AT_name("PRU0_GPI_CLK_MODE")
+       .dwattr $C$DW$74, DW_AT_TI_symbol_name("PRU0_GPI_CLK_MODE")
+       .dwattr $C$DW$74, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$74, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$74, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$74, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$74, DW_AT_decl_line(0x46)
+       .dwattr $C$DW$74, DW_AT_decl_column(0x0d)
+$C$DW$75       .dwtag  DW_TAG_member
+       .dwattr $C$DW$75, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$75, DW_AT_name("PRU0_GPI_DIV0")
+       .dwattr $C$DW$75, DW_AT_TI_symbol_name("PRU0_GPI_DIV0")
+       .dwattr $C$DW$75, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$75, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$75, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$75, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$75, DW_AT_decl_line(0x47)
+       .dwattr $C$DW$75, DW_AT_decl_column(0x0d)
+$C$DW$76       .dwtag  DW_TAG_member
+       .dwattr $C$DW$76, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$76, DW_AT_name("PRU0_GPI_DIV1")
+       .dwattr $C$DW$76, DW_AT_TI_symbol_name("PRU0_GPI_DIV1")
+       .dwattr $C$DW$76, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$76, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$76, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$76, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$76, DW_AT_decl_line(0x48)
+       .dwattr $C$DW$76, DW_AT_decl_column(0x0d)
+$C$DW$77       .dwtag  DW_TAG_member
+       .dwattr $C$DW$77, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$77, DW_AT_name("PRU0_GPI_SB")
+       .dwattr $C$DW$77, DW_AT_TI_symbol_name("PRU0_GPI_SB")
+       .dwattr $C$DW$77, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$77, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$77, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$77, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$77, DW_AT_decl_line(0x49)
+       .dwattr $C$DW$77, DW_AT_decl_column(0x0d)
+$C$DW$78       .dwtag  DW_TAG_member
+       .dwattr $C$DW$78, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$78, DW_AT_name("PRU0_GPO_MODE")
+       .dwattr $C$DW$78, DW_AT_TI_symbol_name("PRU0_GPO_MODE")
+       .dwattr $C$DW$78, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$78, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$78, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$78, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$78, DW_AT_decl_line(0x4a)
+       .dwattr $C$DW$78, DW_AT_decl_column(0x0d)
+$C$DW$79       .dwtag  DW_TAG_member
+       .dwattr $C$DW$79, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$79, DW_AT_name("PRU0_GPO_DIV0")
+       .dwattr $C$DW$79, DW_AT_TI_symbol_name("PRU0_GPO_DIV0")
+       .dwattr $C$DW$79, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$79, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$79, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$79, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$79, DW_AT_decl_line(0x4b)
+       .dwattr $C$DW$79, DW_AT_decl_column(0x0d)
+$C$DW$80       .dwtag  DW_TAG_member
+       .dwattr $C$DW$80, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$80, DW_AT_name("PRU0_GPO_DIV1")
+       .dwattr $C$DW$80, DW_AT_TI_symbol_name("PRU0_GPO_DIV1")
+       .dwattr $C$DW$80, DW_AT_bit_offset(0x07), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$80, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$80, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$80, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$80, DW_AT_decl_line(0x4c)
+       .dwattr $C$DW$80, DW_AT_decl_column(0x0d)
+$C$DW$81       .dwtag  DW_TAG_member
+       .dwattr $C$DW$81, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$81, DW_AT_name("PRU0_GPO_SH_SEL")
+       .dwattr $C$DW$81, DW_AT_TI_symbol_name("PRU0_GPO_SH_SEL")
+       .dwattr $C$DW$81, DW_AT_bit_offset(0x06), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$81, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$81, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$81, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$81, DW_AT_decl_line(0x4d)
+       .dwattr $C$DW$81, DW_AT_decl_column(0x0d)
+$C$DW$82       .dwtag  DW_TAG_member
+       .dwattr $C$DW$82, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$82, DW_AT_name("rsvd26")
+       .dwattr $C$DW$82, DW_AT_TI_symbol_name("rsvd26")
+       .dwattr $C$DW$82, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x06)
+       .dwattr $C$DW$82, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$82, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$82, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$82, DW_AT_decl_line(0x4e)
+       .dwattr $C$DW$82, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$22
+
+       .dwattr $C$DW$T$22, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$22, DW_AT_decl_line(0x44)
+       .dwattr $C$DW$T$22, DW_AT_decl_column(0x13)
+$C$DW$T$53     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$53, DW_AT_type(*$C$DW$T$22)
+
+$C$DW$T$23     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$23, DW_AT_byte_size(0x04)
+$C$DW$83       .dwtag  DW_TAG_member
+       .dwattr $C$DW$83, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$83, DW_AT_name("PRU1_GPI_MODE")
+       .dwattr $C$DW$83, DW_AT_TI_symbol_name("PRU1_GPI_MODE")
+       .dwattr $C$DW$83, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x02)
+       .dwattr $C$DW$83, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$83, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$83, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$83, DW_AT_decl_line(0x58)
+       .dwattr $C$DW$83, DW_AT_decl_column(0x0d)
+$C$DW$84       .dwtag  DW_TAG_member
+       .dwattr $C$DW$84, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$84, DW_AT_name("PRU1_GPI_CLK_MODE")
+       .dwattr $C$DW$84, DW_AT_TI_symbol_name("PRU1_GPI_CLK_MODE")
+       .dwattr $C$DW$84, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$84, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$84, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$84, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$84, DW_AT_decl_line(0x59)
+       .dwattr $C$DW$84, DW_AT_decl_column(0x0d)
+$C$DW$85       .dwtag  DW_TAG_member
+       .dwattr $C$DW$85, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$85, DW_AT_name("PRU1_GPI_DIV0")
+       .dwattr $C$DW$85, DW_AT_TI_symbol_name("PRU1_GPI_DIV0")
+       .dwattr $C$DW$85, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$85, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$85, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$85, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$85, DW_AT_decl_line(0x5a)
+       .dwattr $C$DW$85, DW_AT_decl_column(0x0d)
+$C$DW$86       .dwtag  DW_TAG_member
+       .dwattr $C$DW$86, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$86, DW_AT_name("PRU1_GPI_DIV1")
+       .dwattr $C$DW$86, DW_AT_TI_symbol_name("PRU1_GPI_DIV1")
+       .dwattr $C$DW$86, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$86, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$86, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$86, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$86, DW_AT_decl_line(0x5b)
+       .dwattr $C$DW$86, DW_AT_decl_column(0x0d)
+$C$DW$87       .dwtag  DW_TAG_member
+       .dwattr $C$DW$87, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$87, DW_AT_name("PRU1_GPI_SB")
+       .dwattr $C$DW$87, DW_AT_TI_symbol_name("PRU1_GPI_SB")
+       .dwattr $C$DW$87, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$87, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$87, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$87, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$87, DW_AT_decl_line(0x5c)
+       .dwattr $C$DW$87, DW_AT_decl_column(0x0d)
+$C$DW$88       .dwtag  DW_TAG_member
+       .dwattr $C$DW$88, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$88, DW_AT_name("PRU1_GPO_MODE")
+       .dwattr $C$DW$88, DW_AT_TI_symbol_name("PRU1_GPO_MODE")
+       .dwattr $C$DW$88, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$88, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$88, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$88, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$88, DW_AT_decl_line(0x5d)
+       .dwattr $C$DW$88, DW_AT_decl_column(0x0d)
+$C$DW$89       .dwtag  DW_TAG_member
+       .dwattr $C$DW$89, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$89, DW_AT_name("PRU1_GPO_DIV0")
+       .dwattr $C$DW$89, DW_AT_TI_symbol_name("PRU1_GPO_DIV0")
+       .dwattr $C$DW$89, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$89, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$89, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$89, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$89, DW_AT_decl_line(0x5e)
+       .dwattr $C$DW$89, DW_AT_decl_column(0x0d)
+$C$DW$90       .dwtag  DW_TAG_member
+       .dwattr $C$DW$90, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$90, DW_AT_name("PRU1_GPO_DIV1")
+       .dwattr $C$DW$90, DW_AT_TI_symbol_name("PRU1_GPO_DIV1")
+       .dwattr $C$DW$90, DW_AT_bit_offset(0x07), DW_AT_bit_size(0x05)
+       .dwattr $C$DW$90, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$90, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$90, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$90, DW_AT_decl_line(0x5f)
+       .dwattr $C$DW$90, DW_AT_decl_column(0x0d)
+$C$DW$91       .dwtag  DW_TAG_member
+       .dwattr $C$DW$91, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$91, DW_AT_name("PRU1_GPO_SH_SEL")
+       .dwattr $C$DW$91, DW_AT_TI_symbol_name("PRU1_GPO_SH_SEL")
+       .dwattr $C$DW$91, DW_AT_bit_offset(0x06), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$91, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$91, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$91, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$91, DW_AT_decl_line(0x60)
+       .dwattr $C$DW$91, DW_AT_decl_column(0x0d)
+$C$DW$92       .dwtag  DW_TAG_member
+       .dwattr $C$DW$92, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$92, DW_AT_name("rsvd26")
+       .dwattr $C$DW$92, DW_AT_TI_symbol_name("rsvd26")
+       .dwattr $C$DW$92, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x06)
+       .dwattr $C$DW$92, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$92, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$92, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$92, DW_AT_decl_line(0x61)
+       .dwattr $C$DW$92, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$23
+
+       .dwattr $C$DW$T$23, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$23, DW_AT_decl_line(0x57)
+       .dwattr $C$DW$T$23, DW_AT_decl_column(0x13)
+$C$DW$T$55     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$55, DW_AT_type(*$C$DW$T$23)
+
+$C$DW$T$24     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$24, DW_AT_byte_size(0x04)
+$C$DW$93       .dwtag  DW_TAG_member
+       .dwattr $C$DW$93, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$93, DW_AT_name("PRU0_CLK_STOP_REQ")
+       .dwattr $C$DW$93, DW_AT_TI_symbol_name("PRU0_CLK_STOP_REQ")
+       .dwattr $C$DW$93, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$93, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$93, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$93, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$93, DW_AT_decl_line(0x6b)
+       .dwattr $C$DW$93, DW_AT_decl_column(0x0d)
+$C$DW$94       .dwtag  DW_TAG_member
+       .dwattr $C$DW$94, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$94, DW_AT_name("PRU0_CLK_STOP_ACK")
+       .dwattr $C$DW$94, DW_AT_TI_symbol_name("PRU0_CLK_STOP_ACK")
+       .dwattr $C$DW$94, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$94, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$94, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$94, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$94, DW_AT_decl_line(0x6c)
+       .dwattr $C$DW$94, DW_AT_decl_column(0x0d)
+$C$DW$95       .dwtag  DW_TAG_member
+       .dwattr $C$DW$95, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$95, DW_AT_name("PRU0_CLK_EN")
+       .dwattr $C$DW$95, DW_AT_TI_symbol_name("PRU0_CLK_EN")
+       .dwattr $C$DW$95, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$95, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$95, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$95, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$95, DW_AT_decl_line(0x6d)
+       .dwattr $C$DW$95, DW_AT_decl_column(0x0d)
+$C$DW$96       .dwtag  DW_TAG_member
+       .dwattr $C$DW$96, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$96, DW_AT_name("PRU1_CLK_STOP_REQ")
+       .dwattr $C$DW$96, DW_AT_TI_symbol_name("PRU1_CLK_STOP_REQ")
+       .dwattr $C$DW$96, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$96, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$96, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$96, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$96, DW_AT_decl_line(0x6e)
+       .dwattr $C$DW$96, DW_AT_decl_column(0x0d)
+$C$DW$97       .dwtag  DW_TAG_member
+       .dwattr $C$DW$97, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$97, DW_AT_name("PRU1_CLK_STOP_ACK")
+       .dwattr $C$DW$97, DW_AT_TI_symbol_name("PRU1_CLK_STOP_ACK")
+       .dwattr $C$DW$97, DW_AT_bit_offset(0x1b), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$97, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$97, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$97, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$97, DW_AT_decl_line(0x6f)
+       .dwattr $C$DW$97, DW_AT_decl_column(0x0d)
+$C$DW$98       .dwtag  DW_TAG_member
+       .dwattr $C$DW$98, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$98, DW_AT_name("PRU1_CLK_EN")
+       .dwattr $C$DW$98, DW_AT_TI_symbol_name("PRU1_CLK_EN")
+       .dwattr $C$DW$98, DW_AT_bit_offset(0x1a), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$98, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$98, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$98, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$98, DW_AT_decl_line(0x70)
+       .dwattr $C$DW$98, DW_AT_decl_column(0x0d)
+$C$DW$99       .dwtag  DW_TAG_member
+       .dwattr $C$DW$99, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$99, DW_AT_name("INTC_CLK_STOP_REQ")
+       .dwattr $C$DW$99, DW_AT_TI_symbol_name("INTC_CLK_STOP_REQ")
+       .dwattr $C$DW$99, DW_AT_bit_offset(0x19), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$99, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$99, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$99, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$99, DW_AT_decl_line(0x71)
+       .dwattr $C$DW$99, DW_AT_decl_column(0x0d)
+$C$DW$100      .dwtag  DW_TAG_member
+       .dwattr $C$DW$100, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$100, DW_AT_name("INTC_CLK_STOP_ACK")
+       .dwattr $C$DW$100, DW_AT_TI_symbol_name("INTC_CLK_STOP_ACK")
+       .dwattr $C$DW$100, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$100, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$100, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$100, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$100, DW_AT_decl_line(0x72)
+       .dwattr $C$DW$100, DW_AT_decl_column(0x0d)
+$C$DW$101      .dwtag  DW_TAG_member
+       .dwattr $C$DW$101, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$101, DW_AT_name("INTC_CLK_EN")
+       .dwattr $C$DW$101, DW_AT_TI_symbol_name("INTC_CLK_EN")
+       .dwattr $C$DW$101, DW_AT_bit_offset(0x17), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$101, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$101, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$101, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$101, DW_AT_decl_line(0x73)
+       .dwattr $C$DW$101, DW_AT_decl_column(0x0d)
+$C$DW$102      .dwtag  DW_TAG_member
+       .dwattr $C$DW$102, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$102, DW_AT_name("UART_CLK_STOP_REQ")
+       .dwattr $C$DW$102, DW_AT_TI_symbol_name("UART_CLK_STOP_REQ")
+       .dwattr $C$DW$102, DW_AT_bit_offset(0x16), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$102, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$102, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$102, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$102, DW_AT_decl_line(0x74)
+       .dwattr $C$DW$102, DW_AT_decl_column(0x0d)
+$C$DW$103      .dwtag  DW_TAG_member
+       .dwattr $C$DW$103, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$103, DW_AT_name("UART_CLK_STOP_ACK")
+       .dwattr $C$DW$103, DW_AT_TI_symbol_name("UART_CLK_STOP_ACK")
+       .dwattr $C$DW$103, DW_AT_bit_offset(0x15), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$103, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$103, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$103, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$103, DW_AT_decl_line(0x75)
+       .dwattr $C$DW$103, DW_AT_decl_column(0x0d)
+$C$DW$104      .dwtag  DW_TAG_member
+       .dwattr $C$DW$104, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$104, DW_AT_name("UART_CLK_EN")
+       .dwattr $C$DW$104, DW_AT_TI_symbol_name("UART_CLK_EN")
+       .dwattr $C$DW$104, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$104, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$104, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$104, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$104, DW_AT_decl_line(0x76)
+       .dwattr $C$DW$104, DW_AT_decl_column(0x0d)
+$C$DW$105      .dwtag  DW_TAG_member
+       .dwattr $C$DW$105, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$105, DW_AT_name("ECAP_CLK_STOP_REQ")
+       .dwattr $C$DW$105, DW_AT_TI_symbol_name("ECAP_CLK_STOP_REQ")
+       .dwattr $C$DW$105, DW_AT_bit_offset(0x13), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$105, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$105, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$105, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$105, DW_AT_decl_line(0x77)
+       .dwattr $C$DW$105, DW_AT_decl_column(0x0d)
+$C$DW$106      .dwtag  DW_TAG_member
+       .dwattr $C$DW$106, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$106, DW_AT_name("ECAP_CLK_STOP_ACK")
+       .dwattr $C$DW$106, DW_AT_TI_symbol_name("ECAP_CLK_STOP_ACK")
+       .dwattr $C$DW$106, DW_AT_bit_offset(0x12), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$106, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$106, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$106, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$106, DW_AT_decl_line(0x78)
+       .dwattr $C$DW$106, DW_AT_decl_column(0x0d)
+$C$DW$107      .dwtag  DW_TAG_member
+       .dwattr $C$DW$107, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$107, DW_AT_name("ECAP_CLK_EN")
+       .dwattr $C$DW$107, DW_AT_TI_symbol_name("ECAP_CLK_EN")
+       .dwattr $C$DW$107, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$107, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$107, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$107, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$107, DW_AT_decl_line(0x79)
+       .dwattr $C$DW$107, DW_AT_decl_column(0x0d)
+$C$DW$108      .dwtag  DW_TAG_member
+       .dwattr $C$DW$108, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$108, DW_AT_name("IEP_CLK_STOP_REQ")
+       .dwattr $C$DW$108, DW_AT_TI_symbol_name("IEP_CLK_STOP_REQ")
+       .dwattr $C$DW$108, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$108, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$108, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$108, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$108, DW_AT_decl_line(0x7a)
+       .dwattr $C$DW$108, DW_AT_decl_column(0x0d)
+$C$DW$109      .dwtag  DW_TAG_member
+       .dwattr $C$DW$109, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$109, DW_AT_name("IEP_CLK_STOP_ACK")
+       .dwattr $C$DW$109, DW_AT_TI_symbol_name("IEP_CLK_STOP_ACK")
+       .dwattr $C$DW$109, DW_AT_bit_offset(0x0f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$109, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$109, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$109, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$109, DW_AT_decl_line(0x7b)
+       .dwattr $C$DW$109, DW_AT_decl_column(0x0d)
+$C$DW$110      .dwtag  DW_TAG_member
+       .dwattr $C$DW$110, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$110, DW_AT_name("IEP_CLK_EN")
+       .dwattr $C$DW$110, DW_AT_TI_symbol_name("IEP_CLK_EN")
+       .dwattr $C$DW$110, DW_AT_bit_offset(0x0e), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$110, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$110, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$110, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$110, DW_AT_decl_line(0x7c)
+       .dwattr $C$DW$110, DW_AT_decl_column(0x0d)
+$C$DW$111      .dwtag  DW_TAG_member
+       .dwattr $C$DW$111, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$111, DW_AT_name("rsvd18")
+       .dwattr $C$DW$111, DW_AT_TI_symbol_name("rsvd18")
+       .dwattr $C$DW$111, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0e)
+       .dwattr $C$DW$111, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$111, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$111, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$111, DW_AT_decl_line(0x7d)
+       .dwattr $C$DW$111, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$24
+
+       .dwattr $C$DW$T$24, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$24, DW_AT_decl_line(0x6a)
+       .dwattr $C$DW$T$24, DW_AT_decl_column(0x13)
+$C$DW$T$57     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$57, DW_AT_type(*$C$DW$T$24)
+
+$C$DW$T$25     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$25, DW_AT_byte_size(0x04)
+$C$DW$112      .dwtag  DW_TAG_member
+       .dwattr $C$DW$112, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$112, DW_AT_name("PRU0_IMEM_PE_RAW")
+       .dwattr $C$DW$112, DW_AT_TI_symbol_name("PRU0_IMEM_PE_RAW")
+       .dwattr $C$DW$112, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$112, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$112, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$112, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$112, DW_AT_decl_line(0x87)
+       .dwattr $C$DW$112, DW_AT_decl_column(0x0d)
+$C$DW$113      .dwtag  DW_TAG_member
+       .dwattr $C$DW$113, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$113, DW_AT_name("PRU0_DMEM_PE_RAW")
+       .dwattr $C$DW$113, DW_AT_TI_symbol_name("PRU0_DMEM_PE_RAW")
+       .dwattr $C$DW$113, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$113, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$113, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$113, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$113, DW_AT_decl_line(0x88)
+       .dwattr $C$DW$113, DW_AT_decl_column(0x0d)
+$C$DW$114      .dwtag  DW_TAG_member
+       .dwattr $C$DW$114, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$114, DW_AT_name("PRU1_IMEM_PE_RAW")
+       .dwattr $C$DW$114, DW_AT_TI_symbol_name("PRU1_IMEM_PE_RAW")
+       .dwattr $C$DW$114, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$114, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$114, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$114, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$114, DW_AT_decl_line(0x89)
+       .dwattr $C$DW$114, DW_AT_decl_column(0x0d)
+$C$DW$115      .dwtag  DW_TAG_member
+       .dwattr $C$DW$115, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$115, DW_AT_name("PRU1_DMEM_PE_RAW")
+       .dwattr $C$DW$115, DW_AT_TI_symbol_name("PRU1_DMEM_PE_RAW")
+       .dwattr $C$DW$115, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$115, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$115, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$115, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$115, DW_AT_decl_line(0x8a)
+       .dwattr $C$DW$115, DW_AT_decl_column(0x0d)
+$C$DW$116      .dwtag  DW_TAG_member
+       .dwattr $C$DW$116, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$116, DW_AT_name("RAM_PE_RAW")
+       .dwattr $C$DW$116, DW_AT_TI_symbol_name("RAM_PE_RAW")
+       .dwattr $C$DW$116, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$116, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$116, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$116, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$116, DW_AT_decl_line(0x8b)
+       .dwattr $C$DW$116, DW_AT_decl_column(0x0d)
+$C$DW$117      .dwtag  DW_TAG_member
+       .dwattr $C$DW$117, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$117, DW_AT_name("rsvd20")
+       .dwattr $C$DW$117, DW_AT_TI_symbol_name("rsvd20")
+       .dwattr $C$DW$117, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
+       .dwattr $C$DW$117, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$117, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$117, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$117, DW_AT_decl_line(0x8c)
+       .dwattr $C$DW$117, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$25
+
+       .dwattr $C$DW$T$25, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$25, DW_AT_decl_line(0x86)
+       .dwattr $C$DW$T$25, DW_AT_decl_column(0x14)
+$C$DW$T$59     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$59, DW_AT_type(*$C$DW$T$25)
+
+$C$DW$T$26     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$26, DW_AT_byte_size(0x04)
+$C$DW$118      .dwtag  DW_TAG_member
+       .dwattr $C$DW$118, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$118, DW_AT_name("PRU0_IMEM_PE")
+       .dwattr $C$DW$118, DW_AT_TI_symbol_name("PRU0_IMEM_PE")
+       .dwattr $C$DW$118, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$118, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$118, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$118, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$118, DW_AT_decl_line(0x96)
+       .dwattr $C$DW$118, DW_AT_decl_column(0x0d)
+$C$DW$119      .dwtag  DW_TAG_member
+       .dwattr $C$DW$119, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$119, DW_AT_name("PRU0_DMEM_PE")
+       .dwattr $C$DW$119, DW_AT_TI_symbol_name("PRU0_DMEM_PE")
+       .dwattr $C$DW$119, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$119, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$119, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$119, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$119, DW_AT_decl_line(0x97)
+       .dwattr $C$DW$119, DW_AT_decl_column(0x0d)
+$C$DW$120      .dwtag  DW_TAG_member
+       .dwattr $C$DW$120, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$120, DW_AT_name("PRU1_IMEM_PE")
+       .dwattr $C$DW$120, DW_AT_TI_symbol_name("PRU1_IMEM_PE")
+       .dwattr $C$DW$120, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$120, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$120, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$120, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$120, DW_AT_decl_line(0x98)
+       .dwattr $C$DW$120, DW_AT_decl_column(0x0d)
+$C$DW$121      .dwtag  DW_TAG_member
+       .dwattr $C$DW$121, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$121, DW_AT_name("PRU1_DMEM_PE")
+       .dwattr $C$DW$121, DW_AT_TI_symbol_name("PRU1_DMEM_PE")
+       .dwattr $C$DW$121, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$121, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$121, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$121, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$121, DW_AT_decl_line(0x99)
+       .dwattr $C$DW$121, DW_AT_decl_column(0x0d)
+$C$DW$122      .dwtag  DW_TAG_member
+       .dwattr $C$DW$122, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$122, DW_AT_name("RAM_PE")
+       .dwattr $C$DW$122, DW_AT_TI_symbol_name("RAM_PE")
+       .dwattr $C$DW$122, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$122, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$122, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$122, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$122, DW_AT_decl_line(0x9a)
+       .dwattr $C$DW$122, DW_AT_decl_column(0x0d)
+$C$DW$123      .dwtag  DW_TAG_member
+       .dwattr $C$DW$123, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$123, DW_AT_name("rsvd20")
+       .dwattr $C$DW$123, DW_AT_TI_symbol_name("rsvd20")
+       .dwattr $C$DW$123, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
+       .dwattr $C$DW$123, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$123, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$123, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$123, DW_AT_decl_line(0x9b)
+       .dwattr $C$DW$123, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$26
+
+       .dwattr $C$DW$T$26, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$26, DW_AT_decl_line(0x95)
+       .dwattr $C$DW$T$26, DW_AT_decl_column(0x14)
+$C$DW$T$61     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$61, DW_AT_type(*$C$DW$T$26)
+
+$C$DW$T$27     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$27, DW_AT_byte_size(0x04)
+$C$DW$124      .dwtag  DW_TAG_member
+       .dwattr $C$DW$124, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$124, DW_AT_name("PRU0_IMEM_PE_SET")
+       .dwattr $C$DW$124, DW_AT_TI_symbol_name("PRU0_IMEM_PE_SET")
+       .dwattr $C$DW$124, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$124, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$124, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$124, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$124, DW_AT_decl_line(0xa4)
+       .dwattr $C$DW$124, DW_AT_decl_column(0x0d)
+$C$DW$125      .dwtag  DW_TAG_member
+       .dwattr $C$DW$125, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$125, DW_AT_name("PRU0_DMEM_PE_SET")
+       .dwattr $C$DW$125, DW_AT_TI_symbol_name("PRU0_DMEM_PE_SET")
+       .dwattr $C$DW$125, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$125, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$125, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$125, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$125, DW_AT_decl_line(0xa5)
+       .dwattr $C$DW$125, DW_AT_decl_column(0x0d)
+$C$DW$126      .dwtag  DW_TAG_member
+       .dwattr $C$DW$126, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$126, DW_AT_name("PRU1_IMEM_PE_SET")
+       .dwattr $C$DW$126, DW_AT_TI_symbol_name("PRU1_IMEM_PE_SET")
+       .dwattr $C$DW$126, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$126, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$126, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$126, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$126, DW_AT_decl_line(0xa6)
+       .dwattr $C$DW$126, DW_AT_decl_column(0x0d)
+$C$DW$127      .dwtag  DW_TAG_member
+       .dwattr $C$DW$127, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$127, DW_AT_name("PRU1_DMEM_PE_SET")
+       .dwattr $C$DW$127, DW_AT_TI_symbol_name("PRU1_DMEM_PE_SET")
+       .dwattr $C$DW$127, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$127, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$127, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$127, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$127, DW_AT_decl_line(0xa7)
+       .dwattr $C$DW$127, DW_AT_decl_column(0x0d)
+$C$DW$128      .dwtag  DW_TAG_member
+       .dwattr $C$DW$128, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$128, DW_AT_name("RAM_PE_SET")
+       .dwattr $C$DW$128, DW_AT_TI_symbol_name("RAM_PE_SET")
+       .dwattr $C$DW$128, DW_AT_bit_offset(0x0c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$128, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$128, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$128, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$128, DW_AT_decl_line(0xa8)
+       .dwattr $C$DW$128, DW_AT_decl_column(0x0d)
+$C$DW$129      .dwtag  DW_TAG_member
+       .dwattr $C$DW$129, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$129, DW_AT_name("rsvd20")
+       .dwattr $C$DW$129, DW_AT_TI_symbol_name("rsvd20")
+       .dwattr $C$DW$129, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x0c)
+       .dwattr $C$DW$129, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$129, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$129, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$129, DW_AT_decl_line(0xa9)
+       .dwattr $C$DW$129, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$27
+
+       .dwattr $C$DW$T$27, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$27, DW_AT_decl_line(0xa3)
+       .dwattr $C$DW$T$27, DW_AT_decl_column(0x13)
+$C$DW$T$63     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$63, DW_AT_type(*$C$DW$T$27)
+
+$C$DW$T$28     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$28, DW_AT_byte_size(0x04)
+$C$DW$130      .dwtag  DW_TAG_member
+       .dwattr $C$DW$130, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$130, DW_AT_name("PRU0_IMEM_PE_CLR")
+       .dwattr $C$DW$130, DW_AT_TI_symbol_name("PRU0_IMEM_PE_CLR")
+       .dwattr $C$DW$130, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$130, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$130, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$130, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$130, DW_AT_decl_line(0xb3)
+       .dwattr $C$DW$130, DW_AT_decl_column(0x0d)
+$C$DW$131      .dwtag  DW_TAG_member
+       .dwattr $C$DW$131, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$131, DW_AT_name("PRU0_DMEM_PE_CLR")
+       .dwattr $C$DW$131, DW_AT_TI_symbol_name("PRU0_DMEM_PE_CLR")
+       .dwattr $C$DW$131, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$131, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$131, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$131, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$131, DW_AT_decl_line(0xb4)
+       .dwattr $C$DW$131, DW_AT_decl_column(0x0d)
+$C$DW$132      .dwtag  DW_TAG_member
+       .dwattr $C$DW$132, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$132, DW_AT_name("PRU1_IMEM_PE_CLR")
+       .dwattr $C$DW$132, DW_AT_TI_symbol_name("PRU1_IMEM_PE_CLR")
+       .dwattr $C$DW$132, DW_AT_bit_offset(0x14), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$132, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$132, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$132, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$132, DW_AT_decl_line(0xb5)
+       .dwattr $C$DW$132, DW_AT_decl_column(0x0d)
+$C$DW$133      .dwtag  DW_TAG_member
+       .dwattr $C$DW$133, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$133, DW_AT_name("PRU1_DMEM_PE_CLR")
+       .dwattr $C$DW$133, DW_AT_TI_symbol_name("PRU1_DMEM_PE_CLR")
+       .dwattr $C$DW$133, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$133, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$133, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$133, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$133, DW_AT_decl_line(0xb6)
+       .dwattr $C$DW$133, DW_AT_decl_column(0x0d)
+$C$DW$134      .dwtag  DW_TAG_member
+       .dwattr $C$DW$134, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$134, DW_AT_name("rsvd16")
+       .dwattr $C$DW$134, DW_AT_TI_symbol_name("rsvd16")
+       .dwattr $C$DW$134, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$134, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$134, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$134, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$134, DW_AT_decl_line(0xb7)
+       .dwattr $C$DW$134, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$28
+
+       .dwattr $C$DW$T$28, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$28, DW_AT_decl_line(0xb2)
+       .dwattr $C$DW$T$28, DW_AT_decl_column(0x13)
+$C$DW$T$65     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$65, DW_AT_type(*$C$DW$T$28)
+
+$C$DW$T$29     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$29, DW_AT_byte_size(0x04)
+$C$DW$135      .dwtag  DW_TAG_member
+       .dwattr $C$DW$135, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$135, DW_AT_name("PMAO_PRU0")
+       .dwattr $C$DW$135, DW_AT_TI_symbol_name("PMAO_PRU0")
+       .dwattr $C$DW$135, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$135, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$135, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$135, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$135, DW_AT_decl_line(0xc4)
+       .dwattr $C$DW$135, DW_AT_decl_column(0x0d)
+$C$DW$136      .dwtag  DW_TAG_member
+       .dwattr $C$DW$136, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$136, DW_AT_name("PMAO_PRU1")
+       .dwattr $C$DW$136, DW_AT_TI_symbol_name("PMAO_PRU1")
+       .dwattr $C$DW$136, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$136, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$136, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$136, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$136, DW_AT_decl_line(0xc5)
+       .dwattr $C$DW$136, DW_AT_decl_column(0x0d)
+$C$DW$137      .dwtag  DW_TAG_member
+       .dwattr $C$DW$137, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$137, DW_AT_name("rsvd2")
+       .dwattr $C$DW$137, DW_AT_TI_symbol_name("rsvd2")
+       .dwattr $C$DW$137, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1e)
+       .dwattr $C$DW$137, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$137, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$137, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$137, DW_AT_decl_line(0xc6)
+       .dwattr $C$DW$137, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$29
+
+       .dwattr $C$DW$T$29, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$29, DW_AT_decl_line(0xc3)
+       .dwattr $C$DW$T$29, DW_AT_decl_column(0x13)
+$C$DW$T$67     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$67, DW_AT_type(*$C$DW$T$29)
+
+$C$DW$T$30     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$30, DW_AT_byte_size(0x04)
+$C$DW$138      .dwtag  DW_TAG_member
+       .dwattr $C$DW$138, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$138, DW_AT_name("OCP_EN")
+       .dwattr $C$DW$138, DW_AT_TI_symbol_name("OCP_EN")
+       .dwattr $C$DW$138, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$138, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$138, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$138, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$138, DW_AT_decl_line(0xd3)
+       .dwattr $C$DW$138, DW_AT_decl_column(0x0d)
+$C$DW$139      .dwtag  DW_TAG_member
+       .dwattr $C$DW$139, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$139, DW_AT_name("rsvd1")
+       .dwattr $C$DW$139, DW_AT_TI_symbol_name("rsvd1")
+       .dwattr $C$DW$139, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1f)
+       .dwattr $C$DW$139, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$139, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$139, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$139, DW_AT_decl_line(0xd4)
+       .dwattr $C$DW$139, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$30
+
+       .dwattr $C$DW$T$30, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$30, DW_AT_decl_line(0xd2)
+       .dwattr $C$DW$T$30, DW_AT_decl_column(0x13)
+$C$DW$T$69     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$69, DW_AT_type(*$C$DW$T$30)
+
+$C$DW$T$31     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$31, DW_AT_byte_size(0x04)
+$C$DW$140      .dwtag  DW_TAG_member
+       .dwattr $C$DW$140, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$140, DW_AT_name("PRU1_PAD_HP_EN")
+       .dwattr $C$DW$140, DW_AT_TI_symbol_name("PRU1_PAD_HP_EN")
+       .dwattr $C$DW$140, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$140, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$140, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$140, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$140, DW_AT_decl_line(0xde)
+       .dwattr $C$DW$140, DW_AT_decl_column(0x0d)
+$C$DW$141      .dwtag  DW_TAG_member
+       .dwattr $C$DW$141, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$141, DW_AT_name("XFR_SHIFT_EN")
+       .dwattr $C$DW$141, DW_AT_TI_symbol_name("XFR_SHIFT_EN")
+       .dwattr $C$DW$141, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$141, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$141, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$141, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$141, DW_AT_decl_line(0xdf)
+       .dwattr $C$DW$141, DW_AT_decl_column(0x0d)
+$C$DW$142      .dwtag  DW_TAG_member
+       .dwattr $C$DW$142, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$142, DW_AT_name("rsvd2")
+       .dwattr $C$DW$142, DW_AT_TI_symbol_name("rsvd2")
+       .dwattr $C$DW$142, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x1e)
+       .dwattr $C$DW$142, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$142, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$142, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$142, DW_AT_decl_line(0xe0)
+       .dwattr $C$DW$142, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$31
+
+       .dwattr $C$DW$T$31, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$31, DW_AT_decl_line(0xdd)
+       .dwattr $C$DW$T$31, DW_AT_decl_column(0x13)
+$C$DW$T$71     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$71, DW_AT_type(*$C$DW$T$31)
+
+$C$DW$T$32     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$32, DW_AT_byte_size(0x04)
+$C$DW$143      .dwtag  DW_TAG_member
+       .dwattr $C$DW$143, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$143, DW_AT_name("PIN_MUX_SEL")
+       .dwattr $C$DW$143, DW_AT_TI_symbol_name("PIN_MUX_SEL")
+       .dwattr $C$DW$143, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$143, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$143, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$143, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$143, DW_AT_decl_line(0xec)
+       .dwattr $C$DW$143, DW_AT_decl_column(0x0d)
+$C$DW$144      .dwtag  DW_TAG_member
+       .dwattr $C$DW$144, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$144, DW_AT_name("rsvd2")
+       .dwattr $C$DW$144, DW_AT_TI_symbol_name("rsvd2")
+       .dwattr $C$DW$144, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x18)
+       .dwattr $C$DW$144, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$144, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$144, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$144, DW_AT_decl_line(0xed)
+       .dwattr $C$DW$144, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$32
+
+       .dwattr $C$DW$T$32, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$32, DW_AT_decl_line(0xeb)
+       .dwattr $C$DW$T$32, DW_AT_decl_column(0x13)
+$C$DW$T$73     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$73, DW_AT_type(*$C$DW$T$32)
+
+$C$DW$T$36     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$36, DW_AT_byte_size(0x44)
+$C$DW$145      .dwtag  DW_TAG_member
+       .dwattr $C$DW$145, DW_AT_type(*$C$DW$T$50)
+       .dwattr $C$DW$145, DW_AT_name("$P$T0")
+       .dwattr $C$DW$145, DW_AT_TI_symbol_name("$P$T0")
+       .dwattr $C$DW$145, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$145, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$145, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$145, DW_AT_decl_line(0x29)
+       .dwattr $C$DW$145, DW_AT_decl_column(0x02)
+$C$DW$146      .dwtag  DW_TAG_member
+       .dwattr $C$DW$146, DW_AT_type(*$C$DW$T$52)
+       .dwattr $C$DW$146, DW_AT_name("$P$T1")
+       .dwattr $C$DW$146, DW_AT_TI_symbol_name("$P$T1")
+       .dwattr $C$DW$146, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
+       .dwattr $C$DW$146, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$146, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$146, DW_AT_decl_line(0x33)
+       .dwattr $C$DW$146, DW_AT_decl_column(0x02)
+$C$DW$147      .dwtag  DW_TAG_member
+       .dwattr $C$DW$147, DW_AT_type(*$C$DW$T$54)
+       .dwattr $C$DW$147, DW_AT_name("$P$T2")
+       .dwattr $C$DW$147, DW_AT_TI_symbol_name("$P$T2")
+       .dwattr $C$DW$147, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
+       .dwattr $C$DW$147, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$147, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$147, DW_AT_decl_line(0x41)
+       .dwattr $C$DW$147, DW_AT_decl_column(0x02)
+$C$DW$148      .dwtag  DW_TAG_member
+       .dwattr $C$DW$148, DW_AT_type(*$C$DW$T$56)
+       .dwattr $C$DW$148, DW_AT_name("$P$T3")
+       .dwattr $C$DW$148, DW_AT_TI_symbol_name("$P$T3")
+       .dwattr $C$DW$148, DW_AT_data_member_location[DW_OP_plus_uconst 0xc]
+       .dwattr $C$DW$148, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$148, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$148, DW_AT_decl_line(0x54)
+       .dwattr $C$DW$148, DW_AT_decl_column(0x02)
+$C$DW$149      .dwtag  DW_TAG_member
+       .dwattr $C$DW$149, DW_AT_type(*$C$DW$T$58)
+       .dwattr $C$DW$149, DW_AT_name("$P$T4")
+       .dwattr $C$DW$149, DW_AT_TI_symbol_name("$P$T4")
+       .dwattr $C$DW$149, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
+       .dwattr $C$DW$149, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$149, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$149, DW_AT_decl_line(0x67)
+       .dwattr $C$DW$149, DW_AT_decl_column(0x02)
+$C$DW$150      .dwtag  DW_TAG_member
+       .dwattr $C$DW$150, DW_AT_type(*$C$DW$T$60)
+       .dwattr $C$DW$150, DW_AT_name("$P$T5")
+       .dwattr $C$DW$150, DW_AT_TI_symbol_name("$P$T5")
+       .dwattr $C$DW$150, DW_AT_data_member_location[DW_OP_plus_uconst 0x14]
+       .dwattr $C$DW$150, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$150, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$150, DW_AT_decl_line(0x83)
+       .dwattr $C$DW$150, DW_AT_decl_column(0x02)
+$C$DW$151      .dwtag  DW_TAG_member
+       .dwattr $C$DW$151, DW_AT_type(*$C$DW$T$62)
+       .dwattr $C$DW$151, DW_AT_name("$P$T6")
+       .dwattr $C$DW$151, DW_AT_TI_symbol_name("$P$T6")
+       .dwattr $C$DW$151, DW_AT_data_member_location[DW_OP_plus_uconst 0x18]
+       .dwattr $C$DW$151, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$151, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$151, DW_AT_decl_line(0x92)
+       .dwattr $C$DW$151, DW_AT_decl_column(0x02)
+$C$DW$152      .dwtag  DW_TAG_member
+       .dwattr $C$DW$152, DW_AT_type(*$C$DW$T$64)
+       .dwattr $C$DW$152, DW_AT_name("$P$T7")
+       .dwattr $C$DW$152, DW_AT_TI_symbol_name("$P$T7")
+       .dwattr $C$DW$152, DW_AT_data_member_location[DW_OP_plus_uconst 0x1c]
+       .dwattr $C$DW$152, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$152, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$152, DW_AT_decl_line(0xa0)
+       .dwattr $C$DW$152, DW_AT_decl_column(0x02)
+$C$DW$153      .dwtag  DW_TAG_member
+       .dwattr $C$DW$153, DW_AT_type(*$C$DW$T$66)
+       .dwattr $C$DW$153, DW_AT_name("$P$T8")
+       .dwattr $C$DW$153, DW_AT_TI_symbol_name("$P$T8")
+       .dwattr $C$DW$153, DW_AT_data_member_location[DW_OP_plus_uconst 0x20]
+       .dwattr $C$DW$153, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$153, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$153, DW_AT_decl_line(0xaf)
+       .dwattr $C$DW$153, DW_AT_decl_column(0x02)
+$C$DW$154      .dwtag  DW_TAG_member
+       .dwattr $C$DW$154, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$154, DW_AT_name("rsvd24")
+       .dwattr $C$DW$154, DW_AT_TI_symbol_name("rsvd24")
+       .dwattr $C$DW$154, DW_AT_data_member_location[DW_OP_plus_uconst 0x24]
+       .dwattr $C$DW$154, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$154, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$154, DW_AT_decl_line(0xbc)
+       .dwattr $C$DW$154, DW_AT_decl_column(0x0b)
+$C$DW$155      .dwtag  DW_TAG_member
+       .dwattr $C$DW$155, DW_AT_type(*$C$DW$T$68)
+       .dwattr $C$DW$155, DW_AT_name("$P$T9")
+       .dwattr $C$DW$155, DW_AT_TI_symbol_name("$P$T9")
+       .dwattr $C$DW$155, DW_AT_data_member_location[DW_OP_plus_uconst 0x28]
+       .dwattr $C$DW$155, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$155, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$155, DW_AT_decl_line(0xc0)
+       .dwattr $C$DW$155, DW_AT_decl_column(0x02)
+$C$DW$156      .dwtag  DW_TAG_member
+       .dwattr $C$DW$156, DW_AT_type(*$C$DW$T$34)
+       .dwattr $C$DW$156, DW_AT_name("rsvd2c")
+       .dwattr $C$DW$156, DW_AT_TI_symbol_name("rsvd2c")
+       .dwattr $C$DW$156, DW_AT_data_member_location[DW_OP_plus_uconst 0x2c]
+       .dwattr $C$DW$156, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$156, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$156, DW_AT_decl_line(0xcb)
+       .dwattr $C$DW$156, DW_AT_decl_column(0x0b)
+$C$DW$157      .dwtag  DW_TAG_member
+       .dwattr $C$DW$157, DW_AT_type(*$C$DW$T$70)
+       .dwattr $C$DW$157, DW_AT_name("$P$T10")
+       .dwattr $C$DW$157, DW_AT_TI_symbol_name("$P$T10")
+       .dwattr $C$DW$157, DW_AT_data_member_location[DW_OP_plus_uconst 0x30]
+       .dwattr $C$DW$157, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$157, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$157, DW_AT_decl_line(0xcf)
+       .dwattr $C$DW$157, DW_AT_decl_column(0x02)
+$C$DW$158      .dwtag  DW_TAG_member
+       .dwattr $C$DW$158, DW_AT_type(*$C$DW$T$72)
+       .dwattr $C$DW$158, DW_AT_name("$P$T11")
+       .dwattr $C$DW$158, DW_AT_TI_symbol_name("$P$T11")
+       .dwattr $C$DW$158, DW_AT_data_member_location[DW_OP_plus_uconst 0x34]
+       .dwattr $C$DW$158, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$158, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$158, DW_AT_decl_line(0xda)
+       .dwattr $C$DW$158, DW_AT_decl_column(0x02)
+$C$DW$159      .dwtag  DW_TAG_member
+       .dwattr $C$DW$159, DW_AT_type(*$C$DW$T$35)
+       .dwattr $C$DW$159, DW_AT_name("rsvd38")
+       .dwattr $C$DW$159, DW_AT_TI_symbol_name("rsvd38")
+       .dwattr $C$DW$159, DW_AT_data_member_location[DW_OP_plus_uconst 0x38]
+       .dwattr $C$DW$159, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$159, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$159, DW_AT_decl_line(0xe5)
+       .dwattr $C$DW$159, DW_AT_decl_column(0x0b)
+$C$DW$160      .dwtag  DW_TAG_member
+       .dwattr $C$DW$160, DW_AT_type(*$C$DW$T$74)
+       .dwattr $C$DW$160, DW_AT_name("$P$T12")
+       .dwattr $C$DW$160, DW_AT_TI_symbol_name("$P$T12")
+       .dwattr $C$DW$160, DW_AT_data_member_location[DW_OP_plus_uconst 0x40]
+       .dwattr $C$DW$160, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$160, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$160, DW_AT_decl_line(0xe8)
+       .dwattr $C$DW$160, DW_AT_decl_column(0x02)
+       .dwendtag $C$DW$T$36
+
+       .dwattr $C$DW$T$36, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$36, DW_AT_decl_line(0x26)
+       .dwattr $C$DW$T$36, DW_AT_decl_column(0x10)
+$C$DW$T$98     .dwtag  DW_TAG_typedef, DW_AT_name("pruCfg")
+       .dwattr $C$DW$T$98, DW_AT_type(*$C$DW$T$36)
+       .dwattr $C$DW$T$98, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$98, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$98, DW_AT_decl_line(0xf0)
+       .dwattr $C$DW$T$98, DW_AT_decl_column(0x03)
+$C$DW$T$99     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$99, DW_AT_type(*$C$DW$T$98)
+
+$C$DW$T$37     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$37, DW_AT_byte_size(0x04)
+$C$DW$161      .dwtag  DW_TAG_member
+       .dwattr $C$DW$161, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$161, DW_AT_name("SOFT_RST_N")
+       .dwattr $C$DW$161, DW_AT_TI_symbol_name("SOFT_RST_N")
+       .dwattr $C$DW$161, DW_AT_bit_offset(0x1f), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$161, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$161, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$161, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$161, DW_AT_decl_line(0x2d)
+       .dwattr $C$DW$161, DW_AT_decl_column(0x0d)
+$C$DW$162      .dwtag  DW_TAG_member
+       .dwattr $C$DW$162, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$162, DW_AT_name("EN")
+       .dwattr $C$DW$162, DW_AT_TI_symbol_name("EN")
+       .dwattr $C$DW$162, DW_AT_bit_offset(0x1e), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$162, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$162, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$162, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$162, DW_AT_decl_line(0x2e)
+       .dwattr $C$DW$162, DW_AT_decl_column(0x0d)
+$C$DW$163      .dwtag  DW_TAG_member
+       .dwattr $C$DW$163, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$163, DW_AT_name("SLEEPING")
+       .dwattr $C$DW$163, DW_AT_TI_symbol_name("SLEEPING")
+       .dwattr $C$DW$163, DW_AT_bit_offset(0x1d), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$163, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$163, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$163, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$163, DW_AT_decl_line(0x2f)
+       .dwattr $C$DW$163, DW_AT_decl_column(0x0d)
+$C$DW$164      .dwtag  DW_TAG_member
+       .dwattr $C$DW$164, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$164, DW_AT_name("CTR_EN")
+       .dwattr $C$DW$164, DW_AT_TI_symbol_name("CTR_EN")
+       .dwattr $C$DW$164, DW_AT_bit_offset(0x1c), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$164, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$164, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$164, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$164, DW_AT_decl_line(0x30)
+       .dwattr $C$DW$164, DW_AT_decl_column(0x0d)
+$C$DW$165      .dwtag  DW_TAG_member
+       .dwattr $C$DW$165, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$165, DW_AT_name("rsvd4")
+       .dwattr $C$DW$165, DW_AT_TI_symbol_name("rsvd4")
+       .dwattr $C$DW$165, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x04)
+       .dwattr $C$DW$165, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$165, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$165, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$165, DW_AT_decl_line(0x31)
+       .dwattr $C$DW$165, DW_AT_decl_column(0x0d)
+$C$DW$166      .dwtag  DW_TAG_member
+       .dwattr $C$DW$166, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$166, DW_AT_name("SINGLE_STEP")
+       .dwattr $C$DW$166, DW_AT_TI_symbol_name("SINGLE_STEP")
+       .dwattr $C$DW$166, DW_AT_bit_offset(0x17), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$166, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$166, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$166, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$166, DW_AT_decl_line(0x32)
+       .dwattr $C$DW$166, DW_AT_decl_column(0x0d)
+$C$DW$167      .dwtag  DW_TAG_member
+       .dwattr $C$DW$167, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$167, DW_AT_name("rsvd9")
+       .dwattr $C$DW$167, DW_AT_TI_symbol_name("rsvd9")
+       .dwattr $C$DW$167, DW_AT_bit_offset(0x11), DW_AT_bit_size(0x06)
+       .dwattr $C$DW$167, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$167, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$167, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$167, DW_AT_decl_line(0x33)
+       .dwattr $C$DW$167, DW_AT_decl_column(0x0d)
+$C$DW$168      .dwtag  DW_TAG_member
+       .dwattr $C$DW$168, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$168, DW_AT_name("RUNSTATE")
+       .dwattr $C$DW$168, DW_AT_TI_symbol_name("RUNSTATE")
+       .dwattr $C$DW$168, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x01)
+       .dwattr $C$DW$168, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$168, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$168, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$168, DW_AT_decl_line(0x34)
+       .dwattr $C$DW$168, DW_AT_decl_column(0x0d)
+$C$DW$169      .dwtag  DW_TAG_member
+       .dwattr $C$DW$169, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$169, DW_AT_name("PCTR_RST_VAL")
+       .dwattr $C$DW$169, DW_AT_TI_symbol_name("PCTR_RST_VAL")
+       .dwattr $C$DW$169, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$169, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$169, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$169, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$169, DW_AT_decl_line(0x35)
+       .dwattr $C$DW$169, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$37
+
+       .dwattr $C$DW$T$37, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$37, DW_AT_decl_line(0x2c)
+       .dwattr $C$DW$T$37, DW_AT_decl_column(0x13)
+$C$DW$T$75     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$75, DW_AT_type(*$C$DW$T$37)
+
+$C$DW$T$38     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$38, DW_AT_byte_size(0x04)
+$C$DW$170      .dwtag  DW_TAG_member
+       .dwattr $C$DW$170, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$170, DW_AT_name("PCTR")
+       .dwattr $C$DW$170, DW_AT_TI_symbol_name("PCTR")
+       .dwattr $C$DW$170, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$170, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$170, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$170, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$170, DW_AT_decl_line(0x3f)
+       .dwattr $C$DW$170, DW_AT_decl_column(0x0d)
+$C$DW$171      .dwtag  DW_TAG_member
+       .dwattr $C$DW$171, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$171, DW_AT_name("rsvd16")
+       .dwattr $C$DW$171, DW_AT_TI_symbol_name("rsvd16")
+       .dwattr $C$DW$171, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$171, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$171, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$171, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$171, DW_AT_decl_line(0x40)
+       .dwattr $C$DW$171, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$38
+
+       .dwattr $C$DW$T$38, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$38, DW_AT_decl_line(0x3e)
+       .dwattr $C$DW$T$38, DW_AT_decl_column(0x13)
+$C$DW$T$77     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$77, DW_AT_type(*$C$DW$T$38)
+
+$C$DW$T$39     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$39, DW_AT_byte_size(0x04)
+$C$DW$172      .dwtag  DW_TAG_member
+       .dwattr $C$DW$172, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$172, DW_AT_name("BITWISE_ENS")
+       .dwattr $C$DW$172, DW_AT_TI_symbol_name("BITWISE_ENS")
+       .dwattr $C$DW$172, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
+       .dwattr $C$DW$172, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$172, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$172, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$172, DW_AT_decl_line(0x4a)
+       .dwattr $C$DW$172, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$39
+
+       .dwattr $C$DW$T$39, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$39, DW_AT_decl_line(0x49)
+       .dwattr $C$DW$T$39, DW_AT_decl_column(0x13)
+$C$DW$T$79     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$79, DW_AT_type(*$C$DW$T$39)
+
+$C$DW$T$40     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$40, DW_AT_byte_size(0x04)
+$C$DW$173      .dwtag  DW_TAG_member
+       .dwattr $C$DW$173, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$173, DW_AT_name("CYCLECOUNT")
+       .dwattr $C$DW$173, DW_AT_TI_symbol_name("CYCLECOUNT")
+       .dwattr $C$DW$173, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
+       .dwattr $C$DW$173, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$173, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$173, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$173, DW_AT_decl_line(0x54)
+       .dwattr $C$DW$173, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$40
+
+       .dwattr $C$DW$T$40, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$40, DW_AT_decl_line(0x53)
+       .dwattr $C$DW$T$40, DW_AT_decl_column(0x13)
+$C$DW$T$81     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$81, DW_AT_type(*$C$DW$T$40)
+
+$C$DW$T$41     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$41, DW_AT_byte_size(0x04)
+$C$DW$174      .dwtag  DW_TAG_member
+       .dwattr $C$DW$174, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$174, DW_AT_name("STALLCOUNT")
+       .dwattr $C$DW$174, DW_AT_TI_symbol_name("STALLCOUNT")
+       .dwattr $C$DW$174, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x20)
+       .dwattr $C$DW$174, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$174, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$174, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$174, DW_AT_decl_line(0x5e)
+       .dwattr $C$DW$174, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$41
+
+       .dwattr $C$DW$T$41, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$41, DW_AT_decl_line(0x5d)
+       .dwattr $C$DW$T$41, DW_AT_decl_column(0x14)
+$C$DW$T$83     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$83, DW_AT_type(*$C$DW$T$41)
+
+$C$DW$T$42     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$42, DW_AT_byte_size(0x04)
+$C$DW$175      .dwtag  DW_TAG_member
+       .dwattr $C$DW$175, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$175, DW_AT_name("C24_BLK_IDX")
+       .dwattr $C$DW$175, DW_AT_TI_symbol_name("C24_BLK_IDX")
+       .dwattr $C$DW$175, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$175, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$175, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$175, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$175, DW_AT_decl_line(0x6b)
+       .dwattr $C$DW$175, DW_AT_decl_column(0x0d)
+$C$DW$176      .dwtag  DW_TAG_member
+       .dwattr $C$DW$176, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$176, DW_AT_name("rsvd8")
+       .dwattr $C$DW$176, DW_AT_TI_symbol_name("rsvd8")
+       .dwattr $C$DW$176, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$176, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$176, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$176, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$176, DW_AT_decl_line(0x6c)
+       .dwattr $C$DW$176, DW_AT_decl_column(0x0d)
+$C$DW$177      .dwtag  DW_TAG_member
+       .dwattr $C$DW$177, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$177, DW_AT_name("C25_BLK_IDX")
+       .dwattr $C$DW$177, DW_AT_TI_symbol_name("C25_BLK_IDX")
+       .dwattr $C$DW$177, DW_AT_bit_offset(0x08), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$177, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$177, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$177, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$177, DW_AT_decl_line(0x6d)
+       .dwattr $C$DW$177, DW_AT_decl_column(0x0d)
+$C$DW$178      .dwtag  DW_TAG_member
+       .dwattr $C$DW$178, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$178, DW_AT_name("rsvd24")
+       .dwattr $C$DW$178, DW_AT_TI_symbol_name("rsvd24")
+       .dwattr $C$DW$178, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$178, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$178, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$178, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$178, DW_AT_decl_line(0x6e)
+       .dwattr $C$DW$178, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$42
+
+       .dwattr $C$DW$T$42, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$42, DW_AT_decl_line(0x6a)
+       .dwattr $C$DW$T$42, DW_AT_decl_column(0x13)
+$C$DW$T$85     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$85, DW_AT_type(*$C$DW$T$42)
+
+$C$DW$T$43     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$43, DW_AT_byte_size(0x04)
+$C$DW$179      .dwtag  DW_TAG_member
+       .dwattr $C$DW$179, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$179, DW_AT_name("C26_BLK_IDX")
+       .dwattr $C$DW$179, DW_AT_TI_symbol_name("C26_BLK_IDX")
+       .dwattr $C$DW$179, DW_AT_bit_offset(0x18), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$179, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$179, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$179, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$179, DW_AT_decl_line(0x78)
+       .dwattr $C$DW$179, DW_AT_decl_column(0x0d)
+$C$DW$180      .dwtag  DW_TAG_member
+       .dwattr $C$DW$180, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$180, DW_AT_name("rsvd8")
+       .dwattr $C$DW$180, DW_AT_TI_symbol_name("rsvd8")
+       .dwattr $C$DW$180, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$180, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$180, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$180, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$180, DW_AT_decl_line(0x79)
+       .dwattr $C$DW$180, DW_AT_decl_column(0x0d)
+$C$DW$181      .dwtag  DW_TAG_member
+       .dwattr $C$DW$181, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$181, DW_AT_name("C27_BLK_IDX")
+       .dwattr $C$DW$181, DW_AT_TI_symbol_name("C27_BLK_IDX")
+       .dwattr $C$DW$181, DW_AT_bit_offset(0x08), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$181, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$181, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$181, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$181, DW_AT_decl_line(0x7a)
+       .dwattr $C$DW$181, DW_AT_decl_column(0x0d)
+$C$DW$182      .dwtag  DW_TAG_member
+       .dwattr $C$DW$182, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$182, DW_AT_name("rsvd24")
+       .dwattr $C$DW$182, DW_AT_TI_symbol_name("rsvd24")
+       .dwattr $C$DW$182, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x08)
+       .dwattr $C$DW$182, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$182, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$182, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$182, DW_AT_decl_line(0x7b)
+       .dwattr $C$DW$182, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$43
+
+       .dwattr $C$DW$T$43, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$43, DW_AT_decl_line(0x77)
+       .dwattr $C$DW$T$43, DW_AT_decl_column(0x13)
+$C$DW$T$87     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$87, DW_AT_type(*$C$DW$T$43)
+
+$C$DW$T$44     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$44, DW_AT_byte_size(0x04)
+$C$DW$183      .dwtag  DW_TAG_member
+       .dwattr $C$DW$183, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$183, DW_AT_name("C28_BLK_POINTER")
+       .dwattr $C$DW$183, DW_AT_TI_symbol_name("C28_BLK_POINTER")
+       .dwattr $C$DW$183, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$183, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$183, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$183, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$183, DW_AT_decl_line(0x85)
+       .dwattr $C$DW$183, DW_AT_decl_column(0x0d)
+$C$DW$184      .dwtag  DW_TAG_member
+       .dwattr $C$DW$184, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$184, DW_AT_name("C29_BLK_POINTER")
+       .dwattr $C$DW$184, DW_AT_TI_symbol_name("C29_BLK_POINTER")
+       .dwattr $C$DW$184, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$184, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$184, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$184, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$184, DW_AT_decl_line(0x86)
+       .dwattr $C$DW$184, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$44
+
+       .dwattr $C$DW$T$44, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$44, DW_AT_decl_line(0x84)
+       .dwattr $C$DW$T$44, DW_AT_decl_column(0x13)
+$C$DW$T$89     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$89, DW_AT_type(*$C$DW$T$44)
+
+$C$DW$T$45     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$45, DW_AT_byte_size(0x04)
+$C$DW$185      .dwtag  DW_TAG_member
+       .dwattr $C$DW$185, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$185, DW_AT_name("C30_BLK_POINTER")
+       .dwattr $C$DW$185, DW_AT_TI_symbol_name("C30_BLK_POINTER")
+       .dwattr $C$DW$185, DW_AT_bit_offset(0x10), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$185, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$185, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$185, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$185, DW_AT_decl_line(0x90)
+       .dwattr $C$DW$185, DW_AT_decl_column(0x0d)
+$C$DW$186      .dwtag  DW_TAG_member
+       .dwattr $C$DW$186, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$186, DW_AT_name("C31_BLK_POINTER")
+       .dwattr $C$DW$186, DW_AT_TI_symbol_name("C31_BLK_POINTER")
+       .dwattr $C$DW$186, DW_AT_bit_offset(0x00), DW_AT_bit_size(0x10)
+       .dwattr $C$DW$186, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$186, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$186, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$186, DW_AT_decl_line(0x91)
+       .dwattr $C$DW$186, DW_AT_decl_column(0x0d)
+       .dwendtag $C$DW$T$45
+
+       .dwattr $C$DW$T$45, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$45, DW_AT_decl_line(0x8f)
+       .dwattr $C$DW$T$45, DW_AT_decl_column(0x13)
+$C$DW$T$91     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$91, DW_AT_type(*$C$DW$T$45)
+
+$C$DW$T$47     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$47, DW_AT_byte_size(0x30)
+$C$DW$187      .dwtag  DW_TAG_member
+       .dwattr $C$DW$187, DW_AT_type(*$C$DW$T$76)
+       .dwattr $C$DW$187, DW_AT_name("$P$T13")
+       .dwattr $C$DW$187, DW_AT_TI_symbol_name("$P$T13")
+       .dwattr $C$DW$187, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$187, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$187, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$187, DW_AT_decl_line(0x29)
+       .dwattr $C$DW$187, DW_AT_decl_column(0x02)
+$C$DW$188      .dwtag  DW_TAG_member
+       .dwattr $C$DW$188, DW_AT_type(*$C$DW$T$78)
+       .dwattr $C$DW$188, DW_AT_name("$P$T14")
+       .dwattr $C$DW$188, DW_AT_TI_symbol_name("$P$T14")
+       .dwattr $C$DW$188, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
+       .dwattr $C$DW$188, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$188, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$188, DW_AT_decl_line(0x3b)
+       .dwattr $C$DW$188, DW_AT_decl_column(0x02)
+$C$DW$189      .dwtag  DW_TAG_member
+       .dwattr $C$DW$189, DW_AT_type(*$C$DW$T$80)
+       .dwattr $C$DW$189, DW_AT_name("$P$T15")
+       .dwattr $C$DW$189, DW_AT_TI_symbol_name("$P$T15")
+       .dwattr $C$DW$189, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
+       .dwattr $C$DW$189, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$189, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$189, DW_AT_decl_line(0x46)
+       .dwattr $C$DW$189, DW_AT_decl_column(0x02)
+$C$DW$190      .dwtag  DW_TAG_member
+       .dwattr $C$DW$190, DW_AT_type(*$C$DW$T$82)
+       .dwattr $C$DW$190, DW_AT_name("$P$T16")
+       .dwattr $C$DW$190, DW_AT_TI_symbol_name("$P$T16")
+       .dwattr $C$DW$190, DW_AT_data_member_location[DW_OP_plus_uconst 0xc]
+       .dwattr $C$DW$190, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$190, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$190, DW_AT_decl_line(0x50)
+       .dwattr $C$DW$190, DW_AT_decl_column(0x02)
+$C$DW$191      .dwtag  DW_TAG_member
+       .dwattr $C$DW$191, DW_AT_type(*$C$DW$T$84)
+       .dwattr $C$DW$191, DW_AT_name("$P$T17")
+       .dwattr $C$DW$191, DW_AT_TI_symbol_name("$P$T17")
+       .dwattr $C$DW$191, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
+       .dwattr $C$DW$191, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$191, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$191, DW_AT_decl_line(0x5a)
+       .dwattr $C$DW$191, DW_AT_decl_column(0x02)
+$C$DW$192      .dwtag  DW_TAG_member
+       .dwattr $C$DW$192, DW_AT_type(*$C$DW$T$46)
+       .dwattr $C$DW$192, DW_AT_name("rsvd14")
+       .dwattr $C$DW$192, DW_AT_TI_symbol_name("rsvd14")
+       .dwattr $C$DW$192, DW_AT_data_member_location[DW_OP_plus_uconst 0x14]
+       .dwattr $C$DW$192, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$192, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$192, DW_AT_decl_line(0x63)
+       .dwattr $C$DW$192, DW_AT_decl_column(0x0b)
+$C$DW$193      .dwtag  DW_TAG_member
+       .dwattr $C$DW$193, DW_AT_type(*$C$DW$T$86)
+       .dwattr $C$DW$193, DW_AT_name("$P$T18")
+       .dwattr $C$DW$193, DW_AT_TI_symbol_name("$P$T18")
+       .dwattr $C$DW$193, DW_AT_data_member_location[DW_OP_plus_uconst 0x20]
+       .dwattr $C$DW$193, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$193, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$193, DW_AT_decl_line(0x67)
+       .dwattr $C$DW$193, DW_AT_decl_column(0x02)
+$C$DW$194      .dwtag  DW_TAG_member
+       .dwattr $C$DW$194, DW_AT_type(*$C$DW$T$88)
+       .dwattr $C$DW$194, DW_AT_name("$P$T19")
+       .dwattr $C$DW$194, DW_AT_TI_symbol_name("$P$T19")
+       .dwattr $C$DW$194, DW_AT_data_member_location[DW_OP_plus_uconst 0x24]
+       .dwattr $C$DW$194, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$194, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$194, DW_AT_decl_line(0x74)
+       .dwattr $C$DW$194, DW_AT_decl_column(0x02)
+$C$DW$195      .dwtag  DW_TAG_member
+       .dwattr $C$DW$195, DW_AT_type(*$C$DW$T$90)
+       .dwattr $C$DW$195, DW_AT_name("$P$T20")
+       .dwattr $C$DW$195, DW_AT_TI_symbol_name("$P$T20")
+       .dwattr $C$DW$195, DW_AT_data_member_location[DW_OP_plus_uconst 0x28]
+       .dwattr $C$DW$195, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$195, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$195, DW_AT_decl_line(0x81)
+       .dwattr $C$DW$195, DW_AT_decl_column(0x02)
+$C$DW$196      .dwtag  DW_TAG_member
+       .dwattr $C$DW$196, DW_AT_type(*$C$DW$T$92)
+       .dwattr $C$DW$196, DW_AT_name("$P$T21")
+       .dwattr $C$DW$196, DW_AT_TI_symbol_name("$P$T21")
+       .dwattr $C$DW$196, DW_AT_data_member_location[DW_OP_plus_uconst 0x2c]
+       .dwattr $C$DW$196, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$196, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$196, DW_AT_decl_line(0x8c)
+       .dwattr $C$DW$196, DW_AT_decl_column(0x02)
+       .dwendtag $C$DW$T$47
+
+       .dwattr $C$DW$T$47, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$47, DW_AT_decl_line(0x26)
+       .dwattr $C$DW$T$47, DW_AT_decl_column(0x10)
+$C$DW$T$103    .dwtag  DW_TAG_typedef, DW_AT_name("pruCtrl")
+       .dwattr $C$DW$T$103, DW_AT_type(*$C$DW$T$47)
+       .dwattr $C$DW$T$103, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$103, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$103, DW_AT_decl_line(0x95)
+       .dwattr $C$DW$T$103, DW_AT_decl_column(0x03)
+
+$C$DW$T$50     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$50, DW_AT_byte_size(0x04)
+$C$DW$197      .dwtag  DW_TAG_member
+       .dwattr $C$DW$197, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$197, DW_AT_name("REVID")
+       .dwattr $C$DW$197, DW_AT_TI_symbol_name("REVID")
+       .dwattr $C$DW$197, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$197, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$197, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$197, DW_AT_decl_line(0x2a)
+       .dwattr $C$DW$197, DW_AT_decl_column(0x15)
+$C$DW$198      .dwtag  DW_TAG_member
+       .dwattr $C$DW$198, DW_AT_type(*$C$DW$T$49)
+       .dwattr $C$DW$198, DW_AT_name("REVID_bit")
+       .dwattr $C$DW$198, DW_AT_TI_symbol_name("REVID_bit")
+       .dwattr $C$DW$198, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$198, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$198, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$198, DW_AT_decl_line(0x2e)
+       .dwattr $C$DW$198, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$50
+
+       .dwattr $C$DW$T$50, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$50, DW_AT_decl_line(0x29)
+       .dwattr $C$DW$T$50, DW_AT_decl_column(0x08)
+
+$C$DW$T$52     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$52, DW_AT_byte_size(0x04)
+$C$DW$199      .dwtag  DW_TAG_member
+       .dwattr $C$DW$199, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$199, DW_AT_name("SYSCFG")
+       .dwattr $C$DW$199, DW_AT_TI_symbol_name("SYSCFG")
+       .dwattr $C$DW$199, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$199, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$199, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$199, DW_AT_decl_line(0x34)
+       .dwattr $C$DW$199, DW_AT_decl_column(0x15)
+$C$DW$200      .dwtag  DW_TAG_member
+       .dwattr $C$DW$200, DW_AT_type(*$C$DW$T$51)
+       .dwattr $C$DW$200, DW_AT_name("SYSCFG_bit")
+       .dwattr $C$DW$200, DW_AT_TI_symbol_name("SYSCFG_bit")
+       .dwattr $C$DW$200, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$200, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$200, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$200, DW_AT_decl_line(0x3c)
+       .dwattr $C$DW$200, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$52
+
+       .dwattr $C$DW$T$52, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$52, DW_AT_decl_line(0x33)
+       .dwattr $C$DW$T$52, DW_AT_decl_column(0x08)
+
+$C$DW$T$54     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$54, DW_AT_byte_size(0x04)
+$C$DW$201      .dwtag  DW_TAG_member
+       .dwattr $C$DW$201, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$201, DW_AT_name("GPCFG0")
+       .dwattr $C$DW$201, DW_AT_TI_symbol_name("GPCFG0")
+       .dwattr $C$DW$201, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$201, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$201, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$201, DW_AT_decl_line(0x42)
+       .dwattr $C$DW$201, DW_AT_decl_column(0x15)
+$C$DW$202      .dwtag  DW_TAG_member
+       .dwattr $C$DW$202, DW_AT_type(*$C$DW$T$53)
+       .dwattr $C$DW$202, DW_AT_name("GPCFG0_bit")
+       .dwattr $C$DW$202, DW_AT_TI_symbol_name("GPCFG0_bit")
+       .dwattr $C$DW$202, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$202, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$202, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$202, DW_AT_decl_line(0x4f)
+       .dwattr $C$DW$202, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$54
+
+       .dwattr $C$DW$T$54, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$54, DW_AT_decl_line(0x41)
+       .dwattr $C$DW$T$54, DW_AT_decl_column(0x08)
+
+$C$DW$T$56     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$56, DW_AT_byte_size(0x04)
+$C$DW$203      .dwtag  DW_TAG_member
+       .dwattr $C$DW$203, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$203, DW_AT_name("GPCFG1")
+       .dwattr $C$DW$203, DW_AT_TI_symbol_name("GPCFG1")
+       .dwattr $C$DW$203, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$203, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$203, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$203, DW_AT_decl_line(0x55)
+       .dwattr $C$DW$203, DW_AT_decl_column(0x15)
+$C$DW$204      .dwtag  DW_TAG_member
+       .dwattr $C$DW$204, DW_AT_type(*$C$DW$T$55)
+       .dwattr $C$DW$204, DW_AT_name("GPCFG1_bit")
+       .dwattr $C$DW$204, DW_AT_TI_symbol_name("GPCFG1_bit")
+       .dwattr $C$DW$204, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$204, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$204, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$204, DW_AT_decl_line(0x62)
+       .dwattr $C$DW$204, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$56
+
+       .dwattr $C$DW$T$56, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$56, DW_AT_decl_line(0x54)
+       .dwattr $C$DW$T$56, DW_AT_decl_column(0x08)
+
+$C$DW$T$58     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$58, DW_AT_byte_size(0x04)
+$C$DW$205      .dwtag  DW_TAG_member
+       .dwattr $C$DW$205, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$205, DW_AT_name("CGR")
+       .dwattr $C$DW$205, DW_AT_TI_symbol_name("CGR")
+       .dwattr $C$DW$205, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$205, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$205, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$205, DW_AT_decl_line(0x68)
+       .dwattr $C$DW$205, DW_AT_decl_column(0x15)
+$C$DW$206      .dwtag  DW_TAG_member
+       .dwattr $C$DW$206, DW_AT_type(*$C$DW$T$57)
+       .dwattr $C$DW$206, DW_AT_name("CGR_bit")
+       .dwattr $C$DW$206, DW_AT_TI_symbol_name("CGR_bit")
+       .dwattr $C$DW$206, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$206, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$206, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$206, DW_AT_decl_line(0x7e)
+       .dwattr $C$DW$206, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$58
+
+       .dwattr $C$DW$T$58, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$58, DW_AT_decl_line(0x67)
+       .dwattr $C$DW$T$58, DW_AT_decl_column(0x08)
+
+$C$DW$T$60     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$60, DW_AT_byte_size(0x04)
+$C$DW$207      .dwtag  DW_TAG_member
+       .dwattr $C$DW$207, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$207, DW_AT_name("ISRP")
+       .dwattr $C$DW$207, DW_AT_TI_symbol_name("ISRP")
+       .dwattr $C$DW$207, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$207, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$207, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$207, DW_AT_decl_line(0x84)
+       .dwattr $C$DW$207, DW_AT_decl_column(0x15)
+$C$DW$208      .dwtag  DW_TAG_member
+       .dwattr $C$DW$208, DW_AT_type(*$C$DW$T$59)
+       .dwattr $C$DW$208, DW_AT_name("ISRP_bit")
+       .dwattr $C$DW$208, DW_AT_TI_symbol_name("ISRP_bit")
+       .dwattr $C$DW$208, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$208, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$208, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$208, DW_AT_decl_line(0x8d)
+       .dwattr $C$DW$208, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$60
+
+       .dwattr $C$DW$T$60, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$60, DW_AT_decl_line(0x83)
+       .dwattr $C$DW$T$60, DW_AT_decl_column(0x08)
+
+$C$DW$T$62     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$62, DW_AT_byte_size(0x04)
+$C$DW$209      .dwtag  DW_TAG_member
+       .dwattr $C$DW$209, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$209, DW_AT_name("ISP")
+       .dwattr $C$DW$209, DW_AT_TI_symbol_name("ISP")
+       .dwattr $C$DW$209, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$209, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$209, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$209, DW_AT_decl_line(0x93)
+       .dwattr $C$DW$209, DW_AT_decl_column(0x15)
+$C$DW$210      .dwtag  DW_TAG_member
+       .dwattr $C$DW$210, DW_AT_type(*$C$DW$T$61)
+       .dwattr $C$DW$210, DW_AT_name("ISP_bit")
+       .dwattr $C$DW$210, DW_AT_TI_symbol_name("ISP_bit")
+       .dwattr $C$DW$210, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$210, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$210, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$210, DW_AT_decl_line(0x9c)
+       .dwattr $C$DW$210, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$62
+
+       .dwattr $C$DW$T$62, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$62, DW_AT_decl_line(0x92)
+       .dwattr $C$DW$T$62, DW_AT_decl_column(0x08)
+
+$C$DW$T$64     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$64, DW_AT_byte_size(0x04)
+$C$DW$211      .dwtag  DW_TAG_member
+       .dwattr $C$DW$211, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$211, DW_AT_name("IESP")
+       .dwattr $C$DW$211, DW_AT_TI_symbol_name("IESP")
+       .dwattr $C$DW$211, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$211, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$211, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$211, DW_AT_decl_line(0xa1)
+       .dwattr $C$DW$211, DW_AT_decl_column(0x15)
+$C$DW$212      .dwtag  DW_TAG_member
+       .dwattr $C$DW$212, DW_AT_type(*$C$DW$T$63)
+       .dwattr $C$DW$212, DW_AT_name("IESP_bit")
+       .dwattr $C$DW$212, DW_AT_TI_symbol_name("IESP_bit")
+       .dwattr $C$DW$212, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$212, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$212, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$212, DW_AT_decl_line(0xaa)
+       .dwattr $C$DW$212, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$64
+
+       .dwattr $C$DW$T$64, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$64, DW_AT_decl_line(0xa0)
+       .dwattr $C$DW$T$64, DW_AT_decl_column(0x08)
+
+$C$DW$T$66     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$66, DW_AT_byte_size(0x04)
+$C$DW$213      .dwtag  DW_TAG_member
+       .dwattr $C$DW$213, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$213, DW_AT_name("IECP")
+       .dwattr $C$DW$213, DW_AT_TI_symbol_name("IECP")
+       .dwattr $C$DW$213, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$213, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$213, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$213, DW_AT_decl_line(0xb0)
+       .dwattr $C$DW$213, DW_AT_decl_column(0x15)
+$C$DW$214      .dwtag  DW_TAG_member
+       .dwattr $C$DW$214, DW_AT_type(*$C$DW$T$65)
+       .dwattr $C$DW$214, DW_AT_name("IECP_bit")
+       .dwattr $C$DW$214, DW_AT_TI_symbol_name("IECP_bit")
+       .dwattr $C$DW$214, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$214, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$214, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$214, DW_AT_decl_line(0xb8)
+       .dwattr $C$DW$214, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$66
+
+       .dwattr $C$DW$T$66, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$66, DW_AT_decl_line(0xaf)
+       .dwattr $C$DW$T$66, DW_AT_decl_column(0x08)
+
+$C$DW$T$68     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$68, DW_AT_byte_size(0x04)
+$C$DW$215      .dwtag  DW_TAG_member
+       .dwattr $C$DW$215, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$215, DW_AT_name("PMAO")
+       .dwattr $C$DW$215, DW_AT_TI_symbol_name("PMAO")
+       .dwattr $C$DW$215, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$215, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$215, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$215, DW_AT_decl_line(0xc1)
+       .dwattr $C$DW$215, DW_AT_decl_column(0x15)
+$C$DW$216      .dwtag  DW_TAG_member
+       .dwattr $C$DW$216, DW_AT_type(*$C$DW$T$67)
+       .dwattr $C$DW$216, DW_AT_name("PMAO_bit")
+       .dwattr $C$DW$216, DW_AT_TI_symbol_name("PMAO_bit")
+       .dwattr $C$DW$216, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$216, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$216, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$216, DW_AT_decl_line(0xc7)
+       .dwattr $C$DW$216, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$68
+
+       .dwattr $C$DW$T$68, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$68, DW_AT_decl_line(0xc0)
+       .dwattr $C$DW$T$68, DW_AT_decl_column(0x08)
+
+$C$DW$T$70     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$70, DW_AT_byte_size(0x04)
+$C$DW$217      .dwtag  DW_TAG_member
+       .dwattr $C$DW$217, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$217, DW_AT_name("IEPCLK")
+       .dwattr $C$DW$217, DW_AT_TI_symbol_name("IEPCLK")
+       .dwattr $C$DW$217, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$217, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$217, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$217, DW_AT_decl_line(0xd0)
+       .dwattr $C$DW$217, DW_AT_decl_column(0x15)
+$C$DW$218      .dwtag  DW_TAG_member
+       .dwattr $C$DW$218, DW_AT_type(*$C$DW$T$69)
+       .dwattr $C$DW$218, DW_AT_name("IEPCLK_bit")
+       .dwattr $C$DW$218, DW_AT_TI_symbol_name("IEPCLK_bit")
+       .dwattr $C$DW$218, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$218, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$218, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$218, DW_AT_decl_line(0xd5)
+       .dwattr $C$DW$218, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$70
+
+       .dwattr $C$DW$T$70, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$70, DW_AT_decl_line(0xcf)
+       .dwattr $C$DW$T$70, DW_AT_decl_column(0x08)
+
+$C$DW$T$72     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$72, DW_AT_byte_size(0x04)
+$C$DW$219      .dwtag  DW_TAG_member
+       .dwattr $C$DW$219, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$219, DW_AT_name("SPP")
+       .dwattr $C$DW$219, DW_AT_TI_symbol_name("SPP")
+       .dwattr $C$DW$219, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$219, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$219, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$219, DW_AT_decl_line(0xdb)
+       .dwattr $C$DW$219, DW_AT_decl_column(0x15)
+$C$DW$220      .dwtag  DW_TAG_member
+       .dwattr $C$DW$220, DW_AT_type(*$C$DW$T$71)
+       .dwattr $C$DW$220, DW_AT_name("SPP_bit")
+       .dwattr $C$DW$220, DW_AT_TI_symbol_name("SPP_bit")
+       .dwattr $C$DW$220, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$220, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$220, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$220, DW_AT_decl_line(0xe1)
+       .dwattr $C$DW$220, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$72
+
+       .dwattr $C$DW$T$72, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$72, DW_AT_decl_line(0xda)
+       .dwattr $C$DW$T$72, DW_AT_decl_column(0x08)
+
+$C$DW$T$74     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$74, DW_AT_byte_size(0x04)
+$C$DW$221      .dwtag  DW_TAG_member
+       .dwattr $C$DW$221, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$221, DW_AT_name("PIN_MX")
+       .dwattr $C$DW$221, DW_AT_TI_symbol_name("PIN_MX")
+       .dwattr $C$DW$221, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$221, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$221, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$221, DW_AT_decl_line(0xe9)
+       .dwattr $C$DW$221, DW_AT_decl_column(0x15)
+$C$DW$222      .dwtag  DW_TAG_member
+       .dwattr $C$DW$222, DW_AT_type(*$C$DW$T$73)
+       .dwattr $C$DW$222, DW_AT_name("PIN_MX_bit")
+       .dwattr $C$DW$222, DW_AT_TI_symbol_name("PIN_MX_bit")
+       .dwattr $C$DW$222, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$222, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$222, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$222, DW_AT_decl_line(0xee)
+       .dwattr $C$DW$222, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$74
+
+       .dwattr $C$DW$T$74, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h")
+       .dwattr $C$DW$T$74, DW_AT_decl_line(0xe8)
+       .dwattr $C$DW$T$74, DW_AT_decl_column(0x08)
+
+$C$DW$T$76     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$76, DW_AT_byte_size(0x04)
+$C$DW$223      .dwtag  DW_TAG_member
+       .dwattr $C$DW$223, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$223, DW_AT_name("CTRL")
+       .dwattr $C$DW$223, DW_AT_TI_symbol_name("CTRL")
+       .dwattr $C$DW$223, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$223, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$223, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$223, DW_AT_decl_line(0x2a)
+       .dwattr $C$DW$223, DW_AT_decl_column(0x15)
+$C$DW$224      .dwtag  DW_TAG_member
+       .dwattr $C$DW$224, DW_AT_type(*$C$DW$T$75)
+       .dwattr $C$DW$224, DW_AT_name("CTRL_bit")
+       .dwattr $C$DW$224, DW_AT_TI_symbol_name("CTRL_bit")
+       .dwattr $C$DW$224, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$224, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$224, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$224, DW_AT_decl_line(0x36)
+       .dwattr $C$DW$224, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$76
+
+       .dwattr $C$DW$T$76, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$76, DW_AT_decl_line(0x29)
+       .dwattr $C$DW$T$76, DW_AT_decl_column(0x08)
+
+$C$DW$T$78     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$78, DW_AT_byte_size(0x04)
+$C$DW$225      .dwtag  DW_TAG_member
+       .dwattr $C$DW$225, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$225, DW_AT_name("STS")
+       .dwattr $C$DW$225, DW_AT_TI_symbol_name("STS")
+       .dwattr $C$DW$225, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$225, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$225, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$225, DW_AT_decl_line(0x3c)
+       .dwattr $C$DW$225, DW_AT_decl_column(0x15)
+$C$DW$226      .dwtag  DW_TAG_member
+       .dwattr $C$DW$226, DW_AT_type(*$C$DW$T$77)
+       .dwattr $C$DW$226, DW_AT_name("STS_bit")
+       .dwattr $C$DW$226, DW_AT_TI_symbol_name("STS_bit")
+       .dwattr $C$DW$226, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$226, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$226, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$226, DW_AT_decl_line(0x41)
+       .dwattr $C$DW$226, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$78
+
+       .dwattr $C$DW$T$78, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$78, DW_AT_decl_line(0x3b)
+       .dwattr $C$DW$T$78, DW_AT_decl_column(0x08)
+
+$C$DW$T$80     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$80, DW_AT_byte_size(0x04)
+$C$DW$227      .dwtag  DW_TAG_member
+       .dwattr $C$DW$227, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$227, DW_AT_name("WAKEUP_EN")
+       .dwattr $C$DW$227, DW_AT_TI_symbol_name("WAKEUP_EN")
+       .dwattr $C$DW$227, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$227, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$227, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$227, DW_AT_decl_line(0x47)
+       .dwattr $C$DW$227, DW_AT_decl_column(0x15)
+$C$DW$228      .dwtag  DW_TAG_member
+       .dwattr $C$DW$228, DW_AT_type(*$C$DW$T$79)
+       .dwattr $C$DW$228, DW_AT_name("WAKEUP_EN_bit")
+       .dwattr $C$DW$228, DW_AT_TI_symbol_name("WAKEUP_EN_bit")
+       .dwattr $C$DW$228, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$228, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$228, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$228, DW_AT_decl_line(0x4b)
+       .dwattr $C$DW$228, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$80
+
+       .dwattr $C$DW$T$80, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$80, DW_AT_decl_line(0x46)
+       .dwattr $C$DW$T$80, DW_AT_decl_column(0x08)
+
+$C$DW$T$82     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$82, DW_AT_byte_size(0x04)
+$C$DW$229      .dwtag  DW_TAG_member
+       .dwattr $C$DW$229, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$229, DW_AT_name("CYCLE")
+       .dwattr $C$DW$229, DW_AT_TI_symbol_name("CYCLE")
+       .dwattr $C$DW$229, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$229, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$229, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$229, DW_AT_decl_line(0x51)
+       .dwattr $C$DW$229, DW_AT_decl_column(0x15)
+$C$DW$230      .dwtag  DW_TAG_member
+       .dwattr $C$DW$230, DW_AT_type(*$C$DW$T$81)
+       .dwattr $C$DW$230, DW_AT_name("CYCLE_bit")
+       .dwattr $C$DW$230, DW_AT_TI_symbol_name("CYCLE_bit")
+       .dwattr $C$DW$230, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$230, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$230, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$230, DW_AT_decl_line(0x55)
+       .dwattr $C$DW$230, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$82
+
+       .dwattr $C$DW$T$82, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$82, DW_AT_decl_line(0x50)
+       .dwattr $C$DW$T$82, DW_AT_decl_column(0x08)
+
+$C$DW$T$84     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$84, DW_AT_byte_size(0x04)
+$C$DW$231      .dwtag  DW_TAG_member
+       .dwattr $C$DW$231, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$231, DW_AT_name("STALL")
+       .dwattr $C$DW$231, DW_AT_TI_symbol_name("STALL")
+       .dwattr $C$DW$231, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$231, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$231, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$231, DW_AT_decl_line(0x5b)
+       .dwattr $C$DW$231, DW_AT_decl_column(0x15)
+$C$DW$232      .dwtag  DW_TAG_member
+       .dwattr $C$DW$232, DW_AT_type(*$C$DW$T$83)
+       .dwattr $C$DW$232, DW_AT_name("STALL_bit")
+       .dwattr $C$DW$232, DW_AT_TI_symbol_name("STALL_bit")
+       .dwattr $C$DW$232, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$232, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$232, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$232, DW_AT_decl_line(0x5f)
+       .dwattr $C$DW$232, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$84
+
+       .dwattr $C$DW$T$84, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$84, DW_AT_decl_line(0x5a)
+       .dwattr $C$DW$T$84, DW_AT_decl_column(0x08)
+
+$C$DW$T$86     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$86, DW_AT_byte_size(0x04)
+$C$DW$233      .dwtag  DW_TAG_member
+       .dwattr $C$DW$233, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$233, DW_AT_name("CTBIR0")
+       .dwattr $C$DW$233, DW_AT_TI_symbol_name("CTBIR0")
+       .dwattr $C$DW$233, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$233, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$233, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$233, DW_AT_decl_line(0x68)
+       .dwattr $C$DW$233, DW_AT_decl_column(0x15)
+$C$DW$234      .dwtag  DW_TAG_member
+       .dwattr $C$DW$234, DW_AT_type(*$C$DW$T$85)
+       .dwattr $C$DW$234, DW_AT_name("CTBIR0_bit")
+       .dwattr $C$DW$234, DW_AT_TI_symbol_name("CTBIR0_bit")
+       .dwattr $C$DW$234, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$234, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$234, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$234, DW_AT_decl_line(0x6f)
+       .dwattr $C$DW$234, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$86
+
+       .dwattr $C$DW$T$86, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$86, DW_AT_decl_line(0x67)
+       .dwattr $C$DW$T$86, DW_AT_decl_column(0x08)
+
+$C$DW$T$88     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$88, DW_AT_byte_size(0x04)
+$C$DW$235      .dwtag  DW_TAG_member
+       .dwattr $C$DW$235, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$235, DW_AT_name("CTBIR1")
+       .dwattr $C$DW$235, DW_AT_TI_symbol_name("CTBIR1")
+       .dwattr $C$DW$235, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$235, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$235, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$235, DW_AT_decl_line(0x75)
+       .dwattr $C$DW$235, DW_AT_decl_column(0x15)
+$C$DW$236      .dwtag  DW_TAG_member
+       .dwattr $C$DW$236, DW_AT_type(*$C$DW$T$87)
+       .dwattr $C$DW$236, DW_AT_name("CTBIR1_bit")
+       .dwattr $C$DW$236, DW_AT_TI_symbol_name("CTBIR1_bit")
+       .dwattr $C$DW$236, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$236, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$236, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$236, DW_AT_decl_line(0x7c)
+       .dwattr $C$DW$236, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$88
+
+       .dwattr $C$DW$T$88, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$88, DW_AT_decl_line(0x74)
+       .dwattr $C$DW$T$88, DW_AT_decl_column(0x08)
+
+$C$DW$T$90     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$90, DW_AT_byte_size(0x04)
+$C$DW$237      .dwtag  DW_TAG_member
+       .dwattr $C$DW$237, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$237, DW_AT_name("CTPPR0")
+       .dwattr $C$DW$237, DW_AT_TI_symbol_name("CTPPR0")
+       .dwattr $C$DW$237, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$237, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$237, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$237, DW_AT_decl_line(0x82)
+       .dwattr $C$DW$237, DW_AT_decl_column(0x15)
+$C$DW$238      .dwtag  DW_TAG_member
+       .dwattr $C$DW$238, DW_AT_type(*$C$DW$T$89)
+       .dwattr $C$DW$238, DW_AT_name("CTPPR0_bit")
+       .dwattr $C$DW$238, DW_AT_TI_symbol_name("CTPPR0_bit")
+       .dwattr $C$DW$238, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$238, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$238, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$238, DW_AT_decl_line(0x87)
+       .dwattr $C$DW$238, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$90
+
+       .dwattr $C$DW$T$90, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$90, DW_AT_decl_line(0x81)
+       .dwattr $C$DW$T$90, DW_AT_decl_column(0x08)
+
+$C$DW$T$92     .dwtag  DW_TAG_union_type
+       .dwattr $C$DW$T$92, DW_AT_byte_size(0x04)
+$C$DW$239      .dwtag  DW_TAG_member
+       .dwattr $C$DW$239, DW_AT_type(*$C$DW$T$48)
+       .dwattr $C$DW$239, DW_AT_name("CTPPR1")
+       .dwattr $C$DW$239, DW_AT_TI_symbol_name("CTPPR1")
+       .dwattr $C$DW$239, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$239, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$239, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$239, DW_AT_decl_line(0x8d)
+       .dwattr $C$DW$239, DW_AT_decl_column(0x15)
+$C$DW$240      .dwtag  DW_TAG_member
+       .dwattr $C$DW$240, DW_AT_type(*$C$DW$T$91)
+       .dwattr $C$DW$240, DW_AT_name("CTPPR1_bit")
+       .dwattr $C$DW$240, DW_AT_TI_symbol_name("CTPPR1_bit")
+       .dwattr $C$DW$240, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$240, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$240, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$240, DW_AT_decl_line(0x92)
+       .dwattr $C$DW$240, DW_AT_decl_column(0x05)
+       .dwendtag $C$DW$T$92
+
+       .dwattr $C$DW$T$92, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h")
+       .dwattr $C$DW$T$92, DW_AT_decl_line(0x8c)
+       .dwattr $C$DW$T$92, DW_AT_decl_column(0x08)
+
+$C$DW$T$19     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$19, DW_AT_name("__TI_wildcard")
+       .dwattr $C$DW$T$19, DW_AT_declaration
+       .dwendtag $C$DW$T$19
+
+$C$DW$T$105    .dwtag  DW_TAG_pointer_type
+       .dwattr $C$DW$T$105, DW_AT_type(*$C$DW$T$19)
+       .dwattr $C$DW$T$105, DW_AT_address_class(0x20)
+$C$DW$T$2      .dwtag  DW_TAG_unspecified_type
+       .dwattr $C$DW$T$2, DW_AT_name("void")
+$C$DW$T$3      .dwtag  DW_TAG_pointer_type
+       .dwattr $C$DW$T$3, DW_AT_type(*$C$DW$T$2)
+       .dwattr $C$DW$T$3, DW_AT_address_class(0x20)
+$C$DW$T$106    .dwtag  DW_TAG_const_type
+       .dwattr $C$DW$T$106, DW_AT_type(*$C$DW$T$2)
+$C$DW$T$107    .dwtag  DW_TAG_pointer_type
+       .dwattr $C$DW$T$107, DW_AT_type(*$C$DW$T$106)
+       .dwattr $C$DW$T$107, DW_AT_address_class(0x20)
+$C$DW$T$4      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$4, DW_AT_encoding(DW_ATE_boolean)
+       .dwattr $C$DW$T$4, DW_AT_name("bool")
+       .dwattr $C$DW$T$4, DW_AT_byte_size(0x01)
+$C$DW$T$5      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$5, DW_AT_encoding(DW_ATE_signed_char)
+       .dwattr $C$DW$T$5, DW_AT_name("signed char")
+       .dwattr $C$DW$T$5, DW_AT_byte_size(0x01)
+$C$DW$T$6      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$6, DW_AT_encoding(DW_ATE_unsigned_char)
+       .dwattr $C$DW$T$6, DW_AT_name("unsigned char")
+       .dwattr $C$DW$T$6, DW_AT_byte_size(0x01)
+$C$DW$T$112    .dwtag  DW_TAG_typedef, DW_AT_name("uint8_t")
+       .dwattr $C$DW$T$112, DW_AT_type(*$C$DW$T$6)
+       .dwattr $C$DW$T$112, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$112, DW_AT_decl_file("/home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h")
+       .dwattr $C$DW$T$112, DW_AT_decl_line(0x2b)
+       .dwattr $C$DW$T$112, DW_AT_decl_column(0x1c)
+$C$DW$T$7      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$7, DW_AT_encoding(DW_ATE_signed_char)
+       .dwattr $C$DW$T$7, DW_AT_name("wchar_t")
+       .dwattr $C$DW$T$7, DW_AT_byte_size(0x04)
+$C$DW$T$8      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$8, DW_AT_encoding(DW_ATE_signed)
+       .dwattr $C$DW$T$8, DW_AT_name("short")
+       .dwattr $C$DW$T$8, DW_AT_byte_size(0x02)
+$C$DW$T$113    .dwtag  DW_TAG_typedef, DW_AT_name("int16_t")
+       .dwattr $C$DW$T$113, DW_AT_type(*$C$DW$T$8)
+       .dwattr $C$DW$T$113, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$113, DW_AT_decl_file("/home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h")
+       .dwattr $C$DW$T$113, DW_AT_decl_line(0x2c)
+       .dwattr $C$DW$T$113, DW_AT_decl_column(0x1d)
+$C$DW$T$9      .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$9, DW_AT_encoding(DW_ATE_unsigned)
+       .dwattr $C$DW$T$9, DW_AT_name("unsigned short")
+       .dwattr $C$DW$T$9, DW_AT_byte_size(0x02)
+$C$DW$T$115    .dwtag  DW_TAG_typedef, DW_AT_name("uint16_t")
+       .dwattr $C$DW$T$115, DW_AT_type(*$C$DW$T$9)
+       .dwattr $C$DW$T$115, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$115, DW_AT_decl_file("/home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h")
+       .dwattr $C$DW$T$115, DW_AT_decl_line(0x2d)
+       .dwattr $C$DW$T$115, DW_AT_decl_column(0x1c)
+$C$DW$T$116    .dwtag  DW_TAG_const_type
+       .dwattr $C$DW$T$116, DW_AT_type(*$C$DW$T$115)
+$C$DW$T$10     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$10, DW_AT_encoding(DW_ATE_signed)
+       .dwattr $C$DW$T$10, DW_AT_name("int")
+       .dwattr $C$DW$T$10, DW_AT_byte_size(0x04)
+$C$DW$T$123    .dwtag  DW_TAG_typedef, DW_AT_name("int32_t")
+       .dwattr $C$DW$T$123, DW_AT_type(*$C$DW$T$10)
+       .dwattr $C$DW$T$123, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$123, DW_AT_decl_file("/home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h")
+       .dwattr $C$DW$T$123, DW_AT_decl_line(0x2e)
+       .dwattr $C$DW$T$123, DW_AT_decl_column(0x1d)
+$C$DW$T$124    .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$124, DW_AT_type(*$C$DW$T$123)
+
+$C$DW$T$125    .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$125, DW_AT_type(*$C$DW$T$124)
+       .dwattr $C$DW$T$125, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$125, DW_AT_byte_size(0x28)
+$C$DW$241      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$241, DW_AT_upper_bound(0x09)
+       .dwendtag $C$DW$T$125
+
+$C$DW$T$11     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$11, DW_AT_encoding(DW_ATE_unsigned)
+       .dwattr $C$DW$T$11, DW_AT_name("unsigned int")
+       .dwattr $C$DW$T$11, DW_AT_byte_size(0x04)
+$C$DW$T$33     .dwtag  DW_TAG_typedef, DW_AT_name("uint32_t")
+       .dwattr $C$DW$T$33, DW_AT_type(*$C$DW$T$11)
+       .dwattr $C$DW$T$33, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$33, DW_AT_decl_file("/home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h")
+       .dwattr $C$DW$T$33, DW_AT_decl_line(0x2f)
+       .dwattr $C$DW$T$33, DW_AT_decl_column(0x1c)
+
+$C$DW$T$34     .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$34, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$T$34, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$34, DW_AT_byte_size(0x04)
+$C$DW$242      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$242, DW_AT_upper_bound(0x00)
+       .dwendtag $C$DW$T$34
+
+
+$C$DW$T$35     .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$35, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$T$35, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$35, DW_AT_byte_size(0x08)
+$C$DW$243      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$243, DW_AT_upper_bound(0x01)
+       .dwendtag $C$DW$T$35
+
+
+$C$DW$T$46     .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$46, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$T$46, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$46, DW_AT_byte_size(0x0c)
+$C$DW$244      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$244, DW_AT_upper_bound(0x02)
+       .dwendtag $C$DW$T$46
+
+
+$C$DW$T$132    .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$132, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$T$132, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$132, DW_AT_byte_size(0x18)
+$C$DW$245      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$245, DW_AT_upper_bound(0x05)
+       .dwendtag $C$DW$T$132
+
+
+$C$DW$T$133    .dwtag  DW_TAG_array_type
+       .dwattr $C$DW$T$133, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$T$133, DW_AT_language(DW_LANG_C)
+       .dwattr $C$DW$T$133, DW_AT_byte_size(0xc0)
+$C$DW$246      .dwtag  DW_TAG_subrange_type
+       .dwattr $C$DW$246, DW_AT_upper_bound(0x2f)
+       .dwendtag $C$DW$T$133
+
+$C$DW$T$48     .dwtag  DW_TAG_volatile_type
+       .dwattr $C$DW$T$48, DW_AT_type(*$C$DW$T$33)
+$C$DW$T$12     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$12, DW_AT_encoding(DW_ATE_signed)
+       .dwattr $C$DW$T$12, DW_AT_name("long")
+       .dwattr $C$DW$T$12, DW_AT_byte_size(0x04)
+$C$DW$T$13     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$13, DW_AT_encoding(DW_ATE_unsigned)
+       .dwattr $C$DW$T$13, DW_AT_name("unsigned long")
+       .dwattr $C$DW$T$13, DW_AT_byte_size(0x04)
+$C$DW$T$14     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$14, DW_AT_encoding(DW_ATE_signed)
+       .dwattr $C$DW$T$14, DW_AT_name("long long")
+       .dwattr $C$DW$T$14, DW_AT_byte_size(0x08)
+$C$DW$T$15     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$15, DW_AT_encoding(DW_ATE_unsigned)
+       .dwattr $C$DW$T$15, DW_AT_name("unsigned long long")
+       .dwattr $C$DW$T$15, DW_AT_byte_size(0x08)
+$C$DW$T$16     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$16, DW_AT_encoding(DW_ATE_float)
+       .dwattr $C$DW$T$16, DW_AT_name("float")
+       .dwattr $C$DW$T$16, DW_AT_byte_size(0x04)
+$C$DW$T$17     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$17, DW_AT_encoding(DW_ATE_float)
+       .dwattr $C$DW$T$17, DW_AT_name("double")
+       .dwattr $C$DW$T$17, DW_AT_byte_size(0x08)
+$C$DW$T$18     .dwtag  DW_TAG_base_type
+       .dwattr $C$DW$T$18, DW_AT_encoding(DW_ATE_float)
+       .dwattr $C$DW$T$18, DW_AT_name("long double")
+       .dwattr $C$DW$T$18, DW_AT_byte_size(0x08)
+
+$C$DW$T$93     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$93, DW_AT_name("my_resource_table")
+       .dwattr $C$DW$T$93, DW_AT_byte_size(0x14)
+$C$DW$247      .dwtag  DW_TAG_member
+       .dwattr $C$DW$247, DW_AT_type(*$C$DW$T$94)
+       .dwattr $C$DW$247, DW_AT_name("base")
+       .dwattr $C$DW$247, DW_AT_TI_symbol_name("base")
+       .dwattr $C$DW$247, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$247, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$247, DW_AT_decl_file("resource_table_empty.h")
+       .dwattr $C$DW$247, DW_AT_decl_line(0x39)
+       .dwattr $C$DW$247, DW_AT_decl_column(0x18)
+$C$DW$248      .dwtag  DW_TAG_member
+       .dwattr $C$DW$248, DW_AT_type(*$C$DW$T$34)
+       .dwattr $C$DW$248, DW_AT_name("offset")
+       .dwattr $C$DW$248, DW_AT_TI_symbol_name("offset")
+       .dwattr $C$DW$248, DW_AT_data_member_location[DW_OP_plus_uconst 0x10]
+       .dwattr $C$DW$248, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$248, DW_AT_decl_file("resource_table_empty.h")
+       .dwattr $C$DW$248, DW_AT_decl_line(0x3b)
+       .dwattr $C$DW$248, DW_AT_decl_column(0x0b)
+       .dwendtag $C$DW$T$93
+
+       .dwattr $C$DW$T$93, DW_AT_decl_file("resource_table_empty.h")
+       .dwattr $C$DW$T$93, DW_AT_decl_line(0x38)
+       .dwattr $C$DW$T$93, DW_AT_decl_column(0x08)
+
+$C$DW$T$94     .dwtag  DW_TAG_structure_type
+       .dwattr $C$DW$T$94, DW_AT_name("resource_table")
+       .dwattr $C$DW$T$94, DW_AT_byte_size(0x10)
+$C$DW$249      .dwtag  DW_TAG_member
+       .dwattr $C$DW$249, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$249, DW_AT_name("ver")
+       .dwattr $C$DW$249, DW_AT_TI_symbol_name("ver")
+       .dwattr $C$DW$249, DW_AT_data_member_location[DW_OP_plus_uconst 0x0]
+       .dwattr $C$DW$249, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$249, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/rsc_types.h")
+       .dwattr $C$DW$249, DW_AT_decl_line(0x57)
+       .dwattr $C$DW$249, DW_AT_decl_column(0x0b)
+$C$DW$250      .dwtag  DW_TAG_member
+       .dwattr $C$DW$250, DW_AT_type(*$C$DW$T$33)
+       .dwattr $C$DW$250, DW_AT_name("num")
+       .dwattr $C$DW$250, DW_AT_TI_symbol_name("num")
+       .dwattr $C$DW$250, DW_AT_data_member_location[DW_OP_plus_uconst 0x4]
+       .dwattr $C$DW$250, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$250, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/rsc_types.h")
+       .dwattr $C$DW$250, DW_AT_decl_line(0x58)
+       .dwattr $C$DW$250, DW_AT_decl_column(0x0b)
+$C$DW$251      .dwtag  DW_TAG_member
+       .dwattr $C$DW$251, DW_AT_type(*$C$DW$T$35)
+       .dwattr $C$DW$251, DW_AT_name("reserved")
+       .dwattr $C$DW$251, DW_AT_TI_symbol_name("reserved")
+       .dwattr $C$DW$251, DW_AT_data_member_location[DW_OP_plus_uconst 0x8]
+       .dwattr $C$DW$251, DW_AT_accessibility(DW_ACCESS_public)
+       .dwattr $C$DW$251, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/rsc_types.h")
+       .dwattr $C$DW$251, DW_AT_decl_line(0x59)
+       .dwattr $C$DW$251, DW_AT_decl_column(0x0b)
+       .dwendtag $C$DW$T$94
+
+       .dwattr $C$DW$T$94, DW_AT_decl_file("/home/a0273976local/pru-software-support-package/include/rsc_types.h")
+       .dwattr $C$DW$T$94, DW_AT_decl_line(0x56)
+       .dwattr $C$DW$T$94, DW_AT_decl_column(0x08)
+       .dwattr $C$DW$CU, DW_AT_language(DW_LANG_C)
+
+;***************************************************************
+;* DWARF CIE ENTRIES                                           *
+;***************************************************************
+
+$C$DW$CIE      .dwcie 14
+       .dwcfi  cfa_register, 8
+       .dwcfi  cfa_offset, 0
+       .dwcfi  undefined, 0
+       .dwcfi  undefined, 1
+       .dwcfi  undefined, 2
+       .dwcfi  undefined, 3
+       .dwcfi  undefined, 4
+       .dwcfi  undefined, 5
+       .dwcfi  undefined, 6
+       .dwcfi  undefined, 7
+       .dwcfi  same_value, 8
+       .dwcfi  same_value, 9
+       .dwcfi  same_value, 10
+       .dwcfi  same_value, 11
+       .dwcfi  undefined, 12
+       .dwcfi  undefined, 13
+       .dwcfi  undefined, 14
+       .dwcfi  undefined, 15
+       .dwcfi  same_value, 16
+       .dwcfi  same_value, 17
+       .dwcfi  same_value, 18
+       .dwcfi  same_value, 19
+       .dwcfi  same_value, 20
+       .dwcfi  same_value, 21
+       .dwcfi  same_value, 22
+       .dwcfi  same_value, 23
+       .dwcfi  same_value, 24
+       .dwcfi  same_value, 25
+       .dwcfi  same_value, 26
+       .dwcfi  same_value, 27
+       .dwcfi  same_value, 28
+       .dwcfi  same_value, 29
+       .dwcfi  same_value, 30
+       .dwcfi  same_value, 31
+       .dwcfi  same_value, 32
+       .dwcfi  same_value, 33
+       .dwcfi  same_value, 34
+       .dwcfi  same_value, 35
+       .dwcfi  same_value, 36
+       .dwcfi  same_value, 37
+       .dwcfi  same_value, 38
+       .dwcfi  same_value, 39
+       .dwcfi  same_value, 40
+       .dwcfi  same_value, 41
+       .dwcfi  same_value, 42
+       .dwcfi  same_value, 43
+       .dwcfi  same_value, 44
+       .dwcfi  same_value, 45
+       .dwcfi  same_value, 46
+       .dwcfi  same_value, 47
+       .dwcfi  same_value, 48
+       .dwcfi  same_value, 49
+       .dwcfi  same_value, 50
+       .dwcfi  same_value, 51
+       .dwcfi  same_value, 52
+       .dwcfi  same_value, 53
+       .dwcfi  same_value, 54
+       .dwcfi  same_value, 55
+       .dwcfi  undefined, 56
+       .dwcfi  undefined, 57
+       .dwcfi  undefined, 58
+       .dwcfi  undefined, 59
+       .dwcfi  undefined, 60
+       .dwcfi  undefined, 61
+       .dwcfi  undefined, 62
+       .dwcfi  undefined, 63
+       .dwcfi  undefined, 64
+       .dwcfi  undefined, 65
+       .dwcfi  undefined, 66
+       .dwcfi  undefined, 67
+       .dwcfi  undefined, 68
+       .dwcfi  undefined, 69
+       .dwcfi  undefined, 70
+       .dwcfi  undefined, 71
+       .dwcfi  undefined, 72
+       .dwcfi  undefined, 73
+       .dwcfi  undefined, 74
+       .dwcfi  undefined, 75
+       .dwcfi  undefined, 76
+       .dwcfi  undefined, 77
+       .dwcfi  undefined, 78
+       .dwcfi  undefined, 79
+       .dwcfi  undefined, 80
+       .dwcfi  undefined, 81
+       .dwcfi  undefined, 82
+       .dwcfi  undefined, 83
+       .dwcfi  undefined, 84
+       .dwcfi  undefined, 85
+       .dwcfi  undefined, 86
+       .dwcfi  undefined, 87
+       .dwcfi  undefined, 88
+       .dwcfi  undefined, 89
+       .dwcfi  undefined, 90
+       .dwcfi  undefined, 91
+       .dwcfi  undefined, 92
+       .dwcfi  undefined, 93
+       .dwcfi  undefined, 94
+       .dwcfi  undefined, 95
+       .dwcfi  undefined, 96
+       .dwcfi  undefined, 97
+       .dwcfi  undefined, 98
+       .dwcfi  undefined, 99
+       .dwcfi  undefined, 100
+       .dwcfi  undefined, 101
+       .dwcfi  undefined, 102
+       .dwcfi  undefined, 103
+       .dwcfi  undefined, 104
+       .dwcfi  undefined, 105
+       .dwcfi  undefined, 106
+       .dwcfi  undefined, 107
+       .dwcfi  undefined, 108
+       .dwcfi  undefined, 109
+       .dwcfi  undefined, 110
+       .dwcfi  undefined, 111
+       .dwcfi  undefined, 112
+       .dwcfi  undefined, 113
+       .dwcfi  undefined, 114
+       .dwcfi  undefined, 115
+       .dwcfi  undefined, 116
+       .dwcfi  undefined, 117
+       .dwcfi  undefined, 118
+       .dwcfi  undefined, 119
+       .dwcfi  undefined, 120
+       .dwcfi  undefined, 121
+       .dwcfi  undefined, 122
+       .dwcfi  undefined, 123
+       .dwcfi  undefined, 124
+       .dwcfi  undefined, 125
+       .dwcfi  undefined, 126
+       .dwcfi  undefined, 127
+       .dwcfi  undefined, 128
+       .dwcfi  undefined, 129
+       .dwcfi  undefined, 130
+       .dwcfi  undefined, 131
+       .dwcfi  undefined, 132
+       .dwcfi  undefined, 133
+       .dwcfi  undefined, 134
+       .dwendentry
+
+;***************************************************************
+;* DWARF REGISTER MAP                                          *
+;***************************************************************
+
+$C$DW$252      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b0")
+       .dwattr $C$DW$252, DW_AT_location[DW_OP_reg0]
+$C$DW$253      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b1")
+       .dwattr $C$DW$253, DW_AT_location[DW_OP_reg1]
+$C$DW$254      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b2")
+       .dwattr $C$DW$254, DW_AT_location[DW_OP_reg2]
+$C$DW$255      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R0_b3")
+       .dwattr $C$DW$255, DW_AT_location[DW_OP_reg3]
+$C$DW$256      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b0")
+       .dwattr $C$DW$256, DW_AT_location[DW_OP_reg4]
+$C$DW$257      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b1")
+       .dwattr $C$DW$257, DW_AT_location[DW_OP_reg5]
+$C$DW$258      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b2")
+       .dwattr $C$DW$258, DW_AT_location[DW_OP_reg6]
+$C$DW$259      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R1_b3")
+       .dwattr $C$DW$259, DW_AT_location[DW_OP_reg7]
+$C$DW$260      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b0")
+       .dwattr $C$DW$260, DW_AT_location[DW_OP_reg8]
+$C$DW$261      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b1")
+       .dwattr $C$DW$261, DW_AT_location[DW_OP_reg9]
+$C$DW$262      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b2")
+       .dwattr $C$DW$262, DW_AT_location[DW_OP_reg10]
+$C$DW$263      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R2_b3")
+       .dwattr $C$DW$263, DW_AT_location[DW_OP_reg11]
+$C$DW$264      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b0")
+       .dwattr $C$DW$264, DW_AT_location[DW_OP_reg12]
+$C$DW$265      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b1")
+       .dwattr $C$DW$265, DW_AT_location[DW_OP_reg13]
+$C$DW$266      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b2")
+       .dwattr $C$DW$266, DW_AT_location[DW_OP_reg14]
+$C$DW$267      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R3_b3")
+       .dwattr $C$DW$267, DW_AT_location[DW_OP_reg15]
+$C$DW$268      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b0")
+       .dwattr $C$DW$268, DW_AT_location[DW_OP_reg16]
+$C$DW$269      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b1")
+       .dwattr $C$DW$269, DW_AT_location[DW_OP_reg17]
+$C$DW$270      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b2")
+       .dwattr $C$DW$270, DW_AT_location[DW_OP_reg18]
+$C$DW$271      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R4_b3")
+       .dwattr $C$DW$271, DW_AT_location[DW_OP_reg19]
+$C$DW$272      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b0")
+       .dwattr $C$DW$272, DW_AT_location[DW_OP_reg20]
+$C$DW$273      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b1")
+       .dwattr $C$DW$273, DW_AT_location[DW_OP_reg21]
+$C$DW$274      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b2")
+       .dwattr $C$DW$274, DW_AT_location[DW_OP_reg22]
+$C$DW$275      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R5_b3")
+       .dwattr $C$DW$275, DW_AT_location[DW_OP_reg23]
+$C$DW$276      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b0")
+       .dwattr $C$DW$276, DW_AT_location[DW_OP_reg24]
+$C$DW$277      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b1")
+       .dwattr $C$DW$277, DW_AT_location[DW_OP_reg25]
+$C$DW$278      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b2")
+       .dwattr $C$DW$278, DW_AT_location[DW_OP_reg26]
+$C$DW$279      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R6_b3")
+       .dwattr $C$DW$279, DW_AT_location[DW_OP_reg27]
+$C$DW$280      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b0")
+       .dwattr $C$DW$280, DW_AT_location[DW_OP_reg28]
+$C$DW$281      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b1")
+       .dwattr $C$DW$281, DW_AT_location[DW_OP_reg29]
+$C$DW$282      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b2")
+       .dwattr $C$DW$282, DW_AT_location[DW_OP_reg30]
+$C$DW$283      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R7_b3")
+       .dwattr $C$DW$283, DW_AT_location[DW_OP_reg31]
+$C$DW$284      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b0")
+       .dwattr $C$DW$284, DW_AT_location[DW_OP_regx 0x20]
+$C$DW$285      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b1")
+       .dwattr $C$DW$285, DW_AT_location[DW_OP_regx 0x21]
+$C$DW$286      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b2")
+       .dwattr $C$DW$286, DW_AT_location[DW_OP_regx 0x22]
+$C$DW$287      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R8_b3")
+       .dwattr $C$DW$287, DW_AT_location[DW_OP_regx 0x23]
+$C$DW$288      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b0")
+       .dwattr $C$DW$288, DW_AT_location[DW_OP_regx 0x24]
+$C$DW$289      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b1")
+       .dwattr $C$DW$289, DW_AT_location[DW_OP_regx 0x25]
+$C$DW$290      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b2")
+       .dwattr $C$DW$290, DW_AT_location[DW_OP_regx 0x26]
+$C$DW$291      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R9_b3")
+       .dwattr $C$DW$291, DW_AT_location[DW_OP_regx 0x27]
+$C$DW$292      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b0")
+       .dwattr $C$DW$292, DW_AT_location[DW_OP_regx 0x28]
+$C$DW$293      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b1")
+       .dwattr $C$DW$293, DW_AT_location[DW_OP_regx 0x29]
+$C$DW$294      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b2")
+       .dwattr $C$DW$294, DW_AT_location[DW_OP_regx 0x2a]
+$C$DW$295      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R10_b3")
+       .dwattr $C$DW$295, DW_AT_location[DW_OP_regx 0x2b]
+$C$DW$296      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b0")
+       .dwattr $C$DW$296, DW_AT_location[DW_OP_regx 0x2c]
+$C$DW$297      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b1")
+       .dwattr $C$DW$297, DW_AT_location[DW_OP_regx 0x2d]
+$C$DW$298      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b2")
+       .dwattr $C$DW$298, DW_AT_location[DW_OP_regx 0x2e]
+$C$DW$299      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R11_b3")
+       .dwattr $C$DW$299, DW_AT_location[DW_OP_regx 0x2f]
+$C$DW$300      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b0")
+       .dwattr $C$DW$300, DW_AT_location[DW_OP_regx 0x30]
+$C$DW$301      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b1")
+       .dwattr $C$DW$301, DW_AT_location[DW_OP_regx 0x31]
+$C$DW$302      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b2")
+       .dwattr $C$DW$302, DW_AT_location[DW_OP_regx 0x32]
+$C$DW$303      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R12_b3")
+       .dwattr $C$DW$303, DW_AT_location[DW_OP_regx 0x33]
+$C$DW$304      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b0")
+       .dwattr $C$DW$304, DW_AT_location[DW_OP_regx 0x34]
+$C$DW$305      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b1")
+       .dwattr $C$DW$305, DW_AT_location[DW_OP_regx 0x35]
+$C$DW$306      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b2")
+       .dwattr $C$DW$306, DW_AT_location[DW_OP_regx 0x36]
+$C$DW$307      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R13_b3")
+       .dwattr $C$DW$307, DW_AT_location[DW_OP_regx 0x37]
+$C$DW$308      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b0")
+       .dwattr $C$DW$308, DW_AT_location[DW_OP_regx 0x38]
+$C$DW$309      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b1")
+       .dwattr $C$DW$309, DW_AT_location[DW_OP_regx 0x39]
+$C$DW$310      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b2")
+       .dwattr $C$DW$310, DW_AT_location[DW_OP_regx 0x3a]
+$C$DW$311      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R14_b3")
+       .dwattr $C$DW$311, DW_AT_location[DW_OP_regx 0x3b]
+$C$DW$312      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b0")
+       .dwattr $C$DW$312, DW_AT_location[DW_OP_regx 0x3c]
+$C$DW$313      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b1")
+       .dwattr $C$DW$313, DW_AT_location[DW_OP_regx 0x3d]
+$C$DW$314      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b2")
+       .dwattr $C$DW$314, DW_AT_location[DW_OP_regx 0x3e]
+$C$DW$315      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R15_b3")
+       .dwattr $C$DW$315, DW_AT_location[DW_OP_regx 0x3f]
+$C$DW$316      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b0")
+       .dwattr $C$DW$316, DW_AT_location[DW_OP_regx 0x40]
+$C$DW$317      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b1")
+       .dwattr $C$DW$317, DW_AT_location[DW_OP_regx 0x41]
+$C$DW$318      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b2")
+       .dwattr $C$DW$318, DW_AT_location[DW_OP_regx 0x42]
+$C$DW$319      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R16_b3")
+       .dwattr $C$DW$319, DW_AT_location[DW_OP_regx 0x43]
+$C$DW$320      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b0")
+       .dwattr $C$DW$320, DW_AT_location[DW_OP_regx 0x44]
+$C$DW$321      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b1")
+       .dwattr $C$DW$321, DW_AT_location[DW_OP_regx 0x45]
+$C$DW$322      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b2")
+       .dwattr $C$DW$322, DW_AT_location[DW_OP_regx 0x46]
+$C$DW$323      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R17_b3")
+       .dwattr $C$DW$323, DW_AT_location[DW_OP_regx 0x47]
+$C$DW$324      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b0")
+       .dwattr $C$DW$324, DW_AT_location[DW_OP_regx 0x48]
+$C$DW$325      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b1")
+       .dwattr $C$DW$325, DW_AT_location[DW_OP_regx 0x49]
+$C$DW$326      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b2")
+       .dwattr $C$DW$326, DW_AT_location[DW_OP_regx 0x4a]
+$C$DW$327      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R18_b3")
+       .dwattr $C$DW$327, DW_AT_location[DW_OP_regx 0x4b]
+$C$DW$328      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b0")
+       .dwattr $C$DW$328, DW_AT_location[DW_OP_regx 0x4c]
+$C$DW$329      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b1")
+       .dwattr $C$DW$329, DW_AT_location[DW_OP_regx 0x4d]
+$C$DW$330      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b2")
+       .dwattr $C$DW$330, DW_AT_location[DW_OP_regx 0x4e]
+$C$DW$331      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R19_b3")
+       .dwattr $C$DW$331, DW_AT_location[DW_OP_regx 0x4f]
+$C$DW$332      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b0")
+       .dwattr $C$DW$332, DW_AT_location[DW_OP_regx 0x50]
+$C$DW$333      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b1")
+       .dwattr $C$DW$333, DW_AT_location[DW_OP_regx 0x51]
+$C$DW$334      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b2")
+       .dwattr $C$DW$334, DW_AT_location[DW_OP_regx 0x52]
+$C$DW$335      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R20_b3")
+       .dwattr $C$DW$335, DW_AT_location[DW_OP_regx 0x53]
+$C$DW$336      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b0")
+       .dwattr $C$DW$336, DW_AT_location[DW_OP_regx 0x54]
+$C$DW$337      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b1")
+       .dwattr $C$DW$337, DW_AT_location[DW_OP_regx 0x55]
+$C$DW$338      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b2")
+       .dwattr $C$DW$338, DW_AT_location[DW_OP_regx 0x56]
+$C$DW$339      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R21_b3")
+       .dwattr $C$DW$339, DW_AT_location[DW_OP_regx 0x57]
+$C$DW$340      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b0")
+       .dwattr $C$DW$340, DW_AT_location[DW_OP_regx 0x58]
+$C$DW$341      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b1")
+       .dwattr $C$DW$341, DW_AT_location[DW_OP_regx 0x59]
+$C$DW$342      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b2")
+       .dwattr $C$DW$342, DW_AT_location[DW_OP_regx 0x5a]
+$C$DW$343      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R22_b3")
+       .dwattr $C$DW$343, DW_AT_location[DW_OP_regx 0x5b]
+$C$DW$344      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b0")
+       .dwattr $C$DW$344, DW_AT_location[DW_OP_regx 0x5c]
+$C$DW$345      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b1")
+       .dwattr $C$DW$345, DW_AT_location[DW_OP_regx 0x5d]
+$C$DW$346      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b2")
+       .dwattr $C$DW$346, DW_AT_location[DW_OP_regx 0x5e]
+$C$DW$347      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R23_b3")
+       .dwattr $C$DW$347, DW_AT_location[DW_OP_regx 0x5f]
+$C$DW$348      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b0")
+       .dwattr $C$DW$348, DW_AT_location[DW_OP_regx 0x60]
+$C$DW$349      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b1")
+       .dwattr $C$DW$349, DW_AT_location[DW_OP_regx 0x61]
+$C$DW$350      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b2")
+       .dwattr $C$DW$350, DW_AT_location[DW_OP_regx 0x62]
+$C$DW$351      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R24_b3")
+       .dwattr $C$DW$351, DW_AT_location[DW_OP_regx 0x63]
+$C$DW$352      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b0")
+       .dwattr $C$DW$352, DW_AT_location[DW_OP_regx 0x64]
+$C$DW$353      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b1")
+       .dwattr $C$DW$353, DW_AT_location[DW_OP_regx 0x65]
+$C$DW$354      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b2")
+       .dwattr $C$DW$354, DW_AT_location[DW_OP_regx 0x66]
+$C$DW$355      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R25_b3")
+       .dwattr $C$DW$355, DW_AT_location[DW_OP_regx 0x67]
+$C$DW$356      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b0")
+       .dwattr $C$DW$356, DW_AT_location[DW_OP_regx 0x68]
+$C$DW$357      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b1")
+       .dwattr $C$DW$357, DW_AT_location[DW_OP_regx 0x69]
+$C$DW$358      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b2")
+       .dwattr $C$DW$358, DW_AT_location[DW_OP_regx 0x6a]
+$C$DW$359      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R26_b3")
+       .dwattr $C$DW$359, DW_AT_location[DW_OP_regx 0x6b]
+$C$DW$360      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b0")
+       .dwattr $C$DW$360, DW_AT_location[DW_OP_regx 0x6c]
+$C$DW$361      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b1")
+       .dwattr $C$DW$361, DW_AT_location[DW_OP_regx 0x6d]
+$C$DW$362      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b2")
+       .dwattr $C$DW$362, DW_AT_location[DW_OP_regx 0x6e]
+$C$DW$363      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R27_b3")
+       .dwattr $C$DW$363, DW_AT_location[DW_OP_regx 0x6f]
+$C$DW$364      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b0")
+       .dwattr $C$DW$364, DW_AT_location[DW_OP_regx 0x70]
+$C$DW$365      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b1")
+       .dwattr $C$DW$365, DW_AT_location[DW_OP_regx 0x71]
+$C$DW$366      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b2")
+       .dwattr $C$DW$366, DW_AT_location[DW_OP_regx 0x72]
+$C$DW$367      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R28_b3")
+       .dwattr $C$DW$367, DW_AT_location[DW_OP_regx 0x73]
+$C$DW$368      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b0")
+       .dwattr $C$DW$368, DW_AT_location[DW_OP_regx 0x74]
+$C$DW$369      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b1")
+       .dwattr $C$DW$369, DW_AT_location[DW_OP_regx 0x75]
+$C$DW$370      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b2")
+       .dwattr $C$DW$370, DW_AT_location[DW_OP_regx 0x76]
+$C$DW$371      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R29_b3")
+       .dwattr $C$DW$371, DW_AT_location[DW_OP_regx 0x77]
+$C$DW$372      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b0")
+       .dwattr $C$DW$372, DW_AT_location[DW_OP_regx 0x78]
+$C$DW$373      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b1")
+       .dwattr $C$DW$373, DW_AT_location[DW_OP_regx 0x79]
+$C$DW$374      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b2")
+       .dwattr $C$DW$374, DW_AT_location[DW_OP_regx 0x7a]
+$C$DW$375      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R30_b3")
+       .dwattr $C$DW$375, DW_AT_location[DW_OP_regx 0x7b]
+$C$DW$376      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b0")
+       .dwattr $C$DW$376, DW_AT_location[DW_OP_regx 0x7c]
+$C$DW$377      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b1")
+       .dwattr $C$DW$377, DW_AT_location[DW_OP_regx 0x7d]
+$C$DW$378      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b2")
+       .dwattr $C$DW$378, DW_AT_location[DW_OP_regx 0x7e]
+$C$DW$379      .dwtag  DW_TAG_TI_assign_register, DW_AT_name("R31_b3")
+       .dwattr $C$DW$379, DW_AT_location[DW_OP_regx 0x7f]
+       .dwendtag $C$DW$CU
+
diff --git a/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.map b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.map
new file mode 100644 (file)
index 0000000..a6ef12a
--- /dev/null
@@ -0,0 +1,293 @@
+******************************************************************************
+                     PRU Linker Unix v2.1.4                    
+******************************************************************************
+>> Linked Wed Nov 22 12:19:17 2017
+
+OUTPUT FILE NAME:   <gen/PRU_ADS8688_Controller.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  00000584  00001a7c  RWIX
+
+PAGE 1:
+  PRU_DMEM_0_1          00000000   00002000  00000204  00001dfc  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   1f800000  00000000  1f800000  RWIX
+  PRUADC_DDR_CARVEOUT   9f800000   00800000  00000000  00800000  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    00000570     
+                  00000014    00000288     PRU_ADS8688_Controller.object (.text:main)
+                  0000029c    00000114     rtspruv3_le.lib : divu_c.obj (.text:__pruabi_divu)
+                  000003b0    00000100     PRU_ADS8688_Controller.object (.text:adc_init)
+                  000004b0    00000048     PRU_ADS8688_Controller.object (.text:send_command)
+                  000004f8    0000003c     PRU_ADS8688_Controller.object (.text:receive_data)
+                  00000534    00000034     rtspruv3_le.lib : memcpy.obj (.text)
+                  00000568    0000000c     PRU_ADS8688_Controller.object (.text:send_delay)
+                  00000574    00000008     rtspruv3_le.lib : exit.obj (.text:abort)
+                  0000057c    00000008                     : exit.obj (.text:loader_exit)
+
+.stack     1    00000000    00000100     UNINITIALIZED
+                  00000000    00000004     rtspruv3_le.lib : boot.obj (.stack)
+                  00000004    000000fc     --HOLE--
+
+.bss       1    00000100    000000f0     UNINITIALIZED
+                  00000100    000000c0     (.common:chan_data_temp)
+                  000001c0    00000018     (.common:config_buf)
+                  000001d8    00000018     (.common:data_buf)
+
+.cinit     1    00000000    00000000     UNINITIALIZED
+
+.resource_table 
+*          1    000001f0    00000014     
+                  000001f0    00000014     PRU_ADS8688_Controller.object (.resource_table:retain)
+
+.creg.PRU_CFG.noload.near 
+*          2    00026000    00000044     NOLOAD SECTION
+                  00026000    00000044     PRU_ADS8688_Controller.object (.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     0000057c  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              
+abs   ffffffff  __binit__                    
+abs   ffffffff  __c_args__                   
+0     0000029c  __pruabi_divu                
+0     00000000  _c_int00_noinit_noargs_noexit
+1     00000000  _stack                       
+0     00000574  abort                        
+0     000003b0  adc_init                     
+abs   ffffffff  binit                        
+1     00000100  chan_data_temp               
+1     000001c0  config_buf                   
+1     000001d8  data_buf                     
+0     00000014  main                         
+0     00000534  memcpy                       
+1     000001f0  pru_remoteproc_ResourceTable 
+0     000004f8  receive_data                 
+0     000004b0  send_command                 
+0     00000568  send_delay                   
+
+
+GLOBAL SYMBOLS: SORTED BY Symbol Address 
+
+page  address   name                         
+----  -------   ----                         
+0     00000000  _c_int00_noinit_noargs_noexit
+0     00000014  main                         
+0     0000029c  __pruabi_divu                
+0     000003b0  adc_init                     
+0     000004b0  send_command                 
+0     000004f8  receive_data                 
+0     00000534  memcpy                       
+0     00000568  send_delay                   
+0     00000574  abort                        
+0     0000057c  C$$EXIT                      
+1     00000000  _stack                       
+1     00000100  __TI_STACK_END               
+1     00000100  chan_data_temp               
+1     000001c0  config_buf                   
+1     000001d8  data_buf                     
+1     000001f0  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                        
+
+[85 symbols]
diff --git a/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.object b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.object
new file mode 100644 (file)
index 0000000..c471edf
Binary files /dev/null and b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.object differ
diff --git a/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.out b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.out
new file mode 100644 (file)
index 0000000..1b7a1ca
Binary files /dev/null and b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.out differ
diff --git a/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.pp b/PRU_ADS8688_Controller/gen/PRU_ADS8688_Controller.pp
new file mode 100644 (file)
index 0000000..9a49348
--- /dev/null
@@ -0,0 +1,8 @@
+gen/PRU_ADS8688_Controller.object: PRU_ADS8688_Controller.c
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/ti-cgt-pru_2.1.4/include/stdint.h
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/pru-software-support-package/include/am335x/pru_cfg.h
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/pru-software-support-package/include/am335x/pru_ctrl.h
+gen/PRU_ADS8688_Controller.object: resource_table_empty.h
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/ti-cgt-pru_2.1.4/include/stddef.h
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/pru-software-support-package/include/rsc_types.h
+gen/PRU_ADS8688_Controller.object: /home/a0273976local/pru-software-support-package/include/pru_types.h
diff --git a/PRU_ADS8688_Controller/resource_table_empty.h b/PRU_ADS8688_Controller/resource_table_empty.h
new file mode 100644 (file)
index 0000000..f298472
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2017 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/PRU_ADS8688_Interface/.PRU_ADS8688_Interface.asm.swp b/PRU_ADS8688_Interface/.PRU_ADS8688_Interface.asm.swp
new file mode 100644 (file)
index 0000000..2e000ea
Binary files /dev/null and b/PRU_ADS8688_Interface/.PRU_ADS8688_Interface.asm.swp differ
diff --git a/PRU_ADS8688_Interface/AM335x_PRU.cmd b/PRU_ADS8688_Interface/AM335x_PRU.cmd
new file mode 100644 (file)
index 0000000..d697474
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2017 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.
+ *
+ *
+ * AM335x_PRU.cmd
+ * 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.
+ */
+
+/* Link using C conventions */
+-cr
+
+/* 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/PRU_ADS8688_Interface/Makefile b/PRU_ADS8688_Interface/Makefile
new file mode 100644 (file)
index 0000000..f2b8cc3
--- /dev/null
@@ -0,0 +1,125 @@
+# PRU_CGT environment variable must point to the TI PRU code gen tools directory. E.g.:
+#(Desktop Linux) export PRU_CGT=/path/to/pru/code/gen/tools/ti-cgt-pru_2.x.y
+#(Windows) set PRU_CGT=C:/path/to/pru/code/gen/tools/ti-cgt-pru_2.x.y
+#(ARM Linux*) export PRU_CGT=/usr/share/ti/cgt-pru
+#
+# *ARM Linux also needs to create a symbolic link to the /usr/bin/ directory in
+# order to use the same Makefile
+#(ARM Linux) ln -s /usr/bin/ /usr/share/ti/cgt-pru/bin
+
+ifndef PRU_CGT
+define ERROR_BODY
+
+*******************************************************************************
+PRU_CGT environment variable is not set. Examples given:
+(Desktop Linux) export PRU_CGT=/path/to/pru/code/gen/tools/ti-cgt-pru_2.1.2
+(Windows) set PRU_CGT=C:/path/to/pru/code/gen/tools/ti-cgt-pru_2.1.2
+(ARM Linux*) export PRU_CGT=/usr/share/ti/cgt-pru
+
+*ARM Linux also needs to create a symbolic link to the /usr/bin/ directory in
+order to use the same Makefile
+(ARM Linux) ln -s /usr/bin/ /usr/share/ti/cgt-pru/bin
+*******************************************************************************
+
+endef
+$(error $(ERROR_BODY))
+endif
+
+# PRU_SSP environment variable must point to the PRU Software Support Package. E.g.:
+#(Desktop Linux) export PRU_SSP=/path/to/pru_software_support_package
+#(Windows) set PRU_SSP=C:/path/to/pru_software_support_package
+#(ARM Linux*) export PRU_SSP=/path/to/pru_software_support_package
+
+ifndef PRU_SSP
+define ERROR_BODY
+
+*******************************************************************************
+PRU_SSP environment variable must point to the PRU Software Support Package. E.g.:
+(Desktop Linux) export PRU_SSP=/path/to/pru_software_support_package
+(Windows) set PRU_SSP=C:/path/to/pru_software_support_package
+(ARM Linux*) export PRU_SSP=/path/to/pru_software_support_package
+PRU_CGT environment variable is not set. Examples given:
+*******************************************************************************
+
+endef
+$(error $(ERROR_BODY))
+endif
+
+MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+CURRENT_DIR := $(notdir $(patsubst %/,%,$(dir $(MKFILE_PATH))))
+PROJ_NAME=$(CURRENT_DIR)
+LINKER_COMMAND_FILE=./AM335x_PRU.cmd
+LIBS=--library=$(PRU_SSP)/lib/rpmsg_lib.lib
+INCLUDE=--include_path=$(PRU_SSP)/include --include_path=$(PRU_SSP)/include/am335x
+STACK_SIZE=0x100
+HEAP_SIZE=0x100
+GEN_DIR=gen
+
+#Common compiler and linker flags (Defined in 'PRU Optimizing C/C++ Compiler User's Guide)
+CFLAGS=-v3 -o2 --display_error_number --endian=little --hardware_mac=on --asm_directory=$(GEN_DIR) --obj_directory=$(GEN_DIR) --pp_directory=$(GEN_DIR) -ppd -ppa
+#Linker flags (Defined in 'PRU Optimizing C/C++ Compiler User's Guide)
+LFLAGS=--reread_libs --warn_sections --stack_size=$(STACK_SIZE) --heap_size=$(HEAP_SIZE)
+
+TARGET=$(GEN_DIR)/$(PROJ_NAME).out
+MAP=$(GEN_DIR)/$(PROJ_NAME).map
+OBJECTS=$(patsubst %.asm,$(GEN_DIR)/%.object,$(wildcard *.asm))
+OBJECTS+=$(patsubst %.c,$(GEN_DIR)/%.object,$(wildcard *.c))
+
+
+all: printStart $(TARGET) printEnd
+
+printStart:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Building project: $(PROJ_NAME)'
+
+printEnd:
+       @echo ''
+       @echo 'Output files can be found in the "$(GEN_DIR)" directory'
+       @echo ''
+       @echo 'Finished building project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
+
+# Invokes the linker (-z flag) to make the .out file
+$(TARGET): $(OBJECTS) $(LINKER_COMMAND_FILE)
+       @echo ''
+       @echo 'Building target: $@'
+       @echo 'Invoking: PRU Linker'
+       $(PRU_CGT)/bin/clpru $(CFLAGS) -z -i$(PRU_CGT)/lib -i$(PRU_CGT)/include $(LFLAGS) -o $(TARGET) $(OBJECTS) -m$(MAP) $(LINKER_COMMAND_FILE) --library=libc.a $(LIBS)
+       @echo 'Finished building target: $@'
+
+# Invokes the compiler on all assembly files in the directory to create the object files
+$(GEN_DIR)/%.object: %.asm
+       @mkdir -p $(GEN_DIR)
+       @echo ''
+       @echo 'Building file: $<'
+       @echo 'Invoking: PRU Compiler'
+       $(PRU_CGT)/bin/clpru --include_path=$(PRU_CGT)/include $(INCLUDE) $(CFLAGS) -fe $@ $<
+
+# Invokes the compiler on all c files in the directory to create the object files
+$(GEN_DIR)/%.object: %.c
+       @mkdir -p $(GEN_DIR)
+       @echo ''
+       @echo 'Building file: $<'
+       @echo 'Invoking: PRU Compiler'
+       $(PRU_CGT)/bin/clpru -k --include_path=$(PRU_CGT)/include $(INCLUDE) $(CFLAGS) -fe $@ $<
+
+.PHONY: all clean
+
+# Remove the $(GEN_DIR) directory
+clean:
+       @echo ''
+       @echo '************************************************************'
+       @echo 'Cleaning project: $(PROJ_NAME)'
+       @echo ''
+       @echo 'Removing files in the "$(GEN_DIR)" directory'
+       @rm -rf $(GEN_DIR)
+       @echo ''
+       @echo 'Finished cleaning project: $(PROJ_NAME)'
+       @echo '************************************************************'
+       @echo ''
+
+# Includes the dependencies that the compiler creates (-ppd and -ppa flags)
+-include $(OBJECTS:%.object=%.pp)
+
diff --git a/PRU_ADS8688_Interface/PRU_ADS8688_Interface.asm b/PRU_ADS8688_Interface/PRU_ADS8688_Interface.asm
new file mode 100644 (file)
index 0000000..564b699
--- /dev/null
@@ -0,0 +1,342 @@
+; 
+; Copyright (C) 2017 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 needed for remoteproc Linux driver
+       .global ||pru_remoteproc_ResourceTable||
+       .sect   ".resource_table:retain", RW
+       .retain
+       .align  1
+       .elfsym ||pru_remoteproc_ResourceTable||,SYM_SIZE(20)
+||pru_remoteproc_ResourceTable||:
+       .bits   1,32                    ; pru_remoteproc_ResourceTable.base.ver @ 0
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.num @ 32
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[0] @ 64
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.base.reserved[1] @ 96
+       .bits   0,32                    ; pru_remoteproc_ResourceTable.offset[0] @ 128
+
+; Pins used to mimic the SPI interfaces
+sclk_pin       .set    13
+cs12_pin       .set    6
+cs34_pin       .set    6
+cs56_pin       .set    6
+mosi1_pin      .set    7
+mosi2_pin      .set    8
+mosi3_pin      .set    9
+mosi4_pin      .set    10
+mosi5_pin      .set    11
+mosi6_pin      .set    12
+miso1_pin      .set    0
+miso2_pin      .set    1
+miso3_pin      .set    2
+miso4_pin      .set    3
+miso5_pin      .set    4
+miso6_pin      .set    5       
+
+; Request/response register bit mapping
+send_ready_bit .set    0
+send_ack_bit   .set    1
+send_done_bit  .set    2
+
+start_bit      .set    0
+continuous_bit .set    1
+recv_ready_bit .set    2
+recv_ack_bit   .set    3
+
+; Register to contain the worst case delay to check for overflow
+worst_delay_reg        .set    r6
+
+; Specific register numbers shared through the Scratchpads */
+status_reg     .set    r28
+request_reg    .set    r29
+adc1_config_reg        .set    r15
+adc2_config_reg        .set    r16
+adc3_config_reg        .set    r17
+adc4_config_reg        .set    r18
+adc5_config_reg        .set    r19
+adc6_config_reg        .set    r20
+cycle_count_reg        .set    r21
+adc1_result_reg        .set    r22
+adc2_result_reg        .set    r23
+adc3_result_reg        .set    r24
+adc4_result_reg        .set    r25
+adc5_result_reg        .set    r26
+adc6_result_reg        .set    r27
+
+; Macros to take the clock pin high and low
+       .sect   ".text"
+clock_high     .macro
+       set r30, r30, sclk_pin
+               .endm
+clock_low      .macro
+       clr r30, r30, sclk_pin
+               .endm
+
+; Macro to poke the ADC configurations into specific bits (pins)
+config_bit     .macro reg, bit, pin
+       qbbs label1?, reg, bit
+       jmp label2?
+label1?:       
+       set r8, r8, pin
+label2?:
+               .endm
+; Macro to handle a configuration cycle
+config_cycle   .macro bit 
+       mov     r8, r9
+       config_bit adc1_config_reg, bit, mosi1_pin
+       config_bit adc2_config_reg, bit, mosi2_pin
+       config_bit adc3_config_reg, bit, mosi3_pin
+       config_bit adc4_config_reg, bit, mosi4_pin
+       clock_high
+       config_bit adc5_config_reg, bit, mosi5_pin
+       config_bit adc6_config_reg, bit, mosi6_pin
+       mov     r30, r8
+       nop
+       nop
+       nop
+       nop
+       clock_low
+               .endm
+
+; Macro to pick the ADC data from each specific bit (pin)
+read_bit       .macro reg, bit, pin
+       qbbs label3?, r11, pin
+       jmp label4?
+label3?:       
+       set reg, reg, bit
+label4?:
+               .endm
+; Macro to handle a read cycle
+read_cycle     .macro bit 
+       mov r11, r31
+       clock_low
+       read_bit adc1_result_reg, bit, miso1_pin
+       read_bit adc2_result_reg, bit, miso2_pin
+       read_bit adc3_result_reg, bit, miso3_pin
+       read_bit adc4_result_reg, bit, miso4_pin
+       nop
+       clock_high
+       read_bit adc5_result_reg, bit, miso5_pin
+       read_bit adc6_result_reg, bit, miso6_pin
+       nop
+       nop
+       nop
+       nop
+               .endm
+
+       .sect   ".text:main"
+       .clink
+       .global ||main||
+
+||main||:
+       ; Set all pins high
+       LDI32   r30, 0xffffffff
+       ; Load the values used to set and clear all CS pins in a single cycle
+       ZERO    &r13, 4
+       OR      r13, r13, (1 << cs12_pin)
+       OR      r13, r13, (1 << cs34_pin)
+       OR      r13, r13, (1 << cs56_pin)
+       NOT     r12, r13
+
+       ; r9 is used as a known starting point for creating the configuration cycle
+       ; need the SCLK pin to be high becuase when the data is pushed to the pins
+       ; the clock needs to be high
+       LDI32   r9, (1 << sclk_pin)
+
+       ; Load r6 with the worst case delay to check for overflow
+       LDI32   r6, 0x00ffffff
+
+       ; Configure cycle counter
+       ; Load r0 with PRU_CTRL registers offset
+       LDI32   r0, 0x24000
+       ; Clear the CTR_EN bit
+       LBBO    &r1, r0, 0, 4
+       CLR     r1, r1, 0x3
+       SBBO    &r1, r0, 0, 4
+       ; Reset the COUNTER register to 0
+       LDI32   r3, 0x0
+       SBBO    &r3, r0, 12, 4
+       ; Set the CTR_EN bit to kick off the cycle counter
+       LBBO    &r1, r0, 0, 4
+       SET     r1, r1, 0x3
+       SBBO    &r1, r0, 0, 4
+
+       ; zero out the result registers
+       zero    &adc1_result_reg, 24
+
+       ; clear the status register
+       ZERO    &status_reg, 4
+       XOUT    11, &status_reg.b0, 4
+
+||$C$L1||:    
+        .newblock
+       ; Set ready bit and clear ack bit and push to the scratchpad
+       CLR     status_reg, status_reg, send_ack_bit
+       SET     status_reg, status_reg, send_ready_bit
+       XOUT    11, &status_reg.b0, 4
+
+       ; Tight loop to check to check for start or continuous bit
+check_start:
+       XIN     11, &request_reg.b0, 4
+       QBBS    continuous, request_reg, continuous_bit         
+       QBBS    start, request_reg, start_bit   
+        JMP    check_start
+
+       ; Continuous bit is set so we wait for the cycles between sample to expire
+continuous:
+       ; If continuous AND start bits are set then we reset the cycle counter
+       ; because this is the first iteration and we don't know where the cycle
+       ; counter is. If the start bit is clear then we jump down past the cycle
+       ; counter reset becuase the cycle counter contains the number of cycles
+       ; since the last sample
+       QBBC    no_reset, request_reg, start_bit
+       ; reset cycle counter
+       zero    &r3, 4
+       SBBO    &r3, r0, 12, 4
+no_reset:
+       ; Pull in the new cycle count between samples value from the scratchpad
+       XIN     10, &cycle_count_reg.b0, 4
+       ; Get current cycle count
+       LBBO    &r4, r0, 12, 4
+       ; Subtract current elapsed cycles from cycles between samples
+       SUB     cycle_count_reg, cycle_count_reg, r4
+       ; Subtract cycles between getting the count and checking it
+       SUB     cycle_count_reg, cycle_count_reg, 8
+       ; Check if the remaining count is even or odd
+       QBBC    even, cycle_count_reg, 0
+       ; Subtract 2 more cycles if the remainging count is odd
+       SUB     cycle_count_reg, cycle_count_reg, 2
+even:
+       ; Skip the wait if the counter has rolled over, otherwise we would wait
+       ; for more than 20 seconds for the counter to expire
+       QBLT    reached, cycle_count_reg, worst_delay_reg
+       ; Wait until cycle count is reached
+not_reached:
+       SUB     cycle_count_reg, cycle_count_reg, 2
+       QBLT    not_reached, cycle_count_reg, 2
+reached:
+       ; Reset_cycle_counter
+       zero    &r3, 4
+       SBBO    &r3, r0, 12, 4
+
+start:
+       ; Pull the configurations for each ADC from the scratchpad registers
+       XIN     10, &adc1_config_reg.b0, 24
+
+       ; Clear the ready bit and set the ack bit
+       CLR     status_reg, status_reg, send_ready_bit
+       SET     status_reg, status_reg, send_ack_bit
+       XOUT    11, &status_reg.b0, 4
+
+       ; Take all CS low to start the acquisition
+        AND    r30, r30, r12
+       ; Send the configuration data from the scratchpad registers one cycle at a time
+       config_cycle 15
+       config_cycle 14
+       config_cycle 13
+       config_cycle 12
+       config_cycle 11
+       config_cycle 10
+       config_cycle 9
+       config_cycle 8
+       config_cycle 7
+       config_cycle 6
+       config_cycle 5
+       config_cycle 4
+       config_cycle 3
+       config_cycle 2
+       config_cycle 1
+       config_cycle 0
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       clock_high
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       ; Read the data from the ADCs and place it into the result registers one cycle at a time
+       read_cycle 15
+       read_cycle 14
+       read_cycle 13
+       read_cycle 12
+       read_cycle 11
+       read_cycle 10
+       read_cycle 9
+       read_cycle 8
+       read_cycle 7
+       read_cycle 6
+       read_cycle 5
+       read_cycle 4
+       read_cycle 3
+       read_cycle 2
+       read_cycle 1
+       read_cycle 0
+
+       ; Take all CS high
+       OR        r30, r30, r13
+
+       ; Wait until the controller is ready for data
+check_ready:
+       XIN     11, &request_reg.b0, 4
+       QBBC    check_ready, request_reg, recv_ready_bit
+
+       ; Controller is ready, put the result data in the scratchpad register
+       XOUT    12, &adc1_result_reg.b0, 24
+
+       ; Set the done bit
+       SET     status_reg, status_reg, send_done_bit
+       XOUT    11, &status_reg.b0, 4
+
+       ; Wait until the controller acknowledges the data
+check_ack:
+       XIN     11, &request_reg.b0, 4
+       QBBC    check_ack, request_reg, recv_ack_bit
+
+       ; Clear the done bit
+       CLR     status_reg, status_reg, send_done_bit
+       XOUT    11, &status_reg.b0, 4
+
+       ; Clear the local result register for the next set of results
+       zero    &adc1_result_reg, 24
+
+       ; Jump to the top of the loop
+       JMP       ||$C$L1||
diff --git a/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.map b/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.map
new file mode 100644 (file)
index 0000000..694b421
--- /dev/null
@@ -0,0 +1,248 @@
+******************************************************************************
+                     PRU Linker Unix v2.1.4                    
+******************************************************************************
+>> Linked Wed Nov 22 12:19:17 2017
+
+OUTPUT FILE NAME:   <gen/PRU_ADS8688_Interface.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  00000e68  00001198  RWIX
+
+PAGE 1:
+  PRU_DMEM_0_1          00000000   00002000  00000114  00001eec  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  00000000  00000044  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    00000e54     
+                  00000014    00000e44     PRU_ADS8688_Interface.object (.text:main)
+                  00000e58    00000008     rtspruv3_le.lib : exit.obj (.text:abort)
+                  00000e60    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
+
+.resource_table 
+*          1    00000100    00000014     
+                  00000100    00000014     PRU_ADS8688_Interface.object (.resource_table:retain)
+
+
+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     00000e60  C$$EXIT                      
+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              
+abs   ffffffff  __binit__                    
+abs   ffffffff  __c_args__                   
+0     00000000  _c_int00_noinit_noargs_noexit
+1     00000000  _stack                       
+0     00000e58  abort                        
+abs   ffffffff  binit                        
+0     00000014  main                         
+1     00000100  pru_remoteproc_ResourceTable 
+
+
+GLOBAL SYMBOLS: SORTED BY Symbol Address 
+
+page  address   name                         
+----  -------   ----                         
+0     00000000  _c_int00_noinit_noargs_noexit
+0     00000014  main                         
+0     00000e58  abort                        
+0     00000e60  C$$EXIT                      
+1     00000000  _stack                       
+1     00000100  __TI_STACK_END               
+1     00000100  pru_remoteproc_ResourceTable 
+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                        
+
+[75 symbols]
diff --git a/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.object b/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.object
new file mode 100644 (file)
index 0000000..cebdba0
Binary files /dev/null and b/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.object differ
diff --git a/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.out b/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.out
new file mode 100644 (file)
index 0000000..640f5ee
Binary files /dev/null and b/PRU_ADS8688_Interface/gen/PRU_ADS8688_Interface.out differ
diff --git a/dts/am335x-boneblack-pruadc.dts b/dts/am335x-boneblack-pruadc.dts
new file mode 100755 (executable)
index 0000000..f79df53
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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.
+ */
+
+#include "am335x-boneblack.dts"
+
+&am33xx_pinmux {
+       pru_adc_bone_pins: pru_adc_bone_pins {
+               pinctrl-single,pins = <
+                       0x0a0 0x2e /* MISO_1, lcd_data0,       MUX_MODE6 | INPUT,  P8.45, PRU1[0]  GPI/GPO */
+                       0x0a4 0x2e /* MISO_2, lcd_data1,       MUX_MODE6 | INPUT,  P8.46, PRU1[1]  GPI/GPO */
+                       0x0a8 0x2e /* MISO_3, lcd_data2,       MUX_MODE6 | INPUT,  P8.43, PRU1[2]  GPI/GPO */
+                       0x0ac 0x2e /* MISO_4, lcd_data3,       MUX_MODE6 | INPUT,  P8.44, PRU1[3]  GPI/GPO */
+                       0x0b0 0x2e /* MISO_5, lcd_data4,       MUX_MODE6 | INPUT,  P8.41, PRU1[4]  GPI/GPO */
+                       0x0b4 0x2e /* MISO_6, lcd_data5,       MUX_MODE6 | INPUT,  P8.42, PRU1[5]  GPI/GPO */
+                       0x0b8 0x05 /* CS_12, lcd_data6,        MUX_MODE5 | OUTPUT, P8.39, PRU1[6]  GPI/GPO */
+                       0x0bc 0x05 /* MOSI_1, lcd_data7,       MUX_MODE5 | OUTPUT, P8.40, PRU1[7]  GPI/GPO */
+                       0x0e0 0x05 /* MOSI_2, lcd_vsync,       MUX_MODE5 | OUTPUT, P8.27, PRU1[8]  GPI/GPO */
+                       0x0e4 0x05 /* MOSI_3, lcd_hsync,       MUX_MODE5 | OUTPUT, P8.29, PRU1[9]  GPI/GPO */
+                       0x0e8 0x05 /* MOSI_4, lcd_pclk,        MUX_MODE5 | OUTPUT, P8.28, PRU1[10] GPI/GPO */
+                       0x0ec 0x05 /* MOSI_5, lcd_ac_bias_en,  MUX_MODE5 | OUTPUT, P8.30, PRU1[11] GPI/GPO */
+                       0x080 0x05 /* MOSI_6, gpmc_csn1,       MUX_MODE5 | OUTPUT, P8.21, PRU1[12] GPI/GPO */
+                       0x084 0x05 /* SCLK_OUT, gpmc_csn2,     MUX_MODE5 | OUTPUT, P8.20, PRU1[13] GPI/GPO */
+               >;
+       };
+};
+
+&pruss {
+        pinctrl-names = "default";
+       pinctrl-0 = <&pru_adc_bone_pins>;
+};
+
+/* Reserve 256kB DDR memory for the ping/pong buffers */
+/{     
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+               
+               pruadc_reserved: pruadc_reserved@0x9ffc0000 {
+                       reg = <0x9ffc0000 0x00040000>;
+                       no-map;
+                       status = "okay";
+               };
+       };
+
+       hdmi {
+               status = "disabled";
+       };
+};
+
+/* Disable the following nodes due to pin mux conflicts with PRU signals needed */
+&tda19988 {
+       status = "disabled";
+};
+
+&lcdc {
+       status = "disabled";
+};
+
+&mcasp0 {
+       status = "disabled";
+};
+
+&mmc2 {
+       status = "disabled";
+};
+
+/{
+       sound {
+               status = "disabled";
+       };
+};
+
diff --git a/run.sh b/run.sh
new file mode 100755 (executable)
index 0000000..502898d
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+echo stop > /sys/class/remoteproc/remoteproc1/state
+echo stop > /sys/class/remoteproc/remoteproc2/state
+
+sleep 1
+
+echo start > /sys/class/remoteproc/remoteproc1/state
+echo start > /sys/class/remoteproc/remoteproc2/state
+
+sleep 1
+
+./ARM_User_Space_App.out