├── Hands-on ├── Session 1 │ ├── Session_1.pdf │ └── helloworld │ │ ├── Makefile │ │ ├── README.md │ │ ├── helloworld.c │ │ └── testset.cfg ├── Session 2 │ ├── Session_2.pdf │ └── simple_kernel_example │ │ ├── Makefile │ │ ├── README.md │ │ ├── img_proc.c │ │ ├── img_proc.h │ │ └── test.c ├── Session 3 │ ├── Session_3.pdf │ ├── bitcraze_cf_app │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── current_platform.mk │ │ ├── inc │ │ │ ├── uart_dma_pulp.h │ │ │ └── uart_dma_setup.h │ │ ├── src │ │ │ ├── main.c │ │ │ └── uart_dma_pulp.c │ │ └── version.c │ └── bitcraze_gap8 │ │ ├── BUILD │ │ └── GAP8_V2 │ │ │ └── GCC_RISCV │ │ │ ├── flash.img │ │ │ ├── pulp-os │ │ │ ├── conf.d │ │ │ └── conf.o │ │ │ ├── target.board.devices.flash.img │ │ │ ├── test │ │ │ ├── test.s │ │ │ ├── test.size │ │ │ ├── uart_send_counter.d │ │ │ └── uart_send_counter.o │ │ ├── Makefile │ │ └── uart_send_counter.c └── Session 4 │ ├── GAP8 │ ├── README.md │ ├── viewer.py │ ├── wifi_jpeg_streamer │ │ ├── Makefile │ │ ├── config.ini │ │ └── test.c │ └── wifi_jpeg_streamer_inv_filter │ │ ├── Makefile │ │ ├── config.ini │ │ └── test.c │ └── Session_4.pdf ├── Overview ├── Overview_1.pdf ├── Overview_2.pdf └── Overview_3.pdf ├── README.md └── imgs └── overview.png /Hands-on/Session 1/Session_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 1/Session_1.pdf -------------------------------------------------------------------------------- /Hands-on/Session 1/helloworld/Makefile: -------------------------------------------------------------------------------- 1 | # User Test 2 | #------------------------------------ 3 | APP = test 4 | # App sources 5 | APP_SRCS = helloworld.c 6 | # App includes 7 | APP_INC = 8 | # Compiler flags 9 | APP_CFLAGS = 10 | # Linker flags 11 | APP_LDFLAGS = 12 | 13 | # Custom linker 14 | APP_LINK_SCRIPT = 15 | 16 | include $(RULES_DIR)/pmsis_rules.mk 17 | -------------------------------------------------------------------------------- /Hands-on/Session 1/helloworld/README.md: -------------------------------------------------------------------------------- 1 | # Hello World 2 | 3 | This example is taken from the gap-sdk examples, https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/examples/pmsis/helloworld. 4 | 5 | ## Requirements 6 | 7 | No specific requirement. This example should run without issue on all chips/boards/OSes. 8 | 9 | ## Description 10 | 11 | This example is a classic Hello World. 12 | It prints an hello world string on all available cores. 13 | -------------------------------------------------------------------------------- /Hands-on/Session 1/helloworld/helloworld.c: -------------------------------------------------------------------------------- 1 | #-----------------------------------------------------------------------------# 2 | # File: helloworld.c # 3 | # Original code: GreenWaves-Technologies # 4 | # Link: https://github.com/GreenWaves-Technologies/gap_sdk/tree/master/ # 5 | # examples/pmsis/helloworld # 6 | # Contributors: # 7 | # GreenWaves-Technologies # 8 | # Date: 12.04.2021 # 9 | #-----------------------------------------------------------------------------# 10 | /* PMSIS includes */ 11 | #include "pmsis.h" 12 | 13 | /* Task executed by cluster cores. */ 14 | void cluster_helloworld(void *arg) 15 | { 16 | uint32_t core_id = pi_core_id(), cluster_id = pi_cluster_id(); 17 | printf("[%d %d] Hello World!\n", cluster_id, core_id); 18 | } 19 | 20 | /* Cluster main entry, executed by core 0. */ 21 | void cluster_delegate(void *arg) 22 | { 23 | printf("Cluster master core entry\n"); 24 | /* Task dispatch to cluster cores. */ 25 | pi_cl_team_fork(pi_cl_cluster_nb_cores(), cluster_helloworld, arg); 26 | printf("Cluster master core exit\n"); 27 | } 28 | 29 | void helloworld(void) 30 | { 31 | printf("Entering main controller\n"); 32 | 33 | uint32_t errors = 0; 34 | uint32_t core_id = pi_core_id(), cluster_id = pi_cluster_id(); 35 | printf("[%d %d] Hello World!\n", cluster_id, core_id); 36 | 37 | struct pi_device cluster_dev = {0}; 38 | struct pi_cluster_conf cl_conf = {0}; 39 | 40 | /* Init cluster configuration structure. */ 41 | pi_cluster_conf_init(&cl_conf); 42 | cl_conf.id = 0; /* Set cluster ID. */ 43 | /* Configure & open cluster. */ 44 | pi_open_from_conf(&cluster_dev, &cl_conf); 45 | if (pi_cluster_open(&cluster_dev)) 46 | { 47 | printf("Cluster open failed !\n"); 48 | pmsis_exit(-1); 49 | } 50 | 51 | /* Prepare cluster task and send it to cluster. */ 52 | struct pi_cluster_task cl_task = {0}; 53 | cl_task.entry = cluster_delegate; 54 | cl_task.arg = NULL; 55 | 56 | pi_cluster_send_task_to_cl(&cluster_dev, &cl_task); 57 | 58 | pi_cluster_close(&cluster_dev); 59 | 60 | printf("Test success !\n"); 61 | 62 | pmsis_exit(errors); 63 | } 64 | 65 | /* Program Entry. */ 66 | int main(void) 67 | { 68 | printf("\n\n\t *** PMSIS HelloWorld ***\n\n"); 69 | return pmsis_kickoff((void *) helloworld); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /Hands-on/Session 1/helloworld/testset.cfg: -------------------------------------------------------------------------------- 1 | from plptest import * 2 | 3 | TestConfig = c = {} 4 | 5 | test = Test( 6 | name = 'helloworld', 7 | commands = [ 8 | Shell('clean', 'make clean'), 9 | Shell('build', 'make all'), 10 | Shell('run', 'make run') 11 | ], 12 | timeout=1000000, 13 | ) 14 | 15 | c['tests'] = [ test ] 16 | -------------------------------------------------------------------------------- /Hands-on/Session 2/Session_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 2/Session_2.pdf -------------------------------------------------------------------------------- /Hands-on/Session 2/simple_kernel_example/Makefile: -------------------------------------------------------------------------------- 1 | #-----------------------------------------------------------------------------# 2 | # File: Makefile # 3 | # Original code: Bitcraze # 4 | # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/ # 5 | # image_processing_examples/simple_kernel_example # 6 | # Contributors: # 7 | # Bitcraze # 8 | # Hanna Müller # 9 | # Date: 12.04.2021 # 10 | #-----------------------------------------------------------------------------# 11 | 12 | APP = test 13 | APP_SRCS += test.c $(GAP_LIB_PATH)/img_io/ImgIO.c img_proc.c 14 | APP_INC += . $(GAP_LIB_PATH)/include 15 | 16 | APP_CFLAGS += -O3 -g 17 | 18 | 19 | PMSIS_OS ?= pulp_os 20 | 21 | # this flag enables asynchronous image capturing 22 | # keep in mind that you should always have a buffer enqueued 23 | # if recording an image stream to avoid missing data (meaning you need 2) 24 | APP_CFLAGS += -DASYNC_CAPTURE 25 | # configures camera in QVGA format (324x244) 26 | # the extra 4 is from padding for the RGB camera (but also present on the grey one) 27 | APP_CFLAGS += -DQVGA_MODE 28 | 29 | # YOU CAN ONLY ACTIVATE ONE KERNEL AT A TIME 30 | 31 | # apply the demosaicking algorithm (only useful if using RGB camera) 32 | # runs sequential on fabric controller 33 | # APP_CFLAGS += -DDEMOSAICKING_KERNEL_FC 34 | # apply the demosaicking algorithm (only useful if using RGB camera) 35 | # runs paralell on cluster 36 | APP_CFLAGS += -DDEMOSAICKING_KERNEL_CLUSTER 37 | # only if one of the demosaicking kernel above is active 38 | # activate for a colored output 39 | APP_CFLAGS += -DCOLOR_IMAGE 40 | # apply an example kernel that inverts the image 41 | # runs sequential on fabric controller 42 | # APP_CFLAGS += -DINVERTING_KERNEL_FC 43 | # apply an example kernel that inverts the image 44 | # runs paralell on cluster 45 | # APP_CFLAGS += -DINVERTING_KERNEL_CLUSTER 46 | 47 | clean:: 48 | rm -rf img_raw.ppm img_color.ppm img_gray.ppm img_inverted.ppm 49 | 50 | include $(RULES_DIR)/pmsis_rules.mk 51 | -------------------------------------------------------------------------------- /Hands-on/Session 2/simple_kernel_example/README.md: -------------------------------------------------------------------------------- 1 | # Image processing examples 2 | 3 | This example is based on an example from https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/image_processing_examples/simple_kernel_example, the improvements/additions made for the workshop were also merged upstream to the original example. 4 | 5 | This example takes an image, applies a kernel and writes the image over your JTAG cable (using openOCD file semi-hosting) to your computer. 6 | You can choose between two kernels: 7 | 8 | - demosaicking 9 | - inverting 10 | 11 | for both you can choose to either execute the kernel sequentially on the fabric controller or parallelized on the cluster. Check out the defines in the Makefile to configure your kernel! But be careful, it only supports to choose one kernel at a time. 12 | ## Performance 13 | To keep this example simple, we are just saving the time before and after the kernel runs - if you want more precise performance measurements check out https://greenwaves-technologies.com/manuals/BUILD/PMSIS_API/html/group__Perf.html . 14 | Here some pitfalls that we improved in the demosaicking kernel: 15 | First computing a grayscale image from a RGB camera took around 2.33s (all measurements here are at a frequency of 50MHz on the fabric controller and cluster). That's awfully long, so what were we doing wrong? 16 | 17 | - `output[idx] = 0.33*red + 0.33*green + 0.33*blue;` was not a good idea - we do not have a floating point unit (FPU) on GAP8, so float multiplications are really slow. 18 | - `output[idx] = red/3 + green/3 + blue/3;` This got us to 303.3ms - but we can still improve, right? 19 | - `output[idx] = (red + green + blue)/3;` We only need one division! This gives us 199.2ms 20 | - we also have 8 cores on the cluster! Paralellizing it brought us down to 33.3ms. 21 | 22 | With those 3 steps we could already improve by a factor of 70. There are still other possible improvements, like moving the check `grayscale == 1` out of the for-loop for avoiding wrong branch predictions or loop-unrolling. You could also vectorize the code as we are only operating on bytes. Or improve the accuracy, as the factors 0.33 for all colors are actual not resulting in the most accurate grayscale representation. There is a lot of room for you to play and get familiar with the example :) 23 | 24 | One last hint: be careful with printf - this is a very long and complicated function and should never be inside your performance measurement. 25 | 26 | This example was developed and tested with the gap-sdk 3.8.1. -------------------------------------------------------------------------------- /Hands-on/Session 2/simple_kernel_example/img_proc.c: -------------------------------------------------------------------------------- 1 | #-----------------------------------------------------------------------------# 2 | # File: img_proc.c # 3 | # Original code: Bitcraze # 4 | # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/ # 5 | # image_processing_examples/simple_kernel_example # 6 | # Contributors: # 7 | # Bitcraze # 8 | # Hanna Müller # 9 | # Date: 12.04.2021 # 10 | #-----------------------------------------------------------------------------# 11 | #include "img_proc.h" 12 | 13 | void demosaicking(char *input, char* output, int width, int height, const int grayscale) 14 | { 15 | int idx = 0; 16 | int idxr[8]; 17 | char red, blue, green; 18 | 19 | for (int y = 0; y < height ; y++) 20 | { 21 | for (int x = 0; x < width ; x++) 22 | { 23 | int idx = y * width + x; 24 | 25 | if (x == 0 || y == 0 || x == width-1 || y == height-1) 26 | { 27 | if(grayscale) 28 | { 29 | output[idx] = 0; 30 | } 31 | else 32 | { 33 | output[idx * 3] = 0; 34 | output[idx * 3 + 1] = 0; 35 | output[idx * 3 + 2] = 0; 36 | } 37 | } 38 | else 39 | { 40 | 41 | idxr[0] = (y - 1) * width + (x - 1); 42 | idxr[1] = (y)*width + (x - 1); 43 | idxr[2] = (y + 1) * width + (x - 1); 44 | idxr[3] = (y + 1) * width + (x); 45 | idxr[4] = (y + 1) * width + (x + 1); 46 | idxr[5] = (y)*width + (x + 1); 47 | idxr[6] = (y - 1) * width + (x + 1); 48 | idxr[7] = (y - 1) * width + (x); 49 | 50 | int x_shift = 0; 51 | int y_shift = 0; 52 | 53 | if ((x + x_shift) % 2 == 0 && (y + y_shift) % 2 == 0) //R 54 | { 55 | red = input[idx]; 56 | blue = (input[idxr[0]] + input[idxr[2]] + input[idxr[4]] + input[idxr[6]]) / 4; 57 | green = (input[idxr[1]] + input[idxr[3]] + input[idxr[5]] + input[idxr[7]]) / 4; 58 | } 59 | else if ((x + x_shift) % 2 == 1 && (y + y_shift) % 2 == 0) //G2 60 | { 61 | red = (input[idxr[1]] + input[idxr[5]]) / 2; 62 | blue = (input[idxr[3]] + input[idxr[7]]) / 2; 63 | green = input[idx]; 64 | } 65 | else if ((x + x_shift) % 2 == 0 && (y + y_shift) % 2 == 1) //G1 66 | { 67 | red = (input[idxr[3]] + input[idxr[7]]) / 2; 68 | blue = (input[idxr[1]] + input[idxr[5]]) / 2; 69 | green = input[idx]; 70 | } 71 | else if ((x + x_shift) % 2 == 1 && (y + y_shift) % 2 == 1) //B 72 | { 73 | red = (input[idxr[0]] + input[idxr[2]] + input[idxr[4]] + input[idxr[6]]) / 4; 74 | blue = input[idx]; 75 | green = (input[idxr[1]] + input[idxr[3]] + input[idxr[5]] + input[idxr[7]]) / 4; 76 | } 77 | else 78 | { 79 | red = 0; 80 | green = 0; 81 | blue = 0; 82 | } 83 | 84 | if(grayscale) 85 | { 86 | output[idx] = (red + green + blue)/3; 87 | 88 | }else 89 | { 90 | output[idx * 3] = red; 91 | output[idx * 3 + 1] = green; 92 | output[idx * 3 + 2] = blue; 93 | } 94 | 95 | 96 | } 97 | } 98 | } 99 | } 100 | 101 | void cluster_demosaicking(void* args) 102 | { 103 | uint32_t x = 0; 104 | uint32_t y = 0; 105 | uint32_t core_id = pi_core_id(), cluster_id = pi_cluster_id(); 106 | plp_example_kernel_instance_i32 *a = (plp_example_kernel_instance_i32*)args; 107 | char *input = a->srcBuffer; 108 | char *output = a->resBuffer; 109 | uint32_t width = a->width; 110 | uint32_t height = a->height; 111 | uint32_t nPE = a->nPE; 112 | uint32_t grayscale = a->grayscale; 113 | 114 | int idxr[8]; 115 | char red, blue, green; 116 | 117 | // uint32_t total = width*height; 118 | 119 | // amount of rows per core, rounded up 120 | uint32_t y_per_core = (height+nPE-1)/nPE; 121 | // compute the last element of the area each core has to process 122 | uint32_t upper_bound = (core_id+1)*y_per_core; 123 | // as we always rounded up before (to distribute the load as equal as possible) 124 | // we need to check if the upper bound is still in our matrix 125 | if(upper_bound > height ) upper_bound = height; 126 | // loop over the area assigned to the core 127 | for (y = core_id*y_per_core; y < upper_bound; y++) { 128 | 129 | for (int x = 0; x < width ; x++) 130 | { 131 | int idx = y * width + x; 132 | 133 | if (x == 0 || y == 0 || x == width-1 || y == height-1) 134 | { 135 | if(grayscale) 136 | { 137 | output[idx] = 0; 138 | } 139 | else 140 | { 141 | output[idx * 3] = 0; 142 | output[idx * 3 + 1] = 0; 143 | output[idx * 3 + 2] = 0; 144 | } 145 | } 146 | else 147 | { 148 | 149 | idxr[0] = (y - 1) * width + (x - 1); 150 | idxr[1] = (y)*width + (x - 1); 151 | idxr[2] = (y + 1) * width + (x - 1); 152 | idxr[3] = (y + 1) * width + (x); 153 | idxr[4] = (y + 1) * width + (x + 1); 154 | idxr[5] = (y)*width + (x + 1); 155 | idxr[6] = (y - 1) * width + (x + 1); 156 | idxr[7] = (y - 1) * width + (x); 157 | 158 | int x_shift = 0; 159 | int y_shift = 0; 160 | 161 | if ((x + x_shift) % 2 == 0 && (y + y_shift) % 2 == 0) //R 162 | { 163 | red = input[idx]; 164 | blue = (input[idxr[0]] + input[idxr[2]] + input[idxr[4]] + input[idxr[6]]) / 4; 165 | green = (input[idxr[1]] + input[idxr[3]] + input[idxr[5]] + input[idxr[7]]) / 4; 166 | } 167 | else if ((x + x_shift) % 2 == 1 && (y + y_shift) % 2 == 0) //G2 168 | { 169 | red = (input[idxr[1]] + input[idxr[5]]) / 2; 170 | blue = (input[idxr[3]] + input[idxr[7]]) / 2; 171 | green = input[idx]; 172 | } 173 | else if ((x + x_shift) % 2 == 0 && (y + y_shift) % 2 == 1) //G1 174 | { 175 | red = (input[idxr[3]] + input[idxr[7]]) / 2; 176 | blue = (input[idxr[1]] + input[idxr[5]]) / 2; 177 | green = input[idx]; 178 | } 179 | else if ((x + x_shift) % 2 == 1 && (y + y_shift) % 2 == 1) //B 180 | { 181 | red = (input[idxr[0]] + input[idxr[2]] + input[idxr[4]] + input[idxr[6]]) / 4; 182 | blue = input[idx]; 183 | green = (input[idxr[1]] + input[idxr[3]] + input[idxr[5]] + input[idxr[7]]) / 4; 184 | } 185 | else 186 | { 187 | red = 0; 188 | green = 0; 189 | blue = 0; 190 | } 191 | 192 | if(grayscale) 193 | { 194 | output[idx] = (red + green + blue)/3; 195 | 196 | }else 197 | { 198 | output[idx * 3] = red; 199 | output[idx * 3 + 1] = green; 200 | output[idx * 3 + 2] = blue; 201 | } 202 | 203 | 204 | } 205 | } 206 | } 207 | } 208 | 209 | void inverting(char *input, char* output, int width, int height) 210 | { 211 | int idx = 0; 212 | 213 | for (int y = 0; y < height ; y++) 214 | { 215 | for (int x = 0; x < width ; x++) 216 | { 217 | int idx = y * width + x; 218 | 219 | output[idx] = 255 - input[idx]; 220 | 221 | } 222 | } 223 | } 224 | 225 | 226 | void cluster_inverting(void* args) 227 | { 228 | uint32_t idx = 0; 229 | uint32_t core_id = pi_core_id(), cluster_id = pi_cluster_id(); 230 | plp_example_kernel_instance_i32 *a = (plp_example_kernel_instance_i32*)args; 231 | char *srcBuffer = a->srcBuffer; 232 | char *resBuffer = a->resBuffer; 233 | uint32_t width = a->width; 234 | uint32_t height = a->height; 235 | uint32_t nPE = a->nPE; 236 | 237 | uint32_t total = width*height; 238 | 239 | // amount of elements per core, rounded up 240 | uint32_t per_core = (total+nPE-1)/nPE; 241 | // compute the last element of the area each core has to process 242 | uint32_t upper_bound = (core_id+1)*per_core; 243 | // as we always rounded up before (to distribute the load as equal as possible) 244 | // we need to check if the upper bound is still in our matrix 245 | if(upper_bound > total ) upper_bound = total; 246 | // loop over the area assigned to the core 247 | for (idx = core_id*per_core; idx < upper_bound; idx++) { 248 | 249 | resBuffer[idx] = 255 - srcBuffer[idx]; 250 | 251 | } 252 | } -------------------------------------------------------------------------------- /Hands-on/Session 2/simple_kernel_example/img_proc.h: -------------------------------------------------------------------------------- 1 | #-----------------------------------------------------------------------------# 2 | # File: img_proc.h # 3 | # Original code: Bitcraze # 4 | # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/ # 5 | # image_processing_examples/simple_kernel_example # 6 | # Contributors: # 7 | # Bitcraze # 8 | # Hanna Müller # 9 | # Date: 12.04.2021 # 10 | #-----------------------------------------------------------------------------# 11 | 12 | #ifndef __IMG_PROC_H__ 13 | #define __IMG_PROC_H__ 14 | 15 | #include "pmsis.h" 16 | 17 | typedef struct { 18 | char *srcBuffer; // pointer to the input vector 19 | char *resBuffer; // pointer to the output vector 20 | uint32_t width; // image width 21 | uint32_t height; // image height 22 | uint32_t nPE; // number of cores 23 | uint32_t grayscale; // grayscale if one 24 | } plp_example_kernel_instance_i32; 25 | 26 | void demosaicking(char *input, char* output, int width, int height, int grayscale); 27 | void cluster_demosaicking(void* args); 28 | void inverting(char *input, char* output, int width, int height); 29 | void cluster_inverting(void* args); 30 | 31 | #endif -------------------------------------------------------------------------------- /Hands-on/Session 2/simple_kernel_example/test.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 GreenWaves Technologies 3 | * All rights reserved. 4 | * 5 | * This software may be modified and distributed under the terms 6 | * of the BSD license. See the LICENSE file for details. 7 | * 8 | * Authors: Germain Haugou, ETH (germain.haugou@iis.ee.ethz.ch) 9 | * First update: bitcraze 10 | * Second update (parallelization, adding inverting kernel): Hanna Müller, ETH (hanmuell@iis.ee.ethz.ch) 11 | */ 12 | 13 | // This example shows how to strean the capture of a camera image using 14 | // small buffers. 15 | // This is using aynchronous transfers to make sure a second buffer is always ready 16 | // when the current is finished, to not lose any data. 17 | 18 | #include "pmsis.h" 19 | #include "bsp/bsp.h" 20 | #include "bsp/camera.h" 21 | #include "bsp/camera/himax.h" 22 | 23 | #include "gaplib/ImgIO.h" 24 | 25 | #include "img_proc.h" 26 | 27 | #define WIDTH 324 28 | #ifdef QVGA_MODE 29 | #define HEIGHT 244 30 | #else 31 | #define HEIGHT 324 32 | #endif 33 | #define BUFF_SIZE (WIDTH*HEIGHT) 34 | 35 | PI_L2 unsigned char *buff; 36 | 37 | #if (defined(DEMOSAICKING_KERNEL_FC) || defined(DEMOSAICKING_KERNEL_CLUSTER)) 38 | PI_L2 unsigned char *buff_demosaick; 39 | #endif 40 | 41 | #if (defined(INVERTING_KERNEL_FC) || defined(INVERTING_KERNEL_CLUSTER)) 42 | PI_L2 unsigned char *buff_inverting; 43 | #endif 44 | 45 | static struct pi_device camera; 46 | static volatile int done; 47 | 48 | #if (defined(DEMOSAICKING_KERNEL_CLUSTER) || defined(INVERTING_KERNEL_CLUSTER)) 49 | struct pi_device cluster_dev = {0}; 50 | struct pi_cluster_conf cl_conf = {0}; 51 | 52 | /* Cluster main entry, executed by core 0. */ 53 | void cluster_delegate(void *arg) 54 | { 55 | /* Task dispatch to cluster cores. */ 56 | #ifdef DEMOSAICKING_KERNEL_CLUSTER 57 | pi_cl_team_fork(pi_cl_cluster_nb_cores(), cluster_demosaicking, arg); 58 | #elif defined(INVERTING_KERNEL_CLUSTER) 59 | pi_cl_team_fork(pi_cl_cluster_nb_cores(), cluster_inverting, arg); 60 | #else 61 | printf("something went wrong, no kernel found to execute\n"); 62 | #endif 63 | } 64 | #endif 65 | 66 | static void handle_transfer_end(void *arg) 67 | { 68 | done = 1; 69 | } 70 | 71 | static int open_camera(struct pi_device *device) 72 | { 73 | printf("Opening Himax camera\n"); 74 | struct pi_himax_conf cam_conf; 75 | pi_himax_conf_init(&cam_conf); 76 | 77 | #if defined(QVGA_MODE) 78 | cam_conf.format = PI_CAMERA_QVGA; 79 | #endif 80 | 81 | pi_open_from_conf(device, &cam_conf); 82 | if (pi_camera_open(device)) 83 | return -1; 84 | pi_camera_control(device, PI_CAMERA_CMD_AEG_INIT, 0); 85 | 86 | return 0; 87 | } 88 | 89 | 90 | int test_camera() 91 | { 92 | //Set Cluster Frequency to max 93 | pi_freq_set(PI_FREQ_DOMAIN_CL, 50000000); 94 | pi_freq_set(PI_FREQ_DOMAIN_FC, 50000000); 95 | printf("Entering main controller\n"); 96 | 97 | #ifdef ASYNC_CAPTURE 98 | printf("Testing async camera capture\n"); 99 | 100 | #else 101 | printf("Testing normal camera capture\n"); 102 | #endif 103 | 104 | #ifdef INVERTING_KERNEL_FC 105 | printf("Testing inverting kernel on fabric controller\n"); 106 | #endif 107 | #ifdef INVERTING_KERNEL_CLUSTER 108 | printf("Testing inverting kernel on cluster\n"); 109 | #endif 110 | #ifdef DEMOSAICKING_KERNEL_FC 111 | printf("Testing demosaicking kernel on fabric controller\n"); 112 | #endif 113 | #ifdef DEMOSAICKING_KERNEL_CLUSTER 114 | printf("Testing demosaicking kernel on cluster\n"); 115 | #endif 116 | 117 | // Open the Himax camera 118 | if (open_camera(&camera)) 119 | { 120 | printf("Failed to open camera\n"); 121 | pmsis_exit(-1); 122 | } 123 | 124 | 125 | // Rotate camera orientation 126 | uint8_t set_value=3; 127 | uint8_t reg_value; 128 | 129 | pi_camera_reg_set(&camera, IMG_ORIENTATION, &set_value); 130 | pi_camera_reg_get(&camera, IMG_ORIENTATION, ®_value); 131 | printf("img orientation %d\n",reg_value); 132 | 133 | #ifdef QVGA_MODE 134 | set_value=1; 135 | pi_camera_reg_set(&camera, QVGA_WIN_EN, &set_value); 136 | pi_camera_reg_get(&camera, QVGA_WIN_EN, ®_value); 137 | printf("qvga window enabled %d\n",reg_value); 138 | #endif 139 | 140 | #ifndef ASYNC_CAPTURE 141 | set_value=0; 142 | pi_camera_reg_set(&camera, VSYNC_HSYNC_PIXEL_SHIFT_EN, &set_value); 143 | pi_camera_reg_get(&camera, VSYNC_HSYNC_PIXEL_SHIFT_EN, ®_value); 144 | printf("vsync hsync pixel shift enabled %d\n",reg_value); 145 | #endif 146 | 147 | // Reserve buffer space for image 148 | buff = pmsis_l2_malloc(BUFF_SIZE); 149 | if (buff == NULL){ return -1;} 150 | 151 | #if (defined(DEMOSAICKING_KERNEL_FC) || defined(DEMOSAICKING_KERNEL_CLUSTER)) 152 | #ifdef COLOR_IMAGE 153 | buff_demosaick = pmsis_l2_malloc(BUFF_SIZE*3); 154 | #else 155 | buff_demosaick = pmsis_l2_malloc(BUFF_SIZE); 156 | #endif 157 | if (buff_demosaick == NULL){ return -1;} 158 | #endif 159 | 160 | #if (defined(INVERTING_KERNEL_FC) || defined(INVERTING_KERNEL_CLUSTER)) 161 | buff_inverting = pmsis_l2_malloc(BUFF_SIZE); 162 | if (buff_inverting == NULL){ return -1;} 163 | #endif 164 | printf("Initialized buffers\n"); 165 | 166 | #if (defined(DEMOSAICKING_KERNEL_CLUSTER) || defined(INVERTING_KERNEL_CLUSTER)) 167 | /* Init cluster configuration structure. */ 168 | pi_cluster_conf_init(&cl_conf); 169 | cl_conf.id = 0; /* Set cluster ID. */ 170 | /* Configure & open cluster. */ 171 | pi_open_from_conf(&cluster_dev, &cl_conf); 172 | if (pi_cluster_open(&cluster_dev)) 173 | { 174 | printf("Cluster open failed !\n"); 175 | pmsis_exit(-1); 176 | } 177 | 178 | /* Prepare cluster task. */ 179 | struct pi_cluster_task cl_task = {0}; 180 | cl_task.entry = cluster_delegate; 181 | #ifdef INVERTING_KERNEL_CLUSTER 182 | plp_example_kernel_instance_i32 args = { 183 | .srcBuffer = buff, .resBuffer = buff_inverting, .width = WIDTH, .height = HEIGHT, .nPE = pi_cl_cluster_nb_cores(), .grayscale = 1 184 | }; 185 | #elif defined(DEMOSAICKING_KERNEL_CLUSTER) 186 | plp_example_kernel_instance_i32 args = { 187 | .srcBuffer = buff, .resBuffer = buff_demosaick, .width = WIDTH, .height = HEIGHT, .nPE = pi_cl_cluster_nb_cores(), 188 | #ifdef COLOR_IMAGE 189 | .grayscale = 0 190 | #else 191 | .grayscale = 1 192 | #endif 193 | }; 194 | #else 195 | printf("something went wrong, no kernel found to execute\n"); 196 | #endif 197 | cl_task.arg = (void*)&args; 198 | #endif 199 | 200 | #ifdef ASYNC_CAPTURE 201 | // Start up async capture task 202 | done = 0; 203 | pi_task_t task; 204 | pi_camera_capture_async(&camera, buff, BUFF_SIZE, pi_task_callback(&task, handle_transfer_end, NULL)); 205 | #endif 206 | 207 | // Start the camera 208 | pi_camera_control(&camera, PI_CAMERA_CMD_START, 0); 209 | #ifdef ASYNC_CAPTURE 210 | while(!done){pi_yield();} 211 | #else 212 | pi_camera_capture(&camera, buff, BUFF_SIZE); 213 | #endif 214 | 215 | // Stop the camera and immediately close it 216 | pi_camera_control(&camera, PI_CAMERA_CMD_STOP, 0); 217 | pi_camera_close(&camera); 218 | 219 | uint32_t time_before = pi_time_get_us(); 220 | #ifdef DEMOSAICKING_KERNEL_FC 221 | #ifdef COLOR_IMAGE 222 | demosaicking(buff, buff_demosaick, WIDTH, HEIGHT, 0); 223 | #else 224 | demosaicking(buff, buff_demosaick, WIDTH, HEIGHT, 1); 225 | #endif 226 | #endif 227 | #if (defined(DEMOSAICKING_KERNEL_CLUSTER) || defined(INVERTING_KERNEL_CLUSTER)) 228 | pi_cluster_send_task_to_cl(&cluster_dev, &cl_task); 229 | #endif 230 | #ifdef INVERTING_KERNEL_FC 231 | inverting(buff, buff_inverting, WIDTH, HEIGHT); 232 | #endif 233 | uint32_t time_after = pi_time_get_us(); 234 | printf("Computation time for kernel: %dus \n", time_after - time_before); 235 | 236 | // Write to file 237 | #if (defined(DEMOSAICKING_KERNEL_FC) || defined(DEMOSAICKING_KERNEL_CLUSTER)) 238 | #ifdef COLOR_IMAGE 239 | WriteImageToFile("../../../img_color.ppm", WIDTH, HEIGHT, sizeof(uint32_t), buff_demosaick, RGB888_IO); 240 | #else 241 | WriteImageToFile("../../../img_gray.ppm", WIDTH, HEIGHT, sizeof(uint8_t), buff_demosaick, GRAY_SCALE_IO); 242 | #endif 243 | #endif 244 | 245 | #if (defined(INVERTING_KERNEL_FC) || defined(INVERTING_KERNEL_CLUSTER)) 246 | WriteImageToFile("../../../img_inverted.ppm", WIDTH, HEIGHT, sizeof(uint8_t), buff_inverting, GRAY_SCALE_IO); 247 | #endif 248 | 249 | WriteImageToFile("../../../img_raw.ppm", WIDTH, HEIGHT, sizeof(uint8_t), buff, GRAY_SCALE_IO ); 250 | 251 | pmsis_exit(0); 252 | } 253 | 254 | int main(void) 255 | { 256 | printf("\n\t*** PMSIS Camera Example ***\n\n"); 257 | return pmsis_kickoff((void *) test_camera); 258 | } 259 | -------------------------------------------------------------------------------- /Hands-on/Session 3/Session_3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/Session_3.pdf -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/.gitignore: -------------------------------------------------------------------------------- 1 | bin/* 2 | cf2.* 3 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # enable app support 3 | APP=1 4 | APP_STACKSIZE=300 5 | 6 | VPATH += src/ 7 | PROJ_OBJ += main.o 8 | PROJ_OBJ += uart_dma_pulp.o 9 | INCLUDES += -Iinc 10 | 11 | CRAZYFLIE_BASE=../crazyflie-firmware 12 | include $(CRAZYFLIE_BASE)/Makefile -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/README.md: -------------------------------------------------------------------------------- 1 | # Hello world App for Crazyflie 2.X 2 | 3 | This folder contains the app layer application for the Crazyflie to print a hello world debug message, which can be read in the console tab of the [cfclient](https://github.com/bitcraze/crazyflie-clients-python). 4 | 5 | See App layer API guide [here](https://www.bitcraze.io/documentation/repository/crazyflie-firmware/master/userguides/app_layer/) 6 | 7 | ## Build 8 | 9 | Make sure that you are in the app_hello_world folder (not the main folder of the crazyflie firmware). Then type the following to build and flash it while the crazyflie is put into bootloader mode: 10 | 11 | ``` 12 | make clean 13 | make 14 | make cload 15 | ``` 16 | 17 | If you want to compile the application elsewhere in your machine, make sure to update ```CRAZYFLIE_BASE``` in the **Makefile**. -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/current_platform.mk: -------------------------------------------------------------------------------- 1 | PLATFORM=cf2 2 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/inc/uart_dma_pulp.h: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | Copyright (C) 2020-2021 ETH Zurich, Switzerland, University of Bologna, Italy. 3 | All rights reserved. 4 | 5 | File: uart_dma_pulp.h 6 | Author: Vlad Niculescu 7 | Date: 15.03.2021 8 | -------------------------------------------------------------------------------*/ 9 | 10 | #ifndef __UART_DMA_PULP_H 11 | #define __UART_DMA_PULP_H 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | #include "stm32f4xx.h" 18 | 19 | typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus; 20 | 21 | 22 | /* Definition for USARTx resources ******************************************/ 23 | #define USARTx USART3 24 | #define USARTx_CLK RCC_APB1Periph_USART3 25 | #define USARTx_CLK_INIT RCC_APB1PeriphClockCmd 26 | #define USARTx_IRQn USART3_IRQn 27 | #define USARTx_IRQHandler USART3_IRQHandler 28 | 29 | #define USARTx_TX_PIN GPIO_Pin_10 30 | #define USARTx_TX_GPIO_PORT GPIOC 31 | #define USARTx_TX_GPIO_CLK RCC_AHB1Periph_GPIOC 32 | #define USARTx_TX_SOURCE GPIO_PinSource10 33 | #define USARTx_TX_AF GPIO_AF_USART3 34 | 35 | #define USARTx_RX_PIN GPIO_Pin_11 36 | #define USARTx_RX_GPIO_PORT GPIOC 37 | #define USARTx_RX_GPIO_CLK RCC_AHB1Periph_GPIOC 38 | #define USARTx_RX_SOURCE GPIO_PinSource11 39 | #define USARTx_RX_AF GPIO_AF_USART3 40 | 41 | /* Definition for DMAx resources ********************************************/ 42 | #define USARTx_DR_ADDRESS ((uint32_t)USART3 + 0x04) 43 | #define USARTx_DMA DMA1 44 | #define USARTx_DMAx_CLK RCC_AHB1Periph_DMA1 45 | 46 | #define USARTx_TX_DMA_CHANNEL DMA_Channel_4 47 | #define USARTx_TX_DMA_STREAM DMA1_Stream3 48 | #define USARTx_TX_DMA_FLAG_FEIF DMA_FLAG_FEIF3 49 | #define USARTx_TX_DMA_FLAG_DMEIF DMA_FLAG_DMEIF3 50 | #define USARTx_TX_DMA_FLAG_TEIF DMA_FLAG_TEIF3 51 | #define USARTx_TX_DMA_FLAG_HTIF DMA_FLAG_HTIF3 52 | #define USARTx_TX_DMA_FLAG_TCIF DMA_FLAG_TCIF3 53 | 54 | #define USARTx_RX_DMA_CHANNEL DMA_Channel_4 55 | #define USARTx_RX_DMA_STREAM DMA1_Stream1 56 | #define USARTx_RX_DMA_FLAG_FEIF DMA_FLAG_FEIF1 57 | #define USARTx_RX_DMA_FLAG_DMEIF DMA_FLAG_DMEIF1 58 | #define USARTx_RX_DMA_FLAG_TEIF DMA_FLAG_TEIF1 59 | #define USARTx_RX_DMA_FLAG_HTIF DMA_FLAG_HTIF1 60 | #define USARTx_RX_DMA_FLAG_TCIF DMA_FLAG_TCIF1 61 | 62 | #define USARTx_DMA_TX_IRQn DMA1_Stream3_IRQn 63 | #define USARTx_DMA_RX_IRQn DMA1_Stream1_IRQn 64 | #define USARTx_DMA_TX_IRQHandler DMA1_Stream3_IRQHandler 65 | #define USARTx_DMA_RX_IRQHandler DMA1_Stream1_IRQHandler 66 | 67 | #define UART3_RX_DMA_ALL_FLAGS (DMA_FLAG_FEIF1 | DMA_FLAG_DMEIF1 | DMA_FLAG_TEIF1 | DMA_FLAG_HTIF1 | DMA_FLAG_TCIF1 ) 68 | 69 | 70 | #ifdef __cplusplus 71 | } 72 | #endif 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/inc/uart_dma_setup.h: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | Copyright (C) 2020-2021 ETH Zurich, Switzerland, University of Bologna, Italy. 3 | All rights reserved. 4 | 5 | File: uart_dma_setup.h 6 | Author: Vlad Niculescu 7 | Date: 15.03.2021 8 | -------------------------------------------------------------------------------*/ 9 | 10 | #ifndef __UART_DMA_SETUP_H 11 | #define __UART_DMA_SETUP_H 12 | 13 | #include "uart_dma_pulp.h" 14 | 15 | void USART_DMA_Start(uint32_t baudrate, uint8_t *pulpRxBuffer, uint32_t BUFFERSIZE); 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/src/main.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | Copyright (C) 2020-2021 ETH Zurich, Switzerland, University of Bologna, Italy. 3 | All rights reserved. 4 | 5 | File: main.c 6 | Author: Vlad Niculescu 7 | Date: 15.03.2021 8 | -------------------------------------------------------------------------------*/ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #include "app.h" 15 | #include "FreeRTOS.h" 16 | #include "task.h" 17 | #include "debug.h" 18 | #include "uart_dma_setup.h" 19 | #include "log.h" 20 | 21 | #define DEBUG_MODULE "HELLOWORLD" 22 | #define BUFFERSIZE 1 23 | 24 | uint8_t aideckRxBuffer[BUFFERSIZE]; 25 | volatile uint8_t dma_flag = 0; 26 | uint8_t log_counter=0; 27 | 28 | void appMain() 29 | { 30 | DEBUG_PRINT("Application started! \n"); 31 | USART_DMA_Start(115200, aideckRxBuffer, BUFFERSIZE); 32 | 33 | while(1) { 34 | vTaskDelay(M2T(100)); 35 | if (dma_flag == 1) 36 | { 37 | dma_flag = 0; // clear the flag 38 | DEBUG_PRINT("Counter: %d\n", aideckRxBuffer[0]); 39 | log_counter = aideckRxBuffer[0]; 40 | memset(aideckRxBuffer, 0, BUFFERSIZE); // clear the dma buffer 41 | } 42 | } 43 | } 44 | 45 | 46 | void __attribute__((used)) DMA1_Stream1_IRQHandler(void) 47 | { 48 | DMA_ClearFlag(DMA1_Stream1, UART3_RX_DMA_ALL_FLAGS); 49 | dma_flag = 1; 50 | } 51 | 52 | LOG_GROUP_START(log_test) 53 | LOG_ADD(LOG_UINT8, test_variable_x, &log_counter) 54 | LOG_GROUP_STOP(log_test) 55 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/src/uart_dma_pulp.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | Copyright (C) 2020-2021 ETH Zurich, Switzerland, University of Bologna, Italy. 3 | All rights reserved. 4 | 5 | File: uart_dma_pulp.c 6 | Author: Vlad Niculescu 7 | Date: 15.03.2021 8 | -------------------------------------------------------------------------------*/ 9 | 10 | #include "uart_dma_pulp.h" 11 | 12 | DMA_InitTypeDef DMA_InitStructure; 13 | 14 | static void USART_Config(uint32_t baudrate, uint8_t *pulpRxBuffer, uint32_t BUFFERSIZE); 15 | 16 | void USART_DMA_Start(uint32_t baudrate, uint8_t *pulpRxBuffer, uint32_t BUFFERSIZE) 17 | { 18 | // Setup Communication 19 | USART_Config(baudrate, pulpRxBuffer, BUFFERSIZE); 20 | 21 | DMA_ITConfig(USARTx_RX_DMA_STREAM, DMA_IT_TC, ENABLE); 22 | 23 | // Enable DMA USART RX Stream 24 | DMA_Cmd(USARTx_RX_DMA_STREAM,ENABLE); 25 | 26 | // Enable USART DMA RX Requsts 27 | USART_DMACmd(USARTx, USART_DMAReq_Rx, ENABLE); 28 | 29 | // Clear DMA Transfer Complete Flags 30 | DMA_ClearFlag(USARTx_RX_DMA_STREAM,USARTx_RX_DMA_FLAG_TCIF); 31 | 32 | // Clear USART Transfer Complete Flags 33 | USART_ClearFlag(USARTx,USART_FLAG_TC); 34 | 35 | DMA_ClearFlag(USARTx_RX_DMA_STREAM, UART3_RX_DMA_ALL_FLAGS); 36 | NVIC_EnableIRQ(DMA1_Stream1_IRQn); 37 | } 38 | 39 | static void USART_Config(uint32_t baudrate, uint8_t *pulpRxBuffer, uint32_t BUFFERSIZE) 40 | { 41 | USART_InitTypeDef USART_InitStructure; 42 | GPIO_InitTypeDef GPIO_InitStructure; 43 | 44 | // Enable GPIO clock 45 | RCC_AHB1PeriphClockCmd(USARTx_TX_GPIO_CLK | USARTx_RX_GPIO_CLK, ENABLE); 46 | 47 | // Enable USART clock 48 | USARTx_CLK_INIT(USARTx_CLK, ENABLE); 49 | 50 | // Enable the DMA clock 51 | RCC_AHB1PeriphClockCmd(USARTx_DMAx_CLK, ENABLE); 52 | 53 | // Connect USART pins to Crazyflie RX1 annd TX1 - USART3 in the STM32 */ 54 | GPIO_PinAFConfig(USARTx_TX_GPIO_PORT, USARTx_TX_SOURCE, USARTx_TX_AF); 55 | GPIO_PinAFConfig(USARTx_RX_GPIO_PORT, USARTx_RX_SOURCE, USARTx_RX_AF); 56 | 57 | // Configure USART Tx and Rx as alternate function push-pull 58 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; 59 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 60 | GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; 61 | GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; 62 | 63 | GPIO_InitStructure.GPIO_Pin = USARTx_TX_PIN; 64 | GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStructure); 65 | 66 | GPIO_InitStructure.GPIO_Pin = USARTx_RX_PIN; 67 | GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStructure); 68 | 69 | // USARTx configuration 70 | USART_OverSampling8Cmd(USARTx, ENABLE); 71 | 72 | USART_InitStructure.USART_BaudRate = baudrate; 73 | USART_InitStructure.USART_WordLength = USART_WordLength_8b; 74 | USART_InitStructure.USART_StopBits = USART_StopBits_1; 75 | /* When using Parity the word length must be configured to 9 bits */ 76 | USART_InitStructure.USART_Parity = USART_Parity_No; 77 | USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; 78 | USART_InitStructure.USART_Mode = USART_Mode_Rx; 79 | USART_Init(USARTx, &USART_InitStructure); 80 | 81 | /* Configure DMA Initialization Structure */ 82 | DMA_InitStructure.DMA_BufferSize = BUFFERSIZE ; 83 | DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable ; 84 | DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_1QuarterFull ; 85 | DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single ; 86 | DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; 87 | DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; 88 | DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; 89 | DMA_InitStructure.DMA_PeripheralBaseAddr =(uint32_t) (&(USARTx->DR)) ; 90 | DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; 91 | DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; 92 | DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; 93 | DMA_InitStructure.DMA_Priority = DMA_Priority_High; 94 | 95 | /* Configure RX DMA */ 96 | DMA_InitStructure.DMA_Channel = USARTx_RX_DMA_CHANNEL ; 97 | DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory ; 98 | DMA_InitStructure.DMA_Memory0BaseAddr =(uint32_t)pulpRxBuffer ; 99 | DMA_Init(USARTx_RX_DMA_STREAM,&DMA_InitStructure); 100 | 101 | /* Enable USART */ 102 | USART_Cmd(USARTx, ENABLE); 103 | } 104 | 105 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_cf_app/version.c: -------------------------------------------------------------------------------- 1 | /* This file is automatically generated by ../crazyflie-firmware/tools/make/versionTemplate.py! 2 | * Do not edit manually, any manual change will be overwritten. 3 | */ 4 | /** 5 | * || ____ _ __ 6 | * +------+ / __ )(_) /_______________ _____ ___ 7 | * | 0xBC | / __ / / __/ ___/ ___/ __ `/_ / / _ \ 8 | * +------+ / /_/ / / /_/ /__/ / / /_/ / / /_/ __/ 9 | * || || /_____/_/\__/\___/_/ \__,_/ /___/\___/ 10 | * 11 | * Crazyflie control firmware 12 | * 13 | * Copyright (C) 2011-2012 Bitcraze AB 14 | * 15 | * This program is free software: you can redistribute it and/or modify 16 | * it under the terms of the GNU General Public License as published by 17 | * the Free Software Foundation, in version 3. 18 | * 19 | * This program is distributed in the hope that it will be useful, 20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | * GNU General Public License for more details. 23 | * 24 | * You should have received a copy of the GNU General Public License 25 | * along with this program. If not, see . 26 | * 27 | * version.tmpl - version of the build 28 | */ 29 | #include 30 | #include 31 | 32 | #include "config.h" 33 | #include "param.h" 34 | 35 | const char * V_SLOCAL_REVISION="0"; 36 | const char * V_SREVISION="dd31d5db8ed1"; 37 | const char * V_STAG="2021.03"; 38 | const char * V_BRANCH="master"; 39 | const bool V_MODIFIED=false; 40 | const bool V_PRODUCTION_RELEASE=false; 41 | 42 | /* Version recoverable from the ground */ 43 | const uint32_t V_REVISION_0=0xdd31d5db; 44 | const uint16_t V_REVISION_1=0x8ed1; 45 | 46 | PARAM_GROUP_START(firmware) 47 | PARAM_ADD(PARAM_UINT32 | PARAM_RONLY, revision0, &V_REVISION_0) 48 | PARAM_ADD(PARAM_UINT16 | PARAM_RONLY, revision1, &V_REVISION_1) 49 | PARAM_ADD(PARAM_UINT8 | PARAM_RONLY, modified, &V_MODIFIED) 50 | PARAM_GROUP_STOP(firmware) 51 | 52 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/flash.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/flash.img -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/pulp-os/conf.d: -------------------------------------------------------------------------------- 1 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/pulp-os/conf.o: \ 2 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/conf.c \ 3 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/gap_rev1/config.h \ 4 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp_defs.h \ 5 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api.h \ 6 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api_decl.h \ 7 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 8 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp.h \ 9 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/utils.h \ 10 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2.h \ 11 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2_emu.h \ 12 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/pulp.h \ 13 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/properties.h \ 14 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/priv_1_9.h \ 15 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/pcer_v1.h \ 16 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/memory_map.h \ 17 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/apb_soc.h \ 18 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/padframe.h \ 19 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/stdout/stdout_v3.h \ 20 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/eu/eu_v3.h \ 21 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2.h \ 22 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2_new.h \ 23 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/soc_eu/soc_eu_v1.h \ 24 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/dma/mchan_v6.h \ 25 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1.h \ 26 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regs.h \ 27 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regfields.h \ 28 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_structs.h \ 29 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regmap.h \ 30 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_accessors.h \ 31 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_macros.h \ 32 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_groups.h \ 33 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_constants.h \ 34 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/hwce_v4_old.h \ 35 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce.h \ 36 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regs.h \ 37 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields.h \ 38 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_structs.h \ 39 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regmap.h \ 40 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_accessors.h \ 41 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gap_utils.h \ 42 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields_accessors.h \ 43 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_macros.h \ 44 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_groups.h \ 45 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_constants.h \ 46 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1_old.h \ 47 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1.h \ 48 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/hyper/udma_hyper_v1.h \ 49 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2c/udma_i2c_v2.h \ 50 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1.h \ 51 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/udma_v2.h \ 52 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1_new.h \ 53 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/spim/udma_spim_v2.h \ 54 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/tcdm/udma_tcdm_v1.h \ 55 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/uart/udma_uart_v1.h \ 56 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_bridge.h \ 57 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/debug_bridge/debug_bridge.h \ 58 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/debug_bridge/debug_bridge.h \ 59 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/pmsis_types.h \ 60 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_pmsis_types.h \ 61 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_spim.h \ 62 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_camera.h \ 63 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2c.h \ 64 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_i2c.h \ 65 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_default.h \ 66 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap.h \ 67 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_wolfe.h \ 68 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_vega.h \ 69 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap9.h \ 70 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulpissimo.h \ 71 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulp.h \ 72 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_irq.h \ 73 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp.h \ 74 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/pulp.h \ 75 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/riscv_v4.h \ 76 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/types.h \ 77 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/eu/eu_v3.h \ 78 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp_io.h \ 79 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/dma/mchan_v6.h \ 80 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/timer/timer_v2.h \ 81 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/timer/timer_v2.h \ 82 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h \ 83 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/udma_v2.h \ 84 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/cluster_ctrl/cluster_ctrl_v2.h \ 85 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/cluster_ctrl/cluster_ctrl_v2.h \ 86 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/icache/icache_ctrl_v2.h \ 87 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/apb_soc.h \ 88 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/maestro/pmu_v1.h \ 89 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/maestro/maestro_v1.h \ 90 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/rom/rom_v2.h \ 91 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/fll/fll_v1.h \ 92 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/fll/fll_v1.h \ 93 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/efuse/efuse_v1.h \ 94 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/efuse/efuse_v1.h \ 95 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/efuse.h \ 96 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/vendors/dolphin/rtc.h \ 97 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/vendors/dolphin/rtc.h \ 98 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pwm/pwm_v1.h \ 99 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/pwm_v1.h \ 100 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/gpio/gpio_v2.h \ 101 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/hwce/hwce_v4.h \ 102 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/cpi/udma_cpi_v1.h \ 103 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/hyper/udma_hyper_v1.h \ 104 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2c/udma_i2c_v2.h \ 105 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2s/udma_i2s_v1.h \ 106 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/spim/udma_spim_v2.h \ 107 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/tcdm/udma_tcdm_v1.h \ 108 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h \ 109 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_utils.h \ 110 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/string.h \ 111 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 112 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_extern_alloc.h \ 113 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_thread.h \ 114 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_event.h \ 115 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_alloc.h \ 116 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_flash.h \ 117 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dev.h \ 118 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_periph.h \ 119 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdio.h \ 120 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_cluster.h \ 121 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_hyper.h \ 122 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h \ 123 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/hyperram.h \ 124 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_debug.h \ 125 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h \ 126 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h \ 127 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_config.h \ 128 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pe.h \ 129 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_camera.h \ 130 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_himax.h \ 131 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dma.h \ 132 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_sync_mc.h \ 133 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_perf.h \ 134 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_time.h \ 135 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_timer.h \ 136 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_freq.h \ 137 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pm.h \ 138 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2s.h \ 139 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_fs.h \ 140 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_error.h \ 141 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_uart.h \ 142 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_spim.h \ 143 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_rtc.h \ 144 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pwm.h \ 145 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pad.h \ 146 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_gpio.h \ 147 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_voltage.h \ 148 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_bridge.h \ 149 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_eeprom.h \ 150 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_task.h \ 151 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h \ 152 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis.h \ 153 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pulpos.h \ 154 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 155 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/device.h \ 156 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h \ 157 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/mem_slab.h \ 158 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/fc_to_cl_delegate.h \ 159 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_to_fc_delegate.h \ 160 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/malloc_internal.h \ 161 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h \ 162 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/perf.h \ 163 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h \ 164 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/gpio.h \ 165 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h \ 166 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h \ 167 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h \ 168 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h \ 169 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h \ 170 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h \ 171 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/perf.h \ 172 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h \ 173 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h \ 174 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2c.h \ 175 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2s.h \ 176 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/spi.h \ 177 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/gpio.h \ 178 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h \ 179 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h \ 180 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/dmacpy.h \ 181 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h \ 182 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h \ 183 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h \ 184 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h \ 185 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h \ 186 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h \ 187 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h \ 188 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h \ 189 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2s.h \ 190 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h \ 191 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/spi.h \ 192 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2c.h \ 193 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/uart.h \ 194 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/implem.h \ 195 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/udma.h \ 196 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/pwm.h \ 197 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h \ 198 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/perf.h \ 199 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/cpi.h \ 200 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h \ 201 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h \ 202 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/uart.h \ 203 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h \ 204 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h \ 205 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/dma.h \ 206 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h \ 207 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/implem.h \ 208 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/utils.h \ 209 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/cluster.h \ 210 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h \ 211 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/udma.h \ 212 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/rtos.h \ 213 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/pi_malloc.h \ 214 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h \ 215 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h \ 216 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h \ 217 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/os.h \ 218 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h \ 219 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h \ 220 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/event_kernel/event_kernel.h \ 221 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pi_log.h \ 222 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/utils.h \ 223 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_synchronisation.h 224 | 225 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/gap_rev1/config.h: 226 | 227 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp_defs.h: 228 | 229 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api.h: 230 | 231 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api_decl.h: 232 | 233 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 234 | 235 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp.h: 236 | 237 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/utils.h: 238 | 239 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2.h: 240 | 241 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2_emu.h: 242 | 243 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/pulp.h: 244 | 245 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/properties.h: 246 | 247 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/priv_1_9.h: 248 | 249 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/pcer_v1.h: 250 | 251 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/memory_map.h: 252 | 253 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/apb_soc.h: 254 | 255 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/padframe.h: 256 | 257 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/stdout/stdout_v3.h: 258 | 259 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/eu/eu_v3.h: 260 | 261 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2.h: 262 | 263 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2_new.h: 264 | 265 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/soc_eu/soc_eu_v1.h: 266 | 267 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/dma/mchan_v6.h: 268 | 269 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1.h: 270 | 271 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regs.h: 272 | 273 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regfields.h: 274 | 275 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_structs.h: 276 | 277 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regmap.h: 278 | 279 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_accessors.h: 280 | 281 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_macros.h: 282 | 283 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_groups.h: 284 | 285 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_constants.h: 286 | 287 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/hwce_v4_old.h: 288 | 289 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce.h: 290 | 291 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regs.h: 292 | 293 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields.h: 294 | 295 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_structs.h: 296 | 297 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regmap.h: 298 | 299 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_accessors.h: 300 | 301 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gap_utils.h: 302 | 303 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields_accessors.h: 304 | 305 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_macros.h: 306 | 307 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_groups.h: 308 | 309 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_constants.h: 310 | 311 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1_old.h: 312 | 313 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1.h: 314 | 315 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/hyper/udma_hyper_v1.h: 316 | 317 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2c/udma_i2c_v2.h: 318 | 319 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1.h: 320 | 321 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/udma_v2.h: 322 | 323 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1_new.h: 324 | 325 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/spim/udma_spim_v2.h: 326 | 327 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/tcdm/udma_tcdm_v1.h: 328 | 329 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/uart/udma_uart_v1.h: 330 | 331 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_bridge.h: 332 | 333 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/debug_bridge/debug_bridge.h: 334 | 335 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/debug_bridge/debug_bridge.h: 336 | 337 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/pmsis_types.h: 338 | 339 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_pmsis_types.h: 340 | 341 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_spim.h: 342 | 343 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_camera.h: 344 | 345 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2c.h: 346 | 347 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_i2c.h: 348 | 349 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_default.h: 350 | 351 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap.h: 352 | 353 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_wolfe.h: 354 | 355 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_vega.h: 356 | 357 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap9.h: 358 | 359 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulpissimo.h: 360 | 361 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulp.h: 362 | 363 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_irq.h: 364 | 365 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp.h: 366 | 367 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/pulp.h: 368 | 369 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/riscv_v4.h: 370 | 371 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/types.h: 372 | 373 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/eu/eu_v3.h: 374 | 375 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp_io.h: 376 | 377 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/dma/mchan_v6.h: 378 | 379 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/timer/timer_v2.h: 380 | 381 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/timer/timer_v2.h: 382 | 383 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h: 384 | 385 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/udma_v2.h: 386 | 387 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/cluster_ctrl/cluster_ctrl_v2.h: 388 | 389 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/cluster_ctrl/cluster_ctrl_v2.h: 390 | 391 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/icache/icache_ctrl_v2.h: 392 | 393 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/apb_soc.h: 394 | 395 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/maestro/pmu_v1.h: 396 | 397 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/maestro/maestro_v1.h: 398 | 399 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/rom/rom_v2.h: 400 | 401 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/fll/fll_v1.h: 402 | 403 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/fll/fll_v1.h: 404 | 405 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/efuse/efuse_v1.h: 406 | 407 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/efuse/efuse_v1.h: 408 | 409 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/efuse.h: 410 | 411 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/vendors/dolphin/rtc.h: 412 | 413 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/vendors/dolphin/rtc.h: 414 | 415 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pwm/pwm_v1.h: 416 | 417 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/pwm_v1.h: 418 | 419 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/gpio/gpio_v2.h: 420 | 421 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/hwce/hwce_v4.h: 422 | 423 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/cpi/udma_cpi_v1.h: 424 | 425 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/hyper/udma_hyper_v1.h: 426 | 427 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2c/udma_i2c_v2.h: 428 | 429 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2s/udma_i2s_v1.h: 430 | 431 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/spim/udma_spim_v2.h: 432 | 433 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/tcdm/udma_tcdm_v1.h: 434 | 435 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h: 436 | 437 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_utils.h: 438 | 439 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/string.h: 440 | 441 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 442 | 443 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_extern_alloc.h: 444 | 445 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_thread.h: 446 | 447 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_event.h: 448 | 449 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_alloc.h: 450 | 451 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_flash.h: 452 | 453 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dev.h: 454 | 455 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_periph.h: 456 | 457 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdio.h: 458 | 459 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_cluster.h: 460 | 461 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_hyper.h: 462 | 463 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h: 464 | 465 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/hyperram.h: 466 | 467 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_debug.h: 468 | 469 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h: 470 | 471 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h: 472 | 473 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_config.h: 474 | 475 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pe.h: 476 | 477 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_camera.h: 478 | 479 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_himax.h: 480 | 481 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dma.h: 482 | 483 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_sync_mc.h: 484 | 485 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_perf.h: 486 | 487 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_time.h: 488 | 489 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_timer.h: 490 | 491 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_freq.h: 492 | 493 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pm.h: 494 | 495 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2s.h: 496 | 497 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_fs.h: 498 | 499 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_error.h: 500 | 501 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_uart.h: 502 | 503 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_spim.h: 504 | 505 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_rtc.h: 506 | 507 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pwm.h: 508 | 509 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pad.h: 510 | 511 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_gpio.h: 512 | 513 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_voltage.h: 514 | 515 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_bridge.h: 516 | 517 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_eeprom.h: 518 | 519 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_task.h: 520 | 521 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h: 522 | 523 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis.h: 524 | 525 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pulpos.h: 526 | 527 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 528 | 529 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/device.h: 530 | 531 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h: 532 | 533 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/mem_slab.h: 534 | 535 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/fc_to_cl_delegate.h: 536 | 537 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_to_fc_delegate.h: 538 | 539 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/malloc_internal.h: 540 | 541 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h: 542 | 543 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/perf.h: 544 | 545 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h: 546 | 547 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/gpio.h: 548 | 549 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h: 550 | 551 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h: 552 | 553 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h: 554 | 555 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h: 556 | 557 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h: 558 | 559 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h: 560 | 561 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/perf.h: 562 | 563 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h: 564 | 565 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h: 566 | 567 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2c.h: 568 | 569 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2s.h: 570 | 571 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/spi.h: 572 | 573 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/gpio.h: 574 | 575 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h: 576 | 577 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h: 578 | 579 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/dmacpy.h: 580 | 581 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h: 582 | 583 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h: 584 | 585 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h: 586 | 587 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h: 588 | 589 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h: 590 | 591 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h: 592 | 593 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h: 594 | 595 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h: 596 | 597 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2s.h: 598 | 599 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h: 600 | 601 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/spi.h: 602 | 603 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2c.h: 604 | 605 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/uart.h: 606 | 607 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/implem.h: 608 | 609 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/udma.h: 610 | 611 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/pwm.h: 612 | 613 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h: 614 | 615 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/perf.h: 616 | 617 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/cpi.h: 618 | 619 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h: 620 | 621 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h: 622 | 623 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/uart.h: 624 | 625 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h: 626 | 627 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h: 628 | 629 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/dma.h: 630 | 631 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h: 632 | 633 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/implem.h: 634 | 635 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/utils.h: 636 | 637 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/cluster.h: 638 | 639 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h: 640 | 641 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/udma.h: 642 | 643 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/rtos.h: 644 | 645 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/pi_malloc.h: 646 | 647 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h: 648 | 649 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h: 650 | 651 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h: 652 | 653 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/os.h: 654 | 655 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h: 656 | 657 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h: 658 | 659 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/event_kernel/event_kernel.h: 660 | 661 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pi_log.h: 662 | 663 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/utils.h: 664 | 665 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_synchronisation.h: 666 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/pulp-os/conf.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/pulp-os/conf.o -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/target.board.devices.flash.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/target.board.devices.flash.img -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/test -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/test.size: -------------------------------------------------------------------------------- 1 | text data bss dec hex filename 2 | 0x4a8c 0x16b4 0x22c 25452 636c /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test 3 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b000c08 00000001 D camera_isAwaked /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/camera/himax.c:150 4 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000388 00000001 D __rt_hyper_pending_emu_do_memcpy /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:53 5 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004eec 00000001 B to_send 6 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000eac 00000002 W illegal_insn_handler_c /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/irq.c:89 7 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0017d0 00000002 T pi_time_wait_us /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:131 8 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001fda 00000002 T __rt_fll_deinit /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:876 9 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001fdc 00000002 T __rt_flls_constructor /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:880 10 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c10 00000003 d ToHWDCDC_Pos /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:192 11 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0046a8 00000004 t ctor_list /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:29 12 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0046f0 00000004 t dtor_list /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:30 13 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004efc 00000004 B first_delayed 14 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ec8 00000004 b __pi_hyper_cluster_reqs_first /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:62 15 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000e5c 00000004 T pi_open_from_conf /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:325 16 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c14 00000004 D PMURetentionState 17 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000003a4 00000004 D pwmEventsStatus /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm.c:9 18 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c20 00000004 d RetPMUStateToPMUState /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:185 19 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ef8 00000004 B __rt_alloc_fc_tcdm 20 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ef0 00000004 B __rt_alloc_l1 21 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ef4 00000004 B __rt_alloc_l2 22 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000014 00000004 d __rt_bridge_eeprom_handle /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:25 23 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000010 00000004 d __rt_bridge_flash_cs /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:29 24 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000004 00000004 d __rt_bridge_flash_handle /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:26 25 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000000c 00000004 d __rt_bridge_flash_itf /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:28 26 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000008 00000004 d __rt_bridge_flash_type /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:27 27 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000003e0 00000004 D __rtc_handler /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/dolphin/rtc.c:25 28 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1000001c 00000004 D __rt_cluster_fc_task_lock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:59 29 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000018 00000004 D __rt_cluster_nb_active_pe 30 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004f0c 00000004 B __rt_cluster_tasks /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:41 31 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b000bec 00000004 D __rt_debug_config 32 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b000be8 00000004 D __rt_debug_config_trace 33 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000014 00000004 D __rt_dma_first_pending 34 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000010 00000004 D __rt_dma_last_pending 35 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ec4 00000004 b __rt_fc_cluster_device /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/pulpos_emu.c:25 36 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004bf4 00000004 V __rt_fc_stack_size 37 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000018 00000004 D __rt_first_free 38 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001fde 00000004 T __rt_fll_set_freq /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:884 39 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000374 00000004 D __rt_hyper_current_task /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:27 40 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000370 00000004 D __rt_hyper_end_task /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:25 41 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ecc 00000004 b __rt_hyper_open_count /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:65 42 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000364 00000004 D __rt_hyper_pending_addr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:33 43 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000035c 00000004 D __rt_hyper_pending_base /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:31 44 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000380 00000004 D __rt_hyper_pending_emu_addr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:48 45 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000378 00000004 D __rt_hyper_pending_emu_channel /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:46 46 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000037c 00000004 D __rt_hyper_pending_emu_hyper_addr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:47 47 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000039c 00000004 D __rt_hyper_pending_emu_length /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:51 48 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000384 00000004 D __rt_hyper_pending_emu_size /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:49 49 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000398 00000004 D __rt_hyper_pending_emu_size_2d /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:50 50 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000003a0 00000004 D __rt_hyper_pending_emu_stride /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:52 51 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000038c 00000004 D __rt_hyper_pending_emu_task /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:54 52 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000360 00000004 D __rt_hyper_pending_hyper_addr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:32 53 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000368 00000004 D __rt_hyper_pending_repeat /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:34 54 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000036c 00000004 D __rt_hyper_pending_repeat_size /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:35 55 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000390 00000004 D __rt_hyper_pending_tasks /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:39 56 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000394 00000004 D __rt_hyper_pending_tasks_last /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:40 57 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000358 00000004 D __rt_hyper_udma_handle 58 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ed0 00000004 b __rt_i2s_first /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2s/i2s-v1.c:40 59 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004bec 00000004 V __rt_iodev 60 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004bf0 00000004 V __rt_iodev_uart_baudrate 61 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ebc 00000004 V __rt_iodev_uart_channel 62 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004edc 00000004 b __rt_io_event_current /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:40 63 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ee0 00000004 b __rt_io_pending_flush /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:50 64 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ee8 00000004 b _rt_io_uart /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:38 65 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004be8 00000004 V __rt_platform 66 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ee4 00000004 b __rt_putc_host_buffer_index /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:48 67 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000003dc 00000004 D __rt_rtc_init_done /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/dolphin/rtc.c:26 68 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004f08 00000004 B __rt_wakeup_use_fast /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:173 69 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ec0 00000004 b timer_count /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:23 70 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0021cc 00000006 T pi_cluster_conf_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:337 71 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0035d4 00000006 T semihost_exit /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/semihost.c:51 72 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0035ce 00000006 T semihost_write0 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/semihost.c:6 73 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004bf8 00000007 d SystemStateToSCUFastSeq /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:176 74 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003546 00000008 T abort /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:739 75 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c18 00000008 D FllsFrequency 76 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004f00 00000008 B __rt_freq_domains 77 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000002b0 00000008 D __rt_socevents_status 78 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ed4 00000008 b __rt_spim_open_count /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/spim/spim-v2.c:26 79 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f18 0000000a T __rt_himax_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/camera/himax.c:400 80 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002b80 0000000a T __rt_padframe_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/pads/pads-v1.c:58 81 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000004 0000000c D __rt_cluster_pool 82 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0035c0 0000000e t __internal_semihost /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/semihost.h:75 83 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002c04 0000000e T pi_pwm_conf_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm-v1.c:46 84 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f58 0000000e t __rt_io_end_of_flush /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:366 85 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003302 00000010 T memset /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:150 86 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c00 00000010 D PMUState 87 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b000c0c 00000010 d __rt_io_fc_lock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:35 88 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004ae0 00000010 V __rt_padframe_default /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/pads/pads-v1.c:28 89 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004af0 00000010 V __rt_padframe_hyper /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/pads/pads-v1.c:30 90 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004b00 00000010 V __rt_padframe_hyper_gpio /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/pads/pads-v1.c:32 91 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004eac 00000010 b __rt_uart /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:43 92 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004322 00000010 T rt_uart_conf_init 93 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001560 00000012 T __rt_event_sched_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:264 94 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001fc8 00000012 T __rt_fll_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:871 95 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f22 00000012 T __rt_i2c_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2c/i2c-v2.c:236 96 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f34 00000012 T __rt_rtc_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/dolphin/rtc.c:414 97 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f46 00000012 T __rt_spim_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/spim/spim-v2.c:446 98 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000ba4 00000014 t pmsis_exit 99 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:0000001c 00000014 D __rt_sched 100 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b000bf0 00000018 d cbsys_first /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:30 101 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003492 00000018 T fputc_locked 102 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002aa4 00000018 T pi_uart_write_async /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:454 103 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001548 00000018 T rt_event_wait /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:257 104 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004b10 00000018 V __rt_padframe_profiles 105 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001708 00000018 t __rt_time_poweroff /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:28 106 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001720 00000018 t __rt_time_poweron /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:37 107 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002bbe 00000018 T __rt_udma_channel_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/udma/udma-v2.c:89 108 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0013ce 00000018 T __rt_wait_event_prepare_blocking /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:42 109 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002908 0000001a T pi_uart_conf_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:211 110 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00145a 0000001a T rt_event_get /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:105 111 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003312 0000001a T strchr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:278 112 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001130 0000001c t __rt_event_enqueue /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_event.h:397 113 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000b86 0000001e t pmsis_kickoff 114 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0012ac 0000001e T __rt_bridge_clear_notif /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:838 115 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00126e 0000001e T __rt_bridge_set_available /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:725 116 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0017b2 0000001e T rt_time_wait_us /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:124 117 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003696 00000020 t _rlrshift /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/prf.c:122 118 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00114c 00000020 t __rt_bridge_check_bridge_req.part.5 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:638 119 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00128c 00000020 T __rt_bridge_send_notif /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:821 120 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003050 00000020 t rt_event_execute.isra.4.constprop.12 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:795 121 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c6c 00000020 d __rt_i2c /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2c/i2c-v2.c:28 122 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0026ae 00000020 t __rt_uart_setfreq_after /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:312 123 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00422e 00000020 t __rt_uart_setfreq_after /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:135 124 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001572 00000020 T rt_user_alloc_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:193 125 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001654 00000022 T __rt_alloc_init_l1 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:445 126 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001474 00000022 T rt_event_get_blocking /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:127 127 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00103a 00000022 T __rt_utils_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:84 128 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001496 00000024 T rt_event_push /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:139 129 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00420a 00000024 t __rt_uart_setup.isra.5 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:222 130 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000ca8 00000026 t cluster_start /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:198 131 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0032dc 00000026 t __rt_io_stop /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:769 132 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0041e4 00000026 T __rt_uart_cluster_req_done /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:253 133 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001be8 00000026 t soc_eu_fcEventMask_setEvent /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h:60 134 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0042fc 00000026 t soc_eu_fcEventMask_setEvent /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h:60 135 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002cd8 00000028 t __pos_pwm_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm-v1.c:185 136 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0034aa 00000028 T _prf_locked /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:626 137 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00346a 00000028 T puts /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:576 138 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001676 00000028 T __rt_alloc_init_l1_for_fc /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:452 139 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000e34 00000028 T __rt_deinit /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:163 140 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0013a6 00000028 T __rt_event_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:32 141 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004f10 00000028 B __rt_fc_cluster_data 142 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002e74 00000028 t __rt_i2s_setfreq_after /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2s/i2s-v1.c:235 143 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002b58 00000028 T rt_padframe_set /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/pads/pads-v1.c:77 144 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000002b8 00000028 D __rt_udma_extra_callback 145 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000002e0 00000028 D __rt_udma_extra_callback_arg 146 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000c7e 0000002a T main 147 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002abc 0000002a T pi_uart_write /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:474 148 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0035da 0000002a T printf /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/fprintf.c:41 149 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00284e 0000002a t __rt_uart_setfreq_before /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:279 150 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004290 0000002a t __rt_uart_setfreq_before /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:102 151 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00151e 0000002a T __rt_wait_event /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:247 152 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002e9c 0000002c t __rt_i2s_setfreq_before /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2s/i2s-v1.c:219 153 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004d10 0000002c b __rt_pulpos_emu_global_cluster_task /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/pulpos_emu.c:26 154 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001bbc 0000002c t SetFllMultDivFactors 155 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00275e 0000002e t __pi_uart_copy_enqueue_exec.isra.14 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h:217 156 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001626 0000002e T rt_alloc 157 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002bd6 0000002e t __rt_hyper_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/hyper/hyperram-v1.c:995 158 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0022a6 00000030 T pi_cluster_close /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:370 159 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00100a 00000030 T __rt_cbsys_exec /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:71 160 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002e0e 00000032 T pi_gpio_pin_configure /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/gpio/gpio-v2.c:146 161 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002878 00000032 t pi_task_wait_on.isra.20 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h:217 162 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00105c 00000032 T __rt_fc_lock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:92 163 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0030e0 00000032 t __rt_putc_host_cluster_req /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:451 164 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:000003a8 00000034 D dev_rtc /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/dolphin/rtc.c:24 165 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0036fa 00000034 t _get_digit /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/prf.c:167 166 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002b8a 00000034 T pi_pad_set_function /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pads/pads-v1.c:24 167 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002ca4 00000034 T pi_pwm_ioctl /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm-v1.c:108 168 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001372 00000034 T __rt_bridge_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:851 169 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00108e 00000034 T __rt_fc_unlock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:127 170 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002e40 00000034 t __rt_i2s_resume /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2s/i2s-v1.c:186 171 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004406 00000034 T rt_uart_cluster_write /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:277 172 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0010fa 00000036 T __rt_fc_cluster_unlock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:199 173 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002d86 00000038 T pi_gpio_pin_read /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/gpio/gpio-v2.c:171 174 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0010c2 00000038 T __rt_fc_cluster_lock /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:189 175 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00338a 00000038 T __rt_putc_uart /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:412 176 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0012ca 0000003a T __rt_bridge_printf_flush 177 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002346 0000003c T __rt_cluster_new /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:445 178 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002382 0000003c t __rt_cluster_pulpos_emu_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/pulpos_emu.c:29 179 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000fcc 0000003e T __rt_cbsys_add /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:57 180 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001b7e 0000003e T __rt_freq_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/freq.c:62 181 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001edc 00000040 T InitFlls /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:858 182 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002fb6 00000040 t __rt_do_putc_host /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:430 183 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0042ba 00000042 t __rt_uart_cluster_req /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:266 184 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00280c 00000042 t __rt_uart_wait_tx_done.isra.17 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h:217 185 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00424e 00000042 t __rt_uart_wait_tx_done.isra.6 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:222 186 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0036b6 00000044 t _ldiv5 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/prf.c:143 187 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00116c 00000046 t __rt_bridge_wait 188 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c24 00000048 d __rt_uart /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:66 189 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001592 00000048 T rt_user_alloc /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:207 190 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001224 0000004a T __rt_bridge_check_connection 191 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001b34 0000004a T rt_freq_set_and_get /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/freq.c:30 192 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002664 0000004a t __rt_uart_setup /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:260 193 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000e60 0000004c T rt_irq_set_handler /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/irq.c:61 194 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0043ba 0000004c T rt_uart_close /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:228 195 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0015da 0000004c T rt_user_free /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:291 196 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002dbe 00000050 T pi_gpio_mask_configure /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/gpio/gpio-v2.c:279 197 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000eae 00000050 T __rt_handle_illegal_instr /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/irq.c:94 198 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002ec8 00000050 T __rt_i2s_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/i2s/i2s-v1.c:268 199 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002f66 00000050 t __rt_io_uart_wait_req /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:315 200 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000308 00000050 D __rt_udma_channels 201 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000efe 00000052 T __rt_irq_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/irq.c:103 202 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00244e 00000056 T rt_cluster_mount /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/pulpos_emu.c:68 203 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001a80 00000056 T __rt_periph_wait_event /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/periph-v2.c:237 204 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004d3c 00000058 b __pos_pwm /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm-v1.c:43 205 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002ff6 0000005a t __rt_io_start /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:746 206 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00443a 0000005c T __rt_uart_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:292 207 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0028aa 0000005e T __pi_uart_handle_copy /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:68 208 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001ad6 0000005e T __rt_periph_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/periph-v2.c:276 209 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00332c 0000005e T __rt_putc_debug_bridge /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:288 210 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001fe2 00000062 t __rt_init_cluster_data /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:72 211 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002044 00000064 t __rt_cluster_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:382 212 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0014ba 00000064 T __rt_event_execute /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:189 213 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00169e 0000006a T __rt_allocs_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/alloc.c:465 214 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001304 0000006e T __rt_bridge_req_shutdown /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:774 215 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0022d6 00000070 T __rt_cluster_push_fc_event /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:413 216 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003070 00000070 t __rt_io_lock 217 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003112 00000070 t __rt_io_unlock 218 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002ae6 00000072 T __pi_uart_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:622 219 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0011b2 00000072 T __rt_bridge_handle_notif /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/bridge.c:644 220 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00354e 00000072 T __rt_io_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:800 221 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0034d2 00000074 T exit /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:690 222 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0013e6 00000074 T rt_event_alloc /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/events.c:52 223 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001738 0000007a T rt_event_push_delayed /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:59 224 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000f50 0000007c t __rt_fc_cluster_lock_req /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/utils.c:142 225 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00278c 00000080 t __pi_uart_copy_enqueue /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:170 226 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004e2c 00000080 b __rt_io_event /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:39 227 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004c8c 00000080 d __rt_putc_host_buffer /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:47 228 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002d00 00000086 T __pi_gpio_handler /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/gpio/gpio-v2.c:54 229 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004332 00000088 T __rt_uart_open /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers_deprecated/uart/uart.c:151 230 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002a1a 0000008a T pi_uart_close /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:392 231 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003250 0000008c t __rt_io_uart_wait_pending /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:332 232 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001c0e 0000008c T __rt_pmu_cluster_power_down /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:205 233 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0017d2 0000008c T __rt_time_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time.c:136 234 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0026ce 00000090 t __pi_uart_copy_enqueue_exec_flow_control 235 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0023be 00000090 T rt_cluster_call /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/pulpos_emu.c:40 236 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002c12 00000092 T pi_pwm_open /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/pwm/pwm-v1.c:53 237 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003604 00000092 t _to_x /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/prf.c:44 238 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004d94 00000098 b __rt_gpio /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/gpio/gpio-v2.c:34 239 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001d78 000000a2 T InitOneFll /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:771 240 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0033c2 000000a8 t tfp_putc.isra.9 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:795 241 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001f1c 000000ac T __rt_pmu_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/gap/pmu_driver.c:472 242 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c004b28 000000c0 D __hal_debug_struct 243 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001e1a 000000c2 T __rt_pmu_cluster_power_up 244 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00259e 000000c6 t __pi_uart_flow_control_enable /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:545 245 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000bb8 000000c6 T test_uart_helloworld 246 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c003182 000000ce t __rt_io_uart_flush.constprop.11 /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/io.c:795 247 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0021d2 000000d4 T pi_cluster_open /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:343 248 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001c9a 000000de T SetFllFrequency 249 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00185e 000000f2 T __rt_timer_handler /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/time_irq.c:30 250 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c002922 000000f8 T pi_uart_open /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/drivers/uart/uart.c:328 251 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0024a4 000000fa T pi_cluster_send_task_to_cl_async /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster_call.c:65 252 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00474c 00000100 R __clz_tab 253 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c0020a8 00000124 t __rt_cluster_mount_step /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/cluster.c:221 254 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c001950 00000130 T rt_periph_copy /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/periph-v2.c:58 255 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000cce 00000166 T __rt_init /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/kernel/init.c:74 256 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:00000030 00000280 D periph_channels 257 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c000858 0000032e T __umoddi3 /home/haugoug/src/riscv-gnu-toolchain/riscv-gcc/libgcc/libgcc2.c:1305 258 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00051c 0000033c T __udivdi3 /home/haugoug/src/riscv-gnu-toolchain/riscv-gcc/libgcc/libgcc2.c:1317 259 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1b0003e8 00000800 D __rt_fc_stack 260 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/test:1c00372e 00000ab6 T _prf /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/rtos/pulp/pulp-os/libs/io/prf.c:437 261 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/uart_send_counter.d: -------------------------------------------------------------------------------- 1 | /home/vlad/Desktop/CF_AIDECK/bitcraze_uart/BUILD/GAP8_V2/GCC_RISCV/uart_send_counter.o: \ 2 | uart_send_counter.c \ 3 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/gap_rev1/config.h \ 4 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp_defs.h \ 5 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis.h \ 6 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pulpos.h \ 7 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 8 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp.h \ 9 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/utils.h \ 10 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2.h \ 11 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2_emu.h \ 12 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/pulp.h \ 13 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/properties.h \ 14 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/priv_1_9.h \ 15 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/pcer_v1.h \ 16 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/memory_map.h \ 17 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/apb_soc.h \ 18 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/padframe.h \ 19 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/stdout/stdout_v3.h \ 20 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/eu/eu_v3.h \ 21 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2.h \ 22 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2_new.h \ 23 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/soc_eu/soc_eu_v1.h \ 24 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/dma/mchan_v6.h \ 25 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1.h \ 26 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regs.h \ 27 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regfields.h \ 28 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_structs.h \ 29 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regmap.h \ 30 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_accessors.h \ 31 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_macros.h \ 32 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_groups.h \ 33 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_constants.h \ 34 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/hwce_v4_old.h \ 35 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce.h \ 36 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regs.h \ 37 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields.h \ 38 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_structs.h \ 39 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regmap.h \ 40 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_accessors.h \ 41 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gap_utils.h \ 42 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields_accessors.h \ 43 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_macros.h \ 44 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_groups.h \ 45 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_constants.h \ 46 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1_old.h \ 47 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1.h \ 48 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/hyper/udma_hyper_v1.h \ 49 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2c/udma_i2c_v2.h \ 50 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1.h \ 51 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/udma_v2.h \ 52 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1_new.h \ 53 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/spim/udma_spim_v2.h \ 54 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/tcdm/udma_tcdm_v1.h \ 55 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/uart/udma_uart_v1.h \ 56 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_bridge.h \ 57 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/debug_bridge/debug_bridge.h \ 58 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/debug_bridge/debug_bridge.h \ 59 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/pmsis_types.h \ 60 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_pmsis_types.h \ 61 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_spim.h \ 62 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_camera.h \ 63 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2c.h \ 64 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_i2c.h \ 65 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/device.h \ 66 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h \ 67 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/mem_slab.h \ 68 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/fc_to_cl_delegate.h \ 69 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_to_fc_delegate.h \ 70 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/malloc_internal.h \ 71 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h \ 72 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/perf.h \ 73 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h \ 74 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/gpio.h \ 75 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h \ 76 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h \ 77 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h \ 78 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h \ 79 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h \ 80 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h \ 81 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/perf.h \ 82 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h \ 83 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h \ 84 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2c.h \ 85 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2s.h \ 86 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/spi.h \ 87 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/gpio.h \ 88 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h \ 89 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h \ 90 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/dmacpy.h \ 91 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h \ 92 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h \ 93 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h \ 94 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h \ 95 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h \ 96 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api_decl.h \ 97 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 98 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_default.h \ 99 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap.h \ 100 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_wolfe.h \ 101 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_vega.h \ 102 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap9.h \ 103 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulpissimo.h \ 104 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulp.h \ 105 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_irq.h \ 106 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp.h \ 107 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/pulp.h \ 108 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/riscv_v4.h \ 109 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/types.h \ 110 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/eu/eu_v3.h \ 111 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp_io.h \ 112 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/dma/mchan_v6.h \ 113 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/timer/timer_v2.h \ 114 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/timer/timer_v2.h \ 115 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h \ 116 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/udma_v2.h \ 117 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/cluster_ctrl/cluster_ctrl_v2.h \ 118 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/cluster_ctrl/cluster_ctrl_v2.h \ 119 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/icache/icache_ctrl_v2.h \ 120 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/apb_soc.h \ 121 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/maestro/pmu_v1.h \ 122 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/maestro/maestro_v1.h \ 123 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/rom/rom_v2.h \ 124 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/fll/fll_v1.h \ 125 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/fll/fll_v1.h \ 126 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/efuse/efuse_v1.h \ 127 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/efuse/efuse_v1.h \ 128 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/efuse.h \ 129 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/vendors/dolphin/rtc.h \ 130 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/vendors/dolphin/rtc.h \ 131 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pwm/pwm_v1.h \ 132 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/pwm_v1.h \ 133 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/gpio/gpio_v2.h \ 134 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/hwce/hwce_v4.h \ 135 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/cpi/udma_cpi_v1.h \ 136 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/hyper/udma_hyper_v1.h \ 137 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2c/udma_i2c_v2.h \ 138 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2s/udma_i2s_v1.h \ 139 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/spim/udma_spim_v2.h \ 140 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/tcdm/udma_tcdm_v1.h \ 141 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h \ 142 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_utils.h \ 143 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/string.h \ 144 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h \ 145 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_extern_alloc.h \ 146 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_thread.h \ 147 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_event.h \ 148 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_alloc.h \ 149 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_flash.h \ 150 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dev.h \ 151 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_periph.h \ 152 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdio.h \ 153 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_cluster.h \ 154 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_hyper.h \ 155 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h \ 156 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/hyperram.h \ 157 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_debug.h \ 158 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h \ 159 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h \ 160 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_config.h \ 161 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pe.h \ 162 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_camera.h \ 163 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_himax.h \ 164 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dma.h \ 165 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_sync_mc.h \ 166 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_perf.h \ 167 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_time.h \ 168 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_timer.h \ 169 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_freq.h \ 170 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pm.h \ 171 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2s.h \ 172 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_fs.h \ 173 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_error.h \ 174 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_uart.h \ 175 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_spim.h \ 176 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_rtc.h \ 177 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pwm.h \ 178 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pad.h \ 179 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_gpio.h \ 180 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_voltage.h \ 181 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_bridge.h \ 182 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_eeprom.h \ 183 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_task.h \ 184 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h \ 185 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h \ 186 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h \ 187 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h \ 188 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2s.h \ 189 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h \ 190 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/spi.h \ 191 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2c.h \ 192 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/uart.h \ 193 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/implem.h \ 194 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/udma.h \ 195 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/pwm.h \ 196 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h \ 197 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/perf.h \ 198 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/cpi.h \ 199 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h \ 200 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h \ 201 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/uart.h \ 202 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h \ 203 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h \ 204 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/dma.h \ 205 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h \ 206 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/implem.h \ 207 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/utils.h \ 208 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/cluster.h \ 209 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h \ 210 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/udma.h \ 211 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/rtos.h \ 212 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/pi_malloc.h \ 213 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h \ 214 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h \ 215 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h \ 216 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/os.h \ 217 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h \ 218 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h \ 219 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/event_kernel/event_kernel.h \ 220 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pi_log.h \ 221 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/utils.h \ 222 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_synchronisation.h 223 | 224 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/gap_rev1/config.h: 225 | 226 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp_defs.h: 227 | 228 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis.h: 229 | 230 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pulpos.h: 231 | 232 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 233 | 234 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pulp.h: 235 | 236 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/utils.h: 237 | 238 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2.h: 239 | 240 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/builtins_v2_emu.h: 241 | 242 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/pulp.h: 243 | 244 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/properties.h: 245 | 246 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/priv_1_9.h: 247 | 248 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/riscv/pcer_v1.h: 249 | 250 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/memory_map.h: 251 | 252 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/apb_soc.h: 253 | 254 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/chips/gap/padframe.h: 255 | 256 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/stdout/stdout_v3.h: 257 | 258 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/eu/eu_v3.h: 259 | 260 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2.h: 261 | 262 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gpio/gpio_v2_new.h: 263 | 264 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/soc_eu/soc_eu_v1.h: 265 | 266 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/dma/mchan_v6.h: 267 | 268 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1.h: 269 | 270 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regs.h: 271 | 272 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regfields.h: 273 | 274 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_structs.h: 275 | 276 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_regmap.h: 277 | 278 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_accessors.h: 279 | 280 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_macros.h: 281 | 282 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_groups.h: 283 | 284 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/v1/pwm_v1_constants.h: 285 | 286 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/hwce_v4_old.h: 287 | 288 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce.h: 289 | 290 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regs.h: 291 | 292 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields.h: 293 | 294 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_structs.h: 295 | 296 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regmap.h: 297 | 298 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_accessors.h: 299 | 300 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/gap_utils.h: 301 | 302 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_regfields_accessors.h: 303 | 304 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_macros.h: 305 | 306 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_groups.h: 307 | 308 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/hwce/v4/hwce_constants.h: 309 | 310 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1_old.h: 311 | 312 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/cpi/udma_cpi_v1.h: 313 | 314 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/hyper/udma_hyper_v1.h: 315 | 316 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2c/udma_i2c_v2.h: 317 | 318 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1.h: 319 | 320 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/udma_v2.h: 321 | 322 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/i2s/udma_i2s_v1_new.h: 323 | 324 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/spim/udma_spim_v2.h: 325 | 326 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/tcdm/udma_tcdm_v1.h: 327 | 328 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/udma/uart/udma_uart_v1.h: 329 | 330 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_bridge.h: 331 | 332 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/debug_bridge/debug_bridge.h: 333 | 334 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/debug_bridge/debug_bridge.h: 335 | 336 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/pmsis_types.h: 337 | 338 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_pmsis_types.h: 339 | 340 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_spim.h: 341 | 342 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_camera.h: 343 | 344 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2c.h: 345 | 346 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/data/rt_data_i2c.h: 347 | 348 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/device.h: 349 | 350 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h: 351 | 352 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/mem_slab.h: 353 | 354 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/fc_to_cl_delegate.h: 355 | 356 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_to_fc_delegate.h: 357 | 358 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/malloc_internal.h: 359 | 360 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h: 361 | 362 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/perf.h: 363 | 364 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h: 365 | 366 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/gpio.h: 367 | 368 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/chips/gap8/pad.h: 369 | 370 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h: 371 | 372 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h: 373 | 374 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h: 375 | 376 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h: 377 | 378 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h: 379 | 380 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/perf.h: 381 | 382 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h: 383 | 384 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h: 385 | 386 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2c.h: 387 | 388 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/i2s.h: 389 | 390 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/spi.h: 391 | 392 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/gpio.h: 393 | 394 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h: 395 | 396 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h: 397 | 398 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/dmacpy.h: 399 | 400 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h: 401 | 402 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pad.h: 403 | 404 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h: 405 | 406 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h: 407 | 408 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h: 409 | 410 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_api_decl.h: 411 | 412 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 413 | 414 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_default.h: 415 | 416 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap.h: 417 | 418 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_wolfe.h: 419 | 420 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_vega.h: 421 | 422 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_gap9.h: 423 | 424 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulpissimo.h: 425 | 426 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/chips/rt_pulp.h: 427 | 428 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_irq.h: 429 | 430 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp.h: 431 | 432 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/pulp.h: 433 | 434 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/riscv_v4.h: 435 | 436 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/riscv/types.h: 437 | 438 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/eu/eu_v3.h: 439 | 440 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pulp_io.h: 441 | 442 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/dma/mchan_v6.h: 443 | 444 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/timer/timer_v2.h: 445 | 446 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/timer/timer_v2.h: 447 | 448 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/soc_eu/soc_eu_v1.h: 449 | 450 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/udma_v2.h: 451 | 452 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/cluster_ctrl/cluster_ctrl_v2.h: 453 | 454 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/cluster_ctrl/cluster_ctrl_v2.h: 455 | 456 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/icache/icache_ctrl_v2.h: 457 | 458 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/apb_soc.h: 459 | 460 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/maestro/pmu_v1.h: 461 | 462 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/maestro/maestro_v1.h: 463 | 464 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/rom/rom_v2.h: 465 | 466 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/fll/fll_v1.h: 467 | 468 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/fll/fll_v1.h: 469 | 470 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/efuse/efuse_v1.h: 471 | 472 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/efuse/efuse_v1.h: 473 | 474 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/chips/gap/efuse.h: 475 | 476 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/vendors/dolphin/rtc.h: 477 | 478 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/vendors/dolphin/rtc.h: 479 | 480 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/pwm/pwm_v1.h: 481 | 482 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/archi/pwm/pwm_v1.h: 483 | 484 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/gpio/gpio_v2.h: 485 | 486 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/hwce/hwce_v4.h: 487 | 488 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/cpi/udma_cpi_v1.h: 489 | 490 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/hyper/udma_hyper_v1.h: 491 | 492 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2c/udma_i2c_v2.h: 493 | 494 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/i2s/udma_i2s_v1.h: 495 | 496 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/spim/udma_spim_v2.h: 497 | 498 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/tcdm/udma_tcdm_v1.h: 499 | 500 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/udma/uart/udma_uart_v1.h: 501 | 502 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_utils.h: 503 | 504 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/string.h: 505 | 506 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_data.h: 507 | 508 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_extern_alloc.h: 509 | 510 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_thread.h: 511 | 512 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_event.h: 513 | 514 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_alloc.h: 515 | 516 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_flash.h: 517 | 518 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dev.h: 519 | 520 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_periph.h: 521 | 522 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdio.h: 523 | 524 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_cluster.h: 525 | 526 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_hyper.h: 527 | 528 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/hyperbus.h: 529 | 530 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/hyperram.h: 531 | 532 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_debug.h: 533 | 534 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h: 535 | 536 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/io/stdlib.h: 537 | 538 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_config.h: 539 | 540 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pe.h: 541 | 542 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_camera.h: 543 | 544 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_himax.h: 545 | 546 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_dma.h: 547 | 548 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_sync_mc.h: 549 | 550 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_perf.h: 551 | 552 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_time.h: 553 | 554 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_timer.h: 555 | 556 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_freq.h: 557 | 558 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pm.h: 559 | 560 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_i2s.h: 561 | 562 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_fs.h: 563 | 564 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_error.h: 565 | 566 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_uart.h: 567 | 568 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_spim.h: 569 | 570 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_rtc.h: 571 | 572 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pwm.h: 573 | 574 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_pad.h: 575 | 576 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_gpio.h: 577 | 578 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_voltage.h: 579 | 580 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_bridge.h: 581 | 582 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_eeprom.h: 583 | 584 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/rt_task.h: 585 | 586 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/hwce.h: 587 | 588 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h: 589 | 590 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h: 591 | 592 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/udma.h: 593 | 594 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2s.h: 595 | 596 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/task.h: 597 | 598 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/spi.h: 599 | 600 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/i2c.h: 601 | 602 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/uart.h: 603 | 604 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/implem.h: 605 | 606 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/udma.h: 607 | 608 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/pwm.h: 609 | 610 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/pwm.h: 611 | 612 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/perf.h: 613 | 614 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/cpi.h: 615 | 616 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/cpi.h: 617 | 618 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/cpi.h: 619 | 620 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/uart.h: 621 | 622 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/drivers/uart.h: 623 | 624 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/data/data.h: 625 | 626 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/implem/dma.h: 627 | 628 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/dma/cl_dma.h: 629 | 630 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/implem.h: 631 | 632 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/utils.h: 633 | 634 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/cluster.h: 635 | 636 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cl_malloc.h: 637 | 638 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/rt/implem/udma.h: 639 | 640 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/rtos.h: 641 | 642 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/pi_malloc.h: 643 | 644 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/fc_l1_malloc.h: 645 | 646 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/cl_l1_malloc.h: 647 | 648 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/malloc/l2_malloc.h: 649 | 650 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/os.h: 651 | 652 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/freq.h: 653 | 654 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/os_frontend_api/pmsis_time.h: 655 | 656 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/event_kernel/event_kernel.h: 657 | 658 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/rtos/pi_log.h: 659 | 660 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/hal/utils.h: 661 | 662 | /home/vlad/Desktop/PULP/gap-sdk-3.9/gap_sdk/install/GAP8_V2/include/pmsis/cluster/cluster_sync/cl_synchronisation.h: 663 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/uart_send_counter.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 3/bitcraze_gap8/BUILD/GAP8_V2/GCC_RISCV/uart_send_counter.o -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/Makefile: -------------------------------------------------------------------------------- 1 | # User Test 2 | #------------------------------------ 3 | 4 | APP = test 5 | APP_SRCS += uart_send_counter.c 6 | APP_INC += 7 | APP_CFLAGS += 8 | 9 | ifeq ($(ASYNC), 1) 10 | APP_CFLAGS += -DASYNC=1 11 | endif 12 | 13 | include $(GAP_SDK_HOME)/tools/rules/pmsis_rules.mk 14 | -------------------------------------------------------------------------------- /Hands-on/Session 3/bitcraze_gap8/uart_send_counter.c: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------- 2 | Copyright (C) 2020-2021 ETH Zurich, Switzerland, University of Bologna, Italy. 3 | All rights reserved. 4 | 5 | File: uart_send_counter.c 6 | Author: Vlad Niculescu 7 | Date: 15.03.2021 8 | -------------------------------------------------------------------------------*/ 9 | 10 | /* PMSIS includes */ 11 | #include "pmsis.h" 12 | 13 | /* Variables used. */ 14 | uint8_t to_send; 15 | 16 | void test_uart_helloworld(void) 17 | { 18 | printf("Entering main controller\n"); 19 | 20 | uint32_t errors = 0; 21 | struct pi_device uart; 22 | struct pi_uart_conf conf; 23 | 24 | /* Init & open uart. */ 25 | pi_uart_conf_init(&conf); 26 | conf.enable_tx = 1; 27 | conf.enable_rx = 0; 28 | conf.baudrate_bps = 115200; 29 | pi_open_from_conf(&uart, &conf); 30 | if (pi_uart_open(&uart)) 31 | { 32 | printf("Uart open failed !\n"); 33 | pmsis_exit(-1); 34 | } 35 | 36 | for (uint8_t i=0; i<100; i++) 37 | { 38 | to_send = i; 39 | pi_uart_write(&uart, &to_send, 1); 40 | pi_time_wait_us(500000); 41 | } 42 | 43 | pi_uart_close(&uart); 44 | 45 | pmsis_exit(errors); 46 | } 47 | 48 | /* Program Entry. */ 49 | int main(void) 50 | { 51 | printf("\n\n\t *** PMSIS Uart HelloWorld ***\n\n"); 52 | return pmsis_kickoff((void *) test_uart_helloworld); 53 | } 54 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/README.md: -------------------------------------------------------------------------------- 1 | This example is taken from Bitcraze: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/test_functionalities/wifi_jpeg_streamer. 2 | 3 | ## Requirements 4 | - Wi-Fi card on your laptop 5 | - GAP-SDK installed: [Install GAP sdk](https://greenwaves-technologies.com/setting-up-sdk/) 6 | 7 | ## Description 8 | 9 | These two examples show how to stream JPEG images from the AI-Deck to a socket connected via Wi-FI. 10 | - `wifi_jpeg_streamer/` example streams normal grayscale images 11 | - `wifi_jpeg_streamer_inv_filter/` example streams grayscale images with inverted colors, using the `inverting()` from Hands-on session 2. 12 | - `viewer.py`: the Python visualizer receives the images streamed from NINA to the Laptop. By default, it connects to the IP of the AI-deck when use in AccessPoint mode. 13 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/viewer.py: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------------------- # 2 | # File: viewer.py # 3 | # Original code: Bitcraze # 4 | # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/NINA/viewer.py # 5 | # Contributors: # 6 | # Bitcraze # 7 | # Lorenzo Lamberti # 8 | # Date: 10.06.2021 # 9 | #------------------------------------------------------------------------------# 10 | 11 | #!/usr/bin/env python3 12 | # -*- coding: utf-8 -*- 13 | # 14 | # || ____ _ __ 15 | # +------+ / __ )(_) /_______________ _____ ___ 16 | # | 0xBC | / __ / / __/ ___/ ___/ __ `/_ / / _ \ 17 | # +------+ / /_/ / / /_/ /__/ / / /_/ / / /_/ __/ 18 | # || || /_____/_/\__/\___/_/ \__,_/ /___/\___/ 19 | # 20 | # Copyright (C) 2020 Bitcraze AB 21 | # 22 | # AI-deck demo 23 | # 24 | # This program is free software; you can redistribute it and/or 25 | # modify it under the terms of the GNU General Public License 26 | # as published by the Free Software Foundation; either version 2 27 | # of the License, or (at your option) any later version. 28 | # 29 | # This program is distributed in the hope that it will be useful, 30 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 31 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32 | # GNU General Public License for more details. 33 | # You should have received a copy of the GNU General Public License along with 34 | # this program; if not, write to the Free Software Foundation, Inc., 51 35 | # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 36 | # 37 | # Demo for showing streamed JPEG images from the AI-deck example. 38 | # 39 | # By default this demo connects to the IP of the AI-deck example when in 40 | # Access point mode. 41 | # 42 | # The demo works by opening a socket to the AI-deck, downloads a stream of 43 | # JPEG images and looks for start/end-of-frame for the streamed JPEG images. 44 | # Once an image has been fully downloaded it's rendered in the UI. 45 | # 46 | # Note that the demo firmware is continously streaming JPEG files so a single 47 | # JPEG image is taken from the stream using the JPEG start-of-frame (0xFF 0xD8) 48 | # and the end-of-frame (0xFF 0xD9). 49 | 50 | # notes: 51 | # QVGA format 320x240 px = 76800 52 | # QQVGA format 160x120 px = 19200 53 | # imgdata average size = 11k or 16k 54 | 55 | 56 | import argparse 57 | import gi 58 | gi.require_version('Gtk', '3.0') 59 | from gi.repository import Gtk, Gdk, GdkPixbuf, GLib 60 | import threading 61 | import time 62 | import socket,os,struct 63 | 64 | #save image and visualize 65 | import numpy as np 66 | import cv2 67 | import binascii 68 | import io 69 | # import Image 70 | from PIL import Image 71 | 72 | deck_ip = None 73 | deck_port = None 74 | 75 | class ImgThread(threading.Thread): 76 | def __init__(self, callback): 77 | threading.Thread.__init__(self, daemon=True) 78 | self._callback = callback 79 | 80 | def run(self): 81 | print("Connecting to socket on {}:{}...".format(deck_ip, deck_port)) 82 | client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 83 | client_socket.connect((deck_ip, deck_port)) 84 | print("Socket connected") 85 | 86 | imgdata = None 87 | imgdata_complete = None 88 | timestamp = 0 89 | 90 | while(1): 91 | strng = client_socket.recv(512) 92 | 93 | # Look for start-of-frame and end-of-frame 94 | start_idx = strng.find(b"\xff\xd8") 95 | end_idx = strng.find(b"\xff\xd9") 96 | 97 | # Concatenate image data, once finished send it to the UI 98 | if start_idx >= 0: 99 | # append the end of the packet 100 | imgdata += strng[:start_idx] 101 | # save data of the entire image (without the footer) 102 | imgdata_complete = imgdata 103 | # append the beginning of the next image 104 | imgdata = strng[start_idx:] 105 | # search the footer inside the image and ignore it (Temporal fix) 106 | end_idx = imgdata_complete.find(b"\xff\xd9") 107 | if end_idx >= 0 and imgdata_complete: 108 | imgdata_complete = imgdata_complete[0:end_idx] + imgdata_complete[end_idx+2:] 109 | # append the footer string to the image 110 | imgdata_complete = imgdata_complete + (b"\xff\xd9") 111 | 112 | try: #show frame 113 | self._callback(imgdata_complete) 114 | except gi.repository.GLib.Error: 115 | print ("image not shown") 116 | pass 117 | 118 | else: # Continue receiving the image 119 | if imgdata==None: 120 | imgdata=strng 121 | else: 122 | imgdata += strng 123 | 124 | 125 | 126 | # UI for showing frames from AI-deck example 127 | class FrameViewer(Gtk.Window): 128 | 129 | def __init__(self): 130 | super(FrameViewer, self).__init__() 131 | self.frame = None 132 | self.init_ui() 133 | self._start = None 134 | self.set_default_size(374, 294) 135 | 136 | def init_ui(self): 137 | self.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(0, 0, 0, 1)) 138 | self.set_border_width(20) 139 | self.set_title("Connecting...") 140 | self.frame = Gtk.Image() 141 | f = Gtk.Fixed() 142 | f.put(self.frame, 10, 10) 143 | self.add(f) 144 | self.connect("destroy", Gtk.main_quit) 145 | self._thread = ImgThread(self._showframe) 146 | self._thread.start() 147 | 148 | def _update_image(self, pix): 149 | self.frame.set_from_pixbuf(pix) 150 | 151 | def _showframe(self, imgdata): 152 | # Add FPS/img size to window title 153 | if (self._start != None): 154 | fps = 1 / (time.time() - self._start) 155 | GLib.idle_add(self.set_title, "{:.1f} fps / {:.1f} kb".format(fps, len(imgdata)/1000)) 156 | self._start = time.time() 157 | img_loader = GdkPixbuf.PixbufLoader() 158 | 159 | # Try to decode JPEG from the data sent from the stream 160 | try: 161 | img_loader.write(imgdata) 162 | pix = img_loader.get_pixbuf() 163 | GLib.idle_add(self._update_image, pix) 164 | except gi.repository.GLib.Error: 165 | print("Could not set image!") 166 | img_loader.close() 167 | 168 | # Args for setting IP/port of AI-deck. Default settings are for when 169 | # AI-deck is in AP mode. 170 | parser = argparse.ArgumentParser(description='Connect to AI-deck JPEG streamer example') 171 | parser.add_argument("-n", default="192.168.4.1", metavar="ip", help="AI-deck IP") 172 | parser.add_argument("-p", type=int, default='5000', metavar="port", help="AI-deck port") 173 | args = parser.parse_args() 174 | 175 | deck_port = args.p 176 | deck_ip = args.n 177 | 178 | fw = FrameViewer() 179 | fw.show_all() 180 | Gtk.main() 181 | 182 | 183 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer/Makefile: -------------------------------------------------------------------------------- 1 | APP = test 2 | APP_SRCS += test.c 3 | APP_CFLAGS += -O3 -g 4 | 5 | APP_LDFLAGS += -lgaptools -lgaplib 6 | 7 | RUNNER_CONFIG = $(CURDIR)/config.ini 8 | 9 | streamer: 10 | ./streamer 11 | 12 | include $(RULES_DIR)/pmsis_rules.mk 13 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer/config.ini: -------------------------------------------------------------------------------- 1 | [board.devices.nina_w10] 2 | include = devices/nina_w10.json 3 | interface = spim1 4 | cs = 0 5 | gpio_ready = gpio18 6 | config.gpio_ready = gpio18 7 | 8 | 9 | [config] 10 | runner.peripherals=true -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer/test.c: -------------------------------------------------------------------------------- 1 | // #-----------------------------------------------------------------------------# 2 | // # File: test.c 3 | // # Original code: Bitcraze # 4 | // # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/ # 5 | // # /test_functionalities/wifi_jpeg_streamer # 6 | // # Contributors: # 7 | // # Bitcraze # 8 | // # Lorenzo Lamberti # 9 | // # Date: 10.06.2021 # 10 | // #-----------------------------------------------------------------------------# 11 | 12 | 13 | #include "bsp/camera/himax.h" 14 | #include "bsp/camera/mt9v034.h" 15 | #include "bsp/transport/nina_w10.h" 16 | #include "tools/frame_streamer.h" 17 | #include "stdio.h" 18 | 19 | #if defined(CONFIG_GAPUINO) || defined(CONFIG_AI_DECK) 20 | #define CAM_WIDTH 324 21 | #define CAM_HEIGHT 244 22 | #else 23 | #define CAM_WIDTH 320 24 | #define CAM_HEIGHT 240 25 | #endif 26 | 27 | static pi_task_t task1; 28 | static pi_task_t task2; 29 | static unsigned char *imgBuff0; 30 | static unsigned char *imgBuff1; 31 | static struct pi_device camera; 32 | static struct pi_device wifi; 33 | static frame_streamer_t *streamer1; 34 | static frame_streamer_t *streamer2; 35 | static pi_buffer_t buffer; 36 | static pi_buffer_t buffer2; 37 | static volatile int stream1_done; 38 | static volatile int stream2_done; 39 | 40 | static void streamer_handler(void *arg); 41 | 42 | 43 | static void cam_handler(void *arg) 44 | { 45 | pi_camera_control(&camera, PI_CAMERA_CMD_STOP, 0); 46 | 47 | stream1_done = 0; 48 | stream2_done = 0; 49 | 50 | frame_streamer_send_async(streamer1, &buffer, pi_task_callback(&task1, streamer_handler, (void *)&stream1_done)); 51 | 52 | return; 53 | } 54 | 55 | 56 | 57 | static void streamer_handler(void *arg) 58 | { 59 | *(int *)arg = 1; 60 | if (stream1_done) // && stream2_done) 61 | { 62 | pi_camera_capture_async(&camera, imgBuff0, CAM_WIDTH*CAM_HEIGHT, pi_task_callback(&task1, cam_handler, NULL)); 63 | pi_camera_control(&camera, PI_CAMERA_CMD_START, 0); 64 | } 65 | } 66 | 67 | 68 | 69 | static int open_pi_camera_himax(struct pi_device *device) 70 | { 71 | struct pi_himax_conf cam_conf; 72 | 73 | pi_himax_conf_init(&cam_conf); 74 | 75 | cam_conf.format = PI_CAMERA_QVGA; 76 | 77 | pi_open_from_conf(device, &cam_conf); 78 | if (pi_camera_open(device)) 79 | return -1; 80 | 81 | // rotate image 82 | uint8_t set_value=3; 83 | uint8_t reg_value; 84 | pi_camera_reg_set(&camera, IMG_ORIENTATION, &set_value); 85 | pi_camera_reg_get(&camera, IMG_ORIENTATION, ®_value); 86 | if (set_value!=reg_value) 87 | { 88 | printf("Failed to rotate camera image\n"); 89 | return -1; 90 | } 91 | printf("Rotated camera image\n"); 92 | 93 | // activate AEG 94 | pi_camera_control(device, PI_CAMERA_CMD_AEG_INIT, 0); 95 | 96 | return 0; 97 | } 98 | 99 | 100 | 101 | static int open_pi_camera_mt9v034(struct pi_device *device) 102 | { 103 | struct pi_mt9v034_conf cam_conf; 104 | 105 | pi_mt9v034_conf_init(&cam_conf); 106 | 107 | cam_conf.format = PI_CAMERA_QVGA; 108 | 109 | pi_open_from_conf(device, &cam_conf); 110 | if (pi_camera_open(device)) 111 | return -1; 112 | 113 | return 0; 114 | } 115 | 116 | 117 | 118 | static int open_camera(struct pi_device *device) 119 | { 120 | #ifdef CONFIG_GAPOC_A 121 | return open_pi_camera_mt9v034(device); 122 | #endif 123 | #if defined(CONFIG_GAPUINO) || defined(CONFIG_AI_DECK) 124 | return open_pi_camera_himax(device); 125 | #endif 126 | return -1; 127 | } 128 | 129 | 130 | static int open_wifi(struct pi_device *device) 131 | { 132 | struct pi_nina_w10_conf nina_conf; 133 | 134 | pi_nina_w10_conf_init(&nina_conf); 135 | 136 | nina_conf.ssid = ""; 137 | nina_conf.passwd = ""; 138 | nina_conf.ip_addr = "0.0.0.0"; 139 | nina_conf.port = 5555; 140 | pi_open_from_conf(device, &nina_conf); 141 | if (pi_transport_open(device)) 142 | return -1; 143 | 144 | return 0; 145 | } 146 | 147 | 148 | static frame_streamer_t *open_streamer(char *name) 149 | { 150 | struct frame_streamer_conf frame_streamer_conf; 151 | 152 | frame_streamer_conf_init(&frame_streamer_conf); 153 | 154 | frame_streamer_conf.transport = &wifi; 155 | frame_streamer_conf.format = FRAME_STREAMER_FORMAT_JPEG; 156 | frame_streamer_conf.width = CAM_WIDTH; 157 | frame_streamer_conf.height = CAM_HEIGHT; 158 | frame_streamer_conf.depth = 1; 159 | frame_streamer_conf.name = name; 160 | 161 | return frame_streamer_open(&frame_streamer_conf); 162 | } 163 | static pi_task_t led_task; 164 | static int led_val = 0; 165 | static struct pi_device gpio_device; 166 | static void led_handle(void *arg) 167 | { 168 | pi_gpio_pin_write(&gpio_device, 2, led_val); 169 | led_val ^= 1; 170 | pi_task_push_delayed_us(pi_task_callback(&led_task, led_handle, NULL), 500000); 171 | } 172 | 173 | int main_task(void) { 174 | 175 | printf("Entering main controller...\n"); 176 | 177 | pi_freq_set(PI_FREQ_DOMAIN_FC, 150000000); 178 | 179 | pi_gpio_pin_configure(&gpio_device, 2, PI_GPIO_OUTPUT); 180 | 181 | pi_task_push_delayed_us(pi_task_callback(&led_task, led_handle, NULL), 500000); 182 | 183 | imgBuff0 = (unsigned char *)pmsis_l2_malloc((CAM_WIDTH*CAM_HEIGHT)*sizeof(unsigned char)); 184 | if (imgBuff0 == NULL) { 185 | printf("Failed to allocate Memory for Image \n"); 186 | return 1; 187 | } 188 | printf("Allocated Memory for Image\n"); 189 | 190 | pi_time_wait_us(100000); 191 | 192 | if (open_camera(&camera)) 193 | { 194 | printf("Failed to open camera\n"); 195 | return -1; 196 | } 197 | printf("Opened Camera\n"); 198 | 199 | 200 | if (open_wifi(&wifi)) 201 | { 202 | printf("Failed to open wifi\n"); 203 | return -1; 204 | } 205 | printf("Opened WIFI\n"); 206 | 207 | 208 | 209 | streamer1 = open_streamer("camera"); 210 | if (streamer1 == NULL) 211 | return -1; 212 | 213 | printf("Opened streamer\n"); 214 | 215 | pi_buffer_init(&buffer, PI_BUFFER_TYPE_L2, imgBuff0); 216 | pi_buffer_set_format(&buffer, CAM_WIDTH, CAM_HEIGHT, 1, PI_BUFFER_FORMAT_GRAY); 217 | 218 | pi_camera_control(&camera, PI_CAMERA_CMD_STOP, 0); 219 | pi_camera_capture_async(&camera, imgBuff0, CAM_WIDTH*CAM_HEIGHT, pi_task_callback(&task1, cam_handler, NULL)); 220 | pi_camera_control(&camera, PI_CAMERA_CMD_START, 0); 221 | printf("Transmission started!\n"); 222 | 223 | while(1) 224 | { 225 | pi_yield(); 226 | } 227 | 228 | return 0; 229 | } 230 | 231 | 232 | /* Program Entry. */ 233 | int main(void) { 234 | 235 | printf("\n\n\t *** PMSIS Kickoff trasmission ***\n\n"); 236 | return pmsis_kickoff((int *) main_task); 237 | } 238 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer_inv_filter/Makefile: -------------------------------------------------------------------------------- 1 | APP = test 2 | APP_SRCS += test.c 3 | # APP_SRCS += test_new.c 4 | APP_CFLAGS += -O3 -g 5 | 6 | APP_LDFLAGS += -lgaptools -lgaplib 7 | 8 | RUNNER_CONFIG = $(CURDIR)/config.ini 9 | 10 | streamer: 11 | ./streamer 12 | 13 | include $(RULES_DIR)/pmsis_rules.mk 14 | -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer_inv_filter/config.ini: -------------------------------------------------------------------------------- 1 | [board.devices.nina_w10] 2 | include = devices/nina_w10.json 3 | interface = spim1 4 | cs = 0 5 | gpio_ready = gpio18 6 | config.gpio_ready = gpio18 7 | 8 | 9 | [config] 10 | runner.peripherals=true -------------------------------------------------------------------------------- /Hands-on/Session 4/GAP8/wifi_jpeg_streamer_inv_filter/test.c: -------------------------------------------------------------------------------- 1 | // #-----------------------------------------------------------------------------# 2 | // # File: test.c 3 | // # Original code: Bitcraze # 4 | // # Link: https://github.com/bitcraze/AIdeck_examples/tree/master/GAP8/ # 5 | // # /test_functionalities/wifi_jpeg_streamer # 6 | // # Contributors: # 7 | // # Bitcraze # 8 | // # Lorenzo Lamberti # 9 | // # Date: 10.06.2021 # 10 | // #-----------------------------------------------------------------------------# 11 | 12 | #include "bsp/camera/himax.h" 13 | #include "bsp/camera/mt9v034.h" 14 | #include "bsp/transport/nina_w10.h" 15 | #include "tools/frame_streamer.h" 16 | #include "stdio.h" 17 | 18 | #if defined(CONFIG_GAPUINO) || defined(CONFIG_AI_DECK) 19 | #define CAM_WIDTH 324 20 | #define CAM_HEIGHT 244 21 | #else 22 | #define CAM_WIDTH 320 23 | #define CAM_HEIGHT 240 24 | #endif 25 | 26 | // uncomment if you want to invert image colors 27 | #define INVERTING_KERNEL_FC 28 | 29 | 30 | static pi_task_t task1; 31 | static unsigned char *imgBuff0; 32 | static struct pi_device camera; 33 | static struct pi_device wifi; 34 | static frame_streamer_t *streamer1; 35 | static pi_buffer_t buffer; 36 | static pi_buffer_t buffer2; 37 | static volatile int stream1_done; 38 | #if defined(INVERTING_KERNEL_FC) 39 | static unsigned char *imgBuff0_inv; 40 | static pi_buffer_t buffer_inv; 41 | #endif 42 | 43 | 44 | static void streamer_handler(void *arg); 45 | 46 | void inverting(unsigned char *input, unsigned char* output, int width, int height) 47 | { 48 | int idx = 0; 49 | 50 | for (int y = 0; y < height ; y++) 51 | { 52 | for (int x = 0; x < width ; x++) 53 | { 54 | int idx = y * width + x; 55 | 56 | output[idx] = 255 - input[idx]; 57 | 58 | } 59 | } 60 | } 61 | 62 | static void cam_handler(void *arg) 63 | { 64 | pi_camera_control(&camera, PI_CAMERA_CMD_STOP, 0); 65 | 66 | stream1_done = 0; 67 | 68 | inverting(imgBuff0, imgBuff0_inv, CAM_WIDTH, CAM_HEIGHT); 69 | 70 | frame_streamer_send_async(streamer1, &buffer_inv, pi_task_callback(&task1, streamer_handler, (void *)&stream1_done)); 71 | 72 | return; 73 | } 74 | 75 | 76 | 77 | static void streamer_handler(void *arg) 78 | { 79 | *(int *)arg = 1; 80 | if (stream1_done) // && stream2_done) 81 | { 82 | pi_camera_capture_async(&camera, imgBuff0, CAM_WIDTH*CAM_HEIGHT, pi_task_callback(&task1, cam_handler, NULL)); 83 | pi_camera_control(&camera, PI_CAMERA_CMD_START, 0); 84 | } 85 | } 86 | 87 | 88 | 89 | static int open_pi_camera_himax(struct pi_device *device) 90 | { 91 | struct pi_himax_conf cam_conf; 92 | 93 | pi_himax_conf_init(&cam_conf); 94 | 95 | cam_conf.format = PI_CAMERA_QVGA; 96 | 97 | pi_open_from_conf(device, &cam_conf); 98 | if (pi_camera_open(device)) 99 | return -1; 100 | 101 | // rotate image 102 | uint8_t set_value=3; 103 | uint8_t reg_value; 104 | pi_camera_reg_set(&camera, IMG_ORIENTATION, &set_value); 105 | pi_camera_reg_get(&camera, IMG_ORIENTATION, ®_value); 106 | if (set_value!=reg_value) 107 | { 108 | printf("Failed to rotate camera image\n"); 109 | return -1; 110 | } 111 | printf("Rotated camera image\n"); 112 | 113 | // activate AEG 114 | pi_camera_control(device, PI_CAMERA_CMD_AEG_INIT, 0); 115 | 116 | return 0; 117 | } 118 | 119 | 120 | 121 | static int open_pi_camera_mt9v034(struct pi_device *device) 122 | { 123 | struct pi_mt9v034_conf cam_conf; 124 | 125 | pi_mt9v034_conf_init(&cam_conf); 126 | 127 | cam_conf.format = PI_CAMERA_QVGA; 128 | 129 | pi_open_from_conf(device, &cam_conf); 130 | if (pi_camera_open(device)) 131 | return -1; 132 | 133 | return 0; 134 | } 135 | 136 | 137 | 138 | static int open_camera(struct pi_device *device) 139 | { 140 | #ifdef CONFIG_GAPOC_A 141 | return open_pi_camera_mt9v034(device); 142 | #endif 143 | #if defined(CONFIG_GAPUINO) || defined(CONFIG_AI_DECK) 144 | return open_pi_camera_himax(device); 145 | #endif 146 | return -1; 147 | } 148 | 149 | 150 | static int open_wifi(struct pi_device *device) 151 | { 152 | struct pi_nina_w10_conf nina_conf; 153 | 154 | pi_nina_w10_conf_init(&nina_conf); 155 | 156 | nina_conf.ssid = ""; 157 | nina_conf.passwd = ""; 158 | nina_conf.ip_addr = "0.0.0.0"; 159 | nina_conf.port = 5555; 160 | pi_open_from_conf(device, &nina_conf); 161 | if (pi_transport_open(device)) 162 | return -1; 163 | 164 | return 0; 165 | } 166 | 167 | 168 | static frame_streamer_t *open_streamer(char *name) 169 | { 170 | struct frame_streamer_conf frame_streamer_conf; 171 | 172 | frame_streamer_conf_init(&frame_streamer_conf); 173 | 174 | frame_streamer_conf.transport = &wifi; 175 | frame_streamer_conf.format = FRAME_STREAMER_FORMAT_JPEG; 176 | frame_streamer_conf.width = CAM_WIDTH; 177 | frame_streamer_conf.height = CAM_HEIGHT; 178 | frame_streamer_conf.depth = 1; 179 | frame_streamer_conf.name = name; 180 | 181 | return frame_streamer_open(&frame_streamer_conf); 182 | } 183 | static pi_task_t led_task; 184 | static int led_val = 0; 185 | static struct pi_device gpio_device; 186 | static void led_handle(void *arg) 187 | { 188 | pi_gpio_pin_write(&gpio_device, 2, led_val); 189 | led_val ^= 1; 190 | pi_task_push_delayed_us(pi_task_callback(&led_task, led_handle, NULL), 500000); 191 | } 192 | 193 | int main_task(void) { 194 | 195 | printf("Entering main controller...\n"); 196 | 197 | pi_freq_set(PI_FREQ_DOMAIN_FC, 150000000); 198 | 199 | pi_gpio_pin_configure(&gpio_device, 2, PI_GPIO_OUTPUT); 200 | 201 | pi_task_push_delayed_us(pi_task_callback(&led_task, led_handle, NULL), 500000); 202 | 203 | imgBuff0 = (unsigned char *)pmsis_l2_malloc((CAM_WIDTH*CAM_HEIGHT)*sizeof(unsigned char)); 204 | if (imgBuff0 == NULL) { 205 | printf("Failed to allocate Memory for Image \n"); 206 | return 1; 207 | } 208 | printf("Allocated Memory for Image\n"); 209 | 210 | #if (defined(INVERTING_KERNEL_FC) || defined(INVERTING_KERNEL_CLUSTER)) 211 | imgBuff0_inv = pmsis_l2_malloc(CAM_WIDTH*CAM_HEIGHT); 212 | pi_buffer_init(&buffer_inv, PI_BUFFER_TYPE_L2, imgBuff0_inv); 213 | pi_buffer_set_format(&buffer_inv, CAM_WIDTH, CAM_HEIGHT, 1, PI_BUFFER_FORMAT_GRAY); 214 | if (imgBuff0_inv == NULL){ return -1;} 215 | printf("Allocated Memory for inverting filter buffer\n"); 216 | #endif 217 | 218 | 219 | if (open_camera(&camera)) 220 | { 221 | printf("Failed to open camera\n"); 222 | return -1; 223 | } 224 | printf("Opened Camera\n"); 225 | 226 | 227 | if (open_wifi(&wifi)) 228 | { 229 | printf("Failed to open wifi\n"); 230 | return -1; 231 | } 232 | printf("Opened WIFI\n"); 233 | 234 | 235 | 236 | streamer1 = open_streamer("camera"); 237 | if (streamer1 == NULL) 238 | return -1; 239 | 240 | printf("Opened streamer\n"); 241 | 242 | pi_buffer_init(&buffer, PI_BUFFER_TYPE_L2, imgBuff0); 243 | pi_buffer_set_format(&buffer, CAM_WIDTH, CAM_HEIGHT, 1, PI_BUFFER_FORMAT_GRAY); 244 | 245 | pi_camera_control(&camera, PI_CAMERA_CMD_STOP, 0); 246 | pi_camera_capture_async(&camera, imgBuff0, CAM_WIDTH*CAM_HEIGHT, pi_task_callback(&task1, cam_handler, NULL)); 247 | pi_camera_control(&camera, PI_CAMERA_CMD_START, 0); 248 | printf("Transmission started\n"); 249 | 250 | while(1) 251 | { 252 | pi_yield(); 253 | } 254 | 255 | return 0; 256 | } 257 | 258 | 259 | /* Program Entry. */ 260 | int main(void) { 261 | 262 | printf("\n\n\t *** PMSIS Kickoff trasmission ***\n\n"); 263 | return pmsis_kickoff((int *) main_task); 264 | } 265 | -------------------------------------------------------------------------------- /Hands-on/Session 4/Session_4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Hands-on/Session 4/Session_4.pdf -------------------------------------------------------------------------------- /Overview/Overview_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Overview/Overview_1.pdf -------------------------------------------------------------------------------- /Overview/Overview_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Overview/Overview_2.pdf -------------------------------------------------------------------------------- /Overview/Overview_3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/Overview/Overview_3.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # AI-deck-workshop 3 | 4 | Copyright (C) 2021 ETH Zürich, University of Bologna. All rights reserved. 5 | 6 | __Authors:__ 7 | _Lorenzo Lamberti (University of Bologna), 8 | Hanna Müller (ETH Zürich), 9 | Vlad Niculescu (ETH Zürich), 10 | Dr. Manuele Rusci (University of Bologna / Greenwaves Technology), 11 | Dr. Daniele Palossi (IDSIA Lugano / ETH Zürich)_ 12 | 13 | 14 | 15 | 16 | This workshop on the AI-Deck was held on April 16th 2021. More info about the event [at this page.](https://www.bitcraze.io/about/events/adws12021/) 17 | 18 | __Video Recording:__ The workshop's recording is available on the offical [Bitcraze's YouTube Channel at this link](https://youtu.be/o9asYPHxEB4) 19 | 20 | The workshop is composed of two main parts: 21 | 22 | 1. An overview on the PULP (Parallel Ultra Low Power) paradigm and the PULP architecture: slides available at [`Overview/`](./Overview/) 23 | 2. Four hands-on sessions with PULP coding examples: code and slides available at [`Hands-on/`](./Hands-on/). 24 | 25 | 26 | 27 | # Hands-on sessions 28 | 29 | A brief description of the hands-on sessions is provided in the following sections. 30 | 31 | 32 | ## 1. Basic programming 33 | 34 | This hands-on shows you how to connect to your AI-deck and how to run your first program on it. It also introduces basic API functions for executing code on multiple cores. 35 | The example will print hello world from all cores. You find more infos about the code in the README inside the helloworld example. 36 | 37 | 38 | ## 2. Image manipulation 39 | 40 | This example takes an image, applies a kernel and writes the image over your JTAG cable (using openOCD file semi-hosting) to your computer. 41 | You can choose between two kernels: 42 | 43 | - demosaicking 44 | - inverting 45 | 46 | for both you can choose to either execute the kernel sequentially on the fabric controller or parallelized on the cluster. 47 | It is meant to introduce the camera, file transmission via JTAG and parallization of image processing kernels. 48 | You find more infos about the code in the README inside the simple_kernel_example. 49 | 50 | 51 | ## 3. Firmware integration 52 | 53 | This example shows how to communicate via UART between the AI-deck and the STM32 in the Crazyflie. The example consists of two parts: the code to be flashed in the GAP8 and the Crazyflie application. 54 | 1. The GAP8 code initializes the UART and then sends a counter value every 0.5ms. 55 | 2. The Crazyflie application shows how to use UART together with DMA. 56 | Whenever the counter value is received from GAP8, an interrupt is triggered in the STM32, which signals the application to print the counter value in the console. 57 | 58 | ## 4. Video streaming 59 | 60 | These two examples show how to stream JPEG images from the AI-Deck to a socket connected via Wi-FI. 61 | 1. `wifi_jpeg_streamer/` example streams normal grayscale images 62 | 2. `wifi_jpeg_streamer_inv_filter/` example streams grayscale images with inverted colors, using the `inverting()` from Hands-on session 2. 63 | 64 | The acquisition and JPEG encoding of the acquired image hapens on the GAP8 SoC, while the Wi-Fi transmission is managed by the NINA Wi-Fi module. 65 | The code consists of two pars: 66 | - `wifi_jpeg_streamer/test.c`: the GAP8 C code (camera acquisition of a raw image, jpeg encoding, forward of the jpeg image to NINA) 67 | - `viewer.py`: the Python visualizer receives the images streamed from NINA to the Laptop. By default, it connects to the IP of the AI-deck when use in AccessPoint mode. 68 | 69 | Tested on GAP_SDK version 3.8.1. 70 | 71 | Commands: 72 | Flash GAP8 memory with our code: 73 | ``` 74 | cd GAP8/wifi_jpeg_streamer/ 75 | make clean all 76 | make image flash io=host 77 | ``` 78 | Alternatively, you can run code on GAP8 from L2 memory (volatile) 79 | ``` 80 | cd GAP8/wifi_jpeg_streamer/ 81 | make clean all run io=host 82 | ``` 83 | 84 | Visualize images: 85 | ``` 86 | cd GAP8/ 87 | python viewer.py 88 | ``` 89 | 90 | 91 | More documentation: 92 | 93 | [Bitcraze instructions](https://www.bitcraze.io/documentation/repository/AIdeck_examples/master/test-functions/wifi-streamer/) 94 | 95 | [Install GAP sdk](https://greenwaves-technologies.com/setting-up-sdk/) 96 | -------------------------------------------------------------------------------- /imgs/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulp-platform/AI-deck-workshop/7157fdd419972ae09a2610600e4e34081efcf118/imgs/overview.png --------------------------------------------------------------------------------