From f60dfaeb99ccf1e45786ae93e4d781c831610ee8 Mon Sep 17 00:00:00 2001 From: "remi.greub" <remi.greub@hes-so.ch> Date: Wed, 19 Mar 2025 11:06:40 +0100 Subject: [PATCH] restart du git --- .gitignore | 45 +- CMSISv2p00_LPC17xx/.cproject | 548 ---- CMSISv2p00_LPC17xx/.project | 81 - .../.settings/language.settings.xml | 25 - .../org.eclipse.core.resources.prefs | 2 - CMSISv2p00_LPC17xx/Debug/makefile | 60 - CMSISv2p00_LPC17xx/Debug/objects.mk | 8 - CMSISv2p00_LPC17xx/Debug/sources.mk | 18 - CMSISv2p00_LPC17xx/Debug/src/core_cm3.su | 0 CMSISv2p00_LPC17xx/Debug/src/subdir.mk | 34 - .../Debug/src/system_LPC17xx.su | 2 - .../docs/CMSIS END USER LICENCE AGREEMENT.pdf | Bin 51511 -> 0 bytes CMSISv2p00_LPC17xx/docs/cmsis_readme.txt | 44 - CMSISv2p00_LPC17xx/history.txt | 12 - CMSISv2p00_LPC17xx/inc/LPC17xx.h | 1035 ------- CMSISv2p00_LPC17xx/inc/core_cm3.h | 1236 -------- CMSISv2p00_LPC17xx/inc/core_cmFunc.h | 844 ------ CMSISv2p00_LPC17xx/inc/core_cmInstr.h | 775 ----- CMSISv2p00_LPC17xx/inc/system_LPC17xx.h | 64 - CMSISv2p00_LPC17xx/src/core_cm3.c | 339 --- CMSISv2p00_LPC17xx/src/system_LPC17xx.c | 532 ---- FreeRTOSWithTraces/.cproject | 258 -- FreeRTOSWithTraces/.project | 27 - .../.settings/language.settings.xml | 25 - .../org.eclipse.core.resources.prefs | 2 - .../Debug/FreeRTOSWithTraces.map | 1449 --------- .../Debug/FreeRTOSWithTraces_Debug.ld | 151 - .../Debug/FreeRTOSWithTraces_Debug_lib.ld | 14 - .../Debug/FreeRTOSWithTraces_Debug_library.ld | 15 - .../Debug/FreeRTOSWithTraces_Debug_mem.ld | 21 - .../Debug/FreeRTOSWithTraces_Debug_memory.ld | 31 - .../Debug/FreeRTOS_portable/MemMang/subdir.mk | 24 - .../Debug/FreeRTOS_portable/subdir.mk | 24 - .../Debug/FreeRTOS_src/subdir.mk | 36 - FreeRTOSWithTraces/Debug/libMyLab_lib.a | Bin 961272 -> 0 bytes FreeRTOSWithTraces/Debug/makefile | 53 - FreeRTOSWithTraces/Debug/objects.mk | 8 - FreeRTOSWithTraces/Debug/sources.mk | 21 - FreeRTOSWithTraces/Debug/src/subdir.mk | 27 - .../FreeRTOS_include/FreeRTOS.h | 468 --- .../FreeRTOS_include/StackMacros.h | 174 -- .../FreeRTOS_include/croutine.h | 752 ----- FreeRTOSWithTraces/FreeRTOS_include/list.h | 314 -- .../FreeRTOS_include/mpu_wrappers.h | 141 - .../FreeRTOS_include/portable.h | 396 --- .../FreeRTOS_include/projdefs.h | 83 - FreeRTOSWithTraces/FreeRTOS_include/queue.h | 1270 -------- FreeRTOSWithTraces/FreeRTOS_include/semphr.h | 717 ----- FreeRTOSWithTraces/FreeRTOS_include/task.h | 1307 -------- FreeRTOSWithTraces/FreeRTOS_include/timers.h | 936 ------ .../FreeRTOS_portable/MemMang/heap_1.c | 152 - .../FreeRTOS_portable/MemMang/heap_2.c | 278 -- .../FreeRTOS_portable/MemMang/heap_3.c | 117 - FreeRTOSWithTraces/FreeRTOS_portable/port.c | 283 -- .../FreeRTOS_portable/portmacro.h | 156 - FreeRTOSWithTraces/FreeRTOS_src/croutine.c | 380 --- FreeRTOSWithTraces/FreeRTOS_src/list.c | 197 -- FreeRTOSWithTraces/FreeRTOS_src/queue.c | 1539 ---------- FreeRTOSWithTraces/FreeRTOS_src/readme.txt | 17 - FreeRTOSWithTraces/FreeRTOS_src/tasks.c | 2542 ---------------- FreeRTOSWithTraces/FreeRTOS_src/timers.c | 649 ---- FreeRTOSWithTraces/src/FreeRTOSConfig.h | 179 -- FreeRTOSWithTraces/src/cr_startup_lpc17.c | 349 --- FreeRTOSWithTraces/src/main.c | 25 - FreeRTOSWithTraces/src/uart.h | 50 - TP1_labyrinth_etu/.cproject | 238 -- TP1_labyrinth_etu/.project | 27 - TP1_labyrinth_etu/.project~ | 27 - .../.settings/language.settings.xml | 25 - .../org.eclipse.core.resources.prefs | 2 - .../Debug/FreeRTOS_portable/MemMang/heap_2.su | 4 - .../Debug/FreeRTOS_portable/MemMang/subdir.mk | 31 - .../Debug/FreeRTOS_portable/port.su | 11 - .../Debug/FreeRTOS_portable/subdir.mk | 31 - .../Debug/FreeRTOS_src/croutine.su | 7 - TP1_labyrinth_etu/Debug/FreeRTOS_src/list.su | 5 - TP1_labyrinth_etu/Debug/FreeRTOS_src/queue.su | 20 - .../Debug/FreeRTOS_src/subdir.mk | 43 - TP1_labyrinth_etu/Debug/FreeRTOS_src/tasks.su | 33 - .../Debug/FreeRTOS_src/timers.su | 0 TP1_labyrinth_etu/Debug/TP1_labyrinth.map | 2636 ---------------- .../Debug/TP1_labyrinth_Debug.ld | 151 - .../Debug/TP1_labyrinth_Debug_library.ld | 15 - .../Debug/TP1_labyrinth_Debug_memory.ld | 31 - TP1_labyrinth_etu/Debug/TP1_labyrinth_etu.map | 2695 ----------------- .../Debug/TP1_labyrinth_etu_Debug.ld | 193 -- .../Debug/TP1_labyrinth_etu_Debug_library.ld | 16 - .../Debug/TP1_labyrinth_etu_Debug_memory.ld | 31 - TP1_labyrinth_etu/Debug/TP1_labyrinth_ref.axf | Bin 319412 -> 0 bytes TP1_labyrinth_etu/Debug/libMyLab_lib.a | Bin 964832 -> 0 bytes TP1_labyrinth_etu/Debug/makefile | 63 - TP1_labyrinth_etu/Debug/objects.mk | 8 - TP1_labyrinth_etu/Debug/sources.mk | 21 - .../Debug/src/cr_startup_lpc17.su | 10 - TP1_labyrinth_etu/Debug/src/debug.d | 46 - TP1_labyrinth_etu/Debug/src/labyrinth.su | 2 - TP1_labyrinth_etu/Debug/src/subdir.mk | 40 - TP1_labyrinth_etu/Debug/src/timer.d | 54 - TP1_labyrinth_etu/Debug/src/tools.su | 3 - TP1_labyrinth_etu/Debug/src/tp2_son.d | 60 - TP1_labyrinth_etu/Debug/src/tp2_son.o | Bin 87076 -> 0 bytes TP1_labyrinth_etu/Debug/src/trace_mgt.su | 1 - TP1_labyrinth_etu/FreeRTOS_include/FreeRTOS.h | 468 --- .../FreeRTOS_include/StackMacros.h | 174 -- TP1_labyrinth_etu/FreeRTOS_include/croutine.h | 752 ----- TP1_labyrinth_etu/FreeRTOS_include/list.h | 314 -- .../FreeRTOS_include/mpu_wrappers.h | 141 - TP1_labyrinth_etu/FreeRTOS_include/portable.h | 396 --- TP1_labyrinth_etu/FreeRTOS_include/projdefs.h | 83 - TP1_labyrinth_etu/FreeRTOS_include/queue.h | 1270 -------- TP1_labyrinth_etu/FreeRTOS_include/semphr.h | 717 ----- TP1_labyrinth_etu/FreeRTOS_include/task.h | 1307 -------- TP1_labyrinth_etu/FreeRTOS_include/timers.h | 936 ------ .../FreeRTOS_portable/MemMang/heap_1.c | 152 - .../FreeRTOS_portable/MemMang/heap_2.c | 278 -- .../FreeRTOS_portable/MemMang/heap_3.c | 117 - TP1_labyrinth_etu/FreeRTOS_portable/port.c | 283 -- .../FreeRTOS_portable/portmacro.h | 156 - TP1_labyrinth_etu/FreeRTOS_src/croutine.c | 380 --- TP1_labyrinth_etu/FreeRTOS_src/list.c | 197 -- TP1_labyrinth_etu/FreeRTOS_src/queue.c | 1539 ---------- TP1_labyrinth_etu/FreeRTOS_src/readme.txt | 17 - TP1_labyrinth_etu/FreeRTOS_src/tasks.c | 2542 ---------------- TP1_labyrinth_etu/FreeRTOS_src/timers.c | 649 ---- .../TP1_labyrinth_etu Debug.launch | 23 - .../TP1_labyrinth_etu Release.launch | 18 - TP1_labyrinth_etu/src/FreeRTOSConfig.h | 180 -- TP1_labyrinth_etu/src/accelerometer.h | 89 - TP1_labyrinth_etu/src/cr_startup_lpc17.c | 403 --- TP1_labyrinth_etu/src/custom_rand.h | 20 - TP1_labyrinth_etu/src/ethernet_mgt.h | 53 - TP1_labyrinth_etu/src/ethmac.h | 347 --- TP1_labyrinth_etu/src/fonts.h | 18 - TP1_labyrinth_etu/src/labyrinth.c | 119 - TP1_labyrinth_etu/src/lcd.h | 231 -- TP1_labyrinth_etu/src/ssp.h | 24 - TP1_labyrinth_etu/src/tools.c | 128 - TP1_labyrinth_etu/src/tools.h | 77 - TP1_labyrinth_etu/src/trace_mgt.c | 39 - TP1_labyrinth_etu/src/traces_ref.h | 45 - TP1_labyrinth_etu/src/uart.h | 50 - TP1_labyrinth_slave_etu/.DS_Store | Bin 6148 -> 0 bytes TP1_labyrinth_slave_etu/.cproject | 452 --- TP1_labyrinth_slave_etu/.project | 27 - .../.settings/language.settings.xml | 25 - .../org.eclipse.core.resources.prefs | 2 - .../Debug/Labo4_langton_Debug.ld | 158 - .../Debug/Labo4_langton_Debug_library.ld | 15 - .../Debug/Labo4_langton_Debug_memory.ld | 31 - .../Debug/TP1_labyrinth_slave.map | 1719 ----------- .../Debug/TP1_labyrinth_slave_etu.map | 1505 --------- .../Debug/TP1_labyrinth_slave_ref.axf | Bin 246740 -> 0 bytes TP1_labyrinth_slave_etu/Debug/libMyLab_lib.a | Bin 964832 -> 0 bytes TP1_labyrinth_slave_etu/Debug/makefile | 50 - TP1_labyrinth_slave_etu/Debug/objects.mk | 8 - TP1_labyrinth_slave_etu/Debug/sources.mk | 18 - .../Debug/src/Labo1_mylab2_correction2.d | 26 - .../Debug/src/Labo1_mylab2_correction2.o | Bin 58068 -> 0 bytes .../Debug/src/Labo2_mylab2_correction2.d | 24 - .../Debug/src/Labo2_mylab2_correction2.o | Bin 58308 -> 0 bytes .../Debug/src/Labo4_mylab2_correction.d | 24 - .../Debug/src/Labo4_mylab2_correction.o | Bin 58424 -> 0 bytes TP1_labyrinth_slave_etu/Debug/src/subdir.mk | 33 - .../TP1_labyrinth_slave_etu Debug.launch | 23 - .../TP1_labyrinth_slave_etu Release.launch | 18 - TP1_labyrinth_slave_etu/src/accelerometer.h | 83 - .../src/cr_startup_lpc175x_6x.c | 371 --- TP1_labyrinth_slave_etu/src/crp.c | 38 - TP1_labyrinth_slave_etu/src/ethernet_mgt.h | 53 - TP1_labyrinth_slave_etu/src/ethmac.h | 347 --- TP1_labyrinth_slave_etu/src/fonts.h | 18 - TP1_labyrinth_slave_etu/src/labyrinth_slave.c | 77 - TP1_labyrinth_slave_etu/src/lcd.h | 231 -- TP1_labyrinth_slave_etu/src/ssp.h | 24 - TP1_labyrinth_slave_etu/src/tools.c | 127 - TP1_labyrinth_slave_etu/src/tools.h | 78 - 176 files changed, 40 insertions(+), 48238 deletions(-) delete mode 100644 CMSISv2p00_LPC17xx/.cproject delete mode 100644 CMSISv2p00_LPC17xx/.project delete mode 100644 CMSISv2p00_LPC17xx/.settings/language.settings.xml delete mode 100644 CMSISv2p00_LPC17xx/.settings/org.eclipse.core.resources.prefs delete mode 100644 CMSISv2p00_LPC17xx/Debug/makefile delete mode 100644 CMSISv2p00_LPC17xx/Debug/objects.mk delete mode 100644 CMSISv2p00_LPC17xx/Debug/sources.mk delete mode 100644 CMSISv2p00_LPC17xx/Debug/src/core_cm3.su delete mode 100644 CMSISv2p00_LPC17xx/Debug/src/subdir.mk delete mode 100644 CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su delete mode 100644 CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf delete mode 100644 CMSISv2p00_LPC17xx/docs/cmsis_readme.txt delete mode 100644 CMSISv2p00_LPC17xx/history.txt delete mode 100644 CMSISv2p00_LPC17xx/inc/LPC17xx.h delete mode 100644 CMSISv2p00_LPC17xx/inc/core_cm3.h delete mode 100644 CMSISv2p00_LPC17xx/inc/core_cmFunc.h delete mode 100644 CMSISv2p00_LPC17xx/inc/core_cmInstr.h delete mode 100644 CMSISv2p00_LPC17xx/inc/system_LPC17xx.h delete mode 100644 CMSISv2p00_LPC17xx/src/core_cm3.c delete mode 100644 CMSISv2p00_LPC17xx/src/system_LPC17xx.c delete mode 100644 FreeRTOSWithTraces/.cproject delete mode 100644 FreeRTOSWithTraces/.project delete mode 100644 FreeRTOSWithTraces/.settings/language.settings.xml delete mode 100644 FreeRTOSWithTraces/.settings/org.eclipse.core.resources.prefs delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces.map delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug.ld delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_lib.ld delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_library.ld delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_mem.ld delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_memory.ld delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOS_portable/MemMang/subdir.mk delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOS_portable/subdir.mk delete mode 100644 FreeRTOSWithTraces/Debug/FreeRTOS_src/subdir.mk delete mode 100644 FreeRTOSWithTraces/Debug/libMyLab_lib.a delete mode 100644 FreeRTOSWithTraces/Debug/makefile delete mode 100644 FreeRTOSWithTraces/Debug/objects.mk delete mode 100644 FreeRTOSWithTraces/Debug/sources.mk delete mode 100644 FreeRTOSWithTraces/Debug/src/subdir.mk delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/FreeRTOS.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/StackMacros.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/croutine.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/list.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/mpu_wrappers.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/portable.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/projdefs.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/queue.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/semphr.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/task.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_include/timers.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_1.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_2.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_3.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_portable/port.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_portable/portmacro.h delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/croutine.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/list.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/queue.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/readme.txt delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/tasks.c delete mode 100644 FreeRTOSWithTraces/FreeRTOS_src/timers.c delete mode 100644 FreeRTOSWithTraces/src/FreeRTOSConfig.h delete mode 100644 FreeRTOSWithTraces/src/cr_startup_lpc17.c delete mode 100644 FreeRTOSWithTraces/src/main.c delete mode 100644 FreeRTOSWithTraces/src/uart.h delete mode 100644 TP1_labyrinth_etu/.cproject delete mode 100644 TP1_labyrinth_etu/.project delete mode 100644 TP1_labyrinth_etu/.project~ delete mode 100644 TP1_labyrinth_etu/.settings/language.settings.xml delete mode 100644 TP1_labyrinth_etu/.settings/org.eclipse.core.resources.prefs delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/heap_2.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/subdir.mk delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_portable/port.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_portable/subdir.mk delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/croutine.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/list.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/queue.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/subdir.mk delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/tasks.su delete mode 100644 TP1_labyrinth_etu/Debug/FreeRTOS_src/timers.su delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth.map delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_library.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_memory.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_etu.map delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_library.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_memory.ld delete mode 100644 TP1_labyrinth_etu/Debug/TP1_labyrinth_ref.axf delete mode 100644 TP1_labyrinth_etu/Debug/libMyLab_lib.a delete mode 100644 TP1_labyrinth_etu/Debug/makefile delete mode 100644 TP1_labyrinth_etu/Debug/objects.mk delete mode 100644 TP1_labyrinth_etu/Debug/sources.mk delete mode 100644 TP1_labyrinth_etu/Debug/src/cr_startup_lpc17.su delete mode 100644 TP1_labyrinth_etu/Debug/src/debug.d delete mode 100644 TP1_labyrinth_etu/Debug/src/labyrinth.su delete mode 100644 TP1_labyrinth_etu/Debug/src/subdir.mk delete mode 100644 TP1_labyrinth_etu/Debug/src/timer.d delete mode 100644 TP1_labyrinth_etu/Debug/src/tools.su delete mode 100644 TP1_labyrinth_etu/Debug/src/tp2_son.d delete mode 100644 TP1_labyrinth_etu/Debug/src/tp2_son.o delete mode 100644 TP1_labyrinth_etu/Debug/src/trace_mgt.su delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/FreeRTOS.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/StackMacros.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/croutine.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/list.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/mpu_wrappers.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/portable.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/projdefs.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/queue.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/semphr.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/task.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_include/timers.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_1.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_2.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_3.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_portable/port.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_portable/portmacro.h delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/croutine.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/list.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/queue.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/readme.txt delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/tasks.c delete mode 100644 TP1_labyrinth_etu/FreeRTOS_src/timers.c delete mode 100644 TP1_labyrinth_etu/TP1_labyrinth_etu Debug.launch delete mode 100644 TP1_labyrinth_etu/TP1_labyrinth_etu Release.launch delete mode 100644 TP1_labyrinth_etu/src/FreeRTOSConfig.h delete mode 100644 TP1_labyrinth_etu/src/accelerometer.h delete mode 100644 TP1_labyrinth_etu/src/cr_startup_lpc17.c delete mode 100644 TP1_labyrinth_etu/src/custom_rand.h delete mode 100644 TP1_labyrinth_etu/src/ethernet_mgt.h delete mode 100644 TP1_labyrinth_etu/src/ethmac.h delete mode 100644 TP1_labyrinth_etu/src/fonts.h delete mode 100644 TP1_labyrinth_etu/src/labyrinth.c delete mode 100644 TP1_labyrinth_etu/src/lcd.h delete mode 100644 TP1_labyrinth_etu/src/ssp.h delete mode 100644 TP1_labyrinth_etu/src/tools.c delete mode 100644 TP1_labyrinth_etu/src/tools.h delete mode 100644 TP1_labyrinth_etu/src/trace_mgt.c delete mode 100644 TP1_labyrinth_etu/src/traces_ref.h delete mode 100644 TP1_labyrinth_etu/src/uart.h delete mode 100644 TP1_labyrinth_slave_etu/.DS_Store delete mode 100644 TP1_labyrinth_slave_etu/.cproject delete mode 100644 TP1_labyrinth_slave_etu/.project delete mode 100644 TP1_labyrinth_slave_etu/.settings/language.settings.xml delete mode 100644 TP1_labyrinth_slave_etu/.settings/org.eclipse.core.resources.prefs delete mode 100644 TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug.ld delete mode 100644 TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_library.ld delete mode 100644 TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_memory.ld delete mode 100644 TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave.map delete mode 100644 TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_etu.map delete mode 100644 TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_ref.axf delete mode 100644 TP1_labyrinth_slave_etu/Debug/libMyLab_lib.a delete mode 100644 TP1_labyrinth_slave_etu/Debug/makefile delete mode 100644 TP1_labyrinth_slave_etu/Debug/objects.mk delete mode 100644 TP1_labyrinth_slave_etu/Debug/sources.mk delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.d delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.o delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.d delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.o delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.d delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.o delete mode 100644 TP1_labyrinth_slave_etu/Debug/src/subdir.mk delete mode 100644 TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Debug.launch delete mode 100644 TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Release.launch delete mode 100644 TP1_labyrinth_slave_etu/src/accelerometer.h delete mode 100644 TP1_labyrinth_slave_etu/src/cr_startup_lpc175x_6x.c delete mode 100644 TP1_labyrinth_slave_etu/src/crp.c delete mode 100644 TP1_labyrinth_slave_etu/src/ethernet_mgt.h delete mode 100644 TP1_labyrinth_slave_etu/src/ethmac.h delete mode 100644 TP1_labyrinth_slave_etu/src/fonts.h delete mode 100644 TP1_labyrinth_slave_etu/src/labyrinth_slave.c delete mode 100644 TP1_labyrinth_slave_etu/src/lcd.h delete mode 100644 TP1_labyrinth_slave_etu/src/ssp.h delete mode 100644 TP1_labyrinth_slave_etu/src/tools.c delete mode 100644 TP1_labyrinth_slave_etu/src/tools.h diff --git a/.gitignore b/.gitignore index 335d32e..865e095 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,42 @@ -*.zip +.settings/ +.metadata/ +*.launch +*.log +*.bak +*.swp +*.swo +*.swn + +build/ +Debug/ +Release/ +*.axf +*.bin +*.hex +*.elf +*.map *.o *.d -*.k -*/Debug/* -*/.settings/* -/.metadata/ +*.a +*.out + +tmp/ +.cproject +.project +.vscode/ +.idea/ +*.mk +*.dep +*.lst +*.srec +*.dmp +*.sct + +libs/ +obj/ +output/ +scripts/ +*.ld + +.mcuxpressoide/ +workspace/ diff --git a/CMSISv2p00_LPC17xx/.cproject b/CMSISv2p00_LPC17xx/.cproject deleted file mode 100644 index a181770..0000000 --- a/CMSISv2p00_LPC17xx/.cproject +++ /dev/null @@ -1,548 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> - <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="com.crt.advproject.config.lib.debug.1814355025"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.lib.debug.1814355025" moduleId="org.eclipse.cdt.core.settings" name="Debug"> - <externalSettings> - <externalSetting> - <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/CMSISv2p00_LPC17xx"/> - <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/CMSISv2p00_LPC17xx/Debug"/> - <entry flags="RESOLVED" kind="libraryFile" name="CMSISv2p00_LPC17xx" srcPrefixMapping="" srcRootPath=""/> - </externalSetting> - </externalSettings> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="Debug build" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.lib.debug.1814355025" name="Debug" parent="com.crt.advproject.config.lib.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size lib${BuildArtifactFileName} ; # arm-none-eabi-objdump -h -S lib${BuildArtifactFileName} >${BuildArtifactFileBaseName}.lss"> - <folderInfo id="com.crt.advproject.config.lib.debug.1814355025." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.lib.debug.1548108302" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.lib.debug"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.lib.debug.1050494393" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.lib.debug"/> - <builder buildPath="${workspace_loc:/CMSISv2p00_LPC17xx/Debug}" id="com.crt.advproject.builder.lib.debug.511092144" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.lib.debug"/> - <tool id="com.crt.advproject.cpp.lib.debug.1604093373" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.lib.debug"> - <option id="com.crt.advproject.cpp.hdrlib.315305423" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> - <option id="gnu.cpp.compiler.option.preprocessor.def.451551178" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/> - </tool> - <tool id="com.crt.advproject.gcc.lib.debug.1004026908" name="MCU C Compiler" superClass="com.crt.advproject.gcc.lib.debug"> - <option id="com.crt.advproject.gcc.arch.1404126263" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="true" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.472427554" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.154328068" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__REDLIB__"/> - <listOptionValue builtIn="false" value="DEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - </option> - <option id="gnu.c.compiler.option.misc.other.278494594" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.111254829" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> - <listOptionValue builtIn="false" value="../inc"/> - </option> - <option id="gnu.c.compiler.option.optimization.flags.167107899" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false" value="-Os" valueType="string"/> - <option id="com.crt.advproject.gcc.hdrlib.1141969343" superClass="com.crt.advproject.gcc.hdrlib"/> - <inputType id="com.crt.advproject.compiler.input.189471461" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.lib.debug.1199056603" name="MCU Assembler" superClass="com.crt.advproject.gas.lib.debug"> - <option id="com.crt.advproject.gas.arch.478675869" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.430089063" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.1310306982" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DDEBUG -D__CODE_RED" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.127538207" superClass="com.crt.advproject.gas.hdrlib"/> - <inputType id="com.crt.advproject.assembler.input.1424028465" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1094448616" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - </tool> - <tool id="com.crt.advproject.ar.lib.debug.2004041978" name="MCU Archiver" superClass="com.crt.advproject.ar.lib.debug"/> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - <entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> - <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> - </cconfiguration> - <cconfiguration id="com.crt.advproject.config.lib.release.1079171862"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.lib.release.1079171862" moduleId="org.eclipse.cdt.core.settings" name="Release"> - <externalSettings> - <externalSetting> - <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/CMSISv2p00_LPC17xx"/> - <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/CMSISv2p00_LPC17xx/Release"/> - <entry flags="RESOLVED" kind="libraryFile" name="CMSISv2p00_LPC17xx" srcPrefixMapping="" srcRootPath=""/> - </externalSetting> - </externalSettings> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib" cleanCommand="rm -rf" description="Release build" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.lib.release.1079171862" name="Release" parent="com.crt.advproject.config.lib.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size lib${BuildArtifactFileName} ; # arm-none-eabi-objdump -h -S lib${BuildArtifactFileName} >${BuildArtifactFileBaseName}.lss"> - <folderInfo id="com.crt.advproject.config.lib.release.1079171862." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.lib.release.1097962762" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.lib.release"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.lib.release.994351139" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.lib.release"/> - <builder buildPath="${workspace_loc:/CMSISv2p00_LPC17xx/Release}" id="com.crt.advproject.builder.lib.release.1692141062" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.lib.release"/> - <tool id="com.crt.advproject.cpp.lib.release.352135057" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.lib.release"/> - <tool id="com.crt.advproject.gcc.lib.release.1602026126" name="MCU C Compiler" superClass="com.crt.advproject.gcc.lib.release"> - <option id="com.crt.advproject.gcc.arch.1973834364" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.987297888" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> - <option id="gnu.c.compiler.option.preprocessor.def.symbols.2129884672" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__REDLIB__"/> - <listOptionValue builtIn="false" value="NDEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - </option> - <option id="gnu.c.compiler.option.misc.other.1390171355" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="gnu.c.compiler.option.optimization.flags.38180583" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" value="-Os" valueType="string"/> - <option id="gnu.c.compiler.option.include.paths.995872451" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> - <listOptionValue builtIn="false" value="../inc"/> - </option> - <inputType id="com.crt.advproject.compiler.input.1022340162" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.lib.release.48688322" name="MCU Assembler" superClass="com.crt.advproject.gas.lib.release"> - <option id="com.crt.advproject.gas.arch.601834344" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.652059259" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.2095432557" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/> - <inputType id="com.crt.advproject.assembler.input.1808596896" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1468352635" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - </tool> - <tool id="com.crt.advproject.ar.lib.release.1701225249" name="MCU Archiver" superClass="com.crt.advproject.ar.lib.release"/> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - <entry excluding="src" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> - <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> - </cconfiguration> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <project id="CMSISv2p00_LPC17xx.com.crt.advproject.projecttype.lib.1193160240" name="Static Library" projectType="com.crt.advproject.projecttype.lib"/> - </storageModule> - <storageModule moduleId="com.crt.config"> - <projectStorage><?xml version="1.0" encoding="UTF-8"?> -<TargetConfig> -<Properties property_0="" property_2="LPC175x_6x_32.cfx" property_3="NXP" property_4="LPC1751" property_count="5" version="70200"/> -<infoList vendor="NXP"><info chip="LPC1751" flash_driver="LPC175x_6x_32.cfx" match_id="0x00001110,0x25001118, 0x25001110" name="LPC1751" stub="crt_emu_cm3_nxp"><chip><name>LPC1751</name> -<family>LPC17xx</family> -<vendor>NXP (formerly Philips)</vendor> -<reset board="None" core="Real" sys="Real"/> -<clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/> -<memory can_program="true" id="Flash" is_ro="true" type="Flash"/> -<memory id="RAM" type="RAM"/> -<memory id="Periph" is_volatile="true" type="Peripheral"/> -<memoryInstance derived_from="Flash" id="MFlash32" location="0x00000000" size="0x8000"/> -<memoryInstance derived_from="RAM" id="RamLoc8" location="0x10000000" size="0x2000"/> -<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x1000" progwithcode="TRUE" size="0x8000"/> -<peripheralInstance derived_from="LPC17_NVIC" determined="infoFile" id="NVIC" location="0xE000E000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM0&amp;0x1" id="TIMER0" location="0x40004000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM1&amp;0x1" id="TIMER1" location="0x40008000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM2&amp;0x1" id="TIMER2" location="0x40090000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM3&amp;0x1" id="TIMER3" location="0x40094000"/> -<peripheralInstance derived_from="LPC17_RIT" determined="infoFile" enable="SYSCTL.PCONP.PCRIT&amp;0x1" id="RIT" location="0x400B0000"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO0" location="0x2009C000"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO1" location="0x2009C020"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO2" location="0x2009C040"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO3" location="0x2009C060"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO4" location="0x2009C080"/> -<peripheralInstance derived_from="LPC17_SYSCTL" determined="infoFile" id="SYSCTL" location="0x400FC000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART0&amp;0x1" id="UART0" location="0x4000C000"/> -<peripheralInstance derived_from="LPC17xx_UART_MODEM" determined="infoFile" enable="SYSCTL.PCONP.PCUART1&amp;0x1" id="UART1" location="0x40010000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART2&amp;0x1" id="UART2" location="0x40098000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART3&amp;0x1" id="UART3" location="0x4009C000"/> -<peripheralInstance derived_from="SPI" determined="infoFile" enable="SYSCTL.PCONP.PCSPI&amp;0x1" id="SPI" location="0x40020000"/> -<peripheralInstance derived_from="LPC17_SSP" determined="infoFile" enable="SYSCTL.PCONP.PCSSP0&amp;0x1" id="SSP0" location="0x40088000"/> -<peripheralInstance derived_from="LPC17_SSP" determined="infoFile" enable="SYSCTL.PCONP.PCSSP1&amp;0x1" id="SSP1" location="0x40030000"/> -<peripheralInstance derived_from="LPC17_ADC" determined="infoFile" enable="SYSCTL.PCONP.PCAD&amp;0x1" id="ADC" location="0x40034000"/> -<peripheralInstance derived_from="LPC17_USBINTST" determined="infoFile" enable="USBCLKCTL.USBClkCtrl&amp;0x12" id="USBINTSTAT" location="0x400fc1c0"/> -<peripheralInstance derived_from="LPC17_USB_CLK_CTL" determined="infoFile" id="USBCLKCTL" location="0x5000cff4"/> -<peripheralInstance derived_from="LPC17_USBDEV" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x12=0x12" id="USBDEV" location="0x5000C200"/> -<peripheralInstance derived_from="LPC17_PWM" determined="infoFile" enable="SYSCTL.PCONP.PWM1&amp;0x1" id="PWM" location="0x40018000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C0&amp;0x1" id="I2C0" location="0x4001C000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C1&amp;0x1" id="I2C1" location="0x4005C000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C2&amp;0x1" id="I2C2" location="0x400A0000"/> -<peripheralInstance derived_from="LPC17_DMA" determined="infoFile" enable="SYSCTL.PCONP.PCGPDMA&amp;0x1" id="DMA" location="0x50004000"/> -<peripheralInstance derived_from="CM3_DCR" determined="infoFile" id="DCR" location="0xE000EDF0"/> -<peripheralInstance derived_from="LPC17_PCB" determined="infoFile" id="PCB" location="0x4002c000"/> -<peripheralInstance derived_from="LPC17_QEI" determined="infoFile" id="QEI" location="0x400bc000"/> -<peripheralInstance derived_from="LPC17_USBHOST" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x11=0x11" id="USBHOST" location="0x5000C000"/> -<peripheralInstance derived_from="LPC17_USBOTG" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x1c=0x1c" id="USBOTG" location="0x5000C000"/> -<peripheralInstance derived_from="LPC17_RTC" determined="infoFile" enable="SYSCTL.PCONP.PCRTC&amp;0x1" id="RTC" location="0x40024000"/> -<peripheralInstance derived_from="MPU" determined="infoFile" id="MPU" location="0xE000ED90"/> -<peripheralInstance derived_from="LPC1x_WDT" determined="infoFile" id="WDT" location="0x40000000"/> -<peripheralInstance derived_from="LPC17_FLASHCFG" determined="infoFile" id="FLASHACCEL" location="0x400FC000"/> -<peripheralInstance derived_from="GPIO_INT" determined="infoFile" id="GPIOINTMAP" location="0x40028080"/> -<peripheralInstance derived_from="LPC17_CANAFR" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1" id="CANAFR" location="0x4003C000"/> -<peripheralInstance derived_from="LPC17_CANCEN" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1" id="CANCEN" location="0x40040000"/> -<peripheralInstance derived_from="LPC17_CANWAKESLEEP" determined="infoFile" id="CANWAKESLEEP" location="0x400FC110"/> -<peripheralInstance derived_from="LPC17_CANCON" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1" id="CANCON1" location="0x40044000"/> -<peripheralInstance derived_from="LPC17_MCPWM" determined="infoFile" enable="SYSCTL.PCONP.PCMCPWM&amp;0x1" id="MCPWM" location="0x400B8000"/> -<peripheralInstance derived_from="LPC17_FMC" determined="infoFile" id="FMC" location="0x40084000"/> -</chip> -<processor><name gcc_name="cortex-m3">Cortex-M3</name> -<family>Cortex-M</family> -</processor> -<link href="nxp_lpcxxxx_peripheral.xme" show="embed" type="simple"/> -</info> -</infoList> -</TargetConfig></projectStorage> - </storageModule> - <storageModule moduleId="refreshScope"/> - <storageModule moduleId="scannerConfiguration"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GASManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="makefileGenerator"> - <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.release.1079171862;com.crt.advproject.config.lib.release.1079171862.;com.crt.advproject.gcc.lib.release.1602026126;com.crt.advproject.compiler.input.1022340162"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GASManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="makefileGenerator"> - <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - </scannerConfigBuildInfo> - <scannerConfigBuildInfo instanceId="com.crt.advproject.config.lib.release.1079171862;com.crt.advproject.config.lib.release.1079171862.;com.crt.advproject.gas.lib.release.48688322;com.crt.advproject.assembler.input.1808596896"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-c++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file} " command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="com.crt.advproject.GASManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="false" filePath=""/> - <parser enabled="false"/> - </buildOutputProvider> - <scannerInfoProvider id="com.crt.advproject.specsFile"> - <runAction arguments="-x assembler-with-cpp -E -P -v -dD ${plugin_state_location}/${specs_file}" command="arm-none-eabi-gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="makefileGenerator"> - <runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> - <buildOutputProvider> - <openAction enabled="true" filePath=""/> - <parser enabled="true"/> - </buildOutputProvider> - <scannerInfoProvider id="specsFile"> - <runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> - <parser enabled="true"/> - </scannerInfoProvider> - </profile> - </scannerConfigBuildInfo> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> - <storageModule moduleId="openCmsis"/> - <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> -</cproject> \ No newline at end of file diff --git a/CMSISv2p00_LPC17xx/.project b/CMSISv2p00_LPC17xx/.project deleted file mode 100644 index 5cd9643..0000000 --- a/CMSISv2p00_LPC17xx/.project +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>CMSISv2p00_LPC17xx</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - <dictionary> - <key>?name?</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.append_environment</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.autoBuildTarget</key> - <value>all</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildArguments</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildCommand</key> - <value>make</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildLocation</key> - <value>${workspace_loc:/CMSISv2p00_LPC17xx/Debug}</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.cleanBuildTarget</key> - <value>clean</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.contents</key> - <value>org.eclipse.cdt.make.core.activeConfigSettings</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableAutoBuild</key> - <value>false</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableCleanBuild</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableFullBuild</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.fullBuildTarget</key> - <value>all</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.stopOnError</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> - <value>true</value> - </dictionary> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.cnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - </natures> -</projectDescription> diff --git a/CMSISv2p00_LPC17xx/.settings/language.settings.xml b/CMSISv2p00_LPC17xx/.settings/language.settings.xml deleted file mode 100644 index 7ca6bbf..0000000 --- a/CMSISv2p00_LPC17xx/.settings/language.settings.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<project> - <configuration id="com.crt.advproject.config.lib.debug.1814355025" name="Debug"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="com.crt.advproject.GCCBuildCommandParser" keep-relative-paths="false" name="MCU GCC Build Output Parser" parameter="(arm-none-eabi-gcc)|(arm-none-eabi-[gc]\+\+)|(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1421239171053619650" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> - <configuration id="com.crt.advproject.config.lib.release.1079171862" name="Release"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1467668262890638690" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> -</project> \ No newline at end of file diff --git a/CMSISv2p00_LPC17xx/.settings/org.eclipse.core.resources.prefs b/CMSISv2p00_LPC17xx/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/CMSISv2p00_LPC17xx/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/<project>=UTF-8 diff --git a/CMSISv2p00_LPC17xx/Debug/makefile b/CMSISv2p00_LPC17xx/Debug/makefile deleted file mode 100644 index 2002ae8..0000000 --- a/CMSISv2p00_LPC17xx/Debug/makefile +++ /dev/null @@ -1,60 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - --include ../makefile.defs - -OPTIONAL_TOOL_DEPS := \ -$(wildcard ../makefile.defs) \ -$(wildcard ../makefile.init) \ -$(wildcard ../makefile.targets) \ - - -BUILD_ARTIFACT_NAME := CMSISv2p00_LPC17xx -BUILD_ARTIFACT_EXTENSION := a -BUILD_ARTIFACT_PREFIX := lib -BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),) - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: - +@$(MAKE) --no-print-directory main-build && $(MAKE) --no-print-directory post-build - -# Main-build Target -main-build: libCMSISv2p00_LPC17xx.a - -# Tool invocations -libCMSISv2p00_LPC17xx.a: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) - @echo 'Building target: $@' - @echo 'Invoking: MCU Archiver' - arm-none-eabi-ar -r "libCMSISv2p00_LPC17xx.a" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) libCMSISv2p00_LPC17xx.a - -@echo ' ' - -post-build: - -@echo 'Performing post-build steps' - -arm-none-eabi-size libCMSISv2p00_LPC17xx.a ; # arm-none-eabi-objdump -h -S libCMSISv2p00_LPC17xx.a >libCMSISv2p00_LPC17xx.lss - -@echo ' ' - -.PHONY: all clean dependents main-build post-build - --include ../makefile.targets diff --git a/CMSISv2p00_LPC17xx/Debug/objects.mk b/CMSISv2p00_LPC17xx/Debug/objects.mk deleted file mode 100644 index dc31e16..0000000 --- a/CMSISv2p00_LPC17xx/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := - diff --git a/CMSISv2p00_LPC17xx/Debug/sources.mk b/CMSISv2p00_LPC17xx/Debug/sources.mk deleted file mode 100644 index 52857d9..0000000 --- a/CMSISv2p00_LPC17xx/Debug/sources.mk +++ /dev/null @@ -1,18 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ASM_SRCS := -C_SRCS := -OBJ_SRCS := -O_SRCS := -S_SRCS := -S_UPPER_SRCS := -ARCHIVES := -C_DEPS := -OBJS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -src \ - diff --git a/CMSISv2p00_LPC17xx/Debug/src/core_cm3.su b/CMSISv2p00_LPC17xx/Debug/src/core_cm3.su deleted file mode 100644 index e69de29..0000000 diff --git a/CMSISv2p00_LPC17xx/Debug/src/subdir.mk b/CMSISv2p00_LPC17xx/Debug/src/subdir.mk deleted file mode 100644 index e7f2239..0000000 --- a/CMSISv2p00_LPC17xx/Debug/src/subdir.mk +++ /dev/null @@ -1,34 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../src/core_cm3.c \ -../src/system_LPC17xx.c - -C_DEPS += \ -./src/core_cm3.d \ -./src/system_LPC17xx.d - -OBJS += \ -./src/core_cm3.o \ -./src/system_LPC17xx.o - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.c src/subdir.mk - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -I../inc -O0 -Os -g3 -gdwarf-4 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fmerge-constants -fmacro-prefix-map="$(<D)/"= -mcpu=cortex-m3 -mthumb -D__REDLIB__ -fstack-usage -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - -clean: clean-src - -clean-src: - -$(RM) ./src/core_cm3.d ./src/core_cm3.o ./src/system_LPC17xx.d ./src/system_LPC17xx.o - -.PHONY: clean-src - diff --git a/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su b/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su deleted file mode 100644 index 59a5c6d..0000000 --- a/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su +++ /dev/null @@ -1,2 +0,0 @@ -../src/system_LPC17xx.c:424:6:SystemCoreClockUpdate 8 static -../src/system_LPC17xx.c:475:6:SystemInit 0 static diff --git a/CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf b/CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf deleted file mode 100644 index e04afaee6286ce461b2ab5f286c6f99b232f5ae0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51511 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 diff --git a/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt b/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt deleted file mode 100644 index 316499c..0000000 --- a/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt +++ /dev/null @@ -1,44 +0,0 @@ -CMSIS : Cortex Microcontroller Software Interface Standard -========================================================== - -Introduction -~~~~~~~~~~~~ -CMSIS defines for a Cortex-M Microcontroller System: - - * A common way to access peripheral registers and a - common way to define exception vectors. - * The register names of the Core Peripherals and the - names of the Core Exception Vectors. - * An device independent interface for RTOS Kernels - including a debug channel. - -By using CMSIS compliant software components, the user can -easier re-use template code. CMSIS is intended to enable the -combination of software components from multiple middleware -vendors. - -This project contains appropriate files for this MCU family -taken from CMSIS. A full copy of the CMSIS files, together -with additional information on CMSIS can be found at: - - http://www.onarm.com/ - http://www.arm.com/ - -Documentation -~~~~~~~~~~~~~ -The standard CMSIS documentation can be found within the -Code Red IDE help system, via: - -Help -> Help Contents -> Code Red Product Documentation -> CMSIS - -More information on the use of CMSIS within the Code Red IDE -can be found in the Support area of the Code Red website at - - http://www.code-red-tech.com/ - -At the time of writing, the CMSIS FAQ can be found directly -at: - - http://support.code-red-tech.com/CodeRedWiki/Support4CMSIS - - diff --git a/CMSISv2p00_LPC17xx/history.txt b/CMSISv2p00_LPC17xx/history.txt deleted file mode 100644 index 42ca3af..0000000 --- a/CMSISv2p00_LPC17xx/history.txt +++ /dev/null @@ -1,12 +0,0 @@ -History of updates to CMSISv2p00_LPC17xx -======================================== - -7 March 2011 ------------- -LPC17xx CMSIS 2.0 library project using ARM -Cortex-M3 CMSIS files as supplied in ARM's CMSIS 2.0 -December 2010 release, together with device/board -specific files from NXP (as previously supplied in -CMSISv1p30_LPC17xx library project, dated 24 Aug 2010). - -Note files are built -Os for both Debug and Release \ No newline at end of file diff --git a/CMSISv2p00_LPC17xx/inc/LPC17xx.h b/CMSISv2p00_LPC17xx/inc/LPC17xx.h deleted file mode 100644 index 8c4050b..0000000 --- a/CMSISv2p00_LPC17xx/inc/LPC17xx.h +++ /dev/null @@ -1,1035 +0,0 @@ -/**************************************************************************//** - * @file LPC17xx.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File for - * NXP LPC17xx Device Series - * @version: V1.09 - * @date: 17. March 2010 - - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - - -#ifndef __LPC17xx_H__ -#define __LPC17xx_H__ - -/* - * ========================================================================== - * ---------- Interrupt Number Definition ----------------------------------- - * ========================================================================== - */ - -typedef enum IRQn -{ -/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ - NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */ - MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ - BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ - UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ - SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ - DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ - PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ - SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ - -/****** LPC17xx Specific Interrupt Numbers *******************************************************/ - WDT_IRQn = 0, /*!< Watchdog Timer Interrupt */ - TIMER0_IRQn = 1, /*!< Timer0 Interrupt */ - TIMER1_IRQn = 2, /*!< Timer1 Interrupt */ - TIMER2_IRQn = 3, /*!< Timer2 Interrupt */ - TIMER3_IRQn = 4, /*!< Timer3 Interrupt */ - UART0_IRQn = 5, /*!< UART0 Interrupt */ - UART1_IRQn = 6, /*!< UART1 Interrupt */ - UART2_IRQn = 7, /*!< UART2 Interrupt */ - UART3_IRQn = 8, /*!< UART3 Interrupt */ - PWM1_IRQn = 9, /*!< PWM1 Interrupt */ - I2C0_IRQn = 10, /*!< I2C0 Interrupt */ - I2C1_IRQn = 11, /*!< I2C1 Interrupt */ - I2C2_IRQn = 12, /*!< I2C2 Interrupt */ - SPI_IRQn = 13, /*!< SPI Interrupt */ - SSP0_IRQn = 14, /*!< SSP0 Interrupt */ - SSP1_IRQn = 15, /*!< SSP1 Interrupt */ - PLL0_IRQn = 16, /*!< PLL0 Lock (Main PLL) Interrupt */ - RTC_IRQn = 17, /*!< Real Time Clock Interrupt */ - EINT0_IRQn = 18, /*!< External Interrupt 0 Interrupt */ - EINT1_IRQn = 19, /*!< External Interrupt 1 Interrupt */ - EINT2_IRQn = 20, /*!< External Interrupt 2 Interrupt */ - EINT3_IRQn = 21, /*!< External Interrupt 3 Interrupt */ - ADC_IRQn = 22, /*!< A/D Converter Interrupt */ - BOD_IRQn = 23, /*!< Brown-Out Detect Interrupt */ - USB_IRQn = 24, /*!< USB Interrupt */ - CAN_IRQn = 25, /*!< CAN Interrupt */ - DMA_IRQn = 26, /*!< General Purpose DMA Interrupt */ - I2S_IRQn = 27, /*!< I2S Interrupt */ - ENET_IRQn = 28, /*!< Ethernet Interrupt */ - RIT_IRQn = 29, /*!< Repetitive Interrupt Timer Interrupt */ - MCPWM_IRQn = 30, /*!< Motor Control PWM Interrupt */ - QEI_IRQn = 31, /*!< Quadrature Encoder Interface Interrupt */ - PLL1_IRQn = 32, /*!< PLL1 Lock (USB PLL) Interrupt */ - USBActivity_IRQn = 33, /* USB Activity interrupt */ - CANActivity_IRQn = 34, /* CAN Activity interrupt */ -} IRQn_Type; - - -/* - * ========================================================================== - * ----------- Processor and Core Peripheral Section ------------------------ - * ========================================================================== - */ - -/* Configuration of the Cortex-M3 Processor and Core Peripherals */ -#define __MPU_PRESENT 1 /*!< MPU present or not */ -#define __NVIC_PRIO_BITS 5 /*!< Number of Bits used for Priority Levels */ -#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ - - -#include "core_cm3.h" /* Cortex-M3 processor and core peripherals */ -#include "system_LPC17xx.h" /* System Header */ - - -/******************************************************************************/ -/* Device Specific Peripheral registers structures */ -/******************************************************************************/ - -#if defined ( __CC_ARM ) -#pragma anon_unions -#endif - -/*------------- System Control (SC) ------------------------------------------*/ -typedef struct -{ - __IO uint32_t FLASHCFG; /* Flash Accelerator Module */ - uint32_t RESERVED0[31]; - __IO uint32_t PLL0CON; /* Clocking and Power Control */ - __IO uint32_t PLL0CFG; - __I uint32_t PLL0STAT; - __O uint32_t PLL0FEED; - uint32_t RESERVED1[4]; - __IO uint32_t PLL1CON; - __IO uint32_t PLL1CFG; - __I uint32_t PLL1STAT; - __O uint32_t PLL1FEED; - uint32_t RESERVED2[4]; - __IO uint32_t PCON; - __IO uint32_t PCONP; - uint32_t RESERVED3[15]; - __IO uint32_t CCLKCFG; - __IO uint32_t USBCLKCFG; - __IO uint32_t CLKSRCSEL; - __IO uint32_t CANSLEEPCLR; - __IO uint32_t CANWAKEFLAGS; - uint32_t RESERVED4[10]; - __IO uint32_t EXTINT; /* External Interrupts */ - uint32_t RESERVED5; - __IO uint32_t EXTMODE; - __IO uint32_t EXTPOLAR; - uint32_t RESERVED6[12]; - __IO uint32_t RSID; /* Reset */ - uint32_t RESERVED7[7]; - __IO uint32_t SCS; /* Syscon Miscellaneous Registers */ - __IO uint32_t IRCTRIM; /* Clock Dividers */ - __IO uint32_t PCLKSEL0; - __IO uint32_t PCLKSEL1; - uint32_t RESERVED8[4]; - __IO uint32_t USBIntSt; /* USB Device/OTG Interrupt Register */ - __IO uint32_t DMAREQSEL; - __IO uint32_t CLKOUTCFG; /* Clock Output Configuration */ - } LPC_SC_TypeDef; - -/*------------- Pin Connect Block (PINCON) -----------------------------------*/ -typedef struct -{ - __IO uint32_t PINSEL0; - __IO uint32_t PINSEL1; - __IO uint32_t PINSEL2; - __IO uint32_t PINSEL3; - __IO uint32_t PINSEL4; - __IO uint32_t PINSEL5; - __IO uint32_t PINSEL6; - __IO uint32_t PINSEL7; - __IO uint32_t PINSEL8; - __IO uint32_t PINSEL9; - __IO uint32_t PINSEL10; - uint32_t RESERVED0[5]; - __IO uint32_t PINMODE0; - __IO uint32_t PINMODE1; - __IO uint32_t PINMODE2; - __IO uint32_t PINMODE3; - __IO uint32_t PINMODE4; - __IO uint32_t PINMODE5; - __IO uint32_t PINMODE6; - __IO uint32_t PINMODE7; - __IO uint32_t PINMODE8; - __IO uint32_t PINMODE9; - __IO uint32_t PINMODE_OD0; - __IO uint32_t PINMODE_OD1; - __IO uint32_t PINMODE_OD2; - __IO uint32_t PINMODE_OD3; - __IO uint32_t PINMODE_OD4; - __IO uint32_t I2CPADCFG; -} LPC_PINCON_TypeDef; - -/*------------- General Purpose Input/Output (GPIO) --------------------------*/ -typedef struct -{ - union { - __IO uint32_t FIODIR; - struct { - __IO uint16_t FIODIRL; - __IO uint16_t FIODIRH; - }; - struct { - __IO uint8_t FIODIR0; - __IO uint8_t FIODIR1; - __IO uint8_t FIODIR2; - __IO uint8_t FIODIR3; - }; - }; - uint32_t RESERVED0[3]; - union { - __IO uint32_t FIOMASK; - struct { - __IO uint16_t FIOMASKL; - __IO uint16_t FIOMASKH; - }; - struct { - __IO uint8_t FIOMASK0; - __IO uint8_t FIOMASK1; - __IO uint8_t FIOMASK2; - __IO uint8_t FIOMASK3; - }; - }; - union { - __IO uint32_t FIOPIN; - struct { - __IO uint16_t FIOPINL; - __IO uint16_t FIOPINH; - }; - struct { - __IO uint8_t FIOPIN0; - __IO uint8_t FIOPIN1; - __IO uint8_t FIOPIN2; - __IO uint8_t FIOPIN3; - }; - }; - union { - __IO uint32_t FIOSET; - struct { - __IO uint16_t FIOSETL; - __IO uint16_t FIOSETH; - }; - struct { - __IO uint8_t FIOSET0; - __IO uint8_t FIOSET1; - __IO uint8_t FIOSET2; - __IO uint8_t FIOSET3; - }; - }; - union { - __O uint32_t FIOCLR; - struct { - __O uint16_t FIOCLRL; - __O uint16_t FIOCLRH; - }; - struct { - __O uint8_t FIOCLR0; - __O uint8_t FIOCLR1; - __O uint8_t FIOCLR2; - __O uint8_t FIOCLR3; - }; - }; -} LPC_GPIO_TypeDef; - -typedef struct -{ - __I uint32_t IntStatus; - __I uint32_t IO0IntStatR; - __I uint32_t IO0IntStatF; - __O uint32_t IO0IntClr; - __IO uint32_t IO0IntEnR; - __IO uint32_t IO0IntEnF; - uint32_t RESERVED0[3]; - __I uint32_t IO2IntStatR; - __I uint32_t IO2IntStatF; - __O uint32_t IO2IntClr; - __IO uint32_t IO2IntEnR; - __IO uint32_t IO2IntEnF; -} LPC_GPIOINT_TypeDef; - -/*------------- Timer (TIM) --------------------------------------------------*/ -typedef struct -{ - __IO uint32_t IR; - __IO uint32_t TCR; - __IO uint32_t TC; - __IO uint32_t PR; - __IO uint32_t PC; - __IO uint32_t MCR; - __IO uint32_t MR0; - __IO uint32_t MR1; - __IO uint32_t MR2; - __IO uint32_t MR3; - __IO uint32_t CCR; - __I uint32_t CR0; - __I uint32_t CR1; - uint32_t RESERVED0[2]; - __IO uint32_t EMR; - uint32_t RESERVED1[12]; - __IO uint32_t CTCR; -} LPC_TIM_TypeDef; - -/*------------- Pulse-Width Modulation (PWM) ---------------------------------*/ -typedef struct -{ - __IO uint32_t IR; - __IO uint32_t TCR; - __IO uint32_t TC; - __IO uint32_t PR; - __IO uint32_t PC; - __IO uint32_t MCR; - __IO uint32_t MR0; - __IO uint32_t MR1; - __IO uint32_t MR2; - __IO uint32_t MR3; - __IO uint32_t CCR; - __I uint32_t CR0; - __I uint32_t CR1; - __I uint32_t CR2; - __I uint32_t CR3; - uint32_t RESERVED0; - __IO uint32_t MR4; - __IO uint32_t MR5; - __IO uint32_t MR6; - __IO uint32_t PCR; - __IO uint32_t LER; - uint32_t RESERVED1[7]; - __IO uint32_t CTCR; -} LPC_PWM_TypeDef; - -/*------------- Universal Asynchronous Receiver Transmitter (UART) -----------*/ -typedef struct -{ - union { - __I uint8_t RBR; - __O uint8_t THR; - __IO uint8_t DLL; - uint32_t RESERVED0; - }; - union { - __IO uint8_t DLM; - __IO uint32_t IER; - }; - union { - __I uint32_t IIR; - __O uint8_t FCR; - }; - __IO uint8_t LCR; - uint8_t RESERVED1[7]; - __I uint8_t LSR; - uint8_t RESERVED2[7]; - __IO uint8_t SCR; - uint8_t RESERVED3[3]; - __IO uint32_t ACR; - __IO uint8_t ICR; - uint8_t RESERVED4[3]; - __IO uint8_t FDR; - uint8_t RESERVED5[7]; - __IO uint8_t TER; - uint8_t RESERVED6[39]; - __IO uint32_t FIFOLVL; -} LPC_UART_TypeDef; - -typedef struct -{ - union { - __I uint8_t RBR; - __O uint8_t THR; - __IO uint8_t DLL; - uint32_t RESERVED0; - }; - union { - __IO uint8_t DLM; - __IO uint32_t IER; - }; - union { - __I uint32_t IIR; - __O uint8_t FCR; - }; - __IO uint8_t LCR; - uint8_t RESERVED1[7]; - __I uint8_t LSR; - uint8_t RESERVED2[7]; - __IO uint8_t SCR; - uint8_t RESERVED3[3]; - __IO uint32_t ACR; - __IO uint8_t ICR; - uint8_t RESERVED4[3]; - __IO uint8_t FDR; - uint8_t RESERVED5[7]; - __IO uint8_t TER; - uint8_t RESERVED6[39]; - __IO uint32_t FIFOLVL; -} LPC_UART0_TypeDef; - -typedef struct -{ - union { - __I uint8_t RBR; - __O uint8_t THR; - __IO uint8_t DLL; - uint32_t RESERVED0; - }; - union { - __IO uint8_t DLM; - __IO uint32_t IER; - }; - union { - __I uint32_t IIR; - __O uint8_t FCR; - }; - __IO uint8_t LCR; - uint8_t RESERVED1[3]; - __IO uint8_t MCR; - uint8_t RESERVED2[3]; - __I uint8_t LSR; - uint8_t RESERVED3[3]; - __I uint8_t MSR; - uint8_t RESERVED4[3]; - __IO uint8_t SCR; - uint8_t RESERVED5[3]; - __IO uint32_t ACR; - uint32_t RESERVED6; - __IO uint32_t FDR; - uint32_t RESERVED7; - __IO uint8_t TER; - uint8_t RESERVED8[27]; - __IO uint8_t RS485CTRL; - uint8_t RESERVED9[3]; - __IO uint8_t ADRMATCH; - uint8_t RESERVED10[3]; - __IO uint8_t RS485DLY; - uint8_t RESERVED11[3]; - __IO uint32_t FIFOLVL; -} LPC_UART1_TypeDef; - -/*------------- Serial Peripheral Interface (SPI) ----------------------------*/ -typedef struct -{ - __IO uint32_t SPCR; - __I uint32_t SPSR; - __IO uint32_t SPDR; - __IO uint32_t SPCCR; - uint32_t RESERVED0[3]; - __IO uint32_t SPINT; -} LPC_SPI_TypeDef; - -/*------------- Synchronous Serial Communication (SSP) -----------------------*/ -typedef struct -{ - __IO uint32_t CR0; - __IO uint32_t CR1; - __IO uint32_t DR; - __I uint32_t SR; - __IO uint32_t CPSR; - __IO uint32_t IMSC; - __IO uint32_t RIS; - __IO uint32_t MIS; - __IO uint32_t ICR; - __IO uint32_t DMACR; -} LPC_SSP_TypeDef; - -/*------------- Inter-Integrated Circuit (I2C) -------------------------------*/ -typedef struct -{ - __IO uint32_t I2CONSET; - __I uint32_t I2STAT; - __IO uint32_t I2DAT; - __IO uint32_t I2ADR0; - __IO uint32_t I2SCLH; - __IO uint32_t I2SCLL; - __O uint32_t I2CONCLR; - __IO uint32_t MMCTRL; - __IO uint32_t I2ADR1; - __IO uint32_t I2ADR2; - __IO uint32_t I2ADR3; - __I uint32_t I2DATA_BUFFER; - __IO uint32_t I2MASK0; - __IO uint32_t I2MASK1; - __IO uint32_t I2MASK2; - __IO uint32_t I2MASK3; -} LPC_I2C_TypeDef; - -/*------------- Inter IC Sound (I2S) -----------------------------------------*/ -typedef struct -{ - __IO uint32_t I2SDAO; - __IO uint32_t I2SDAI; - __O uint32_t I2STXFIFO; - __I uint32_t I2SRXFIFO; - __I uint32_t I2SSTATE; - __IO uint32_t I2SDMA1; - __IO uint32_t I2SDMA2; - __IO uint32_t I2SIRQ; - __IO uint32_t I2STXRATE; - __IO uint32_t I2SRXRATE; - __IO uint32_t I2STXBITRATE; - __IO uint32_t I2SRXBITRATE; - __IO uint32_t I2STXMODE; - __IO uint32_t I2SRXMODE; -} LPC_I2S_TypeDef; - -/*------------- Repetitive Interrupt Timer (RIT) -----------------------------*/ -typedef struct -{ - __IO uint32_t RICOMPVAL; - __IO uint32_t RIMASK; - __IO uint8_t RICTRL; - uint8_t RESERVED0[3]; - __IO uint32_t RICOUNTER; -} LPC_RIT_TypeDef; - -/*------------- Real-Time Clock (RTC) ----------------------------------------*/ -typedef struct -{ - __IO uint8_t ILR; - uint8_t RESERVED0[7]; - __IO uint8_t CCR; - uint8_t RESERVED1[3]; - __IO uint8_t CIIR; - uint8_t RESERVED2[3]; - __IO uint8_t AMR; - uint8_t RESERVED3[3]; - __I uint32_t CTIME0; - __I uint32_t CTIME1; - __I uint32_t CTIME2; - __IO uint8_t SEC; - uint8_t RESERVED4[3]; - __IO uint8_t MIN; - uint8_t RESERVED5[3]; - __IO uint8_t HOUR; - uint8_t RESERVED6[3]; - __IO uint8_t DOM; - uint8_t RESERVED7[3]; - __IO uint8_t DOW; - uint8_t RESERVED8[3]; - __IO uint16_t DOY; - uint16_t RESERVED9; - __IO uint8_t MONTH; - uint8_t RESERVED10[3]; - __IO uint16_t YEAR; - uint16_t RESERVED11; - __IO uint32_t CALIBRATION; - __IO uint32_t GPREG0; - __IO uint32_t GPREG1; - __IO uint32_t GPREG2; - __IO uint32_t GPREG3; - __IO uint32_t GPREG4; - __IO uint8_t RTC_AUXEN; - uint8_t RESERVED12[3]; - __IO uint8_t RTC_AUX; - uint8_t RESERVED13[3]; - __IO uint8_t ALSEC; - uint8_t RESERVED14[3]; - __IO uint8_t ALMIN; - uint8_t RESERVED15[3]; - __IO uint8_t ALHOUR; - uint8_t RESERVED16[3]; - __IO uint8_t ALDOM; - uint8_t RESERVED17[3]; - __IO uint8_t ALDOW; - uint8_t RESERVED18[3]; - __IO uint16_t ALDOY; - uint16_t RESERVED19; - __IO uint8_t ALMON; - uint8_t RESERVED20[3]; - __IO uint16_t ALYEAR; - uint16_t RESERVED21; -} LPC_RTC_TypeDef; - -/*------------- Watchdog Timer (WDT) -----------------------------------------*/ -typedef struct -{ - __IO uint8_t WDMOD; - uint8_t RESERVED0[3]; - __IO uint32_t WDTC; - __O uint8_t WDFEED; - uint8_t RESERVED1[3]; - __I uint32_t WDTV; - __IO uint32_t WDCLKSEL; -} LPC_WDT_TypeDef; - -/*------------- Analog-to-Digital Converter (ADC) ----------------------------*/ -typedef struct -{ - __IO uint32_t ADCR; - __IO uint32_t ADGDR; - uint32_t RESERVED0; - __IO uint32_t ADINTEN; - __I uint32_t ADDR0; - __I uint32_t ADDR1; - __I uint32_t ADDR2; - __I uint32_t ADDR3; - __I uint32_t ADDR4; - __I uint32_t ADDR5; - __I uint32_t ADDR6; - __I uint32_t ADDR7; - __I uint32_t ADSTAT; - __IO uint32_t ADTRM; -} LPC_ADC_TypeDef; - -/*------------- Digital-to-Analog Converter (DAC) ----------------------------*/ -typedef struct -{ - __IO uint32_t DACR; - __IO uint32_t DACCTRL; - __IO uint16_t DACCNTVAL; -} LPC_DAC_TypeDef; - -/*------------- Motor Control Pulse-Width Modulation (MCPWM) -----------------*/ -typedef struct -{ - __I uint32_t MCCON; - __O uint32_t MCCON_SET; - __O uint32_t MCCON_CLR; - __I uint32_t MCCAPCON; - __O uint32_t MCCAPCON_SET; - __O uint32_t MCCAPCON_CLR; - __IO uint32_t MCTIM0; - __IO uint32_t MCTIM1; - __IO uint32_t MCTIM2; - __IO uint32_t MCPER0; - __IO uint32_t MCPER1; - __IO uint32_t MCPER2; - __IO uint32_t MCPW0; - __IO uint32_t MCPW1; - __IO uint32_t MCPW2; - __IO uint32_t MCDEADTIME; - __IO uint32_t MCCCP; - __IO uint32_t MCCR0; - __IO uint32_t MCCR1; - __IO uint32_t MCCR2; - __I uint32_t MCINTEN; - __O uint32_t MCINTEN_SET; - __O uint32_t MCINTEN_CLR; - __I uint32_t MCCNTCON; - __O uint32_t MCCNTCON_SET; - __O uint32_t MCCNTCON_CLR; - __I uint32_t MCINTFLAG; - __O uint32_t MCINTFLAG_SET; - __O uint32_t MCINTFLAG_CLR; - __O uint32_t MCCAP_CLR; -} LPC_MCPWM_TypeDef; - -/*------------- Quadrature Encoder Interface (QEI) ---------------------------*/ -typedef struct -{ - __O uint32_t QEICON; - __I uint32_t QEISTAT; - __IO uint32_t QEICONF; - __I uint32_t QEIPOS; - __IO uint32_t QEIMAXPOS; - __IO uint32_t CMPOS0; - __IO uint32_t CMPOS1; - __IO uint32_t CMPOS2; - __I uint32_t INXCNT; - __IO uint32_t INXCMP; - __IO uint32_t QEILOAD; - __I uint32_t QEITIME; - __I uint32_t QEIVEL; - __I uint32_t QEICAP; - __IO uint32_t VELCOMP; - __IO uint32_t FILTER; - uint32_t RESERVED0[998]; - __O uint32_t QEIIEC; - __O uint32_t QEIIES; - __I uint32_t QEIINTSTAT; - __I uint32_t QEIIE; - __O uint32_t QEICLR; - __O uint32_t QEISET; -} LPC_QEI_TypeDef; - -/*------------- Controller Area Network (CAN) --------------------------------*/ -typedef struct -{ - __IO uint32_t mask[512]; /* ID Masks */ -} LPC_CANAF_RAM_TypeDef; - -typedef struct /* Acceptance Filter Registers */ -{ - __IO uint32_t AFMR; - __IO uint32_t SFF_sa; - __IO uint32_t SFF_GRP_sa; - __IO uint32_t EFF_sa; - __IO uint32_t EFF_GRP_sa; - __IO uint32_t ENDofTable; - __I uint32_t LUTerrAd; - __I uint32_t LUTerr; - __IO uint32_t FCANIE; - __IO uint32_t FCANIC0; - __IO uint32_t FCANIC1; -} LPC_CANAF_TypeDef; - -typedef struct /* Central Registers */ -{ - __I uint32_t CANTxSR; - __I uint32_t CANRxSR; - __I uint32_t CANMSR; -} LPC_CANCR_TypeDef; - -typedef struct /* Controller Registers */ -{ - __IO uint32_t MOD; - __O uint32_t CMR; - __IO uint32_t GSR; - __I uint32_t ICR; - __IO uint32_t IER; - __IO uint32_t BTR; - __IO uint32_t EWL; - __I uint32_t SR; - __IO uint32_t RFS; - __IO uint32_t RID; - __IO uint32_t RDA; - __IO uint32_t RDB; - __IO uint32_t TFI1; - __IO uint32_t TID1; - __IO uint32_t TDA1; - __IO uint32_t TDB1; - __IO uint32_t TFI2; - __IO uint32_t TID2; - __IO uint32_t TDA2; - __IO uint32_t TDB2; - __IO uint32_t TFI3; - __IO uint32_t TID3; - __IO uint32_t TDA3; - __IO uint32_t TDB3; -} LPC_CAN_TypeDef; - -/*------------- General Purpose Direct Memory Access (GPDMA) -----------------*/ -typedef struct /* Common Registers */ -{ - __I uint32_t DMACIntStat; - __I uint32_t DMACIntTCStat; - __O uint32_t DMACIntTCClear; - __I uint32_t DMACIntErrStat; - __O uint32_t DMACIntErrClr; - __I uint32_t DMACRawIntTCStat; - __I uint32_t DMACRawIntErrStat; - __I uint32_t DMACEnbldChns; - __IO uint32_t DMACSoftBReq; - __IO uint32_t DMACSoftSReq; - __IO uint32_t DMACSoftLBReq; - __IO uint32_t DMACSoftLSReq; - __IO uint32_t DMACConfig; - __IO uint32_t DMACSync; -} LPC_GPDMA_TypeDef; - -typedef struct /* Channel Registers */ -{ - __IO uint32_t DMACCSrcAddr; - __IO uint32_t DMACCDestAddr; - __IO uint32_t DMACCLLI; - __IO uint32_t DMACCControl; - __IO uint32_t DMACCConfig; -} LPC_GPDMACH_TypeDef; - -/*------------- Universal Serial Bus (USB) -----------------------------------*/ -typedef struct -{ - __I uint32_t HcRevision; /* USB Host Registers */ - __IO uint32_t HcControl; - __IO uint32_t HcCommandStatus; - __IO uint32_t HcInterruptStatus; - __IO uint32_t HcInterruptEnable; - __IO uint32_t HcInterruptDisable; - __IO uint32_t HcHCCA; - __I uint32_t HcPeriodCurrentED; - __IO uint32_t HcControlHeadED; - __IO uint32_t HcControlCurrentED; - __IO uint32_t HcBulkHeadED; - __IO uint32_t HcBulkCurrentED; - __I uint32_t HcDoneHead; - __IO uint32_t HcFmInterval; - __I uint32_t HcFmRemaining; - __I uint32_t HcFmNumber; - __IO uint32_t HcPeriodicStart; - __IO uint32_t HcLSTreshold; - __IO uint32_t HcRhDescriptorA; - __IO uint32_t HcRhDescriptorB; - __IO uint32_t HcRhStatus; - __IO uint32_t HcRhPortStatus1; - __IO uint32_t HcRhPortStatus2; - uint32_t RESERVED0[40]; - __I uint32_t Module_ID; - - __I uint32_t OTGIntSt; /* USB On-The-Go Registers */ - __IO uint32_t OTGIntEn; - __O uint32_t OTGIntSet; - __O uint32_t OTGIntClr; - __IO uint32_t OTGStCtrl; - __IO uint32_t OTGTmr; - uint32_t RESERVED1[58]; - - __I uint32_t USBDevIntSt; /* USB Device Interrupt Registers */ - __IO uint32_t USBDevIntEn; - __O uint32_t USBDevIntClr; - __O uint32_t USBDevIntSet; - - __O uint32_t USBCmdCode; /* USB Device SIE Command Registers */ - __I uint32_t USBCmdData; - - __I uint32_t USBRxData; /* USB Device Transfer Registers */ - __O uint32_t USBTxData; - __I uint32_t USBRxPLen; - __O uint32_t USBTxPLen; - __IO uint32_t USBCtrl; - __O uint32_t USBDevIntPri; - - __I uint32_t USBEpIntSt; /* USB Device Endpoint Interrupt Regs */ - __IO uint32_t USBEpIntEn; - __O uint32_t USBEpIntClr; - __O uint32_t USBEpIntSet; - __O uint32_t USBEpIntPri; - - __IO uint32_t USBReEp; /* USB Device Endpoint Realization Reg*/ - __O uint32_t USBEpInd; - __IO uint32_t USBMaxPSize; - - __I uint32_t USBDMARSt; /* USB Device DMA Registers */ - __O uint32_t USBDMARClr; - __O uint32_t USBDMARSet; - uint32_t RESERVED2[9]; - __IO uint32_t USBUDCAH; - __I uint32_t USBEpDMASt; - __O uint32_t USBEpDMAEn; - __O uint32_t USBEpDMADis; - __I uint32_t USBDMAIntSt; - __IO uint32_t USBDMAIntEn; - uint32_t RESERVED3[2]; - __I uint32_t USBEoTIntSt; - __O uint32_t USBEoTIntClr; - __O uint32_t USBEoTIntSet; - __I uint32_t USBNDDRIntSt; - __O uint32_t USBNDDRIntClr; - __O uint32_t USBNDDRIntSet; - __I uint32_t USBSysErrIntSt; - __O uint32_t USBSysErrIntClr; - __O uint32_t USBSysErrIntSet; - uint32_t RESERVED4[15]; - - union { - __I uint32_t I2C_RX; /* USB OTG I2C Registers */ - __O uint32_t I2C_TX; - }; - __I uint32_t I2C_STS; - __IO uint32_t I2C_CTL; - __IO uint32_t I2C_CLKHI; - __O uint32_t I2C_CLKLO; - uint32_t RESERVED5[824]; - - union { - __IO uint32_t USBClkCtrl; /* USB Clock Control Registers */ - __IO uint32_t OTGClkCtrl; - }; - union { - __I uint32_t USBClkSt; - __I uint32_t OTGClkSt; - }; -} LPC_USB_TypeDef; - -/*------------- Ethernet Media Access Controller (EMAC) ----------------------*/ -typedef struct -{ - __IO uint32_t MAC1; /* MAC Registers */ - __IO uint32_t MAC2; - __IO uint32_t IPGT; - __IO uint32_t IPGR; - __IO uint32_t CLRT; - __IO uint32_t MAXF; - __IO uint32_t SUPP; - __IO uint32_t TEST; - __IO uint32_t MCFG; - __IO uint32_t MCMD; - __IO uint32_t MADR; - __O uint32_t MWTD; - __I uint32_t MRDD; - __I uint32_t MIND; - uint32_t RESERVED0[2]; - __IO uint32_t SA0; - __IO uint32_t SA1; - __IO uint32_t SA2; - uint32_t RESERVED1[45]; - __IO uint32_t Command; /* Control Registers */ - __I uint32_t Status; - __IO uint32_t RxDescriptor; - __IO uint32_t RxStatus; - __IO uint32_t RxDescriptorNumber; - __I uint32_t RxProduceIndex; - __IO uint32_t RxConsumeIndex; - __IO uint32_t TxDescriptor; - __IO uint32_t TxStatus; - __IO uint32_t TxDescriptorNumber; - __IO uint32_t TxProduceIndex; - __I uint32_t TxConsumeIndex; - uint32_t RESERVED2[10]; - __I uint32_t TSV0; - __I uint32_t TSV1; - __I uint32_t RSV; - uint32_t RESERVED3[3]; - __IO uint32_t FlowControlCounter; - __I uint32_t FlowControlStatus; - uint32_t RESERVED4[34]; - __IO uint32_t RxFilterCtrl; /* Rx Filter Registers */ - __IO uint32_t RxFilterWoLStatus; - __IO uint32_t RxFilterWoLClear; - uint32_t RESERVED5; - __IO uint32_t HashFilterL; - __IO uint32_t HashFilterH; - uint32_t RESERVED6[882]; - __I uint32_t IntStatus; /* Module Control Registers */ - __IO uint32_t IntEnable; - __O uint32_t IntClear; - __O uint32_t IntSet; - uint32_t RESERVED7; - __IO uint32_t PowerDown; - uint32_t RESERVED8; - __IO uint32_t Module_ID; -} LPC_EMAC_TypeDef; - -#if defined ( __CC_ARM ) -#pragma no_anon_unions -#endif - - -/******************************************************************************/ -/* Peripheral memory map */ -/******************************************************************************/ -/* Base addresses */ -#define LPC_FLASH_BASE (0x00000000UL) -#define LPC_RAM_BASE (0x10000000UL) -#define LPC_GPIO_BASE (0x2009C000UL) -#define LPC_APB0_BASE (0x40000000UL) -#define LPC_APB1_BASE (0x40080000UL) -#define LPC_AHB_BASE (0x50000000UL) -#define LPC_CM3_BASE (0xE0000000UL) - -/* APB0 peripherals */ -#define LPC_WDT_BASE (LPC_APB0_BASE + 0x00000) -#define LPC_TIM0_BASE (LPC_APB0_BASE + 0x04000) -#define LPC_TIM1_BASE (LPC_APB0_BASE + 0x08000) -#define LPC_UART0_BASE (LPC_APB0_BASE + 0x0C000) -#define LPC_UART1_BASE (LPC_APB0_BASE + 0x10000) -#define LPC_PWM1_BASE (LPC_APB0_BASE + 0x18000) -#define LPC_I2C0_BASE (LPC_APB0_BASE + 0x1C000) -#define LPC_SPI_BASE (LPC_APB0_BASE + 0x20000) -#define LPC_RTC_BASE (LPC_APB0_BASE + 0x24000) -#define LPC_GPIOINT_BASE (LPC_APB0_BASE + 0x28080) -#define LPC_PINCON_BASE (LPC_APB0_BASE + 0x2C000) -#define LPC_SSP1_BASE (LPC_APB0_BASE + 0x30000) -#define LPC_ADC_BASE (LPC_APB0_BASE + 0x34000) -#define LPC_CANAF_RAM_BASE (LPC_APB0_BASE + 0x38000) -#define LPC_CANAF_BASE (LPC_APB0_BASE + 0x3C000) -#define LPC_CANCR_BASE (LPC_APB0_BASE + 0x40000) -#define LPC_CAN1_BASE (LPC_APB0_BASE + 0x44000) -#define LPC_CAN2_BASE (LPC_APB0_BASE + 0x48000) -#define LPC_I2C1_BASE (LPC_APB0_BASE + 0x5C000) - -/* APB1 peripherals */ -#define LPC_SSP0_BASE (LPC_APB1_BASE + 0x08000) -#define LPC_DAC_BASE (LPC_APB1_BASE + 0x0C000) -#define LPC_TIM2_BASE (LPC_APB1_BASE + 0x10000) -#define LPC_TIM3_BASE (LPC_APB1_BASE + 0x14000) -#define LPC_UART2_BASE (LPC_APB1_BASE + 0x18000) -#define LPC_UART3_BASE (LPC_APB1_BASE + 0x1C000) -#define LPC_I2C2_BASE (LPC_APB1_BASE + 0x20000) -#define LPC_I2S_BASE (LPC_APB1_BASE + 0x28000) -#define LPC_RIT_BASE (LPC_APB1_BASE + 0x30000) -#define LPC_MCPWM_BASE (LPC_APB1_BASE + 0x38000) -#define LPC_QEI_BASE (LPC_APB1_BASE + 0x3C000) -#define LPC_SC_BASE (LPC_APB1_BASE + 0x7C000) - -/* AHB peripherals */ -#define LPC_EMAC_BASE (LPC_AHB_BASE + 0x00000) -#define LPC_GPDMA_BASE (LPC_AHB_BASE + 0x04000) -#define LPC_GPDMACH0_BASE (LPC_AHB_BASE + 0x04100) -#define LPC_GPDMACH1_BASE (LPC_AHB_BASE + 0x04120) -#define LPC_GPDMACH2_BASE (LPC_AHB_BASE + 0x04140) -#define LPC_GPDMACH3_BASE (LPC_AHB_BASE + 0x04160) -#define LPC_GPDMACH4_BASE (LPC_AHB_BASE + 0x04180) -#define LPC_GPDMACH5_BASE (LPC_AHB_BASE + 0x041A0) -#define LPC_GPDMACH6_BASE (LPC_AHB_BASE + 0x041C0) -#define LPC_GPDMACH7_BASE (LPC_AHB_BASE + 0x041E0) -#define LPC_USB_BASE (LPC_AHB_BASE + 0x0C000) - -/* GPIOs */ -#define LPC_GPIO0_BASE (LPC_GPIO_BASE + 0x00000) -#define LPC_GPIO1_BASE (LPC_GPIO_BASE + 0x00020) -#define LPC_GPIO2_BASE (LPC_GPIO_BASE + 0x00040) -#define LPC_GPIO3_BASE (LPC_GPIO_BASE + 0x00060) -#define LPC_GPIO4_BASE (LPC_GPIO_BASE + 0x00080) - - -/******************************************************************************/ -/* Peripheral declaration */ -/******************************************************************************/ -#define LPC_SC ((LPC_SC_TypeDef *) LPC_SC_BASE ) -#define LPC_GPIO0 ((LPC_GPIO_TypeDef *) LPC_GPIO0_BASE ) -#define LPC_GPIO1 ((LPC_GPIO_TypeDef *) LPC_GPIO1_BASE ) -#define LPC_GPIO2 ((LPC_GPIO_TypeDef *) LPC_GPIO2_BASE ) -#define LPC_GPIO3 ((LPC_GPIO_TypeDef *) LPC_GPIO3_BASE ) -#define LPC_GPIO4 ((LPC_GPIO_TypeDef *) LPC_GPIO4_BASE ) -#define LPC_WDT ((LPC_WDT_TypeDef *) LPC_WDT_BASE ) -#define LPC_TIM0 ((LPC_TIM_TypeDef *) LPC_TIM0_BASE ) -#define LPC_TIM1 ((LPC_TIM_TypeDef *) LPC_TIM1_BASE ) -#define LPC_TIM2 ((LPC_TIM_TypeDef *) LPC_TIM2_BASE ) -#define LPC_TIM3 ((LPC_TIM_TypeDef *) LPC_TIM3_BASE ) -#define LPC_RIT ((LPC_RIT_TypeDef *) LPC_RIT_BASE ) -#define LPC_UART0 ((LPC_UART0_TypeDef *) LPC_UART0_BASE ) -#define LPC_UART1 ((LPC_UART1_TypeDef *) LPC_UART1_BASE ) -#define LPC_UART2 ((LPC_UART_TypeDef *) LPC_UART2_BASE ) -#define LPC_UART3 ((LPC_UART_TypeDef *) LPC_UART3_BASE ) -#define LPC_PWM1 ((LPC_PWM_TypeDef *) LPC_PWM1_BASE ) -#define LPC_I2C0 ((LPC_I2C_TypeDef *) LPC_I2C0_BASE ) -#define LPC_I2C1 ((LPC_I2C_TypeDef *) LPC_I2C1_BASE ) -#define LPC_I2C2 ((LPC_I2C_TypeDef *) LPC_I2C2_BASE ) -#define LPC_I2S ((LPC_I2S_TypeDef *) LPC_I2S_BASE ) -#define LPC_SPI ((LPC_SPI_TypeDef *) LPC_SPI_BASE ) -#define LPC_RTC ((LPC_RTC_TypeDef *) LPC_RTC_BASE ) -#define LPC_GPIOINT ((LPC_GPIOINT_TypeDef *) LPC_GPIOINT_BASE ) -#define LPC_PINCON ((LPC_PINCON_TypeDef *) LPC_PINCON_BASE ) -#define LPC_SSP0 ((LPC_SSP_TypeDef *) LPC_SSP0_BASE ) -#define LPC_SSP1 ((LPC_SSP_TypeDef *) LPC_SSP1_BASE ) -#define LPC_ADC ((LPC_ADC_TypeDef *) LPC_ADC_BASE ) -#define LPC_DAC ((LPC_DAC_TypeDef *) LPC_DAC_BASE ) -#define LPC_CANAF_RAM ((LPC_CANAF_RAM_TypeDef *) LPC_CANAF_RAM_BASE) -#define LPC_CANAF ((LPC_CANAF_TypeDef *) LPC_CANAF_BASE ) -#define LPC_CANCR ((LPC_CANCR_TypeDef *) LPC_CANCR_BASE ) -#define LPC_CAN1 ((LPC_CAN_TypeDef *) LPC_CAN1_BASE ) -#define LPC_CAN2 ((LPC_CAN_TypeDef *) LPC_CAN2_BASE ) -#define LPC_MCPWM ((LPC_MCPWM_TypeDef *) LPC_MCPWM_BASE ) -#define LPC_QEI ((LPC_QEI_TypeDef *) LPC_QEI_BASE ) -#define LPC_EMAC ((LPC_EMAC_TypeDef *) LPC_EMAC_BASE ) -#define LPC_GPDMA ((LPC_GPDMA_TypeDef *) LPC_GPDMA_BASE ) -#define LPC_GPDMACH0 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH0_BASE ) -#define LPC_GPDMACH1 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH1_BASE ) -#define LPC_GPDMACH2 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH2_BASE ) -#define LPC_GPDMACH3 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH3_BASE ) -#define LPC_GPDMACH4 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH4_BASE ) -#define LPC_GPDMACH5 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH5_BASE ) -#define LPC_GPDMACH6 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH6_BASE ) -#define LPC_GPDMACH7 ((LPC_GPDMACH_TypeDef *) LPC_GPDMACH7_BASE ) -#define LPC_USB ((LPC_USB_TypeDef *) LPC_USB_BASE ) - -#endif // __LPC17xx_H__ diff --git a/CMSISv2p00_LPC17xx/inc/core_cm3.h b/CMSISv2p00_LPC17xx/inc/core_cm3.h deleted file mode 100644 index 6b019a4..0000000 --- a/CMSISv2p00_LPC17xx/inc/core_cm3.h +++ /dev/null @@ -1,1236 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.h - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File - * @version V2.01 - * @date 06. December 2010 - * - * @note - * Copyright (C) 2009-2010 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ -#if defined ( __ICCARM__ ) - #pragma system_include /* treat file as system include file for MISRA check */ -#endif - -#ifdef __cplusplus - extern "C" { -#endif - -#ifndef __CORE_CM3_H_GENERIC -#define __CORE_CM3_H_GENERIC - - -/** \mainpage CMSIS Cortex-M3 - - This documentation describes the CMSIS Cortex-M Core Peripheral Access Layer. - It consists of: - - - Cortex-M Core Register Definitions - - Cortex-M functions - - Cortex-M instructions - - The CMSIS Cortex-M3 Core Peripheral Access Layer contains C and assembly functions that ease - access to the Cortex-M Core - */ - -/** \defgroup CMSIS_LintCinfiguration CMSIS Lint Configuration - List of Lint messages which will be suppressed and not shown: - - not yet checked - . - Note: To re-enable a Message, insert a space before 'lint' * - - */ - - -/******************************************************************************* - * CMSIS definitions - ******************************************************************************/ -/** \defgroup CMSIS_core_definitions CMSIS Core Definitions - This file defines all structures and symbols for CMSIS core: - - CMSIS version number - - Cortex-M core - - Cortex-M core Revision Number - @{ - */ - -/* CMSIS CM3 definitions */ -#define __CM3_CMSIS_VERSION_MAIN (0x02) /*!< [31:16] CMSIS HAL main version */ -#define __CM3_CMSIS_VERSION_SUB (0x00) /*!< [15:0] CMSIS HAL sub version */ -#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ - -#define __CORTEX_M (0x03) /*!< Cortex core */ - - -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - -#include <stdint.h> /*!< standard types definitions */ -#include "core_cmInstr.h" /*!< Core Instruction Access */ -#include "core_cmFunc.h" /*!< Core Function Access */ - -#endif /* __CORE_CM3_H_GENERIC */ - - -#ifndef __CMSIS_GENERIC - -#ifndef __CORE_CM3_H_DEPENDANT -#define __CORE_CM3_H_DEPENDANT - -/* IO definitions (access restrictions to peripheral registers) */ -#ifdef __cplusplus - #define __I volatile /*!< defines 'read only' permissions */ -#else - #define __I volatile const /*!< defines 'read only' permissions */ -#endif -#define __O volatile /*!< defines 'write only' permissions */ -#define __IO volatile /*!< defines 'read / write' permissions */ - -/*@} end of group CMSIS_core_definitions */ - - - -/******************************************************************************* - * Register Abstraction - ******************************************************************************/ -/** \defgroup CMSIS_core_register CMSIS Core Register - Core Register contain: - - Core Register - - Core NVIC Register - - Core SCB Register - - Core SysTick Register - - Core Debug Register - - Core MPU Register -*/ - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_CORE CMSIS Core - Type definitions for the Cortex-M Core Registers - @{ - */ - -/** \brief Union type to access the Application Program Status Register (APSR). - */ -typedef union -{ - struct - { -#if (__CORTEX_M != 0x04) - uint32_t _reserved0:27; /*!< bit: 0..26 Reserved */ -#else - uint32_t _reserved0:16; /*!< bit: 0..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:7; /*!< bit: 20..26 Reserved */ -#endif - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} APSR_Type; - - -/** \brief Union type to access the Interrupt Program Status Register (IPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ - uint32_t _reserved0:23; /*!< bit: 9..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} IPSR_Type; - - -/** \brief Union type to access the Special-Purpose Program Status Registers (xPSR). - */ -typedef union -{ - struct - { - uint32_t ISR:9; /*!< bit: 0.. 8 Exception number */ -#if (__CORTEX_M != 0x04) - uint32_t _reserved0:15; /*!< bit: 9..23 Reserved */ -#else - uint32_t _reserved0:7; /*!< bit: 9..15 Reserved */ - uint32_t GE:4; /*!< bit: 16..19 Greater than or Equal flags */ - uint32_t _reserved1:4; /*!< bit: 20..23 Reserved */ -#endif - uint32_t T:1; /*!< bit: 24 Thumb bit (read 0) */ - uint32_t IT:2; /*!< bit: 25..26 saved IT state (read 0) */ - uint32_t Q:1; /*!< bit: 27 Saturation condition flag */ - uint32_t V:1; /*!< bit: 28 Overflow condition code flag */ - uint32_t C:1; /*!< bit: 29 Carry condition code flag */ - uint32_t Z:1; /*!< bit: 30 Zero condition code flag */ - uint32_t N:1; /*!< bit: 31 Negative condition code flag */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} xPSR_Type; - - -/** \brief Union type to access the Control Registers (CONTROL). - */ -typedef union -{ - struct - { - uint32_t nPRIV:1; /*!< bit: 0 Execution privilege in Thread mode */ - uint32_t SPSEL:1; /*!< bit: 1 Stack to be used */ - uint32_t FPCA:1; /*!< bit: 2 FP extension active flag */ - uint32_t _reserved0:29; /*!< bit: 3..31 Reserved */ - } b; /*!< Structure used for bit access */ - uint32_t w; /*!< Type used for word access */ -} CONTROL_Type; - -/*@} end of group CMSIS_CORE */ - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_NVIC CMSIS NVIC - Type definitions for the Cortex-M NVIC Registers - @{ - */ - -/** \brief Structure type to access the Nested Vectored Interrupt Controller (NVIC). - */ -typedef struct -{ - __IO uint32_t ISER[8]; /*!< Offset: 0x000 (R/W) Interrupt Set Enable Register */ - uint32_t RESERVED0[24]; - __IO uint32_t ICER[8]; /*!< Offset: 0x080 (R/W) Interrupt Clear Enable Register */ - uint32_t RSERVED1[24]; - __IO uint32_t ISPR[8]; /*!< Offset: 0x100 (R/W) Interrupt Set Pending Register */ - uint32_t RESERVED2[24]; - __IO uint32_t ICPR[8]; /*!< Offset: 0x180 (R/W) Interrupt Clear Pending Register */ - uint32_t RESERVED3[24]; - __IO uint32_t IABR[8]; /*!< Offset: 0x200 (R/W) Interrupt Active bit Register */ - uint32_t RESERVED4[56]; - __IO uint8_t IP[240]; /*!< Offset: 0x300 (R/W) Interrupt Priority Register (8Bit wide) */ - uint32_t RESERVED5[644]; - __O uint32_t STIR; /*!< Offset: 0xE00 ( /W) Software Trigger Interrupt Register */ -} NVIC_Type; - -/*@} end of group CMSIS_NVIC */ - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_SCB CMSIS SCB - Type definitions for the Cortex-M System Control Block Registers - @{ - */ - -/** \brief Structure type to access the System Control Block (SCB). - */ -typedef struct -{ - __I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPU ID Base Register */ - __IO uint32_t ICSR; /*!< Offset: 0x004 (R/W) Interrupt Control State Register */ - __IO uint32_t VTOR; /*!< Offset: 0x008 (R/W) Vector Table Offset Register */ - __IO uint32_t AIRCR; /*!< Offset: 0x00C (R/W) Application Interrupt / Reset Control Register */ - __IO uint32_t SCR; /*!< Offset: 0x010 (R/W) System Control Register */ - __IO uint32_t CCR; /*!< Offset: 0x014 (R/W) Configuration Control Register */ - __IO uint8_t SHP[12]; /*!< Offset: 0x018 (R/W) System Handlers Priority Registers (4-7, 8-11, 12-15) */ - __IO uint32_t SHCSR; /*!< Offset: 0x024 (R/W) System Handler Control and State Register */ - __IO uint32_t CFSR; /*!< Offset: 0x028 (R/W) Configurable Fault Status Register */ - __IO uint32_t HFSR; /*!< Offset: 0x02C (R/W) Hard Fault Status Register */ - __IO uint32_t DFSR; /*!< Offset: 0x030 (R/W) Debug Fault Status Register */ - __IO uint32_t MMFAR; /*!< Offset: 0x034 (R/W) Mem Manage Address Register */ - __IO uint32_t BFAR; /*!< Offset: 0x038 (R/W) Bus Fault Address Register */ - __IO uint32_t AFSR; /*!< Offset: 0x03C (R/W) Auxiliary Fault Status Register */ - __I uint32_t PFR[2]; /*!< Offset: 0x040 (R/ ) Processor Feature Register */ - __I uint32_t DFR; /*!< Offset: 0x048 (R/ ) Debug Feature Register */ - __I uint32_t ADR; /*!< Offset: 0x04C (R/ ) Auxiliary Feature Register */ - __I uint32_t MMFR[4]; /*!< Offset: 0x050 (R/ ) Memory Model Feature Register */ - __I uint32_t ISAR[5]; /*!< Offset: 0x060 (R/ ) ISA Feature Register */ -} SCB_Type; - -/* SCB CPUID Register Definitions */ -#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ -#define SCB_CPUID_IMPLEMENTER_Msk (0xFFUL << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ - -#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ -#define SCB_CPUID_VARIANT_Msk (0xFUL << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ - -#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ -#define SCB_CPUID_PARTNO_Msk (0xFFFUL << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ - -#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */ -#define SCB_CPUID_REVISION_Msk (0xFUL << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */ -#define SCB_ICSR_NMIPENDSET_Msk (1UL << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ - -#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ -#define SCB_ICSR_PENDSVSET_Msk (1UL << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ - -#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ -#define SCB_ICSR_PENDSVCLR_Msk (1UL << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ - -#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ -#define SCB_ICSR_PENDSTSET_Msk (1UL << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ - -#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ -#define SCB_ICSR_PENDSTCLR_Msk (1UL << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ - -#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ -#define SCB_ICSR_ISRPREEMPT_Msk (1UL << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ - -#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ -#define SCB_ICSR_ISRPENDING_Msk (1UL << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ - -#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ -#define SCB_ICSR_VECTPENDING_Msk (0x1FFUL << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ - -#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ -#define SCB_ICSR_RETTOBASE_Msk (1UL << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ - -#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ -#define SCB_ICSR_VECTACTIVE_Msk (0x1FFUL << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ - -/* SCB Interrupt Control State Register Definitions */ -#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ -#define SCB_VTOR_TBLBASE_Msk (1UL << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ - -#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ -#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFUL << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ - -/* SCB Application Interrupt and Reset Control Register Definitions */ -#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */ -#define SCB_AIRCR_VECTKEY_Msk (0xFFFFUL << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ - -#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ -#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFUL << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ - -#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ -#define SCB_AIRCR_ENDIANESS_Msk (1UL << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ - -#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ -#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ - -#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ -#define SCB_AIRCR_SYSRESETREQ_Msk (1UL << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ - -#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ -#define SCB_AIRCR_VECTCLRACTIVE_Msk (1UL << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ - -#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */ -#define SCB_AIRCR_VECTRESET_Msk (1UL << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */ - -/* SCB System Control Register Definitions */ -#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */ -#define SCB_SCR_SEVONPEND_Msk (1UL << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ - -#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ -#define SCB_SCR_SLEEPDEEP_Msk (1UL << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ - -#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */ -#define SCB_SCR_SLEEPONEXIT_Msk (1UL << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ - -/* SCB Configuration Control Register Definitions */ -#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */ -#define SCB_CCR_STKALIGN_Msk (1UL << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ - -#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */ -#define SCB_CCR_BFHFNMIGN_Msk (1UL << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ - -#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */ -#define SCB_CCR_DIV_0_TRP_Msk (1UL << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ - -#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */ -#define SCB_CCR_UNALIGN_TRP_Msk (1UL << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ - -#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */ -#define SCB_CCR_USERSETMPEND_Msk (1UL << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ - -#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */ -#define SCB_CCR_NONBASETHRDENA_Msk (1UL << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */ - -/* SCB System Handler Control and State Register Definitions */ -#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */ -#define SCB_SHCSR_USGFAULTENA_Msk (1UL << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ - -#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ -#define SCB_SHCSR_BUSFAULTENA_Msk (1UL << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ - -#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ -#define SCB_SHCSR_MEMFAULTENA_Msk (1UL << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ - -#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ -#define SCB_SHCSR_SVCALLPENDED_Msk (1UL << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ - -#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ -#define SCB_SHCSR_BUSFAULTPENDED_Msk (1UL << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ - -#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ -#define SCB_SHCSR_MEMFAULTPENDED_Msk (1UL << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ - -#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ -#define SCB_SHCSR_USGFAULTPENDED_Msk (1UL << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ - -#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ -#define SCB_SHCSR_SYSTICKACT_Msk (1UL << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ - -#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ -#define SCB_SHCSR_PENDSVACT_Msk (1UL << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ - -#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ -#define SCB_SHCSR_MONITORACT_Msk (1UL << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ - -#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ -#define SCB_SHCSR_SVCALLACT_Msk (1UL << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ - -#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ -#define SCB_SHCSR_USGFAULTACT_Msk (1UL << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ - -#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ -#define SCB_SHCSR_BUSFAULTACT_Msk (1UL << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ - -#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ -#define SCB_SHCSR_MEMFAULTACT_Msk (1UL << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ - -/* SCB Configurable Fault Status Registers Definitions */ -#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */ -#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFUL << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ - -#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */ -#define SCB_CFSR_BUSFAULTSR_Msk (0xFFUL << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ - -#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */ -#define SCB_CFSR_MEMFAULTSR_Msk (0xFFUL << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ - -/* SCB Hard Fault Status Registers Definitions */ -#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ -#define SCB_HFSR_DEBUGEVT_Msk (1UL << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ - -#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ -#define SCB_HFSR_FORCED_Msk (1UL << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ - -#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */ -#define SCB_HFSR_VECTTBL_Msk (1UL << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ - -/* SCB Debug Fault Status Register Definitions */ -#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */ -#define SCB_DFSR_EXTERNAL_Msk (1UL << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ - -#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ -#define SCB_DFSR_VCATCH_Msk (1UL << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ - -#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ -#define SCB_DFSR_DWTTRAP_Msk (1UL << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ - -#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ -#define SCB_DFSR_BKPT_Msk (1UL << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ - -#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ -#define SCB_DFSR_HALTED_Msk (1UL << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ - -/*@} end of group CMSIS_SCB */ - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_SysTick CMSIS SysTick - Type definitions for the Cortex-M System Timer Registers - @{ - */ - -/** \brief Structure type to access the System Timer (SysTick). - */ -typedef struct -{ - __IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) SysTick Control and Status Register */ - __IO uint32_t LOAD; /*!< Offset: 0x004 (R/W) SysTick Reload Value Register */ - __IO uint32_t VAL; /*!< Offset: 0x008 (R/W) SysTick Current Value Register */ - __I uint32_t CALIB; /*!< Offset: 0x00C (R/ ) SysTick Calibration Register */ -} SysTick_Type; - -/* SysTick Control / Status Register Definitions */ -#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ -#define SysTick_CTRL_COUNTFLAG_Msk (1UL << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ - -#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ -#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ - -#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ -#define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ - -#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */ -#define SysTick_CTRL_ENABLE_Msk (1UL << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */ - -/* SysTick Reload Register Definitions */ -#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */ -#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFUL << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */ - -/* SysTick Current Register Definitions */ -#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */ -#define SysTick_VAL_CURRENT_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */ - -/* SysTick Calibration Register Definitions */ -#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */ -#define SysTick_CALIB_NOREF_Msk (1UL << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ - -#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ -#define SysTick_CALIB_SKEW_Msk (1UL << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ - -#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ -#define SysTick_CALIB_TENMS_Msk (0xFFFFFFUL << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ - -/*@} end of group CMSIS_SysTick */ - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_ITM CMSIS ITM - Type definitions for the Cortex-M Instrumentation Trace Macrocell (ITM) - @{ - */ - -/** \brief Structure type to access the Instrumentation Trace Macrocell Register (ITM). - */ -typedef struct -{ - __O union - { - __O uint8_t u8; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 8-bit */ - __O uint16_t u16; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 16-bit */ - __O uint32_t u32; /*!< Offset: 0x000 ( /W) ITM Stimulus Port 32-bit */ - } PORT [32]; /*!< Offset: 0x000 ( /W) ITM Stimulus Port Registers */ - uint32_t RESERVED0[864]; - __IO uint32_t TER; /*!< Offset: (R/W) ITM Trace Enable Register */ - uint32_t RESERVED1[15]; - __IO uint32_t TPR; /*!< Offset: (R/W) ITM Trace Privilege Register */ - uint32_t RESERVED2[15]; - __IO uint32_t TCR; /*!< Offset: (R/W) ITM Trace Control Register */ - uint32_t RESERVED3[29]; - __IO uint32_t IWR; /*!< Offset: (R/W) ITM Integration Write Register */ - __IO uint32_t IRR; /*!< Offset: (R/W) ITM Integration Read Register */ - __IO uint32_t IMCR; /*!< Offset: (R/W) ITM Integration Mode Control Register */ - uint32_t RESERVED4[43]; - __IO uint32_t LAR; /*!< Offset: (R/W) ITM Lock Access Register */ - __IO uint32_t LSR; /*!< Offset: (R/W) ITM Lock Status Register */ - uint32_t RESERVED5[6]; - __I uint32_t PID4; /*!< Offset: (R/ ) ITM Peripheral Identification Register #4 */ - __I uint32_t PID5; /*!< Offset: (R/ ) ITM Peripheral Identification Register #5 */ - __I uint32_t PID6; /*!< Offset: (R/ ) ITM Peripheral Identification Register #6 */ - __I uint32_t PID7; /*!< Offset: (R/ ) ITM Peripheral Identification Register #7 */ - __I uint32_t PID0; /*!< Offset: (R/ ) ITM Peripheral Identification Register #0 */ - __I uint32_t PID1; /*!< Offset: (R/ ) ITM Peripheral Identification Register #1 */ - __I uint32_t PID2; /*!< Offset: (R/ ) ITM Peripheral Identification Register #2 */ - __I uint32_t PID3; /*!< Offset: (R/ ) ITM Peripheral Identification Register #3 */ - __I uint32_t CID0; /*!< Offset: (R/ ) ITM Component Identification Register #0 */ - __I uint32_t CID1; /*!< Offset: (R/ ) ITM Component Identification Register #1 */ - __I uint32_t CID2; /*!< Offset: (R/ ) ITM Component Identification Register #2 */ - __I uint32_t CID3; /*!< Offset: (R/ ) ITM Component Identification Register #3 */ -} ITM_Type; - -/* ITM Trace Privilege Register Definitions */ -#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */ -#define ITM_TPR_PRIVMASK_Msk (0xFUL << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */ - -/* ITM Trace Control Register Definitions */ -#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */ -#define ITM_TCR_BUSY_Msk (1UL << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ - -#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */ -#define ITM_TCR_ATBID_Msk (0x7FUL << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */ - -#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */ -#define ITM_TCR_TSPrescale_Msk (3UL << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ - -#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ -#define ITM_TCR_SWOENA_Msk (1UL << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ - -#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ -#define ITM_TCR_DWTENA_Msk (1UL << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ - -#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ -#define ITM_TCR_SYNCENA_Msk (1UL << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ - -#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ -#define ITM_TCR_TSENA_Msk (1UL << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ - -#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */ -#define ITM_TCR_ITMENA_Msk (1UL << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */ - -/* ITM Integration Write Register Definitions */ -#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */ -#define ITM_IWR_ATVALIDM_Msk (1UL << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */ - -/* ITM Integration Read Register Definitions */ -#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */ -#define ITM_IRR_ATREADYM_Msk (1UL << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */ - -/* ITM Integration Mode Control Register Definitions */ -#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */ -#define ITM_IMCR_INTEGRATION_Msk (1UL << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */ - -/* ITM Lock Status Register Definitions */ -#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */ -#define ITM_LSR_ByteAcc_Msk (1UL << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ - -#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ -#define ITM_LSR_Access_Msk (1UL << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ - -#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */ -#define ITM_LSR_Present_Msk (1UL << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */ - -/*@}*/ /* end of group CMSIS_ITM */ - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_InterruptType CMSIS Interrupt Type - Type definitions for the Cortex-M Interrupt Type Register - @{ - */ - -/** \brief Structure type to access the Interrupt Type Register. - */ -typedef struct -{ - uint32_t RESERVED0; - __I uint32_t ICTR; /*!< Offset: 0x004 (R/ ) Interrupt Control Type Register */ -#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) - __IO uint32_t ACTLR; /*!< Offset: 0x008 (R/W) Auxiliary Control Register */ -#else - uint32_t RESERVED1; -#endif -} InterruptType_Type; - -/* Interrupt Controller Type Register Definitions */ -#define IntType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */ -#define IntType_ICTR_INTLINESNUM_Msk (0x1FUL << IntType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */ - -/* Auxiliary Control Register Definitions */ -#define IntType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */ -#define IntType_ACTLR_DISFOLD_Msk (1UL << IntType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */ - -#define IntType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */ -#define IntType_ACTLR_DISDEFWBUF_Msk (1UL << IntType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */ - -#define IntType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */ -#define IntType_ACTLR_DISMCYCINT_Msk (1UL << IntType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */ - -/*@}*/ /* end of group CMSIS_InterruptType */ - - -#if (__MPU_PRESENT == 1) -/** \ingroup CMSIS_core_register - \defgroup CMSIS_MPU CMSIS MPU - Type definitions for the Cortex-M Memory Protection Unit (MPU) - @{ - */ - -/** \brief Structure type to access the Memory Protection Unit (MPU). - */ -typedef struct -{ - __I uint32_t TYPE; /*!< Offset: 0x000 (R/ ) MPU Type Register */ - __IO uint32_t CTRL; /*!< Offset: 0x004 (R/W) MPU Control Register */ - __IO uint32_t RNR; /*!< Offset: 0x008 (R/W) MPU Region RNRber Register */ - __IO uint32_t RBAR; /*!< Offset: 0x00C (R/W) MPU Region Base Address Register */ - __IO uint32_t RASR; /*!< Offset: 0x010 (R/W) MPU Region Attribute and Size Register */ - __IO uint32_t RBAR_A1; /*!< Offset: 0x014 (R/W) MPU Alias 1 Region Base Address Register */ - __IO uint32_t RASR_A1; /*!< Offset: 0x018 (R/W) MPU Alias 1 Region Attribute and Size Register */ - __IO uint32_t RBAR_A2; /*!< Offset: 0x01C (R/W) MPU Alias 2 Region Base Address Register */ - __IO uint32_t RASR_A2; /*!< Offset: 0x020 (R/W) MPU Alias 2 Region Attribute and Size Register */ - __IO uint32_t RBAR_A3; /*!< Offset: 0x024 (R/W) MPU Alias 3 Region Base Address Register */ - __IO uint32_t RASR_A3; /*!< Offset: 0x028 (R/W) MPU Alias 3 Region Attribute and Size Register */ -} MPU_Type; - -/* MPU Type Register */ -#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ -#define MPU_TYPE_IREGION_Msk (0xFFUL << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ - -#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ -#define MPU_TYPE_DREGION_Msk (0xFFUL << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ - -#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ -#define MPU_TYPE_SEPARATE_Msk (1UL << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ - -/* MPU Control Register */ -#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ -#define MPU_CTRL_PRIVDEFENA_Msk (1UL << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ - -#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ -#define MPU_CTRL_HFNMIENA_Msk (1UL << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ - -#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ -#define MPU_CTRL_ENABLE_Msk (1UL << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ - -/* MPU Region Number Register */ -#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ -#define MPU_RNR_REGION_Msk (0xFFUL << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ - -/* MPU Region Base Address Register */ -#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ -#define MPU_RBAR_ADDR_Msk (0x7FFFFFFUL << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ - -#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ -#define MPU_RBAR_VALID_Msk (1UL << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ - -#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ -#define MPU_RBAR_REGION_Msk (0xFUL << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ - -/* MPU Region Attribute and Size Register */ -#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */ -#define MPU_RASR_XN_Msk (1UL << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */ - -#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */ -#define MPU_RASR_AP_Msk (7UL << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */ - -#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */ -#define MPU_RASR_TEX_Msk (7UL << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */ - -#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */ -#define MPU_RASR_S_Msk (1UL << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */ - -#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */ -#define MPU_RASR_C_Msk (1UL << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */ - -#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */ -#define MPU_RASR_B_Msk (1UL << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */ - -#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */ -#define MPU_RASR_SRD_Msk (0xFFUL << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ - -#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */ -#define MPU_RASR_SIZE_Msk (0x1FUL << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ - -#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */ -#define MPU_RASR_ENA_Msk (0x1UL << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */ - -/*@} end of group CMSIS_MPU */ -#endif - - -/** \ingroup CMSIS_core_register - \defgroup CMSIS_CoreDebug CMSIS Core Debug - Type definitions for the Cortex-M Core Debug Registers - @{ - */ - -/** \brief Structure type to access the Core Debug Register (CoreDebug). - */ -typedef struct -{ - __IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */ - __O uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */ - __IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */ - __IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */ -} CoreDebug_Type; - -/* Debug Halting Control and Status Register */ -#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */ -#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFUL << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ - -#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */ -#define CoreDebug_DHCSR_S_RESET_ST_Msk (1UL << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ - -#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ -#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1UL << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ - -#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */ -#define CoreDebug_DHCSR_S_LOCKUP_Msk (1UL << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ - -#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */ -#define CoreDebug_DHCSR_S_SLEEP_Msk (1UL << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ - -#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */ -#define CoreDebug_DHCSR_S_HALT_Msk (1UL << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ - -#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */ -#define CoreDebug_DHCSR_S_REGRDY_Msk (1UL << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ - -#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ -#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1UL << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ - -#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */ -#define CoreDebug_DHCSR_C_MASKINTS_Msk (1UL << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ - -#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */ -#define CoreDebug_DHCSR_C_STEP_Msk (1UL << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ - -#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */ -#define CoreDebug_DHCSR_C_HALT_Msk (1UL << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ - -#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */ -#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1UL << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ - -/* Debug Core Register Selector Register */ -#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ -#define CoreDebug_DCRSR_REGWnR_Msk (1UL << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ - -#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */ -#define CoreDebug_DCRSR_REGSEL_Msk (0x1FUL << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */ - -/* Debug Exception and Monitor Control Register */ -#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ -#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ - -#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */ -#define CoreDebug_DEMCR_MON_REQ_Msk (1UL << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ - -#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */ -#define CoreDebug_DEMCR_MON_STEP_Msk (1UL << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ - -#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */ -#define CoreDebug_DEMCR_MON_PEND_Msk (1UL << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ - -#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */ -#define CoreDebug_DEMCR_MON_EN_Msk (1UL << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ - -#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */ -#define CoreDebug_DEMCR_VC_HARDERR_Msk (1UL << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ - -#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */ -#define CoreDebug_DEMCR_VC_INTERR_Msk (1UL << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ - -#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */ -#define CoreDebug_DEMCR_VC_BUSERR_Msk (1UL << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ - -#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */ -#define CoreDebug_DEMCR_VC_STATERR_Msk (1UL << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ - -#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */ -#define CoreDebug_DEMCR_VC_CHKERR_Msk (1UL << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ - -#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */ -#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1UL << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ - -#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */ -#define CoreDebug_DEMCR_VC_MMERR_Msk (1UL << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ - -#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */ -#define CoreDebug_DEMCR_VC_CORERESET_Msk (1UL << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ - -/*@} end of group CMSIS_CoreDebug */ - - -/** \ingroup CMSIS_core_register - @{ - */ - -/* Memory mapping of Cortex-M3 Hardware */ -#define SCS_BASE (0xE000E000UL) /*!< System Control Space Base Address */ -#define ITM_BASE (0xE0000000UL) /*!< ITM Base Address */ -#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */ -#define SysTick_BASE (SCS_BASE + 0x0010UL) /*!< SysTick Base Address */ -#define NVIC_BASE (SCS_BASE + 0x0100UL) /*!< NVIC Base Address */ -#define SCB_BASE (SCS_BASE + 0x0D00UL) /*!< System Control Block Base Address */ - -#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */ -#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */ -#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */ -#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */ -#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */ -#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ - -#if (__MPU_PRESENT == 1) - #define MPU_BASE (SCS_BASE + 0x0D90UL) /*!< Memory Protection Unit */ - #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */ -#endif - -/*@} */ - - - -/******************************************************************************* - * Hardware Abstraction Layer - ******************************************************************************/ -/** \defgroup CMSIS_Core_FunctionInterface CMSIS Core Function Interface - Core Function Interface contains: - - Core NVIC Functions - - Core SysTick Functions - - Core Debug Functions - - Core Register Access Functions -*/ - - - -/* ########################## NVIC functions #################################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_NVICFunctions CMSIS Core NVIC Functions - @{ - */ - -/** \brief Set Priority Grouping - - This function sets the priority grouping field using the required unlock sequence. - The parameter PriorityGroup is assigned to the field SCB->AIRCR [10:8] PRIGROUP field. - Only values from 0..7 are used. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. - - \param [in] PriorityGroup Priority grouping field - */ -static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - - reg_value = SCB->AIRCR; /* read old register configuration */ - reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ - reg_value = (reg_value | - (0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ - SCB->AIRCR = reg_value; -} - - -/** \brief Get Priority Grouping - - This function gets the priority grouping from NVIC Interrupt Controller. - Priority grouping is SCB->AIRCR [10:8] PRIGROUP field. - - \return Priority grouping field - */ -static __INLINE uint32_t NVIC_GetPriorityGrouping(void) -{ - return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ -} - - -/** \brief Enable External Interrupt - - This function enables a device specific interupt in the NVIC interrupt controller. - The interrupt number cannot be a negative value. - - \param [in] IRQn Number of the external interrupt to enable - */ -static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) -{ - NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ -} - - -/** \brief Disable External Interrupt - - This function disables a device specific interupt in the NVIC interrupt controller. - The interrupt number cannot be a negative value. - - \param [in] IRQn Number of the external interrupt to disable - */ -static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) -{ - NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ -} - - -/** \brief Get Pending Interrupt - - This function reads the pending register in the NVIC and returns the pending bit - for the specified interrupt. - - \param [in] IRQn Number of the interrupt for get pending - \return 0 Interrupt status is not pending - \return 1 Interrupt status is pending - */ -static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) -{ - return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */ -} - - -/** \brief Set Pending Interrupt - - This function sets the pending bit for the specified interrupt. - The interrupt number cannot be a negative value. - - \param [in] IRQn Number of the interrupt for set pending - */ -static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ -} - - -/** \brief Clear Pending Interrupt - - This function clears the pending bit for the specified interrupt. - The interrupt number cannot be a negative value. - - \param [in] IRQn Number of the interrupt for clear pending - */ -static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ -} - - -/** \brief Get Active Interrupt - - This function reads the active register in NVIC and returns the active bit. - \param [in] IRQn Number of the interrupt for get active - \return 0 Interrupt status is not active - \return 1 Interrupt status is active - */ -static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) -{ - return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */ -} - - -/** \brief Set Interrupt Priority - - This function sets the priority for the specified interrupt. The interrupt - number can be positive to specify an external (device specific) - interrupt, or negative to specify an internal (core) interrupt. - - Note: The priority cannot be set for every core interrupt. - - \param [in] IRQn Number of the interrupt for set priority - \param [in] priority Priority to set - */ -static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - if(IRQn < 0) { - SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M System Interrupts */ - else { - NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */ -} - - -/** \brief Get Interrupt Priority - - This function reads the priority for the specified interrupt. The interrupt - number can be positive to specify an external (device specific) - interrupt, or negative to specify an internal (core) interrupt. - - The returned priority value is automatically aligned to the implemented - priority bits of the microcontroller. - - \param [in] IRQn Number of the interrupt for get priority - \return Interrupt Priority - */ -static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) -{ - - if(IRQn < 0) { - return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M system interrupts */ - else { - return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */ -} - - -/** \brief Encode Priority - - This function encodes the priority for an interrupt with the given priority group, - preemptive priority value and sub priority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - - The returned priority value can be used for NVIC_SetPriority(...) function - - \param [in] PriorityGroup Used priority group - \param [in] PreemptPriority Preemptive priority value (starting from 0) - \param [in] SubPriority Sub priority value (starting from 0) - \return Encoded priority for the interrupt - */ -static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - return ( - ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | - ((SubPriority & ((1 << (SubPriorityBits )) - 1))) - ); -} - - -/** \brief Decode Priority - - This function decodes an interrupt priority value with the given priority group to - preemptive priority value and sub priority value. - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. - - The priority value can be retrieved with NVIC_GetPriority(...) function - - \param [in] Priority Priority value - \param [in] PriorityGroup Used priority group - \param [out] pPreemptPriority Preemptive priority value (starting from 0) - \param [out] pSubPriority Sub priority value (starting from 0) - */ -static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) -{ - uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; - SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; - - *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); - *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); -} - - -/** \brief System Reset - - This function initiate a system reset request to reset the MCU. - */ -static __INLINE void NVIC_SystemReset(void) -{ - __DSB(); /* Ensure all outstanding memory accesses included - buffered write are completed before reset */ - SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | - (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | - SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ - __DSB(); /* Ensure completion of memory access */ - while(1); /* wait until reset */ -} - -/*@} end of CMSIS_Core_NVICFunctions */ - - - -/* ################################## SysTick function ############################################ */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_SysTickFunctions CMSIS Core SysTick Functions - @{ - */ - -#if (__Vendor_SysTickConfig == 0) - -/** \brief System Tick Configuration - - This function initialises the system tick timer and its interrupt and start the system tick timer. - Counter is in free running mode to generate periodical interrupts. - - \param [in] ticks Number of ticks between two interrupts - \return 0 Function succeeded - \return 1 Function failed - */ -static __INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ - - SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ - NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */ - SysTick->VAL = 0; /* Load the SysTick Counter Value */ - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0); /* Function successful */ -} - -#endif - -/*@} end of CMSIS_Core_SysTickFunctions */ - - - -/* ##################################### Debug In/Output function ########################################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_core_DebugFunctions CMSIS Core Debug Functions - @{ - */ - -extern volatile int32_t ITM_RxBuffer; /*!< external variable to receive characters */ -#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */ - - -/** \brief ITM Send Character - - This function transmits a character via the ITM channel 0. - It just returns when no debugger is connected that has booked the output. - It is blocking when a debugger is connected, but the previous character send is not transmitted. - - \param [in] ch Character to transmit - \return Character to transmit - */ -static __INLINE uint32_t ITM_SendChar (uint32_t ch) -{ - if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */ - (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ - (ITM->TER & (1UL << 0) ) ) /* ITM Port #0 enabled */ - { - while (ITM->PORT[0].u32 == 0); - ITM->PORT[0].u8 = (uint8_t) ch; - } - return (ch); -} - - -/** \brief ITM Receive Character - - This function inputs a character via external variable ITM_RxBuffer. - It just returns when no debugger is connected that has booked the output. - It is blocking when a debugger is connected, but the previous character send is not transmitted. - - \return Received character - \return -1 No character received - */ -static __INLINE int32_t ITM_ReceiveChar (void) { - int32_t ch = -1; /* no character available */ - - if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { - ch = ITM_RxBuffer; - ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ - } - - return (ch); -} - - -/** \brief ITM Check Character - - This function checks external variable ITM_RxBuffer whether a character is available or not. - It returns '1' if a character is available and '0' if no character is available. - - \return 0 No character available - \return 1 Character available - */ -static __INLINE int32_t ITM_CheckChar (void) { - - if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { - return (0); /* no character available */ - } else { - return (1); /* character available */ - } -} - -/*@} end of CMSIS_core_DebugFunctions */ - -#endif /* __CORE_CM3_H_DEPENDANT */ - -#endif /* __CMSIS_GENERIC */ - -#ifdef __cplusplus -} -#endif - -/*lint -restore */ diff --git a/CMSISv2p00_LPC17xx/inc/core_cmFunc.h b/CMSISv2p00_LPC17xx/inc/core_cmFunc.h deleted file mode 100644 index 1ff04d9..0000000 --- a/CMSISv2p00_LPC17xx/inc/core_cmFunc.h +++ /dev/null @@ -1,844 +0,0 @@ -/**************************************************************************//** - * @file core_cmFunc.h - * @brief CMSIS Cortex-M Core Function Access Header File - * @version V2.01 - * @date 06. December 2010 - * - * @note - * Copyright (C) 2009-2010 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#ifndef __CORE_CMFUNC_H__ -#define __CORE_CMFUNC_H__ - -/* ########################### Core Function Access ########################### */ -/** \ingroup CMSIS_Core_FunctionInterface - \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions - @{ - */ - -#if defined ( __CC_ARM ) /*------------------ RealView Compiler ----------------*/ -/* ARM armcc specific functions */ - -/* intrinsic void __enable_irq(); */ -/* intrinsic void __disable_irq(); */ - -/** \brief Get Control Register - - This function returns the content of the Control Register. - - \return Control Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_CONTROL(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_CONTROL(void) -{ - register uint32_t __regControl __ASM("control"); - return(__regControl); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Control Register - - This function writes the given value to the Control Register. - - \param [in] control Control Register value to set - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_CONTROL(uint32_t control); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_CONTROL(uint32_t control) -{ - register uint32_t __regControl __ASM("control"); - __regControl = control; -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get ISPR Register - - This function returns the content of the ISPR Register. - - \return ISPR Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_IPSR(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_IPSR(void) -{ - register uint32_t __regIPSR __ASM("ipsr"); - return(__regIPSR); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get APSR Register - - This function returns the content of the APSR Register. - - \return APSR Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_APSR(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_APSR(void) -{ - register uint32_t __regAPSR __ASM("apsr"); - return(__regAPSR); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get xPSR Register - - This function returns the content of the xPSR Register. - - \return xPSR Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_xPSR(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_xPSR(void) -{ - register uint32_t __regXPSR __ASM("xpsr"); - return(__regXPSR); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Process Stack Pointer - - This function returns the current value of the Process Stack Pointer (PSP). - - \return PSP Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_PSP(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_PSP(void) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - return(__regProcessStackPointer); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Process Stack Pointer - - This function assigns the given value to the Process Stack Pointer (PSP). - - \param [in] topOfProcStack Process Stack Pointer value to set - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_PSP(uint32_t topOfProcStack); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_PSP(uint32_t topOfProcStack) -{ - register uint32_t __regProcessStackPointer __ASM("psp"); - __regProcessStackPointer = topOfProcStack; -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Main Stack Pointer - - This function returns the current value of the Main Stack Pointer (MSP). - - \return MSP Register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_MSP(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_MSP(void) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - return(__regMainStackPointer); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Main Stack Pointer - - This function assigns the given value to the Main Stack Pointer (MSP). - - \param [in] topOfMainStack Main Stack Pointer value to set - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_MSP(uint32_t topOfMainStack); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_MSP(uint32_t topOfMainStack) -{ - register uint32_t __regMainStackPointer __ASM("msp"); - __regMainStackPointer = topOfMainStack; -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Priority Mask - - This function returns the current state of the priority mask bit from the Priority Mask Register. - - \return Priority Mask value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_PRIMASK(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_PRIMASK(void) -{ - register uint32_t __regPriMask __ASM("primask"); - return(__regPriMask); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Priority Mask - - This function assigns the given value to the Priority Mask Register. - - \param [in] priMask Priority Mask - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_PRIMASK(uint32_t priMask); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_PRIMASK(uint32_t priMask) -{ - register uint32_t __regPriMask __ASM("primask"); - __regPriMask = (priMask); -} -#endif /* __ARMCC_VERSION */ - - -#if (__CORTEX_M >= 0x03) - -/** \brief Enable FIQ - - This function enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_fault_irq __enable_fiq - - -/** \brief Disable FIQ - - This function disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_fault_irq __disable_fiq - - -/** \brief Get Base Priority - - This function returns the current value of the Base Priority register. - - \return Base Priority register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_BASEPRI(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_BASEPRI(void) -{ - register uint32_t __regBasePri __ASM("basepri"); - return(__regBasePri); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Base Priority - - This function assigns the given value to the Base Priority register. - - \param [in] basePri Base Priority value to set - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_BASEPRI(uint32_t basePri); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_BASEPRI(uint32_t basePri) -{ - register uint32_t __regBasePri __ASM("basepri"); - __regBasePri = (basePri & 0xff); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Fault Mask - - This function returns the current value of the Fault Mask register. - - \return Fault Mask register value - */ -#if (__ARMCC_VERSION < 400000) -extern uint32_t __get_FAULTMASK(void); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE uint32_t __get_FAULTMASK(void) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - return(__regFaultMask); -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Fault Mask - - This function assigns the given value to the Fault Mask register. - - \param [in] faultMask Fault Mask value to set - */ -#if (__ARMCC_VERSION < 400000) -extern void __set_FAULTMASK(uint32_t faultMask); -#else /* (__ARMCC_VERSION >= 400000) */ -static __INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - register uint32_t __regFaultMask __ASM("faultmask"); - __regFaultMask = (faultMask & 1); -} -#endif /* __ARMCC_VERSION */ - -#endif /* (__CORTEX_M >= 0x03) */ - - -#if (__CORTEX_M == 0x04) - -/** \brief Get FPSCR - - This function returns the current value of the Floating Point Status/Control register. - - \return Floating Point Status/Control register value - */ -static __INLINE uint32_t __get_FPSCR(void) -{ -#if (__FPU_PRESENT == 1) - register uint32_t __regfpscr __ASM("fpscr"); - return(__regfpscr); -#else - return(0); -#endif -} - - -/** \brief Set FPSCR - - This function assigns the given value to the Floating Point Status/Control register. - - \param [in] fpscr Floating Point Status/Control value to set - */ -static __INLINE void __set_FPSCR(uint32_t fpscr) -{ -#if (__FPU_PRESENT == 1) - register uint32_t __regfpscr __ASM("fpscr"); - __regfpscr = (fpscr); -#endif -} - -#endif /* (__CORTEX_M == 0x04) */ - - - #elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/ -/* IAR iccarm specific functions */ - -#if defined (__ICCARM__) - #include <intrinsics.h> /* IAR Intrinsics */ -#endif - -#pragma diag_suppress=Pe940 - -/** \brief Enable IRQ Interrupts - - This function enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __enable_irq __enable_interrupt - - -/** \brief Disable IRQ Interrupts - - This function disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -#define __disable_irq __disable_interrupt - - -/* intrinsic unsigned long __get_CONTROL( void ); (see intrinsic.h) */ -/* intrinsic void __set_CONTROL( unsigned long ); (see intrinsic.h) */ - - -/** \brief Get ISPR Register - - This function returns the content of the ISPR Register. - - \return ISPR Register value - */ -static uint32_t __get_IPSR(void) -{ - __ASM("mrs r0, ipsr"); -} - - -/** \brief Get APSR Register - - This function returns the content of the APSR Register. - - \return APSR Register value - */ -static uint32_t __get_APSR(void) -{ - __ASM("mrs r0, apsr"); -} - - -/** \brief Get xPSR Register - - This function returns the content of the xPSR Register. - - \return xPSR Register value - */ -static uint32_t __get_xPSR(void) -{ - __ASM("mrs r0, psr"); // assembler does not know "xpsr" -} - - -/** \brief Get Process Stack Pointer - - This function returns the current value of the Process Stack Pointer (PSP). - - \return PSP Register value - */ -static uint32_t __get_PSP(void) -{ - __ASM("mrs r0, psp"); -} - - -/** \brief Set Process Stack Pointer - - This function assigns the given value to the Process Stack Pointer (PSP). - - \param [in] topOfProcStack Process Stack Pointer value to set - */ -static void __set_PSP(uint32_t topOfProcStack) -{ - __ASM("msr psp, r0"); -} - - -/** \brief Get Main Stack Pointer - - This function returns the current value of the Main Stack Pointer (MSP). - - \return MSP Register value - */ -static uint32_t __get_MSP(void) -{ - __ASM("mrs r0, msp"); -} - - -/** \brief Set Main Stack Pointer - - This function assigns the given value to the Main Stack Pointer (MSP). - - \param [in] topOfMainStack Main Stack Pointer value to set - */ -static void __set_MSP(uint32_t topOfMainStack) -{ - __ASM("msr msp, r0"); -} - - -/* intrinsic unsigned long __get_PRIMASK( void ); (see intrinsic.h) */ -/* intrinsic void __set_PRIMASK( unsigned long ); (see intrinsic.h) */ - - -#if (__CORTEX_M >= 0x03) - -/** \brief Enable FIQ - - This function enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -static __INLINE void __enable_fault_irq(void) -{ - __ASM ("cpsie f"); -} - - -/** \brief Disable FIQ - - This function disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -static __INLINE void __disable_fault_irq(void) -{ - __ASM ("cpsid f"); -} - - -/* intrinsic unsigned long __get_BASEPRI( void ); (see intrinsic.h) */ -/* intrinsic void __set_BASEPRI( unsigned long ); (see intrinsic.h) */ -/* intrinsic unsigned long __get_FAULTMASK( void ); (see intrinsic.h) */ -/* intrinsic void __set_FAULTMASK(unsigned long); (see intrinsic.h) */ - -#endif /* (__CORTEX_M >= 0x03) */ - - -#if (__CORTEX_M == 0x04) - -/** \brief Get FPSCR - - This function returns the current value of the Floating Point Status/Control register. - - \return Floating Point Status/Control register value - */ -static uint32_t __get_FPSCR(void) -{ -#if (__FPU_PRESENT == 1) - __ASM("vmrs r0, fpscr"); -#else - return(0); -#endif -} - - -/** \brief Set FPSCR - - This function assigns the given value to the Floating Point Status/Control register. - - \param [in] fpscr Floating Point Status/Control value to set - */ -static void __set_FPSCR(uint32_t fpscr) -{ -#if (__FPU_PRESENT == 1) - __ASM("vmsr fpscr, r0"); -#endif -} - -#endif /* (__CORTEX_M == 0x04) */ - -#pragma diag_default=Pe940 - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -/** \brief Enable IRQ Interrupts - - This function enables IRQ interrupts by clearing the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__attribute__( ( always_inline ) ) static __INLINE void __enable_irq(void) -{ - __ASM volatile ("cpsie i"); -} - - -/** \brief Disable IRQ Interrupts - - This function disables IRQ interrupts by setting the I-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__attribute__( ( always_inline ) ) static __INLINE void __disable_irq(void) -{ - __ASM volatile ("cpsid i"); -} - - -/** \brief Get Control Register - - This function returns the content of the Control Register. - - \return Control Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_CONTROL(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, control" : "=r" (result) ); - return(result); -} - - -/** \brief Set Control Register - - This function writes the given value to the Control Register. - - \param [in] control Control Register value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_CONTROL(uint32_t control) -{ - __ASM volatile ("MSR control, %0" : : "r" (control) ); -} - - -/** \brief Get ISPR Register - - This function returns the content of the ISPR Register. - - \return ISPR Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_IPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); - return(result); -} - - -/** \brief Get APSR Register - - This function returns the content of the APSR Register. - - \return APSR Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_APSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, apsr" : "=r" (result) ); - return(result); -} - - -/** \brief Get xPSR Register - - This function returns the content of the xPSR Register. - - \return xPSR Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_xPSR(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); - return(result); -} - - -/** \brief Get Process Stack Pointer - - This function returns the current value of the Process Stack Pointer (PSP). - - \return PSP Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_PSP(void) -{ - register uint32_t result; - - __ASM volatile ("MRS %0, psp\n" : "=r" (result) ); - return(result); -} - - -/** \brief Set Process Stack Pointer - - This function assigns the given value to the Process Stack Pointer (PSP). - - \param [in] topOfProcStack Process Stack Pointer value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_PSP(uint32_t topOfProcStack) -{ - __ASM volatile ("MSR psp, %0\n" : : "r" (topOfProcStack) ); -} - - -/** \brief Get Main Stack Pointer - - This function returns the current value of the Main Stack Pointer (MSP). - - \return MSP Register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_MSP(void) -{ - register uint32_t result; - - __ASM volatile ("MRS %0, msp\n" : "=r" (result) ); - return(result); -} - - -/** \brief Set Main Stack Pointer - - This function assigns the given value to the Main Stack Pointer (MSP). - - \param [in] topOfMainStack Main Stack Pointer value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_MSP(uint32_t topOfMainStack) -{ - __ASM volatile ("MSR msp, %0\n" : : "r" (topOfMainStack) ); -} - - -/** \brief Get Priority Mask - - This function returns the current state of the priority mask bit from the Priority Mask Register. - - \return Priority Mask value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_PRIMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, primask" : "=r" (result) ); - return(result); -} - - -/** \brief Set Priority Mask - - This function assigns the given value to the Priority Mask Register. - - \param [in] priMask Priority Mask - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_PRIMASK(uint32_t priMask) -{ - __ASM volatile ("MSR primask, %0" : : "r" (priMask) ); -} - - -#if (__CORTEX_M >= 0x03) - -/** \brief Enable FIQ - - This function enables FIQ interrupts by clearing the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__attribute__( ( always_inline ) ) static __INLINE void __enable_fault_irq(void) -{ - __ASM volatile ("cpsie f"); -} - - -/** \brief Disable FIQ - - This function disables FIQ interrupts by setting the F-bit in the CPSR. - Can only be executed in Privileged modes. - */ -__attribute__( ( always_inline ) ) static __INLINE void __disable_fault_irq(void) -{ - __ASM volatile ("cpsid f"); -} - - -/** \brief Get Base Priority - - This function returns the current value of the Base Priority register. - - \return Base Priority register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_BASEPRI(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); - return(result); -} - - -/** \brief Set Base Priority - - This function assigns the given value to the Base Priority register. - - \param [in] basePri Base Priority value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_BASEPRI(uint32_t value) -{ - __ASM volatile ("MSR basepri, %0" : : "r" (value) ); -} - - -/** \brief Get Fault Mask - - This function returns the current value of the Fault Mask register. - - \return Fault Mask register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_FAULTMASK(void) -{ - uint32_t result; - - __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); - return(result); -} - - -/** \brief Set Fault Mask - - This function assigns the given value to the Fault Mask register. - - \param [in] faultMask Fault Mask value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_FAULTMASK(uint32_t faultMask) -{ - __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) ); -} - -#endif /* (__CORTEX_M >= 0x03) */ - - -#if (__CORTEX_M == 0x04) - -/** \brief Get FPSCR - - This function returns the current value of the Floating Point Status/Control register. - - \return Floating Point Status/Control register value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __get_FPSCR(void) -{ -#if (__FPU_PRESENT == 1) - uint32_t result; - - __ASM volatile ("MRS %0, fpscr" : "=r" (result) ); - return(result); -#else - return(0); -#endif -} - - -/** \brief Set FPSCR - - This function assigns the given value to the Floating Point Status/Control register. - - \param [in] fpscr Floating Point Status/Control value to set - */ -__attribute__( ( always_inline ) ) static __INLINE void __set_FPSCR(uint32_t fpscr) -{ -#if (__FPU_PRESENT == 1) - __ASM volatile ("MSR fpscr, %0" : : "r" (fpscr) ); -#endif -} - -#endif /* (__CORTEX_M == 0x04) */ - - -#elif (defined (__TASKING__)) /*--------------- TASKING Compiler -----------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif - -/*@} end of CMSIS_Core_RegAccFunctions */ - - -#endif /* __CORE_CMFUNC_H__ */ diff --git a/CMSISv2p00_LPC17xx/inc/core_cmInstr.h b/CMSISv2p00_LPC17xx/inc/core_cmInstr.h deleted file mode 100644 index 95ce06c..0000000 --- a/CMSISv2p00_LPC17xx/inc/core_cmInstr.h +++ /dev/null @@ -1,775 +0,0 @@ -/**************************************************************************//** - * @file core_cmInstr.h - * @brief CMSIS Cortex-M Core Instruction Access Header File - * @version V2.01 - * @date 06. December 2010 - * - * @note - * Copyright (C) 2009-2010 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#ifndef __CORE_CMINSTR_H__ -#define __CORE_CMINSTR_H__ - - -/* ########################## Core Instruction Access ######################### */ -/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface - Access to dedicated instructions - @{ -*/ - -#if defined ( __CC_ARM ) /*------------------ RealView Compiler ----------------*/ -/* ARM armcc specific functions */ - -/** \brief No Operation - - No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __nop - - -/** \brief Wait For Interrupt - - Wait For Interrupt is a hint instruction that suspends execution - until one of a number of events occurs. - */ -#define __WFI __wfi - - -/** \brief Wait For Event - - Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -#define __WFE __wfe - - -/** \brief Send Event - - Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -#define __SEV __sev - - -/** \brief Instruction Synchronization Barrier - - Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or - memory, after the instruction has been completed. - */ -#define __ISB() __isb(0xF) - - -/** \brief Data Synchronization Barrier - - This function acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -#define __DSB() __dsb(0xF) - - -/** \brief Data Memory Barrier - - This function ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -#define __DMB() __dmb(0xF) - - -/** \brief Reverse byte order (32 bit) - - This function reverses the byte order in integer value. - - \param [in] value Value to reverse - \return Reversed value - */ -#define __REV __rev - - -/** \brief Reverse byte order (16 bit) - - This function reverses the byte order in two unsigned short values. - - \param [in] value Value to reverse - \return Reversed value - */ -#if (__ARMCC_VERSION < 400677) -extern uint32_t __REV16(uint32_t value); -#else /* (__ARMCC_VERSION >= 400677) */ -static __INLINE __ASM uint32_t __REV16(uint32_t value) -{ - rev16 r0, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Reverse byte order in signed short value - - This function reverses the byte order in a signed short value with sign extension to integer. - - \param [in] value Value to reverse - \return Reversed value - */ -#if (__ARMCC_VERSION < 400677) -extern int32_t __REVSH(int32_t value); -#else /* (__ARMCC_VERSION >= 400677) */ -static __INLINE __ASM int32_t __REVSH(int32_t value) -{ - revsh r0, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -#if (__CORTEX_M >= 0x03) - -/** \brief Reverse bit order of value - - This function reverses the bit order of the given value. - - \param [in] value Value to reverse - \return Reversed value - */ -#define __RBIT __rbit - - -/** \brief LDR Exclusive (8 bit) - - This function performs a exclusive LDR command for 8 bit value. - - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -#define __LDREXB(ptr) ((uint8_t ) __ldrex(ptr)) - - -/** \brief LDR Exclusive (16 bit) - - This function performs a exclusive LDR command for 16 bit values. - - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -#define __LDREXH(ptr) ((uint16_t) __ldrex(ptr)) - - -/** \brief LDR Exclusive (32 bit) - - This function performs a exclusive LDR command for 32 bit values. - - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -#define __LDREXW(ptr) ((uint32_t ) __ldrex(ptr)) - - -/** \brief STR Exclusive (8 bit) - - This function performs a exclusive STR command for 8 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXB(value, ptr) __strex(value, ptr) - - -/** \brief STR Exclusive (16 bit) - - This function performs a exclusive STR command for 16 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXH(value, ptr) __strex(value, ptr) - - -/** \brief STR Exclusive (32 bit) - - This function performs a exclusive STR command for 32 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -#define __STREXW(value, ptr) __strex(value, ptr) - - -/** \brief Remove the exclusive lock - - This function removes the exclusive lock which is created by LDREX. - - */ -#if (__ARMCC_VERSION < 400000) -extern void __CLREX(void); -#else /* (__ARMCC_VERSION >= 400000) */ -#define __CLREX __clrex -#endif /* __ARMCC_VERSION */ - - -/** \brief Signed Saturate - - This function saturates a signed value. - - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT __ssat - - -/** \brief Unsigned Saturate - - This function saturates an unsigned value. - - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT __usat - - -/** \brief Count leading zeros - - This function counts the number of leading zeros of a data value. - - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -#define __CLZ __clz - -#endif /* (__CORTEX_M >= 0x03) */ - - - -#elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/ -/* IAR iccarm specific functions */ - -#include <intrinsics.h> /* IAR Intrinsics */ - -#pragma diag_suppress=Pe940 - -/** \brief No Operation - - No Operation does nothing. This instruction can be used for code alignment purposes. - */ -#define __NOP __no_operation - - -/** \brief Wait For Interrupt - - Wait For Interrupt is a hint instruction that suspends execution - until one of a number of events occurs. - */ -static __INLINE void __WFI(void) -{ - __ASM ("wfi"); -} - - -/** \brief Wait For Event - - Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -static __INLINE void __WFE(void) -{ - __ASM ("wfe"); -} - - -/** \brief Send Event - - Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -static __INLINE void __SEV(void) -{ - __ASM ("sev"); -} - - -/* intrinsic void __ISB(void) (see intrinsics.h) */ -/* intrinsic void __DSB(void) (see intrinsics.h) */ -/* intrinsic void __DMB(void) (see intrinsics.h) */ -/* intrinsic uint32_t __REV(uint32_t value) (see intrinsics.h) */ -/* intrinsic __SSAT (see intrinsics.h) */ -/* intrinsic __USAT (see intrinsics.h) */ - - -/** \brief Reverse byte order (16 bit) - - This function reverses the byte order in two unsigned short values. - - \param [in] value Value to reverse - \return Reversed value - */ -static uint32_t __REV16(uint32_t value) -{ - __ASM("rev16 r0, r0"); -} - - -/* intrinsic uint32_t __REVSH(uint32_t value) (see intrinsics.h */ - - -#if (__CORTEX_M >= 0x03) - -/** \brief Reverse bit order of value - - This function reverses the bit order of the given value. - - \param [in] value Value to reverse - \return Reversed value - */ -static uint32_t __RBIT(uint32_t value) -{ - __ASM("rbit r0, r0"); -} - - -/** \brief LDR Exclusive (8 bit) - - This function performs a exclusive LDR command for 8 bit value. - - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -static uint8_t __LDREXB(volatile uint8_t *addr) -{ - __ASM("ldrexb r0, [r0]"); -} - - -/** \brief LDR Exclusive (16 bit) - - This function performs a exclusive LDR command for 16 bit values. - - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -static uint16_t __LDREXH(volatile uint16_t *addr) -{ - __ASM("ldrexh r0, [r0]"); -} - - -/** \brief LDR Exclusive (32 bit) - - This function performs a exclusive LDR command for 32 bit values. - - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -/* intrinsic unsigned long __LDREX(unsigned long *) (see intrinsics.h) */ -static uint32_t __LDREXW(volatile uint32_t *addr) -{ - __ASM("ldrex r0, [r0]"); -} - - -/** \brief STR Exclusive (8 bit) - - This function performs a exclusive STR command for 8 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -static uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) -{ - __ASM("strexb r0, r0, [r1]"); -} - - -/** \brief STR Exclusive (16 bit) - - This function performs a exclusive STR command for 16 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -static uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) -{ - __ASM("strexh r0, r0, [r1]"); -} - - -/** \brief STR Exclusive (32 bit) - - This function performs a exclusive STR command for 32 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -/* intrinsic unsigned long __STREX(unsigned long, unsigned long) (see intrinsics.h )*/ -static uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - __ASM("strex r0, r0, [r1]"); -} - - -/** \brief Remove the exclusive lock - - This function removes the exclusive lock which is created by LDREX. - - */ -static __INLINE void __CLREX(void) -{ - __ASM ("clrex"); -} - -/* intrinsic unsigned char __CLZ( unsigned long ) (see intrinsics.h) */ - -#endif /* (__CORTEX_M >= 0x03) */ - -#pragma diag_default=Pe940 - - - -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* GNU gcc specific functions */ - -/** \brief No Operation - - No Operation does nothing. This instruction can be used for code alignment purposes. - */ -__attribute__( ( always_inline ) ) static __INLINE void __NOP(void) -{ - __ASM volatile ("nop"); -} - - -/** \brief Wait For Interrupt - - Wait For Interrupt is a hint instruction that suspends execution - until one of a number of events occurs. - */ -__attribute__( ( always_inline ) ) static __INLINE void __WFI(void) -{ - __ASM volatile ("wfi"); -} - - -/** \brief Wait For Event - - Wait For Event is a hint instruction that permits the processor to enter - a low-power state until one of a number of events occurs. - */ -__attribute__( ( always_inline ) ) static __INLINE void __WFE(void) -{ - __ASM volatile ("wfe"); -} - - -/** \brief Send Event - - Send Event is a hint instruction. It causes an event to be signaled to the CPU. - */ -__attribute__( ( always_inline ) ) static __INLINE void __SEV(void) -{ - __ASM volatile ("sev"); -} - - -/** \brief Instruction Synchronization Barrier - - Instruction Synchronization Barrier flushes the pipeline in the processor, - so that all instructions following the ISB are fetched from cache or - memory, after the instruction has been completed. - */ -__attribute__( ( always_inline ) ) static __INLINE void __ISB(void) -{ - __ASM volatile ("isb"); -} - - -/** \brief Data Synchronization Barrier - - This function acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -__attribute__( ( always_inline ) ) static __INLINE void __DSB(void) -{ - __ASM volatile ("dsb"); -} - - -/** \brief Data Memory Barrier - - This function ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -__attribute__( ( always_inline ) ) static __INLINE void __DMB(void) -{ - __ASM volatile ("dmb"); -} - - -/** \brief Reverse byte order (32 bit) - - This function reverses the byte order in integer value. - - \param [in] value Value to reverse - \return Reversed value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __REV(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - - -/** \brief Reverse byte order (16 bit) - - This function reverses the byte order in two unsigned short values. - - \param [in] value Value to reverse - \return Reversed value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __REV16(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - - -/** \brief Reverse byte order in signed short value - - This function reverses the byte order in a signed short value with sign extension to integer. - - \param [in] value Value to reverse - \return Reversed value - */ -__attribute__( ( always_inline ) ) static __INLINE int32_t __REVSH(int32_t value) -{ - uint32_t result; - - __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - - -#if (__CORTEX_M >= 0x03) - -/** \brief Reverse bit order of value - - This function reverses the bit order of the given value. - - \param [in] value Value to reverse - \return Reversed value - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __RBIT(uint32_t value) -{ - uint32_t result; - - __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - - -/** \brief LDR Exclusive (8 bit) - - This function performs a exclusive LDR command for 8 bit value. - - \param [in] ptr Pointer to data - \return value of type uint8_t at (*ptr) - */ -__attribute__( ( always_inline ) ) static __INLINE uint8_t __LDREXB(volatile uint8_t *addr) -{ - uint8_t result; - - __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - - -/** \brief LDR Exclusive (16 bit) - - This function performs a exclusive LDR command for 16 bit values. - - \param [in] ptr Pointer to data - \return value of type uint16_t at (*ptr) - */ -__attribute__( ( always_inline ) ) static __INLINE uint16_t __LDREXH(volatile uint16_t *addr) -{ - uint16_t result; - - __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - - -/** \brief LDR Exclusive (32 bit) - - This function performs a exclusive LDR command for 32 bit values. - - \param [in] ptr Pointer to data - \return value of type uint32_t at (*ptr) - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __LDREXW(volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) ); - return(result); -} - - -/** \brief STR Exclusive (8 bit) - - This function performs a exclusive STR command for 8 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - - -/** \brief STR Exclusive (16 bit) - - This function performs a exclusive STR command for 16 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) -{ - uint32_t result; - - __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - - -/** \brief STR Exclusive (32 bit) - - This function performs a exclusive STR command for 32 bit values. - - \param [in] value Value to store - \param [in] ptr Pointer to location - \return 0 Function succeeded - \return 1 Function failed - */ -__attribute__( ( always_inline ) ) static __INLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) -{ - uint32_t result; - - __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); - return(result); -} - - -/** \brief Remove the exclusive lock - - This function removes the exclusive lock which is created by LDREX. - - */ -__attribute__( ( always_inline ) ) static __INLINE void __CLREX(void) -{ - __ASM volatile ("clrex"); -} - - -/** \brief Signed Saturate - - This function saturates a signed value. - - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (1..32) - \return Saturated value - */ -#define __SSAT(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** \brief Unsigned Saturate - - This function saturates an unsigned value. - - \param [in] value Value to be saturated - \param [in] sat Bit position to saturate to (0..31) - \return Saturated value - */ -#define __USAT(ARG1,ARG2) \ -({ \ - uint32_t __RES, __ARG1 = (ARG1); \ - __ASM ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) ); \ - __RES; \ - }) - - -/** \brief Count leading zeros - - This function counts the number of leading zeros of a data value. - - \param [in] value Value to count the leading zeros - \return number of leading zeros in value - */ -__attribute__( ( always_inline ) ) static __INLINE uint8_t __CLZ(uint32_t value) -{ - uint8_t result; - - __ASM volatile ("clz %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -#endif /* (__CORTEX_M >= 0x03) */ - - - - -#elif (defined (__TASKING__)) /*--------------- TASKING Compiler -----------------*/ -/* TASKING carm specific functions */ - -/* - * The CMSIS functions have been implemented as intrinsics in the compiler. - * Please use "carm -?i" to get an up to date list of all instrinsics, - * Including the CMSIS ones. - */ - -#endif - -/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ - -#endif /* __CORE_CMINSTR_H__ */ diff --git a/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h b/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h deleted file mode 100644 index e58767e..0000000 --- a/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************//** - * @file system_LPC17xx.h - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Header File - * for the NXP LPC17xx Device Series - * @version V1.02 - * @date 08. September 2009 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - - -#ifndef __SYSTEM_LPC17xx_H -#define __SYSTEM_LPC17xx_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <stdint.h> - -extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ - - -/** - * Initialize the system - * - * @param none - * @return none - * - * @brief Setup the microcontroller system. - * Initialize the System and update the SystemCoreClock variable. - */ -extern void SystemInit (void); - -/** - * Update SystemCoreClock variable - * - * @param none - * @return none - * - * @brief Updates the SystemCoreClock with current core Clock - * retrieved from cpu registers. - */ -extern void SystemCoreClockUpdate (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __SYSTEM_LPC17xx_H */ diff --git a/CMSISv2p00_LPC17xx/src/core_cm3.c b/CMSISv2p00_LPC17xx/src/core_cm3.c deleted file mode 100644 index fd052ce..0000000 --- a/CMSISv2p00_LPC17xx/src/core_cm3.c +++ /dev/null @@ -1,339 +0,0 @@ -/**************************************************************************//** - * @file core_cm3.c - * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Source File - * @version V2.00 - * @date 13. September 2010 - * - * @note - * Copyright (C) 2009-2010 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - -#include <stdint.h> - -/* define compiler specific symbols */ -#if defined ( __CC_ARM ) - #define __ASM __asm /*!< asm keyword for ARM Compiler */ - #define __INLINE __inline /*!< inline keyword for ARM Compiler */ - -#elif defined ( __ICCARM__ ) - #define __ASM __asm /*!< asm keyword for IAR Compiler */ - #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ - -#elif defined ( __GNUC__ ) - #define __ASM __asm /*!< asm keyword for GNU Compiler */ - #define __INLINE inline /*!< inline keyword for GNU Compiler */ - -#elif defined ( __TASKING__ ) - #define __ASM __asm /*!< asm keyword for TASKING Compiler */ - #define __INLINE inline /*!< inline keyword for TASKING Compiler */ - -#endif - - -/* ########################## Core Instruction Access ######################### */ - -#if defined ( __CC_ARM ) /*------------------ RealView Compiler ----------------*/ - -/** \brief Reverse byte order (16 bit) - - This function reverses the byte order in two unsigned short values. - - \param [in] value Value to reverse - \return Reversed value - */ -#if (__ARMCC_VERSION < 400677) -__ASM uint32_t __REV16(uint32_t value) -{ - rev16 r0, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Reverse byte order in signed short value - - This function reverses the byte order in a signed short value with sign extension to integer. - - \param [in] value Value to reverse - \return Reversed value - */ -#if (__ARMCC_VERSION < 400677) -__ASM int32_t __REVSH(int32_t value) -{ - revsh r0, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Remove the exclusive lock - - This function removes the exclusive lock which is created by LDREX. - - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __CLREX(void) -{ - clrex -} -#endif /* __ARMCC_VERSION */ - - -#elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/ -/* obsolete */ -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* obsolete */ -#elif (defined (__TASKING__)) /*--------------- TASKING Compiler -----------------*/ -/* obsolete */ -#endif - - -/* ########################### Core Function Access ########################### */ - -#if defined ( __CC_ARM ) /*------------------ RealView Compiler ----------------*/ - -/** \brief Get Control Register - - This function returns the content of the Control Register. - - \return Control Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_CONTROL(void) -{ - mrs r0, control - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Control Register - - This function writes the given value to the Control Register. - - \param [in] control Control Register value to set - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_CONTROL(uint32_t control) -{ - msr control, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get ISPR Register - - This function returns the content of the ISPR Register. - - \return ISPR Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_IPSR(void) -{ - mrs r0, ipsr - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get APSR Register - - This function returns the content of the APSR Register. - - \return APSR Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_APSR(void) -{ - mrs r0, apsr - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get xPSR Register - - This function returns the content of the xPSR Register. - - \return xPSR Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_xPSR(void) -{ - mrs r0, xpsr - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Process Stack Pointer - - This function returns the current value of the Process Stack Pointer (PSP). - - \return PSP Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_PSP(void) -{ - mrs r0, psp - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Process Stack Pointer - - This function assigns the given value to the Process Stack Pointer (PSP). - - \param [in] topOfProcStack Process Stack Pointer value to set - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_PSP(uint32_t topOfProcStack) -{ - msr psp, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Main Stack Pointer - - This function returns the current value of the Main Stack Pointer (MSP). - - \return MSP Register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_MSP(void) -{ - mrs r0, msp - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Main Stack Pointer - - This function assigns the given value to the Main Stack Pointer (MSP). - - \param [in] topOfMainStack Main Stack Pointer value to set - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_MSP(uint32_t mainStackPointer) -{ - msr msp, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Base Priority - - This function returns the current value of the Base Priority register. - - \return Base Priority register value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_BASEPRI(void) -{ - mrs r0, basepri - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Base Priority - - This function assigns the given value to the Base Priority register. - - \param [in] basePri Base Priority value to set - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_BASEPRI(uint32_t basePri) -{ - msr basepri, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - -/** \brief Get Priority Mask - - This function returns the current state of the priority mask bit from the Priority Mask Register. - - \return Priority Mask value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_PRIMASK(void) -{ - mrs r0, primask - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set Priority Mask - - This function assigns the given value to the Priority Mask Register. - - \param [in] priMask Priority Mask - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_PRIMASK(uint32_t priMask) -{ - msr primask, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Get Fault Mask - - This function returns the current value of the Fault Mask Register. - - \return Fault Mask value - */ -#if (__ARMCC_VERSION < 400000) -__ASM uint32_t __get_FAULTMASK(void) -{ - mrs r0, faultmask - bx lr -} -#endif /* __ARMCC_VERSION */ - - -/** \brief Set the Fault Mask - - This function assigns the given value to the Fault Mask Register. - - \param [in] faultMask Fault Mask value value to set - */ -#if (__ARMCC_VERSION < 400000) -__ASM void __set_FAULTMASK(uint32_t faultMask) -{ - msr faultmask, r0 - bx lr -} -#endif /* __ARMCC_VERSION */ - - - -#elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/ -/* obsolete */ -#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ -/* obsolete */ -#elif (defined (__TASKING__)) /*--------------- TASKING Compiler -----------------*/ -/* obsolete */ -#endif diff --git a/CMSISv2p00_LPC17xx/src/system_LPC17xx.c b/CMSISv2p00_LPC17xx/src/system_LPC17xx.c deleted file mode 100644 index b9d674a..0000000 --- a/CMSISv2p00_LPC17xx/src/system_LPC17xx.c +++ /dev/null @@ -1,532 +0,0 @@ -/**************************************************************************//** - * @file system_LPC17xx.c - * @brief CMSIS Cortex-M3 Device Peripheral Access Layer Source File - * for the NXP LPC17xx Device Series - * @version V1.08 - * @date 12. May 2010 - * - * @note - * Copyright (C) 2009 ARM Limited. All rights reserved. - * - * @par - * ARM Limited (ARM) is supplying this software for use with Cortex-M - * processor based microcontrollers. This file can be freely distributed - * within development tools that are supporting such ARM based processors. - * - * @par - * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED - * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. - * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. - * - ******************************************************************************/ - - -#include <stdint.h> -#include "LPC17xx.h" - -/* -//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ -*/ - -/*--------------------- Clock Configuration ---------------------------------- -// -// <e> Clock Configuration -// <h> System Controls and Status Register (SCS) -// <o1.4> OSCRANGE: Main Oscillator Range Select -// <0=> 1 MHz to 20 MHz -// <1=> 15 MHz to 24 MHz -// <e1.5> OSCEN: Main Oscillator Enable -// </e> -// </h> -// -// <h> Clock Source Select Register (CLKSRCSEL) -// <o2.0..1> CLKSRC: PLL Clock Source Selection -// <0=> Internal RC oscillator -// <1=> Main oscillator -// <2=> RTC oscillator -// </h> -// -// <e3> PLL0 Configuration (Main PLL) -// <h> PLL0 Configuration Register (PLL0CFG) -// <i> F_cco0 = (2 * M * F_in) / N -// <i> F_in must be in the range of 32 kHz to 50 MHz -// <i> F_cco0 must be in the range of 275 MHz to 550 MHz -// <o4.0..14> MSEL: PLL Multiplier Selection -// <6-32768><#-1> -// <i> M Value -// <o4.16..23> NSEL: PLL Divider Selection -// <1-256><#-1> -// <i> N Value -// </h> -// </e> -// -// <e5> PLL1 Configuration (USB PLL) -// <h> PLL1 Configuration Register (PLL1CFG) -// <i> F_usb = M * F_osc or F_usb = F_cco1 / (2 * P) -// <i> F_cco1 = F_osc * M * 2 * P -// <i> F_cco1 must be in the range of 156 MHz to 320 MHz -// <o6.0..4> MSEL: PLL Multiplier Selection -// <1-32><#-1> -// <i> M Value (for USB maximum value is 4) -// <o6.5..6> PSEL: PLL Divider Selection -// <0=> 1 -// <1=> 2 -// <2=> 4 -// <3=> 8 -// <i> P Value -// </h> -// </e> -// -// <h> CPU Clock Configuration Register (CCLKCFG) -// <o7.0..7> CCLKSEL: Divide Value for CPU Clock from PLL0 -// <1-256><#-1> -// </h> -// -// <h> USB Clock Configuration Register (USBCLKCFG) -// <o8.0..3> USBSEL: Divide Value for USB Clock from PLL0 -// <0-15> -// <i> Divide is USBSEL + 1 -// </h> -// -// <h> Peripheral Clock Selection Register 0 (PCLKSEL0) -// <o9.0..1> PCLK_WDT: Peripheral Clock Selection for WDT -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.2..3> PCLK_TIMER0: Peripheral Clock Selection for TIMER0 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.4..5> PCLK_TIMER1: Peripheral Clock Selection for TIMER1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.6..7> PCLK_UART0: Peripheral Clock Selection for UART0 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.8..9> PCLK_UART1: Peripheral Clock Selection for UART1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.12..13> PCLK_PWM1: Peripheral Clock Selection for PWM1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.14..15> PCLK_I2C0: Peripheral Clock Selection for I2C0 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.16..17> PCLK_SPI: Peripheral Clock Selection for SPI -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.20..21> PCLK_SSP1: Peripheral Clock Selection for SSP1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.22..23> PCLK_DAC: Peripheral Clock Selection for DAC -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.24..25> PCLK_ADC: Peripheral Clock Selection for ADC -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o9.26..27> PCLK_CAN1: Peripheral Clock Selection for CAN1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 6 -// <o9.28..29> PCLK_CAN2: Peripheral Clock Selection for CAN2 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 6 -// <o9.30..31> PCLK_ACF: Peripheral Clock Selection for ACF -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 6 -// </h> -// -// <h> Peripheral Clock Selection Register 1 (PCLKSEL1) -// <o10.0..1> PCLK_QEI: Peripheral Clock Selection for the Quadrature Encoder Interface -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.2..3> PCLK_GPIO: Peripheral Clock Selection for GPIOs -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.4..5> PCLK_PCB: Peripheral Clock Selection for the Pin Connect Block -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.6..7> PCLK_I2C1: Peripheral Clock Selection for I2C1 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.10..11> PCLK_SSP0: Peripheral Clock Selection for SSP0 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.12..13> PCLK_TIMER2: Peripheral Clock Selection for TIMER2 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.14..15> PCLK_TIMER3: Peripheral Clock Selection for TIMER3 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.16..17> PCLK_UART2: Peripheral Clock Selection for UART2 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.18..19> PCLK_UART3: Peripheral Clock Selection for UART3 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.20..21> PCLK_I2C2: Peripheral Clock Selection for I2C2 -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.22..23> PCLK_I2S: Peripheral Clock Selection for I2S -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.26..27> PCLK_RIT: Peripheral Clock Selection for the Repetitive Interrupt Timer -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.28..29> PCLK_SYSCON: Peripheral Clock Selection for the System Control Block -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// <o10.30..31> PCLK_MC: Peripheral Clock Selection for the Motor Control PWM -// <0=> Pclk = Cclk / 4 -// <1=> Pclk = Cclk -// <2=> Pclk = Cclk / 2 -// <3=> Pclk = Hclk / 8 -// </h> -// -// <h> Power Control for Peripherals Register (PCONP) -// <o11.1> PCTIM0: Timer/Counter 0 power/clock enable -// <o11.2> PCTIM1: Timer/Counter 1 power/clock enable -// <o11.3> PCUART0: UART 0 power/clock enable -// <o11.4> PCUART1: UART 1 power/clock enable -// <o11.6> PCPWM1: PWM 1 power/clock enable -// <o11.7> PCI2C0: I2C interface 0 power/clock enable -// <o11.8> PCSPI: SPI interface power/clock enable -// <o11.9> PCRTC: RTC power/clock enable -// <o11.10> PCSSP1: SSP interface 1 power/clock enable -// <o11.12> PCAD: A/D converter power/clock enable -// <o11.13> PCCAN1: CAN controller 1 power/clock enable -// <o11.14> PCCAN2: CAN controller 2 power/clock enable -// <o11.15> PCGPIO: GPIOs power/clock enable -// <o11.16> PCRIT: Repetitive interrupt timer power/clock enable -// <o11.17> PCMC: Motor control PWM power/clock enable -// <o11.18> PCQEI: Quadrature encoder interface power/clock enable -// <o11.19> PCI2C1: I2C interface 1 power/clock enable -// <o11.21> PCSSP0: SSP interface 0 power/clock enable -// <o11.22> PCTIM2: Timer 2 power/clock enable -// <o11.23> PCTIM3: Timer 3 power/clock enable -// <o11.24> PCUART2: UART 2 power/clock enable -// <o11.25> PCUART3: UART 3 power/clock enable -// <o11.26> PCI2C2: I2C interface 2 power/clock enable -// <o11.27> PCI2S: I2S interface power/clock enable -// <o11.29> PCGPDMA: GP DMA function power/clock enable -// <o11.30> PCENET: Ethernet block power/clock enable -// <o11.31> PCUSB: USB interface power/clock enable -// </h> -// -// <h> Clock Output Configuration Register (CLKOUTCFG) -// <o12.0..3> CLKOUTSEL: Selects clock source for CLKOUT -// <0=> CPU clock -// <1=> Main oscillator -// <2=> Internal RC oscillator -// <3=> USB clock -// <4=> RTC oscillator -// <o12.4..7> CLKOUTDIV: Selects clock divider for CLKOUT -// <1-16><#-1> -// <o12.8> CLKOUT_EN: CLKOUT enable control -// </h> -// -// </e> -*/ -#define CLOCK_SETUP 1 -#define SCS_Val 0x00000020 -#define CLKSRCSEL_Val 0x00000001 -#define PLL0_SETUP 1 -#define PLL0CFG_Val 0x00050063 -#define PLL1_SETUP 1 -#define PLL1CFG_Val 0x00000023 -#define CCLKCFG_Val 0x00000003 -#define USBCLKCFG_Val 0x00000000 -#define PCLKSEL0_Val 0x00000000 -#define PCLKSEL1_Val 0x00000000 -#define PCONP_Val 0x042887DE -#define CLKOUTCFG_Val 0x00000000 - - -/*--------------------- Flash Accelerator Configuration ---------------------- -// -// <e> Flash Accelerator Configuration -// <o1.12..15> FLASHTIM: Flash Access Time -// <0=> 1 CPU clock (for CPU clock up to 20 MHz) -// <1=> 2 CPU clocks (for CPU clock up to 40 MHz) -// <2=> 3 CPU clocks (for CPU clock up to 60 MHz) -// <3=> 4 CPU clocks (for CPU clock up to 80 MHz) -// <4=> 5 CPU clocks (for CPU clock up to 100 MHz) -// <5=> 6 CPU clocks (for any CPU clock) -// </e> -*/ -#define FLASH_SETUP 1 -#define FLASHCFG_Val 0x00004000 - -/* -//-------- <<< end of configuration section >>> ------------------------------ -*/ - -/*---------------------------------------------------------------------------- - Check the register settings - *----------------------------------------------------------------------------*/ -#define CHECK_RANGE(val, min, max) ((val < min) || (val > max)) -#define CHECK_RSVD(val, mask) (val & mask) - -/* Clock Configuration -------------------------------------------------------*/ -#if (CHECK_RSVD((SCS_Val), ~0x00000030)) - #error "SCS: Invalid values of reserved bits!" -#endif - -#if (CHECK_RANGE((CLKSRCSEL_Val), 0, 2)) - #error "CLKSRCSEL: Value out of range!" -#endif - -#if (CHECK_RSVD((PLL0CFG_Val), ~0x00FF7FFF)) - #error "PLL0CFG: Invalid values of reserved bits!" -#endif - -#if (CHECK_RSVD((PLL1CFG_Val), ~0x0000007F)) - #error "PLL1CFG: Invalid values of reserved bits!" -#endif - -#if (PLL0_SETUP) /* if PLL0 is used */ - #if (CCLKCFG_Val < 2) /* CCLKSEL must be greater then 1 */ - #error "CCLKCFG: CCLKSEL must be greater then 1 if PLL0 is used!" - #endif -#endif - -#if (CHECK_RANGE((CCLKCFG_Val), 2, 255)) - #error "CCLKCFG: Value out of range!" -#endif - -#if (CHECK_RSVD((USBCLKCFG_Val), ~0x0000000F)) - #error "USBCLKCFG: Invalid values of reserved bits!" -#endif - -#if (CHECK_RSVD((PCLKSEL0_Val), 0x000C0C00)) - #error "PCLKSEL0: Invalid values of reserved bits!" -#endif - -#if (CHECK_RSVD((PCLKSEL1_Val), 0x03000300)) - #error "PCLKSEL1: Invalid values of reserved bits!" -#endif - -#if (CHECK_RSVD((PCONP_Val), 0x10100821)) - #error "PCONP: Invalid values of reserved bits!" -#endif - -#if (CHECK_RSVD((CLKOUTCFG_Val), ~0x000001FF)) - #error "CLKOUTCFG: Invalid values of reserved bits!" -#endif - -/* Flash Accelerator Configuration -------------------------------------------*/ -#if (CHECK_RSVD((FLASHCFG_Val), ~0x0000F000)) - #error "FLASHCFG: Invalid values of reserved bits!" -#endif - - -/*---------------------------------------------------------------------------- - DEFINES - *----------------------------------------------------------------------------*/ - -/*---------------------------------------------------------------------------- - Define clocks - *----------------------------------------------------------------------------*/ -#define XTAL (12000000UL) /* Oscillator frequency */ -#define OSC_CLK ( XTAL) /* Main oscillator frequency */ -#define RTC_CLK ( 32000UL) /* RTC oscillator frequency */ -#define IRC_OSC ( 4000000UL) /* Internal RC oscillator frequency */ - - -/* F_cco0 = (2 * M * F_in) / N */ -#define __M (((PLL0CFG_Val ) & 0x7FFF) + 1) -#define __N (((PLL0CFG_Val >> 16) & 0x00FF) + 1) -#define __FCCO(__F_IN) ((2ULL * __M * __F_IN) / __N) -#define __CCLK_DIV (((CCLKCFG_Val ) & 0x00FF) + 1) - -/* Determine core clock frequency according to settings */ - #if (PLL0_SETUP) - #if ((CLKSRCSEL_Val & 0x03) == 1) - #define __CORE_CLK (__FCCO(OSC_CLK) / __CCLK_DIV) - #elif ((CLKSRCSEL_Val & 0x03) == 2) - #define __CORE_CLK (__FCCO(RTC_CLK) / __CCLK_DIV) - #else - #define __CORE_CLK (__FCCO(IRC_OSC) / __CCLK_DIV) - #endif - #else - #if ((CLKSRCSEL_Val & 0x03) == 1) - #define __CORE_CLK (OSC_CLK / __CCLK_DIV) - #elif ((CLKSRCSEL_Val & 0x03) == 2) - #define __CORE_CLK (RTC_CLK / __CCLK_DIV) - #else - #define __CORE_CLK (IRC_OSC / __CCLK_DIV) - #endif - #endif - - -/*---------------------------------------------------------------------------- - Clock Variable definitions - *----------------------------------------------------------------------------*/ -uint32_t SystemCoreClock = __CORE_CLK;/*!< System Clock Frequency (Core Clock)*/ - - -/*---------------------------------------------------------------------------- - Clock functions - *----------------------------------------------------------------------------*/ -void SystemCoreClockUpdate (void) /* Get Core Clock Frequency */ -{ - /* Determine clock frequency according to clock register values */ - if (((LPC_SC->PLL0STAT >> 24) & 3) == 3) { /* If PLL0 enabled and connected */ - switch (LPC_SC->CLKSRCSEL & 0x03) { - case 0: /* Int. RC oscillator => PLL0 */ - case 3: /* Reserved, default to Int. RC */ - SystemCoreClock = (IRC_OSC * - ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) / - (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) / - ((LPC_SC->CCLKCFG & 0xFF)+ 1)); - break; - case 1: /* Main oscillator => PLL0 */ - SystemCoreClock = (OSC_CLK * - ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) / - (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) / - ((LPC_SC->CCLKCFG & 0xFF)+ 1)); - break; - case 2: /* RTC oscillator => PLL0 */ - SystemCoreClock = (RTC_CLK * - ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) / - (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) / - ((LPC_SC->CCLKCFG & 0xFF)+ 1)); - break; - } - } else { - switch (LPC_SC->CLKSRCSEL & 0x03) { - case 0: /* Int. RC oscillator => PLL0 */ - case 3: /* Reserved, default to Int. RC */ - SystemCoreClock = IRC_OSC / ((LPC_SC->CCLKCFG & 0xFF)+ 1); - break; - case 1: /* Main oscillator => PLL0 */ - SystemCoreClock = OSC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1); - break; - case 2: /* RTC oscillator => PLL0 */ - SystemCoreClock = RTC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1); - break; - } - } - -} - -/** - * Initialize the system - * - * @param none - * @return none - * - * @brief Setup the microcontroller system. - * Initialize the System. - */ -void SystemInit (void) -{ -#if (CLOCK_SETUP) /* Clock Setup */ - LPC_SC->SCS = SCS_Val; - if (SCS_Val & (1 << 5)) { /* If Main Oscillator is enabled */ - while ((LPC_SC->SCS & (1<<6)) == 0);/* Wait for Oscillator to be ready */ - } - - LPC_SC->CCLKCFG = CCLKCFG_Val; /* Setup Clock Divider */ - - LPC_SC->PCLKSEL0 = PCLKSEL0_Val; /* Peripheral Clock Selection */ - LPC_SC->PCLKSEL1 = PCLKSEL1_Val; - - LPC_SC->CLKSRCSEL = CLKSRCSEL_Val; /* Select Clock Source for PLL0 */ - -#if (PLL0_SETUP) - LPC_SC->PLL0CFG = PLL0CFG_Val; /* configure PLL0 */ - LPC_SC->PLL0FEED = 0xAA; - LPC_SC->PLL0FEED = 0x55; - - LPC_SC->PLL0CON = 0x01; /* PLL0 Enable */ - LPC_SC->PLL0FEED = 0xAA; - LPC_SC->PLL0FEED = 0x55; - while (!(LPC_SC->PLL0STAT & (1<<26)));/* Wait for PLOCK0 */ - - LPC_SC->PLL0CON = 0x03; /* PLL0 Enable & Connect */ - LPC_SC->PLL0FEED = 0xAA; - LPC_SC->PLL0FEED = 0x55; - while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24))));/* Wait for PLLC0_STAT & PLLE0_STAT */ -#endif - -#if (PLL1_SETUP) - LPC_SC->PLL1CFG = PLL1CFG_Val; - LPC_SC->PLL1FEED = 0xAA; - LPC_SC->PLL1FEED = 0x55; - - LPC_SC->PLL1CON = 0x01; /* PLL1 Enable */ - LPC_SC->PLL1FEED = 0xAA; - LPC_SC->PLL1FEED = 0x55; - while (!(LPC_SC->PLL1STAT & (1<<10)));/* Wait for PLOCK1 */ - - LPC_SC->PLL1CON = 0x03; /* PLL1 Enable & Connect */ - LPC_SC->PLL1FEED = 0xAA; - LPC_SC->PLL1FEED = 0x55; - while (!(LPC_SC->PLL1STAT & ((1<< 9) | (1<< 8))));/* Wait for PLLC1_STAT & PLLE1_STAT */ -#else - LPC_SC->USBCLKCFG = USBCLKCFG_Val; /* Setup USB Clock Divider */ -#endif - - LPC_SC->PCONP = PCONP_Val; /* Power Control for Peripherals */ - - LPC_SC->CLKOUTCFG = CLKOUTCFG_Val; /* Clock Output Configuration */ -#endif - -#if (FLASH_SETUP == 1) /* Flash Accelerator Setup */ - LPC_SC->FLASHCFG = (LPC_SC->FLASHCFG & ~0x0000F000) | FLASHCFG_Val; -#endif -} diff --git a/FreeRTOSWithTraces/.cproject b/FreeRTOSWithTraces/.cproject deleted file mode 100644 index cbf2417..0000000 --- a/FreeRTOSWithTraces/.cproject +++ /dev/null @@ -1,258 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> - <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="com.crt.advproject.config.exe.debug.2001608576"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.2001608576" moduleId="org.eclipse.cdt.core.settings" name="Debug"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Debug build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.debug.2001608576" name="Debug" parent="com.crt.advproject.config.exe.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; "> - <folderInfo id="com.crt.advproject.config.exe.debug.2001608576." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.exe.debug.720468766" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.debug"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.debug.61849875" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/serie_4_ex_1}/Debug" id="com.crt.advproject.builder.exe.debug.1265613075" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/> - <tool id="com.crt.advproject.cpp.exe.debug.1414174243" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug"/> - <tool id="com.crt.advproject.gcc.exe.debug.90655892" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug"> - <option id="com.crt.advproject.gcc.arch.823355763" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.542341241" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.gcc.hdrlib.684839280" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" value="com.crt.advproject.gcc.hdrlib.codered" valueType="enumerated"/> - <option id="gnu.c.compiler.option.preprocessor.def.symbols.567824786" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__USE_CMSIS"/> - <listOptionValue builtIn="false" value="DEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="PACK_STRUCT_END=__attribute\(\(packed\)\)"/> - <listOptionValue builtIn="false" value="GCC_ARMCM3"/> - <listOptionValue builtIn="false" value="__REDLIB__"/> - </option> - <option id="gnu.c.compiler.option.misc.other.1484903452" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.2069546710" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level"/> - <option id="gnu.c.compiler.option.include.paths.1921036710" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> - <listOptionValue builtIn="false" value="../src"/> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/inc}""/> - <listOptionValue builtIn="false" value="../FreeRTOS_include"/> - <listOptionValue builtIn="false" value="../FreeRTOS_portable"/> - </option> - <option id="com.crt.advproject.gcc.specs.110467693" name="Specs" superClass="com.crt.advproject.gcc.specs" value="com.crt.advproject.gcc.specs.codered" valueType="enumerated"/> - <inputType id="com.crt.advproject.compiler.input.1722447288" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.exe.debug.1323960667" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug"> - <option id="com.crt.advproject.gas.arch.1719694346" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.382847383" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.343580234" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -DDEBUG -D__CODE_RED -D__REDLIB__" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.55138212" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.codered" valueType="enumerated"/> - <option id="com.crt.advproject.gas.specs.1333481962" name="Specs" superClass="com.crt.advproject.gas.specs" value="com.crt.advproject.gas.specs.codered" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1720942523" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.971579368" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.debug.1214392321" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug"/> - <tool id="com.crt.advproject.link.exe.debug.900018139" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"> - <option id="com.crt.advproject.link.arch.36947921" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.1782895577" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.491221921" name="Linker script" superClass="com.crt.advproject.link.script" value=""FreeRTOSWithTraces_Debug.ld"" valueType="string"/> - <option id="com.crt.advproject.link.manage.310318587" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.216429343" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.other.1948342963" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.1527884937" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.codered.semihost" valueType="enumerated"/> - <option id="com.crt.advproject.link.gcc.multicore.slave.1855381409" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> - <option id="gnu.c.link.option.libs.1086376640" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> - <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> - <listOptionValue builtIn="false" value="MyLab_lib"/> - </option> - <option id="gnu.c.link.option.paths.624990467" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Debug}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Debug}""/> - </option> - <option id="com.crt.advproject.link.gcc.multicore.master.userobjs.292644195" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1151901998" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_include"/> - <entry excluding="MemMang/heap_3.c|MemMang/heap_1.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_portable"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_src"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - <cconfiguration id="com.crt.advproject.config.exe.release.1510040367"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.1510040367" moduleId="org.eclipse.cdt.core.settings" name="Release"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Release build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.release.1510040367" name="Release" parent="com.crt.advproject.config.exe.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; "> - <folderInfo id="com.crt.advproject.config.exe.release.1510040367." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.exe.release.1837373593" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release.279785975" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/> - <builder buildPath="${workspace_loc:/serie_4_ex_1}/Release" id="com.crt.advproject.builder.exe.release.931271344" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/> - <tool id="com.crt.advproject.cpp.exe.release.1812467124" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release"/> - <tool id="com.crt.advproject.gcc.exe.release.1491571806" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release"> - <option id="com.crt.advproject.gcc.arch.860929261" name="Architecture" superClass="com.crt.advproject.gcc.arch" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.1997373441" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.gcc.hdrlib.819178239" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" value="com.crt.advproject.gcc.hdrlib.newlib" valueType="enumerated"/> - <option id="gnu.c.compiler.option.preprocessor.def.symbols.72747489" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__NEWLIB__"/> - <listOptionValue builtIn="false" value="NDEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="PACK_STRUCT_END=__attribute\(\(packed\)\)"/> - <listOptionValue builtIn="false" value="GCC_ARMCM3"/> - </option> - <option id="gnu.c.compiler.option.misc.other.1043060195" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.exe.release.option.optimization.level.1835315964" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level"/> - <option id="gnu.c.compiler.option.include.paths.2029946574" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> - <listOptionValue builtIn="false" value="../src"/> - <listOptionValue builtIn="false" value="../FreeRTOS_include"/> - <listOptionValue builtIn="false" value="../FreeRTOS_portable"/> - </option> - <option id="com.crt.advproject.gcc.specs.1699789425" name="Specs" superClass="com.crt.advproject.gcc.specs" value="com.crt.advproject.gcc.specs.newlib" valueType="enumerated"/> - <inputType id="com.crt.advproject.compiler.input.1317448040" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.exe.release.1707433449" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release"> - <option id="com.crt.advproject.gas.arch.1102722770" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.2031357681" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.561780142" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__NEWLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.2096175584" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.newlib" valueType="enumerated"/> - <option id="com.crt.advproject.gas.specs.1990287015" name="Specs" superClass="com.crt.advproject.gas.specs" value="com.crt.advproject.gas.specs.newlib" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1215629078" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.1244750814" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.release.428857389" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release"/> - <tool id="com.crt.advproject.link.exe.release.1912019191" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"> - <option id="com.crt.advproject.link.arch.1072922891" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.2110168930" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.36061435" name="Linker script" superClass="com.crt.advproject.link.script" value=""FreeRTOSWithTraces_Release.ld"" valueType="string"/> - <option id="com.crt.advproject.link.manage.2017234677" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.750747626" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.other.1060901110" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.252330214" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.newlib.none" valueType="enumerated"/> - <option id="com.crt.advproject.link.gcc.multicore.master.userobjs.436075629" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1299321118" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_include"/> - <entry excluding="MemMang/heap_3.c|MemMang/heap_1.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_portable"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_src"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <project id="serie_4_ex_1.com.crt.advproject.projecttype.exe.1260828544" name="Executable" projectType="com.crt.advproject.projecttype.exe"/> - </storageModule> - <storageModule moduleId="scannerConfiguration"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> - <storageModule moduleId="com.crt.config"> - <projectStorage><?xml version="1.0" encoding="UTF-8"?> -<TargetConfig> -<Properties property_0="" property_2="LPC175x_6x_512.cfx" property_3="NXP" property_4="LPC1769" property_count="5" version="70200"/> -<infoList vendor="NXP"><info chip="LPC1769" flash_driver="LPC175x_6x_512.cfx" match_id="0x26113F37" name="LPC1769" package="lpc17_lqfp100.xml" stub="crt_emu_cm3_nxp"><chip><name>LPC1769</name> -<family>LPC17xx</family> -<vendor>NXP (formerly Philips)</vendor> -<reset board="None" core="Real" sys="Real"/> -<clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/> -<memory can_program="true" id="Flash" is_ro="true" type="Flash"/> -<memory id="RAM" type="RAM"/> -<memory id="Periph" is_volatile="true" type="Peripheral"/> -<memoryInstance derived_from="Flash" id="MFlash512" location="0x00000000" size="0x80000"/> -<memoryInstance derived_from="RAM" id="RamLoc32" location="0x10000000" size="0x8000"/> -<memoryInstance derived_from="RAM" id="RamAHB32" location="0x2007c000" size="0x8000"/> -<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x1000" progwithcode="TRUE" size="0x10000"/> -<prog_flash blocksz="0x8000" location="0x10000" maxprgbuff="0x1000" progwithcode="TRUE" size="0x70000"/> -<peripheralInstance derived_from="LPC17_NVIC" determined="infoFile" id="NVIC" location="0xE000E000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM0&amp;0x1" id="TIMER0" location="0x40004000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM1&amp;0x1" id="TIMER1" location="0x40008000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM2&amp;0x1" id="TIMER2" location="0x40090000"/> -<peripheralInstance derived_from="TIMER" determined="infoFile" enable="SYSCTL.PCONP.PCTIM3&amp;0x1" id="TIMER3" location="0x40094000"/> -<peripheralInstance derived_from="LPC17_RIT" determined="infoFile" enable="SYSCTL.PCONP.PCRIT&amp;0x1" id="RIT" location="0x400B0000"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO0" location="0x2009C000"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO1" location="0x2009C020"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO2" location="0x2009C040"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO3" location="0x2009C060"/> -<peripheralInstance derived_from="FGPIO" determined="infoFile" enable="SYSCTL.PCONP.PCGPIO&amp;0x1" id="GPIO4" location="0x2009C080"/> -<peripheralInstance derived_from="LPC17_I2S" determined="infoFile" enable="SYSCTL.PCONP&amp;0x08000000" id="I2S" location="0x400A8000"/> -<peripheralInstance derived_from="LPC17_SYSCTL" determined="infoFile" id="SYSCTL" location="0x400FC000"/> -<peripheralInstance derived_from="LPC17_DAC" determined="infoFile" enable="PCB.PINSEL1.P0_26&amp;0x2=2" id="DAC" location="0x4008C000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART0&amp;0x1" id="UART0" location="0x4000C000"/> -<peripheralInstance derived_from="LPC17xx_UART_MODEM" determined="infoFile" enable="SYSCTL.PCONP.PCUART1&amp;0x1" id="UART1" location="0x40010000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART2&amp;0x1" id="UART2" location="0x40098000"/> -<peripheralInstance derived_from="LPC17xx_UART" determined="infoFile" enable="SYSCTL.PCONP.PCUART3&amp;0x1" id="UART3" location="0x4009C000"/> -<peripheralInstance derived_from="SPI" determined="infoFile" enable="SYSCTL.PCONP.PCSPI&amp;0x1" id="SPI" location="0x40020000"/> -<peripheralInstance derived_from="LPC17_SSP" determined="infoFile" enable="SYSCTL.PCONP.PCSSP0&amp;0x1" id="SSP0" location="0x40088000"/> -<peripheralInstance derived_from="LPC17_SSP" determined="infoFile" enable="SYSCTL.PCONP.PCSSP1&amp;0x1" id="SSP1" location="0x40030000"/> -<peripheralInstance derived_from="LPC17_ADC" determined="infoFile" enable="SYSCTL.PCONP.PCAD&amp;0x1" id="ADC" location="0x40034000"/> -<peripheralInstance derived_from="LPC17_USBINTST" determined="infoFile" enable="USBCLKCTL.USBClkCtrl&amp;0x12" id="USBINTSTAT" location="0x400fc1c0"/> -<peripheralInstance derived_from="LPC17_USB_CLK_CTL" determined="infoFile" id="USBCLKCTL" location="0x5000cff4"/> -<peripheralInstance derived_from="LPC17_USBDEV" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x12=0x12" id="USBDEV" location="0x5000C200"/> -<peripheralInstance derived_from="LPC17_PWM" determined="infoFile" enable="SYSCTL.PCONP.PWM1&amp;0x1" id="PWM" location="0x40018000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C0&amp;0x1" id="I2C0" location="0x4001C000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C1&amp;0x1" id="I2C1" location="0x4005C000"/> -<peripheralInstance derived_from="LPC17_I2C" determined="infoFile" enable="SYSCTL.PCONP.PCI2C2&amp;0x1" id="I2C2" location="0x400A0000"/> -<peripheralInstance derived_from="LPC17_DMA" determined="infoFile" enable="SYSCTL.PCONP.PCGPDMA&amp;0x1" id="DMA" location="0x50004000"/> -<peripheralInstance derived_from="LPC17_ENET" determined="infoFile" enable="SYSCTL.PCONP.PCENET&amp;0x1" id="ENET" location="0x50000000"/> -<peripheralInstance derived_from="CM3_DCR" determined="infoFile" id="DCR" location="0xE000EDF0"/> -<peripheralInstance derived_from="LPC17_PCB" determined="infoFile" id="PCB" location="0x4002c000"/> -<peripheralInstance derived_from="LPC17_QEI" determined="infoFile" enable="SYSCTL.PCONP.PCQEI&amp;0x1" id="QEI" location="0x400bc000"/> -<peripheralInstance derived_from="LPC17_USBHOST" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x11=0x11" id="USBHOST" location="0x5000C000"/> -<peripheralInstance derived_from="LPC17_USBOTG" determined="infoFile" enable="USBCLKCTL.USBClkSt&amp;0x1c=0x1c" id="USBOTG" location="0x5000C000"/> -<peripheralInstance derived_from="LPC17_RTC" determined="infoFile" enable="SYSCTL.PCONP.PCRTC&amp;0x1" id="RTC" location="0x40024000"/> -<peripheralInstance derived_from="MPU" determined="infoFile" id="MPU" location="0xE000ED90"/> -<peripheralInstance derived_from="LPC1x_WDT" determined="infoFile" id="WDT" location="0x40000000"/> -<peripheralInstance derived_from="LPC17_FLASHCFG" determined="infoFile" id="FLASHACCEL" location="0x400FC000"/> -<peripheralInstance derived_from="GPIO_INT" determined="infoFile" id="GPIOINTMAP" location="0x40028080"/> -<peripheralInstance derived_from="LPC17_CANAFR" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1|SYSCTL.PCONP.PCCAN2&amp;0x1" id="CANAFR" location="0x4003C000"/> -<peripheralInstance derived_from="LPC17_CANCEN" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1|SYSCTL.PCONP.PCCAN2&amp;0x1" id="CANCEN" location="0x40040000"/> -<peripheralInstance derived_from="LPC17_CANWAKESLEEP" determined="infoFile" id="CANWAKESLEEP" location="0x400FC110"/> -<peripheralInstance derived_from="LPC17_CANCON" determined="infoFile" enable="SYSCTL.PCONP.PCCAN1&amp;0x1" id="CANCON1" location="0x40044000"/> -<peripheralInstance derived_from="LPC17_CANCON" determined="infoFile" enable="SYSCTL.PCONP.PCCAN2&amp;0x1" id="CANCON2" location="0x40048000"/> -<peripheralInstance derived_from="LPC17_MCPWM" determined="infoFile" enable="SYSCTL.PCONP.PCMCPWM&amp;0x1" id="MCPWM" location="0x400B8000"/> -<peripheralInstance derived_from="LPC17_FMC" determined="infoFile" id="FMC" location="0x40084000"/> -</chip> -<processor><name gcc_name="cortex-m3">Cortex-M3</name> -<family>Cortex-M</family> -</processor> -<link href="nxp_lpcxxxx_peripheral.xme" show="embed" type="simple"/> -</info> -</infoList> -</TargetConfig></projectStorage> - </storageModule> - <storageModule moduleId="refreshScope"/> -</cproject> diff --git a/FreeRTOSWithTraces/.project b/FreeRTOSWithTraces/.project deleted file mode 100644 index 80d78e1..0000000 --- a/FreeRTOSWithTraces/.project +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>FreeRTOSWithTraces</name> - <comment></comment> - <projects> - <project>CMSISv2p00_LPC17xx</project> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <triggers>full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.cnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - </natures> -</projectDescription> diff --git a/FreeRTOSWithTraces/.settings/language.settings.xml b/FreeRTOSWithTraces/.settings/language.settings.xml deleted file mode 100644 index 7da57b9..0000000 --- a/FreeRTOSWithTraces/.settings/language.settings.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<project> - <configuration id="com.crt.advproject.config.exe.debug.2001608576" name="Debug"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1421239171053619650" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> - <configuration id="com.crt.advproject.config.exe.release.1510040367" name="Release"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1467668262890638690" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> -</project> \ No newline at end of file diff --git a/FreeRTOSWithTraces/.settings/org.eclipse.core.resources.prefs b/FreeRTOSWithTraces/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/FreeRTOSWithTraces/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/<project>=UTF-8 diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces.map b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces.map deleted file mode 100644 index 87e4b85..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces.map +++ /dev/null @@ -1,1449 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - ./src/cr_startup_lpc17.o (SystemInit) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - ./src/main.o (uart0_init_ref) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - ./src/cr_startup_lpc17.o (__main) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - ./FreeRTOS_src/queue.o (memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - ./FreeRTOS_src/tasks.o (memset) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) (__assertion_failed) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) (__flsbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_Cwritebuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_Csys_alloc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) (fputs) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (fseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (ftell) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) (_initio) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (setvbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) (__Ciob) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - ./FreeRTOS_src/tasks.o (strncpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) (__filbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__heaps) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (_sbrk) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (_fdopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) (errno) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (fclose) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (strlen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) (__check_heap_overflow) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (_do_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) (__aeabi_idiv0) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) (__aeabi_memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) (__sys_appexit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_close) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) (__sys_flen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (__sys_istty) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_read) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_readc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_rename) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) (__sys_seek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_tmpnam) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) (__sys_write) - -Allocating common symbols -Common symbol size file - -xQueueRegistry 0x50 ./FreeRTOS_src/queue.o - -Discarded input sections - - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .text 0x00000000 0x0 ./src/cr_startup_lpc17.o - .data 0x00000000 0x0 ./src/cr_startup_lpc17.o - .bss 0x00000000 0x0 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .group 0x00000000 0x8 ./src/main.o - .text 0x00000000 0x0 ./src/main.o - .data 0x00000000 0x0 ./src/main.o - .bss 0x00000000 0x0 ./src/main.o - .debug_macro 0x00000000 0x892 ./src/main.o - .debug_macro 0x00000000 0x10 ./src/main.o - .debug_macro 0x00000000 0x12d ./src/main.o - .debug_macro 0x00000000 0x5b2 ./src/main.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .text 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .data 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss.pxReadyCoRoutineLists - 0x00000000 0x28 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList1 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList2 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.pxOverflowDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPendingReadyCoRoutineList - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxCurrentCoRoutine - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.uxTopCoRoutineReadyPriority - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xCoRoutineTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xLastTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPassedTicks - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .text.xCoRoutineCreate - 0x00000000 0xcc ./FreeRTOS_src/croutine.o - .text.vCoRoutineAddToDelayedList - 0x00000000 0x84 ./FreeRTOS_src/croutine.o - .text.prvCheckPendingReadyList - 0x00000000 0x80 ./FreeRTOS_src/croutine.o - .text.prvCheckDelayedList - 0x00000000 0xfc ./FreeRTOS_src/croutine.o - .text.vCoRoutineSchedule - 0x00000000 0xa0 ./FreeRTOS_src/croutine.o - .text.prvInitialiseCoRoutineLists - 0x00000000 0x6c ./FreeRTOS_src/croutine.o - .text.xCoRoutineRemoveFromEventList - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_info 0x00000000 0x493 ./FreeRTOS_src/croutine.o - .debug_abbrev 0x00000000 0x18a ./FreeRTOS_src/croutine.o - .debug_aranges - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_ranges 0x00000000 0x40 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xc6 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_line 0x00000000 0x2dc ./FreeRTOS_src/croutine.o - .debug_str 0x00000000 0x629d ./FreeRTOS_src/croutine.o - .comment 0x00000000 0x6f ./FreeRTOS_src/croutine.o - .debug_frame 0x00000000 0x10c ./FreeRTOS_src/croutine.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .text 0x00000000 0x0 ./FreeRTOS_src/list.o - .data 0x00000000 0x0 ./FreeRTOS_src/list.o - .bss 0x00000000 0x0 ./FreeRTOS_src/list.o - .text.vListInitialise - 0x00000000 0x40 ./FreeRTOS_src/list.o - .text.vListInitialiseItem - 0x00000000 0x18 ./FreeRTOS_src/list.o - .text.vListInsert - 0x00000000 0x70 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .text 0x00000000 0x0 ./FreeRTOS_src/queue.o - .data 0x00000000 0x0 ./FreeRTOS_src/queue.o - .bss 0x00000000 0x0 ./FreeRTOS_src/queue.o - .text.xQueueCreate - 0x00000000 0xbc ./FreeRTOS_src/queue.o - .text.xQueueCreateMutex - 0x00000000 0x78 ./FreeRTOS_src/queue.o - .text.xQueueGiveMutexRecursive - 0x00000000 0x48 ./FreeRTOS_src/queue.o - .text.xQueueTakeMutexRecursive - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.xQueueCreateCountingSemaphore - 0x00000000 0x2c ./FreeRTOS_src/queue.o - .text.xQueueGenericSend - 0x00000000 0x108 ./FreeRTOS_src/queue.o - .text.xQueueGenericSendFromISR - 0x00000000 0x80 ./FreeRTOS_src/queue.o - .text.xQueueGenericReceive - 0x00000000 0x168 ./FreeRTOS_src/queue.o - .text.xQueueReceiveFromISR - 0x00000000 0x84 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaiting - 0x00000000 0x20 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaitingFromISR - 0x00000000 0x1c ./FreeRTOS_src/queue.o - .text.vQueueDelete - 0x00000000 0x28 ./FreeRTOS_src/queue.o - .text.prvCopyDataToQueue - 0x00000000 0xb8 ./FreeRTOS_src/queue.o - .text.prvCopyDataFromQueue - 0x00000000 0x4c ./FreeRTOS_src/queue.o - .text.prvUnlockQueue - 0x00000000 0x98 ./FreeRTOS_src/queue.o - .text.prvIsQueueEmpty - 0x00000000 0x2c ./FreeRTOS_src/queue.o - .text.xQueueIsQueueEmptyFromISR - 0x00000000 0x24 ./FreeRTOS_src/queue.o - .text.prvIsQueueFull - 0x00000000 0x30 ./FreeRTOS_src/queue.o - .text.xQueueIsQueueFullFromISR - 0x00000000 0x28 ./FreeRTOS_src/queue.o - .text.vQueueAddToRegistry - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.vQueueUnregisterQueue - 0x00000000 0x44 ./FreeRTOS_src/queue.o - .debug_info 0x00000000 0x891 ./FreeRTOS_src/queue.o - .debug_abbrev 0x00000000 0x1bb ./FreeRTOS_src/queue.o - .debug_aranges - 0x00000000 0xc0 ./FreeRTOS_src/queue.o - .debug_ranges 0x00000000 0xb0 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x137 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_line 0x00000000 0x480 ./FreeRTOS_src/queue.o - .debug_str 0x00000000 0x6660 ./FreeRTOS_src/queue.o - .comment 0x00000000 0x6f ./FreeRTOS_src/queue.o - .debug_frame 0x00000000 0x320 ./FreeRTOS_src/queue.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/queue.o - COMMON 0x00000000 0x50 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .text 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .data 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .bss 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList1 - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList2 - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xPendingReadyList - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xTasksWaitingTermination - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.uxTasksDeleted - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.xSuspendedTaskList - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.uxCurrentNumberOfTasks - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopUsedPriority - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.xSchedulerRunning - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTaskNumber - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .text.xTaskGenericCreate - 0x00000000 0x15c ./FreeRTOS_src/tasks.o - .text.vTaskDelete - 0x00000000 0x98 ./FreeRTOS_src/tasks.o - .text.vTaskDelayUntil - 0x00000000 0x98 ./FreeRTOS_src/tasks.o - .text.vTaskDelay - 0x00000000 0x54 ./FreeRTOS_src/tasks.o - .text.uxTaskPriorityGet - 0x00000000 0x34 ./FreeRTOS_src/tasks.o - .text.vTaskPrioritySet - 0x00000000 0xfc ./FreeRTOS_src/tasks.o - .text.vTaskSuspend - 0x00000000 0x9c ./FreeRTOS_src/tasks.o - .text.xTaskIsTaskSuspended - 0x00000000 0x44 ./FreeRTOS_src/tasks.o - .text.vTaskResume - 0x00000000 0x90 ./FreeRTOS_src/tasks.o - .text.xTaskResumeFromISR - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .rodata 0x00000000 0x5 ./FreeRTOS_src/tasks.o - .text.vTaskStartScheduler - 0x00000000 0x5c ./FreeRTOS_src/tasks.o - .text.vTaskEndScheduler - 0x00000000 0x20 ./FreeRTOS_src/tasks.o - .text.vTaskSuspendAll - 0x00000000 0x1c ./FreeRTOS_src/tasks.o - .text.xTaskResumeAll - 0x00000000 0xf4 ./FreeRTOS_src/tasks.o - .text.xTaskGetTickCount - 0x00000000 0x24 ./FreeRTOS_src/tasks.o - .text.xTaskGetTickCountFromISR - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetNumberOfTasks - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .text.vTaskPlaceOnEventList - 0x00000000 0x60 ./FreeRTOS_src/tasks.o - .text.xTaskRemoveFromEventList - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .text.vTaskSetTimeOutState - 0x00000000 0x2c ./FreeRTOS_src/tasks.o - .text.xTaskCheckForTimeOut - 0x00000000 0x88 ./FreeRTOS_src/tasks.o - .text.vTaskMissedYield - 0x00000000 0x18 ./FreeRTOS_src/tasks.o - .text.prvIdleTask - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .text.prvInitialiseTCBVariables - 0x00000000 0x6c ./FreeRTOS_src/tasks.o - .text.prvInitialiseTaskLists - 0x00000000 0x80 ./FreeRTOS_src/tasks.o - .text.prvCheckTasksWaitingTermination - 0x00000000 0x78 ./FreeRTOS_src/tasks.o - .text.prvAddCurrentTaskToDelayedList - 0x00000000 0x6c ./FreeRTOS_src/tasks.o - .text.prvAllocateTCBAndStack - 0x00000000 0x64 ./FreeRTOS_src/tasks.o - .text.usTaskCheckFreeStackSpace - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetStackHighWaterMark - 0x00000000 0x38 ./FreeRTOS_src/tasks.o - .text.prvDeleteTCB - 0x00000000 0x20 ./FreeRTOS_src/tasks.o - .text.xTaskGetCurrentTaskHandle - 0x00000000 0x1c ./FreeRTOS_src/tasks.o - .text.vTaskPriorityInherit - 0x00000000 0xa4 ./FreeRTOS_src/tasks.o - .text.vTaskPriorityDisinherit - 0x00000000 0x7c ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .text 0x00000000 0x0 ./FreeRTOS_src/timers.o - .data 0x00000000 0x0 ./FreeRTOS_src/timers.o - .bss 0x00000000 0x0 ./FreeRTOS_src/timers.o - .debug_info 0x00000000 0x76 ./FreeRTOS_src/timers.o - .debug_abbrev 0x00000000 0x29 ./FreeRTOS_src/timers.o - .debug_aranges - 0x00000000 0x18 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xcf ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x6a ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x61 ./FreeRTOS_src/timers.o - .debug_line 0x00000000 0x1bd ./FreeRTOS_src/timers.o - .debug_str 0x00000000 0x6518 ./FreeRTOS_src/timers.o - .comment 0x00000000 0x6f ./FreeRTOS_src/timers.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .text 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .data 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xHeap 0x00000000 0x5000 ./FreeRTOS_portable/MemMang/heap_2.o - .rodata.heapSTRUCT_SIZE - 0x00000000 0x2 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xStart 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xEnd 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .data.xFreeBytesRemaining - 0x00000000 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .text.pvPortMalloc - 0x00000000 0x144 ./FreeRTOS_portable/MemMang/heap_2.o - .text.vPortFree - 0x00000000 0x74 ./FreeRTOS_portable/MemMang/heap_2.o - .text.xPortGetFreeHeapSize - 0x00000000 0x14 ./FreeRTOS_portable/MemMang/heap_2.o - .text.vPortInitialiseBlocks - 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xHeapHasBeenInitialised.4156 - 0x00000000 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_info 0x00000000 0x2a3 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_abbrev 0x00000000 0x16b ./FreeRTOS_portable/MemMang/heap_2.o - .debug_aranges - 0x00000000 0x38 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_ranges 0x00000000 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xe4 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_line 0x00000000 0x262 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_str 0x00000000 0x5d69 ./FreeRTOS_portable/MemMang/heap_2.o - .comment 0x00000000 0x6f ./FreeRTOS_portable/MemMang/heap_2.o - .debug_frame 0x00000000 0x98 ./FreeRTOS_portable/MemMang/heap_2.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .text 0x00000000 0x0 ./FreeRTOS_portable/port.o - .data 0x00000000 0x0 ./FreeRTOS_portable/port.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/port.o - .rodata.ulKernelPriority - 0x00000000 0x4 ./FreeRTOS_portable/port.o - .data.uxCriticalNesting - 0x00000000 0x4 ./FreeRTOS_portable/port.o - .text.pxPortInitialiseStack - 0x00000000 0x50 ./FreeRTOS_portable/port.o - .text.vPortStartFirstTask - 0x00000000 0x18 ./FreeRTOS_portable/port.o - .text.xPortStartScheduler - 0x00000000 0x38 ./FreeRTOS_portable/port.o - .text.vPortEndScheduler - 0x00000000 0xc ./FreeRTOS_portable/port.o - .text.vPortYieldFromISR - 0x00000000 0x18 ./FreeRTOS_portable/port.o - .text.vPortEnterCritical - 0x00000000 0x24 ./FreeRTOS_portable/port.o - .text.vPortExitCritical - 0x00000000 0x2c ./FreeRTOS_portable/port.o - .text.prvSetupTimerInterrupt - 0x00000000 0x24 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x5b2 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x14a ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text.SystemCoreClockUpdate - 0x00000000 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data.SystemCoreClock - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text.NVIC_DisableIRQ - 0x00000000 0x34 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text.taskYIELD - 0x00000000 0xc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text.uart0_stop_interrupt - 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text.uart0_send_ref - 0x00000000 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text.memcpy 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.calloc 0x00000000 0x50 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.realloc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .text._terminateio - 0x00000000 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getc 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fgetc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getchar 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fputc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putchar 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.feof 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.ferror 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.clearerr - 0x00000000 0xe c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .text.strncpy 0x00000000 0x56 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._Csys_read_ - 0x00000000 0x22 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text.__filbuf - 0x00000000 0x178 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._fillb2 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text._init_alloc - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text.rename 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_ldivmod - 0x00000000 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_uldivmod - 0x00000000 0x174 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text.__aeabi_division_idiv0 - 0x00000000 0x2 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memcpy - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memmove - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memclr - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memset - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text.__sys_read - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text.__sys_readc - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text.__sys_rename - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -Memory Configuration - -Name Origin Length Attributes -MFlash512 0x00000000 0x00080000 xr -RamLoc32 0x10000000 0x00008000 xrw -RamAHB32 0x2007c000 0x00008000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./src/cr_startup_lpc17.o -LOAD ./src/main.o -LOAD ./FreeRTOS_src/croutine.o -LOAD ./FreeRTOS_src/list.o -LOAD ./FreeRTOS_src/queue.o -LOAD ./FreeRTOS_src/tasks.o -LOAD ./FreeRTOS_src/timers.o -LOAD ./FreeRTOS_portable/MemMang/heap_2.o -LOAD ./FreeRTOS_portable/port.o -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a -START GROUP -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a -END GROUP - 0x00000000 __base_MFlash512 = 0x0 - 0x00000000 __base_Flash = 0x0 - 0x00080000 __top_MFlash512 = 0x80000 - 0x00080000 __top_Flash = 0x80000 - 0x10000000 __base_RamLoc32 = 0x10000000 - 0x10000000 __base_RAM = 0x10000000 - 0x10008000 __top_RamLoc32 = 0x10008000 - 0x10008000 __top_RAM = 0x10008000 - 0x2007c000 __base_RamAHB32 = 0x2007c000 - 0x2007c000 __base_RAM2 = 0x2007c000 - 0x20084000 __top_RamAHB32 = 0x20084000 - 0x20084000 __top_RAM2 = 0x20084000 - -.text 0x00000000 0x10ac - FILL mask 0xff - 0x00000000 __vectors_start__ = ABSOLUTE (.) - *(.isr_vector) - .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc17.o - 0x00000000 g_pfnVectors - 0x000000cc . = ALIGN (0x4) - 0x000000cc __section_table_start = . - 0x000000cc __data_section_table = . - 0x000000cc 0x4 LONG 0x10ac LOADADDR (.data) - 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) - 0x000000d4 0x4 LONG 0x8 SIZEOF (.data) - 0x000000d8 0x4 LONG 0x10ac LOADADDR (.data_RAM2) - 0x000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) - 0x000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) - 0x000000e4 __data_section_table_end = . - 0x000000e4 __bss_section_table = . - 0x000000e4 0x4 LONG 0x10000008 ADDR (.bss) - 0x000000e8 0x4 LONG 0x1e0 SIZEOF (.bss) - 0x000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) - 0x000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) - 0x000000f4 __bss_section_table_end = . - 0x000000f4 __section_table_end = . - *(.after_vectors*) - *(.text*) - .text.ResetISR - 0x000000f4 0x58 ./src/cr_startup_lpc17.o - 0x000000f4 ResetISR - .text.NMI_Handler - 0x0000014c 0x8 ./src/cr_startup_lpc17.o - 0x0000014c NMI_Handler - .text.HardFault_Handler - 0x00000154 0x8 ./src/cr_startup_lpc17.o - 0x00000154 HardFault_Handler - .text.MemManage_Handler - 0x0000015c 0x8 ./src/cr_startup_lpc17.o - 0x0000015c MemManage_Handler - .text.BusFault_Handler - 0x00000164 0x8 ./src/cr_startup_lpc17.o - 0x00000164 BusFault_Handler - .text.UsageFault_Handler - 0x0000016c 0x8 ./src/cr_startup_lpc17.o - 0x0000016c UsageFault_Handler - .text.DebugMon_Handler - 0x00000174 0x8 ./src/cr_startup_lpc17.o - 0x00000174 DebugMon_Handler - .text.IntDefaultHandler - 0x0000017c 0x8 ./src/cr_startup_lpc17.o - 0x0000017c TIMER2_IRQHandler - 0x0000017c RIT_IRQHandler - 0x0000017c I2C0_IRQHandler - 0x0000017c USBActivity_IRQHandler - 0x0000017c PWM1_IRQHandler - 0x0000017c I2C1_IRQHandler - 0x0000017c EINT2_IRQHandler - 0x0000017c UART1_IRQHandler - 0x0000017c EINT3_IRQHandler - 0x0000017c CANActivity_IRQHandler - 0x0000017c TIMER3_IRQHandler - 0x0000017c IntDefaultHandler - 0x0000017c PLL0_IRQHandler - 0x0000017c CAN_IRQHandler - 0x0000017c PLL1_IRQHandler - 0x0000017c SSP0_IRQHandler - 0x0000017c I2S_IRQHandler - 0x0000017c I2C2_IRQHandler - 0x0000017c RTC_IRQHandler - 0x0000017c TIMER0_IRQHandler - 0x0000017c SPI_IRQHandler - 0x0000017c EINT1_IRQHandler - 0x0000017c TIMER1_IRQHandler - 0x0000017c UART2_IRQHandler - 0x0000017c ADC_IRQHandler - 0x0000017c SSP1_IRQHandler - 0x0000017c USB_IRQHandler - 0x0000017c BOD_IRQHandler - 0x0000017c WDT_IRQHandler - 0x0000017c QEI_IRQHandler - 0x0000017c EINT0_IRQHandler - 0x0000017c DMA_IRQHandler - 0x0000017c UART3_IRQHandler - 0x0000017c MCPWM_IRQHandler - 0x0000017c ENET_IRQHandler - .text.write_trace - 0x00000184 0x1c ./src/main.o - 0x00000184 write_trace - .text.main 0x000001a0 0x18 ./src/main.o - 0x000001a0 main - .text.vListInsertEnd - 0x000001b8 0x50 ./FreeRTOS_src/list.o - 0x000001b8 vListInsertEnd - .text.vListRemove - 0x00000208 0x50 ./FreeRTOS_src/list.o - 0x00000208 vListRemove - .text.vTaskIncrementTick - 0x00000258 0x12c ./FreeRTOS_src/tasks.o - 0x00000258 vTaskIncrementTick - .text.vTaskSwitchContext - 0x00000384 0xd8 ./FreeRTOS_src/tasks.o - 0x00000384 vTaskSwitchContext - .text.vPortSVCHandler - 0x0000045c 0x24 ./FreeRTOS_portable/port.o - 0x0000045c vPortSVCHandler - .text.xPortPendSVHandler - 0x00000480 0x40 ./FreeRTOS_portable/port.o - 0x00000480 xPortPendSVHandler - .text.xPortSysTickHandler - 0x000004c0 0x34 ./FreeRTOS_portable/port.o - 0x000004c0 xPortSysTickHandler - .text.SystemInit - 0x000004f4 0xe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x000004f4 SystemInit - .text.NVIC_EnableIRQ - 0x000005d8 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .text.UART0_IRQHandler - 0x00000608 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - 0x00000608 UART0_IRQHandler - .text.uart0_init_ref - 0x00000678 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - 0x00000678 uart0_init_ref - .text.__main 0x00000770 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x00000770 __CR_SEMIHOST - 0x00000770 __main - .text.memset 0x00000784 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - 0x00000784 memset - .text.__assertion_failed - 0x00000788 0x48 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - 0x00000788 __assertion_failed - .text._deferredlazyseek - 0x000007d0 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x000007d0 _deferredlazyseek - .text.__flsbuf - 0x00000814 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00000814 __flsbuf - .text._fflush 0x00000954 0x58 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - 0x00000954 _fflush - .text._Cwritebuf - 0x000009ac 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - 0x000009ac _Cwritebuf - .text.malloc 0x00000a14 0xc8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00000a14 malloc - .text.free 0x00000adc 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00000adc free - .text._Csys_alloc - 0x00000b0c 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00000b0c _Csys_alloc - .text.fputs 0x00000b2c 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - 0x00000b2c fputs - .text.fseek 0x00000b58 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - 0x00000b58 fseek - .text.ftell 0x00000c68 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - 0x00000c68 ftell - .text._initio 0x00000cb4 0xa4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00000cb4 _initio - .text.setvbuf 0x00000d58 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - 0x00000d58 setvbuf - .text._sbrk 0x00000d98 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - 0x00000d98 _sbrk - .text._fdopen 0x00000dd8 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - 0x00000dd8 _fdopen - .text.fclose 0x00000e42 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - 0x00000e42 fclose - *fill* 0x00000eae 0x2 ff - .text.fflush 0x00000eb0 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - 0x00000eb0 fflush - .text.remove 0x00000ee0 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - 0x00000ee0 remove - .text.strlen 0x00000ef4 0x4a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - 0x00000ef4 strlen - *fill* 0x00000f3e 0x2 ff - .text.__check_heap_overflow - 0x00000f40 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - 0x00000f40 __check_heap_overflow - .text._do_fflush - 0x00000f58 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - 0x00000f58 _do_fflush - .text.__aeabi_memset_lowlevel - 0x00000f9c 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - 0x00000f9c __aeabi_lowlevel_memset - *fill* 0x00000fce 0x2 ff - .text.__sys_appexit - 0x00000fd0 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - 0x00000fd0 __sys_appexit - 0x00000fd0 __exit - .text.__sys_close - 0x00000fdc 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - 0x00000fdc __sys_close - .text.__sys_flen - 0x00000fe8 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - 0x00000fe8 __sys_flen - .text.__sys_istty - 0x00000ff4 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - 0x00000ff4 __sys_istty - .text.__sys_remove - 0x00001000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - 0x00001000 __sys_remove - .text.__sys_seek - 0x0000100c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - 0x0000100c __sys_seek - .text.__sys_tmpnam - 0x00001018 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - 0x00001018 __sys_tmpnam - .text.__sys_write - 0x00001024 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - 0x00001024 __sys_write - 0x00001024 __write - *(.rodata .rodata.* .constdata .constdata.*) - .rodata 0x00001030 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .rodata.str1.1 - 0x00001078 0x15 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .rodata.str1.1 - 0x0000108d 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .rodata.str1.1 - 0x000010a5 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x000010ac . = ALIGN (0x4) - *fill* 0x000010a9 0x3 ff - -.glue_7 0x000010ac 0x0 - .glue_7 0x000010ac 0x0 linker stubs - -.glue_7t 0x000010ac 0x0 - .glue_7t 0x000010ac 0x0 linker stubs - -.vfp11_veneer 0x000010ac 0x0 - .vfp11_veneer 0x000010ac 0x0 linker stubs - -.v4_bx 0x000010ac 0x0 - .v4_bx 0x000010ac 0x0 linker stubs - -.iplt 0x000010ac 0x0 - .iplt 0x000010ac 0x0 ./src/cr_startup_lpc17.o - -.rel.dyn 0x000010ac 0x0 - .rel.iplt 0x000010ac 0x0 ./src/cr_startup_lpc17.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x000010ac __exidx_start = . - -.ARM.exidx - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x000010ac __exidx_end = . - 0x000010ac _etext = . - -.data_RAM2 0x2007c000 0x0 load address 0x000010ac - FILL mask 0xff - [!provide] PROVIDE (__start_data_RAM2, .) - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_data_RAM2, .) - -.uninit_RESERVED - 0x10000000 0x0 - *(.bss.$RESERVED*) - 0x10000000 . = ALIGN (0x4) - 0x10000000 _end_uninit_RESERVED = . - -.data 0x10000000 0x8 load address 0x000010ac - FILL mask 0xff - 0x10000000 _data = . - *(vtable) - *(.ramfunc*) - *(.data*) - .data.previous_id_in - 0x10000000 0x4 ./FreeRTOS_src/tasks.o - .data.xNextTaskUnblockTime - 0x10000004 0x4 ./FreeRTOS_src/tasks.o - 0x10000008 . = ALIGN (0x4) - 0x10000008 _edata = . - -.igot.plt 0x10000008 0x0 load address 0x000010b4 - .igot.plt 0x10000008 0x0 ./src/cr_startup_lpc17.o - -.bss_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_bss_RAM2, .) - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) - [!provide] PROVIDE (__end_bss_RAM2, .) - -.bss 0x10000008 0x1e0 - 0x10000008 _bss = . - *(.bss*) - .bss.pxCurrentTCB - 0x10000008 0x4 ./FreeRTOS_src/tasks.o - 0x10000008 pxCurrentTCB - .bss.pxReadyTasksLists - 0x1000000c 0x64 ./FreeRTOS_src/tasks.o - .bss.pxDelayedTaskList - 0x10000070 0x4 ./FreeRTOS_src/tasks.o - .bss.pxOverflowDelayedTaskList - 0x10000074 0x4 ./FreeRTOS_src/tasks.o - .bss.xTickCount - 0x10000078 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopReadyPriority - 0x1000007c 0x4 ./FreeRTOS_src/tasks.o - .bss.uxSchedulerSuspended - 0x10000080 0x4 ./FreeRTOS_src/tasks.o - .bss.uxMissedTicks - 0x10000084 0x4 ./FreeRTOS_src/tasks.o - .bss.xMissedYield - 0x10000088 0x4 ./FreeRTOS_src/tasks.o - .bss.xNumOfOverflows - 0x1000008c 0x4 ./FreeRTOS_src/tasks.o - .bss.tx_callbck - 0x10000090 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .bss.rx_callbck - 0x10000094 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .bss._extra 0x10000098 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x10000098 _extra - .bss.__Ciob 0x1000009c 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - 0x1000009c __Ciob - .bss.__heaps 0x100001dc 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x100001dc __heaps - .bss.__end_of_heap - 0x100001e0 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x100001e0 __end_of_heap - .bss.errno 0x100001e4 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - 0x100001e4 errno - *(COMMON) - 0x100001e8 . = ALIGN (0x4) - 0x100001e8 _ebss = . - [!provide] PROVIDE (end, .) - -.noinit_RAM2 0x2007c000 0x0 - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - -.noinit 0x100001e8 0x0 - 0x100001e8 _noinit = . - *(.noinit*) - 0x100001e8 . = ALIGN (0x4) - 0x100001e8 _end_noinit = . - 0x100001e8 PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) - 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) - [!provide] PROVIDE (__valid_user_code_checksum, (0x0 - ((((((_vStackTop + (ResetISR + 0x1)) + (NMI_Handler + 0x1)) + (HardFault_Handler + 0x1)) + (DEFINED (MemManage_Handler)?MemManage_Handler:0x0 + 0x1)) + (DEFINED (BusFault_Handler)?BusFault_Handler:0x0 + 0x1)) + (DEFINED (UsageFault_Handler)?UsageFault_Handler:0x0 + 0x1)))) -OUTPUT(FreeRTOSWithTraces.axf elf32-littlearm) - -.debug_info 0x00000000 0x20fe - .debug_info 0x00000000 0x187 ./src/cr_startup_lpc17.o - .debug_info 0x00000187 0xec ./src/main.o - .debug_info 0x00000273 0x280 ./FreeRTOS_src/list.o - .debug_info 0x000004f3 0xd85 ./FreeRTOS_src/tasks.o - .debug_info 0x00001278 0x1db ./FreeRTOS_portable/port.o - .debug_info 0x00001453 0x318 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_info 0x0000176b 0x993 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_abbrev 0x00000000 0x81e - .debug_abbrev 0x00000000 0xb9 ./src/cr_startup_lpc17.o - .debug_abbrev 0x000000b9 0xa4 ./src/main.o - .debug_abbrev 0x0000015d 0xbf ./FreeRTOS_src/list.o - .debug_abbrev 0x0000021c 0x1fd ./FreeRTOS_src/tasks.o - .debug_abbrev 0x00000419 0x11d ./FreeRTOS_portable/port.o - .debug_abbrev 0x00000536 0xe6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_abbrev 0x0000061c 0x202 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_aranges 0x00000000 0x2e0 - .debug_aranges - 0x00000000 0x58 ./src/cr_startup_lpc17.o - .debug_aranges - 0x00000058 0x28 ./src/main.o - .debug_aranges - 0x00000080 0x40 ./FreeRTOS_src/list.o - .debug_aranges - 0x000000c0 0x138 ./FreeRTOS_src/tasks.o - .debug_aranges - 0x000001f8 0x70 ./FreeRTOS_portable/port.o - .debug_aranges - 0x00000268 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_aranges - 0x00000290 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_ranges 0x00000000 0x270 - .debug_ranges 0x00000000 0x48 ./src/cr_startup_lpc17.o - .debug_ranges 0x00000048 0x18 ./src/main.o - .debug_ranges 0x00000060 0x30 ./FreeRTOS_src/list.o - .debug_ranges 0x00000090 0x128 ./FreeRTOS_src/tasks.o - .debug_ranges 0x000001b8 0x60 ./FreeRTOS_portable/port.o - .debug_ranges 0x00000218 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_ranges 0x00000230 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_macro 0x00000000 0x38a4 - .debug_macro 0x00000000 0x52 ./src/cr_startup_lpc17.o - .debug_macro 0x00000052 0x892 ./src/cr_startup_lpc17.o - .debug_macro 0x000008e4 0x10 ./src/cr_startup_lpc17.o - .debug_macro 0x000008f4 0x12d ./src/cr_startup_lpc17.o - .debug_macro 0x00000a21 0x5b2 ./src/cr_startup_lpc17.o - .debug_macro 0x00000fd3 0x11c ./src/main.o - .debug_macro 0x000010ef 0x1c ./src/main.o - .debug_macro 0x0000110b 0x2e ./src/main.o - .debug_macro 0x00001139 0x18 ./src/main.o - .debug_macro 0x00001151 0x7af ./src/main.o - .debug_macro 0x00001900 0x2c7 ./src/main.o - .debug_macro 0x00001bc7 0xa0 ./src/main.o - .debug_macro 0x00001c67 0x10 ./src/main.o - .debug_macro 0x00001c77 0x46 ./src/main.o - .debug_macro 0x00001cbd 0x150 ./src/main.o - .debug_macro 0x00001e0d 0xa3 ./src/main.o - .debug_macro 0x00001eb0 0x12 ./src/main.o - .debug_macro 0x00001ec2 0x1f ./src/main.o - .debug_macro 0x00001ee1 0x177 ./src/main.o - .debug_macro 0x00002058 0x49 ./src/main.o - .debug_macro 0x000020a1 0x57 ./src/main.o - .debug_macro 0x000020f8 0x6a ./src/main.o - .debug_macro 0x00002162 0x62 ./src/main.o - .debug_macro 0x000021c4 0x2e ./src/main.o - .debug_macro 0x000021f2 0xb6 ./FreeRTOS_src/list.o - .debug_macro 0x000022a8 0x28 ./FreeRTOS_src/list.o - .debug_macro 0x000022d0 0x149 ./FreeRTOS_src/tasks.o - .debug_macro 0x00002419 0x22 ./FreeRTOS_src/tasks.o - .debug_macro 0x0000243b 0x61 ./FreeRTOS_src/tasks.o - .debug_macro 0x0000249c 0x16 ./FreeRTOS_src/tasks.o - .debug_macro 0x000024b2 0xf3 ./FreeRTOS_portable/port.o - .debug_macro 0x000025a5 0x12b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x000026d0 0x886 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00002f56 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x00002ff6 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .debug_macro 0x0000388e 0x16 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_line 0x00000000 0x1521 - .debug_line 0x00000000 0x211 ./src/cr_startup_lpc17.o - .debug_line 0x00000211 0x27e ./src/main.o - .debug_line 0x0000048f 0x22a ./FreeRTOS_src/list.o - .debug_line 0x000006b9 0x769 ./FreeRTOS_src/tasks.o - .debug_line 0x00000e22 0x275 ./FreeRTOS_portable/port.o - .debug_line 0x00001097 0x1d3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_line 0x0000126a 0x2b7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - -.debug_str 0x00000000 0xcb5d - .debug_str 0x00000000 0x3cf3 ./src/cr_startup_lpc17.o - 0x3d7e (size before relaxing) - .debug_str 0x00003cf3 0x6c1f ./src/main.o - 0xa893 (size before relaxing) - .debug_str 0x0000a912 0x1c2 ./FreeRTOS_src/list.o - 0x56c5 (size before relaxing) - .debug_str 0x0000aad4 0x1256 ./FreeRTOS_src/tasks.o - 0x6de4 (size before relaxing) - .debug_str 0x0000bd2a 0x368 ./FreeRTOS_portable/port.o - 0x5bdc (size before relaxing) - .debug_str 0x0000c092 0x563 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x8146 (size before relaxing) - .debug_str 0x0000c5f5 0x568 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - 0x8474 (size before relaxing) - -.comment 0x00000000 0xdc - .comment 0x00000000 0x6e ./src/cr_startup_lpc17.o - 0x6f (size before relaxing) - .comment 0x0000006e 0x6f ./src/main.o - .comment 0x0000006e 0x6f ./FreeRTOS_src/list.o - .comment 0x0000006e 0x6f ./FreeRTOS_src/tasks.o - .comment 0x0000006e 0x6f ./FreeRTOS_portable/port.o - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .comment 0x0000006e 0x6e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x6f (size before relaxing) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x33 ./src/cr_startup_lpc17.o - .ARM.attributes - 0x00000033 0x33 ./src/main.o - .ARM.attributes - 0x00000066 0x33 ./FreeRTOS_src/list.o - .ARM.attributes - 0x00000099 0x33 ./FreeRTOS_src/tasks.o - .ARM.attributes - 0x000000cc 0x33 ./FreeRTOS_portable/port.o - .ARM.attributes - 0x000000ff 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .ARM.attributes - 0x00000132 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) - .ARM.attributes - 0x00000165 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .ARM.attributes - 0x00000198 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .ARM.attributes - 0x000001cb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_assert.o) - .ARM.attributes - 0x000001fe 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .ARM.attributes - 0x00000231 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .ARM.attributes - 0x00000264 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .ARM.attributes - 0x00000297 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .ARM.attributes - 0x000002ca 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fputs.o) - .ARM.attributes - 0x000002fd 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .ARM.attributes - 0x00000330 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .ARM.attributes - 0x00000363 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .ARM.attributes - 0x00000396 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .ARM.attributes - 0x000003c9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .ARM.attributes - 0x000003fc 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .ARM.attributes - 0x0000042f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .ARM.attributes - 0x00000462 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .ARM.attributes - 0x00000495 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .ARM.attributes - 0x000004c8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .ARM.attributes - 0x000004fb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .ARM.attributes - 0x0000052e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .ARM.attributes - 0x00000561 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .ARM.attributes - 0x00000594 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .ARM.attributes - 0x000005c7 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .ARM.attributes - 0x000005fa 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .ARM.attributes - 0x0000061b 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .ARM.attributes - 0x0000063c 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .ARM.attributes - 0x0000065d 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .ARM.attributes - 0x0000067e 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .ARM.attributes - 0x0000069f 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .ARM.attributes - 0x000006c0 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .ARM.attributes - 0x000006e1 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .ARM.attributes - 0x00000702 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -.debug_frame 0x00000000 0x9b4 - .debug_frame 0x00000000 0xd8 ./src/cr_startup_lpc17.o - .debug_frame 0x000000d8 0x54 ./src/main.o - .debug_frame 0x0000012c 0xd8 ./FreeRTOS_src/list.o - .debug_frame 0x00000204 0x524 ./FreeRTOS_src/tasks.o - .debug_frame 0x00000728 0x148 ./FreeRTOS_portable/port.o - .debug_frame 0x00000870 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_frame 0x000008ac 0x108 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug\libMyLab_lib.a(uart.o) diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug.ld b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug.ld deleted file mode 100644 index 4590321..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug.ld +++ /dev/null @@ -1,151 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from linkscript.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 20 févr. 2018 11:42:58 - */ - -INCLUDE "FreeRTOSWithTraces_Debug_library.ld" -INCLUDE "FreeRTOSWithTraces_Debug_memory.ld" - -ENTRY(ResetISR) - -SECTIONS -{ - /* MAIN TEXT SECTION */ - .text : ALIGN(4) - { - FILL(0xff) - __vectors_start__ = ABSOLUTE(.) ; - KEEP(*(.isr_vector)) - /* Global Section Table */ - . = ALIGN(4) ; - __section_table_start = .; - __data_section_table = .; - LONG(LOADADDR(.data)); - LONG( ADDR(.data)); - LONG( SIZEOF(.data)); - LONG(LOADADDR(.data_RAM2)); - LONG( ADDR(.data_RAM2)); - LONG( SIZEOF(.data_RAM2)); - __data_section_table_end = .; - __bss_section_table = .; - LONG( ADDR(.bss)); - LONG( SIZEOF(.bss)); - LONG( ADDR(.bss_RAM2)); - LONG( SIZEOF(.bss_RAM2)); - __bss_section_table_end = .; - __section_table_end = . ; - /* End of Global Section Table */ - - *(.after_vectors*) - - } >MFlash512 - - .text : ALIGN(4) - { - *(.text*) - *(.rodata .rodata.* .constdata .constdata.*) - . = ALIGN(4); - } > MFlash512 - /* - * for exception handling/unwind - some Newlib functions (in common - * with C++ and STDC++) use this. - */ - .ARM.extab : ALIGN(4) - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > MFlash512 - __exidx_start = .; - - .ARM.exidx : ALIGN(4) - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > MFlash512 - __exidx_end = .; - - _etext = .; - - /* DATA section for RamAHB32 */ - .data_RAM2 : ALIGN(4) - { - FILL(0xff) - PROVIDE(__start_data_RAM2 = .) ; - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - . = ALIGN(4) ; - PROVIDE(__end_data_RAM2 = .) ; - } > RamAHB32 AT>MFlash512 - - /* MAIN DATA SECTION */ - .uninit_RESERVED : ALIGN(4) - { - KEEP(*(.bss.$RESERVED*)) - . = ALIGN(4) ; - _end_uninit_RESERVED = .; - } > RamLoc32 - /* Main DATA section (RamLoc32) */ - .data : ALIGN(4) - { - FILL(0xff) - _data = . ; - *(vtable) - *(.ramfunc*) - *(.data*) - . = ALIGN(4) ; - _edata = . ; - } > RamLoc32 AT>MFlash512 - /* BSS section for RamAHB32 */ - .bss_RAM2 : ALIGN(4) - { - PROVIDE(__start_bss_RAM2 = .) ; - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */ - PROVIDE(__end_bss_RAM2 = .) ; - } > RamAHB32 - /* MAIN BSS SECTION */ - .bss : ALIGN(4) - { - _bss = .; - *(.bss*) - *(COMMON) - . = ALIGN(4) ; - _ebss = .; - PROVIDE(end = .); - } > RamLoc32 - /* NOINIT section for RamAHB32 */ - .noinit_RAM2 (NOLOAD) : ALIGN(4) - { - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - . = ALIGN(4) ; - } > RamAHB32 - /* DEFAULT NOINIT SECTION */ - .noinit (NOLOAD): ALIGN(4) - { - _noinit = .; - *(.noinit*) - . = ALIGN(4) ; - _end_noinit = .; - } > RamLoc32 - - PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .); - PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc32 - 0); - - /* ## Create checksum value (used in startup) ## */ - PROVIDE(__valid_user_code_checksum = 0 - - (_vStackTop - + (ResetISR + 1) - + (NMI_Handler + 1) - + (HardFault_Handler + 1) - + (( DEFINED(MemManage_Handler) ? MemManage_Handler : 0 ) + 1) /* MemManage_Handler may not be defined */ - + (( DEFINED(BusFault_Handler) ? BusFault_Handler : 0 ) + 1) /* BusFault_Handler may not be defined */ - + (( DEFINED(UsageFault_Handler) ? UsageFault_Handler : 0 ) + 1) /* UsageFault_Handler may not be defined */ - ) ); -} \ No newline at end of file diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_lib.ld b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_lib.ld deleted file mode 100644 index 230026f..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_lib.ld +++ /dev/null @@ -1,14 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (C) Code Red Technologies Ltd, 2008-2016 - * Generated linker script file for LPC1769 - * Created from LibIncTemplate.ld (vLPCXpresso v5.2 (6 [Build 2137] [2013-07-08] )) - * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Mon Feb 08 16:12:00 CET 2016 - */ - - - GROUP( - libcr_semihost.a - libcr_c.a - libcr_eabihelpers.a - ) diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_library.ld b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_library.ld deleted file mode 100644 index 4b098a3..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_library.ld +++ /dev/null @@ -1,15 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from library.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 20 févr. 2018 11:42:58 - */ - -GROUP ( - libcr_semihost.a - libcr_c.a - libcr_eabihelpers.a -) diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_mem.ld b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_mem.ld deleted file mode 100644 index 588ad7b..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_mem.ld +++ /dev/null @@ -1,21 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (C) Code Red Technologies Ltd, 2008-2016 - * Linker script memory definitions - * Created from LinkMemoryTemplate - * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Mon Feb 08 16:12:00 CET 2016) -*/ - -MEMORY -{ - /* Define each memory region */ - MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512k */ - RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32k */ - RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32k */ - -} - /* Define a symbol for the top of each memory region */ - __top_MFlash512 = 0x0 + 0x80000; - __top_RamLoc32 = 0x10000000 + 0x8000; - __top_RamAHB32 = 0x2007c000 + 0x8000; - diff --git a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_memory.ld b/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_memory.ld deleted file mode 100644 index 26ceb2b..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOSWithTraces_Debug_memory.ld +++ /dev/null @@ -1,31 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from memory.ldt by FMCreateLinkMemory - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 20 févr. 2018 11:42:58 - */ - -MEMORY -{ - /* Define each memory region */ - MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512K bytes (alias Flash) */ - RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32K bytes (alias RAM) */ - RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32K bytes (alias RAM2) */ -} - - /* Define a symbol for the top of each memory region */ - __base_MFlash512 = 0x0 ; /* MFlash512 */ - __base_Flash = 0x0 ; /* Flash */ - __top_MFlash512 = 0x0 + 0x80000 ; /* 512K bytes */ - __top_Flash = 0x0 + 0x80000 ; /* 512K bytes */ - __base_RamLoc32 = 0x10000000 ; /* RamLoc32 */ - __base_RAM = 0x10000000 ; /* RAM */ - __top_RamLoc32 = 0x10000000 + 0x8000 ; /* 32K bytes */ - __top_RAM = 0x10000000 + 0x8000 ; /* 32K bytes */ - __base_RamAHB32 = 0x2007c000 ; /* RamAHB32 */ - __base_RAM2 = 0x2007c000 ; /* RAM2 */ - __top_RamAHB32 = 0x2007c000 + 0x8000 ; /* 32K bytes */ - __top_RAM2 = 0x2007c000 + 0x8000 ; /* 32K bytes */ diff --git a/FreeRTOSWithTraces/Debug/FreeRTOS_portable/MemMang/subdir.mk b/FreeRTOSWithTraces/Debug/FreeRTOS_portable/MemMang/subdir.mk deleted file mode 100644 index 5ea764d..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOS_portable/MemMang/subdir.mk +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_portable/MemMang/heap_2.c - -OBJS += \ -./FreeRTOS_portable/MemMang/heap_2.o - -C_DEPS += \ -./FreeRTOS_portable/MemMang/heap_2.d - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_portable/MemMang/%.o: ../FreeRTOS_portable/MemMang/%.c - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__USE_CMSIS -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -D__REDLIB__ -I../src -I"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb -D__REDLIB__ -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/FreeRTOSWithTraces/Debug/FreeRTOS_portable/subdir.mk b/FreeRTOSWithTraces/Debug/FreeRTOS_portable/subdir.mk deleted file mode 100644 index 4c1acb8..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOS_portable/subdir.mk +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_portable/port.c - -OBJS += \ -./FreeRTOS_portable/port.o - -C_DEPS += \ -./FreeRTOS_portable/port.d - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_portable/%.o: ../FreeRTOS_portable/%.c - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__USE_CMSIS -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -D__REDLIB__ -I../src -I"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb -D__REDLIB__ -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/FreeRTOSWithTraces/Debug/FreeRTOS_src/subdir.mk b/FreeRTOSWithTraces/Debug/FreeRTOS_src/subdir.mk deleted file mode 100644 index 8e66508..0000000 --- a/FreeRTOSWithTraces/Debug/FreeRTOS_src/subdir.mk +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_src/croutine.c \ -../FreeRTOS_src/list.c \ -../FreeRTOS_src/queue.c \ -../FreeRTOS_src/tasks.c \ -../FreeRTOS_src/timers.c - -OBJS += \ -./FreeRTOS_src/croutine.o \ -./FreeRTOS_src/list.o \ -./FreeRTOS_src/queue.o \ -./FreeRTOS_src/tasks.o \ -./FreeRTOS_src/timers.o - -C_DEPS += \ -./FreeRTOS_src/croutine.d \ -./FreeRTOS_src/list.d \ -./FreeRTOS_src/queue.d \ -./FreeRTOS_src/tasks.d \ -./FreeRTOS_src/timers.d - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_src/%.o: ../FreeRTOS_src/%.c - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__USE_CMSIS -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -D__REDLIB__ -I../src -I"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb -D__REDLIB__ -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/FreeRTOSWithTraces/Debug/libMyLab_lib.a b/FreeRTOSWithTraces/Debug/libMyLab_lib.a deleted file mode 100644 index b52a4472ff3323bac4641e3f5ecce0a58262c708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 961272 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%0DZcpSMsh(jEqiSpbL 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 A;s5{u diff --git a/FreeRTOSWithTraces/Debug/makefile b/FreeRTOSWithTraces/Debug/makefile deleted file mode 100644 index c47aa30..0000000 --- a/FreeRTOSWithTraces/Debug/makefile +++ /dev/null @@ -1,53 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk --include FreeRTOS_src/subdir.mk --include FreeRTOS_portable/MemMang/subdir.mk --include FreeRTOS_portable/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: FreeRTOSWithTraces.axf - -# Tool invocations -FreeRTOSWithTraces.axf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: MCU Linker' - arm-none-eabi-gcc -nostdlib -L"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug" -L"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\FreeRTOSWithTraces\Debug" -Xlinker -Map="FreeRTOSWithTraces.map" -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T "FreeRTOSWithTraces_Debug.ld" -o "FreeRTOSWithTraces.axf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - $(MAKE) --no-print-directory post-build - -# Other Targets -clean: - -$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) FreeRTOSWithTraces.axf - -@echo ' ' - -post-build: - -@echo 'Performing post-build steps' - -arm-none-eabi-size "FreeRTOSWithTraces.axf"; # arm-none-eabi-objcopy -O binary "FreeRTOSWithTraces.axf" "FreeRTOSWithTraces.bin" ; checksum -p LPC1769 -d "FreeRTOSWithTraces.bin"; - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: post-build - --include ../makefile.targets diff --git a/FreeRTOSWithTraces/Debug/objects.mk b/FreeRTOSWithTraces/Debug/objects.mk deleted file mode 100644 index 0c619de..0000000 --- a/FreeRTOSWithTraces/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := -lCMSISv2p00_LPC17xx -lMyLab_lib - diff --git a/FreeRTOSWithTraces/Debug/sources.mk b/FreeRTOSWithTraces/Debug/sources.mk deleted file mode 100644 index 4c81af4..0000000 --- a/FreeRTOSWithTraces/Debug/sources.mk +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -OBJ_SRCS := -S_SRCS := -ASM_SRCS := -C_SRCS := -S_UPPER_SRCS := -O_SRCS := -EXECUTABLES := -OBJS := -C_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -FreeRTOS_portable/MemMang \ -FreeRTOS_portable \ -FreeRTOS_src \ -src \ - diff --git a/FreeRTOSWithTraces/Debug/src/subdir.mk b/FreeRTOSWithTraces/Debug/src/subdir.mk deleted file mode 100644 index fd31d88..0000000 --- a/FreeRTOSWithTraces/Debug/src/subdir.mk +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../src/cr_startup_lpc17.c \ -../src/main.c - -OBJS += \ -./src/cr_startup_lpc17.o \ -./src/main.o - -C_DEPS += \ -./src/cr_startup_lpc17.d \ -./src/main.d - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.c - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__USE_CMSIS -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -D__REDLIB__ -I../src -I"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb -D__REDLIB__ -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/FreeRTOS.h b/FreeRTOSWithTraces/FreeRTOS_include/FreeRTOS.h deleted file mode 100644 index e5eb39a..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/FreeRTOS.h +++ /dev/null @@ -1,468 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef INC_FREERTOS_H -#define INC_FREERTOS_H - - -/* - * Include the generic headers required for the FreeRTOS port being used. - */ -#include <stddef.h> - -/* Basic FreeRTOS definitions. */ -#include "projdefs.h" - -/* Application specific configuration options. */ -#include "FreeRTOSConfig.h" - -/* Definitions specific to the port being used. */ -#include "portable.h" - - -/* Defines the prototype to which the application task hook function must -conform. */ -typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); - - - - - -/* - * Check all the required application specific macros have been defined. - * These macros are application specific and (as downloaded) are defined - * within FreeRTOSConfig.h. - */ - -#ifndef configUSE_PREEMPTION - #error Missing definition: configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_IDLE_HOOK - #error Missing definition: configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_TICK_HOOK - #error Missing definition: configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_CO_ROUTINES - #error Missing definition: configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskPrioritySet - #error Missing definition: INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_uxTaskPriorityGet - #error Missing definition: INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelete - #error Missing definition: INCLUDE_vTaskDelete should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskCleanUpResources - #error Missing definition: INCLUDE_vTaskCleanUpResources should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskSuspend - #error Missing definition: INCLUDE_vTaskSuspend should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelayUntil - #error Missing definition: INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelay - #error Missing definition: INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_16_BIT_TICKS - #error Missing definition: configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_APPLICATION_TASK_TAG - #define configUSE_APPLICATION_TASK_TAG 0 -#endif - -#ifndef INCLUDE_uxTaskGetStackHighWaterMark - #define INCLUDE_uxTaskGetStackHighWaterMark 0 -#endif - -#ifndef configUSE_RECURSIVE_MUTEXES - #define configUSE_RECURSIVE_MUTEXES 0 -#endif - -#ifndef configUSE_MUTEXES - #define configUSE_MUTEXES 0 -#endif - -#ifndef configUSE_TIMERS - #define configUSE_TIMERS 0 -#endif - -#ifndef configUSE_COUNTING_SEMAPHORES - #define configUSE_COUNTING_SEMAPHORES 0 -#endif - -#ifndef configUSE_ALTERNATIVE_API - #define configUSE_ALTERNATIVE_API 0 -#endif - -#ifndef portCRITICAL_NESTING_IN_TCB - #define portCRITICAL_NESTING_IN_TCB 0 -#endif - -#ifndef configMAX_TASK_NAME_LEN - #define configMAX_TASK_NAME_LEN 16 -#endif - -#ifndef configIDLE_SHOULD_YIELD - #define configIDLE_SHOULD_YIELD 1 -#endif - -#if configMAX_TASK_NAME_LEN < 1 - #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h -#endif - -#ifndef INCLUDE_xTaskResumeFromISR - #define INCLUDE_xTaskResumeFromISR 1 -#endif - -#ifndef configASSERT - #define configASSERT( x ) -#endif - -/* The timers module relies on xTaskGetSchedulerState(). */ -#if configUSE_TIMERS == 1 - - #ifndef configTIMER_TASK_PRIORITY - #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined. - #endif /* configTIMER_TASK_PRIORITY */ - - #ifndef configTIMER_QUEUE_LENGTH - #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined. - #endif /* configTIMER_QUEUE_LENGTH */ - - #ifndef configTIMER_TASK_STACK_DEPTH - #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined. - #endif /* configTIMER_TASK_STACK_DEPTH */ - -#endif /* configUSE_TIMERS */ - -#ifndef INCLUDE_xTaskGetSchedulerState - #define INCLUDE_xTaskGetSchedulerState 0 -#endif - -#ifndef INCLUDE_xTaskGetCurrentTaskHandle - #define INCLUDE_xTaskGetCurrentTaskHandle 0 -#endif - - -#ifndef portSET_INTERRUPT_MASK_FROM_ISR - #define portSET_INTERRUPT_MASK_FROM_ISR() 0 -#endif - -#ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR - #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue -#endif - - -#ifndef configQUEUE_REGISTRY_SIZE - #define configQUEUE_REGISTRY_SIZE 0U -#endif - -#if ( configQUEUE_REGISTRY_SIZE < 1U ) - #define vQueueAddToRegistry( xQueue, pcName ) - #define vQueueUnregisterQueue( xQueue ) -#endif - - -/* Remove any unused trace macros. */ -#ifndef traceSTART - /* Used to perform any necessary initialisation - for example, open a file - into which trace is to be written. */ - #define traceSTART() -#endif - -#ifndef traceEND - /* Use to close a trace, for example close a file into which trace has been - written. */ - #define traceEND() -#endif - -#ifndef traceTASK_SWITCHED_IN - /* Called after a task has been selected to run. pxCurrentTCB holds a pointer - to the task control block of the selected task. */ - #define traceTASK_SWITCHED_IN() -#endif - -#ifndef traceTASK_SWITCHED_OUT - /* Called before a task has been selected to run. pxCurrentTCB holds a pointer - to the task control block of the task being switched out. */ - #define traceTASK_SWITCHED_OUT() -#endif - -#ifndef traceBLOCKING_ON_QUEUE_RECEIVE - /* Task is about to block because it cannot read from a - queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore - upon which the read was attempted. pxCurrentTCB points to the TCB of the - task that attempted the read. */ - #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) -#endif - -#ifndef traceBLOCKING_ON_QUEUE_SEND - /* Task is about to block because it cannot write to a - queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore - upon which the write was attempted. pxCurrentTCB points to the TCB of the - task that attempted the write. */ - #define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) -#endif - -#ifndef configCHECK_FOR_STACK_OVERFLOW - #define configCHECK_FOR_STACK_OVERFLOW 0 -#endif - -/* The following event macros are embedded in the kernel API calls. */ - -#ifndef traceQUEUE_CREATE - #define traceQUEUE_CREATE( pxNewQueue ) -#endif - -#ifndef traceQUEUE_CREATE_FAILED - #define traceQUEUE_CREATE_FAILED() -#endif - -#ifndef traceCREATE_MUTEX - #define traceCREATE_MUTEX( pxNewQueue ) -#endif - -#ifndef traceCREATE_MUTEX_FAILED - #define traceCREATE_MUTEX_FAILED() -#endif - -#ifndef traceGIVE_MUTEX_RECURSIVE - #define traceGIVE_MUTEX_RECURSIVE( pxMutex ) -#endif - -#ifndef traceGIVE_MUTEX_RECURSIVE_FAILED - #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) -#endif - -#ifndef traceTAKE_MUTEX_RECURSIVE - #define traceTAKE_MUTEX_RECURSIVE( pxMutex ) -#endif - -#ifndef traceTAKE_MUTEX_RECURSIVE_FAILED - #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ) -#endif - -#ifndef traceCREATE_COUNTING_SEMAPHORE - #define traceCREATE_COUNTING_SEMAPHORE() -#endif - -#ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED - #define traceCREATE_COUNTING_SEMAPHORE_FAILED() -#endif - -#ifndef traceQUEUE_SEND - #define traceQUEUE_SEND( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FAILED - #define traceQUEUE_SEND_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE - #define traceQUEUE_RECEIVE( pxQueue ) -#endif - -#ifndef traceQUEUE_PEEK - #define traceQUEUE_PEEK( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FAILED - #define traceQUEUE_RECEIVE_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FROM_ISR - #define traceQUEUE_SEND_FROM_ISR( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FROM_ISR_FAILED - #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FROM_ISR - #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED - #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_DELETE - #define traceQUEUE_DELETE( pxQueue ) -#endif - -#ifndef traceTASK_CREATE - #define traceTASK_CREATE( pxNewTCB ) -#endif - -#ifndef traceTASK_CREATE_FAILED - #define traceTASK_CREATE_FAILED() -#endif - -#ifndef traceTASK_DELETE - #define traceTASK_DELETE( pxTaskToDelete ) -#endif - -#ifndef traceTASK_DELAY_UNTIL - #define traceTASK_DELAY_UNTIL() -#endif - -#ifndef traceTASK_DELAY - #define traceTASK_DELAY() -#endif - -#ifndef traceTASK_PRIORITY_SET - #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) -#endif - -#ifndef traceTASK_SUSPEND - #define traceTASK_SUSPEND( pxTaskToSuspend ) -#endif - -#ifndef traceTASK_RESUME - #define traceTASK_RESUME( pxTaskToResume ) -#endif - -#ifndef traceTASK_RESUME_FROM_ISR - #define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) -#endif - -#ifndef traceTASK_INCREMENT_TICK - #define traceTASK_INCREMENT_TICK( xTickCount ) -#endif - -#ifndef traceTIMER_CREATE - #define traceTIMER_CREATE( pxNewTimer ) -#endif - -#ifndef traceTIMER_CREATE_FAILED - #define traceTIMER_CREATE_FAILED() -#endif - -#ifndef traceTIMER_COMMAND_SEND - #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn ) -#endif - -#ifndef traceTIMER_EXPIRED - #define traceTIMER_EXPIRED( pxTimer ) -#endif - -#ifndef traceTIMER_COMMAND_RECEIVED - #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue ) -#endif - -#ifndef configGENERATE_RUN_TIME_STATS - #define configGENERATE_RUN_TIME_STATS 0 -#endif - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS - #error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined. portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer/counter that can then be used as the run time counter time base. - #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */ - - #ifndef portGET_RUN_TIME_COUNTER_VALUE - #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE - #error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined. See the examples provided and the FreeRTOS web site for more information. - #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */ - #endif /* portGET_RUN_TIME_COUNTER_VALUE */ - -#endif /* configGENERATE_RUN_TIME_STATS */ - -#ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS - #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() -#endif - -#ifndef configUSE_MALLOC_FAILED_HOOK - #define configUSE_MALLOC_FAILED_HOOK 0 -#endif - -#ifndef portPRIVILEGE_BIT - #define portPRIVILEGE_BIT ( ( unsigned portBASE_TYPE ) 0x00 ) -#endif - -#ifndef portYIELD_WITHIN_API - #define portYIELD_WITHIN_API portYIELD -#endif - -#ifndef pvPortMallocAligned - #define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) ) -#endif - -#ifndef vPortFreeAligned - #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree ) -#endif - -#endif /* INC_FREERTOS_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/StackMacros.h b/FreeRTOSWithTraces/FreeRTOS_include/StackMacros.h deleted file mode 100644 index 1114b6d..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/StackMacros.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef STACK_MACROS_H -#define STACK_MACROS_H - -/* - * Call the stack overflow hook function if the stack of the task being swapped - * out is currently overflowed, or looks like it might have overflowed in the - * past. - * - * Setting configCHECK_FOR_STACK_OVERFLOW to 1 will cause the macro to check - * the current stack state only - comparing the current top of stack value to - * the stack limit. Setting configCHECK_FOR_STACK_OVERFLOW to greater than 1 - * will also cause the last few stack bytes to be checked to ensure the value - * to which the bytes were set when the task was created have not been - * overwritten. Note this second test does not guarantee that an overflowed - * stack will always be recognised. - */ - -/*-----------------------------------------------------------*/ - -#if( configCHECK_FOR_STACK_OVERFLOW == 0 ) - - /* FreeRTOSConfig.h is not set to check for stack overflows. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 0 */ -/*-----------------------------------------------------------*/ - -#if( configCHECK_FOR_STACK_OVERFLOW == 1 ) - - /* FreeRTOSConfig.h is only set to use the first method of - overflow checking. */ - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH < 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ - { \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW > 0 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH > 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ - { \ - \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) ) - - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pxCurrentTCB->pxStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) ) - - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - char *pcEndOfStack = ( char * ) pxCurrentTCB->pxEndOfStack; \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -#endif /* STACK_MACROS_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/croutine.h b/FreeRTOSWithTraces/FreeRTOS_include/croutine.h deleted file mode 100644 index 65fdc48..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/croutine.h +++ /dev/null @@ -1,752 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef CO_ROUTINE_H -#define CO_ROUTINE_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include croutine.h" -#endif - -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Used to hide the implementation of the co-routine control block. The -control block structure however has to be included in the header due to -the macro implementation of the co-routine functionality. */ -typedef void * xCoRoutineHandle; - -/* Defines the prototype to which co-routine functions must conform. */ -typedef void (*crCOROUTINE_CODE)( xCoRoutineHandle, unsigned portBASE_TYPE ); - -typedef struct corCoRoutineControlBlock -{ - crCOROUTINE_CODE pxCoRoutineFunction; - xListItem xGenericListItem; /*< List item used to place the CRCB in ready and blocked queues. */ - xListItem xEventListItem; /*< List item used to place the CRCB in event lists. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the co-routine in relation to other co-routines. */ - unsigned portBASE_TYPE uxIndex; /*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */ - unsigned short uxState; /*< Used internally by the co-routine implementation. */ -} corCRCB; /* Co-routine control block. Note must be identical in size down to uxPriority with tskTCB. */ - -/** - * croutine. h - *<pre> - portBASE_TYPE xCoRoutineCreate( - crCOROUTINE_CODE pxCoRoutineCode, - unsigned portBASE_TYPE uxPriority, - unsigned portBASE_TYPE uxIndex - );</pre> - * - * Create a new co-routine and add it to the list of co-routines that are - * ready to run. - * - * @param pxCoRoutineCode Pointer to the co-routine function. Co-routine - * functions require special syntax - see the co-routine section of the WEB - * documentation for more information. - * - * @param uxPriority The priority with respect to other co-routines at which - * the co-routine will run. - * - * @param uxIndex Used to distinguish between different co-routines that - * execute the same function. See the example below and the co-routine section - * of the WEB documentation for further information. - * - * @return pdPASS if the co-routine was successfully created and added to a ready - * list, otherwise an error code defined with ProjDefs.h. - * - * Example usage: - <pre> - // Co-routine to be created. - void vFlashCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - // This may not be necessary for const variables. - static const char cLedToFlash[ 2 ] = { 5, 6 }; - static const portTickType uxFlashRates[ 2 ] = { 200, 400 }; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // This co-routine just delays for a fixed period, then toggles - // an LED. Two co-routines are created using this function, so - // the uxIndex parameter is used to tell the co-routine which - // LED to flash and how long to delay. This assumes xQueue has - // already been created. - vParTestToggleLED( cLedToFlash[ uxIndex ] ); - crDELAY( xHandle, uxFlashRates[ uxIndex ] ); - } - - // Must end every co-routine with a call to crEND(); - crEND(); - } - - // Function that creates two co-routines. - void vOtherFunction( void ) - { - unsigned char ucParameterToPass; - xTaskHandle xHandle; - - // Create two co-routines at priority 0. The first is given index 0 - // so (from the code above) toggles LED 5 every 200 ticks. The second - // is given index 1 so toggles LED 6 every 400 ticks. - for( uxIndex = 0; uxIndex < 2; uxIndex++ ) - { - xCoRoutineCreate( vFlashCoRoutine, 0, uxIndex ); - } - } - </pre> - * \defgroup xCoRoutineCreate xCoRoutineCreate - * \ingroup Tasks - */ -signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex ); - - -/** - * croutine. h - *<pre> - void vCoRoutineSchedule( void );</pre> - * - * Run a co-routine. - * - * vCoRoutineSchedule() executes the highest priority co-routine that is able - * to run. The co-routine will execute until it either blocks, yields or is - * preempted by a task. Co-routines execute cooperatively so one - * co-routine cannot be preempted by another, but can be preempted by a task. - * - * If an application comprises of both tasks and co-routines then - * vCoRoutineSchedule should be called from the idle task (in an idle task - * hook). - * - * Example usage: - <pre> - // This idle task hook will schedule a co-routine each time it is called. - // The rest of the idle task will execute between co-routine calls. - void vApplicationIdleHook( void ) - { - vCoRoutineSchedule(); - } - - // Alternatively, if you do not require any other part of the idle task to - // execute, the idle task hook can call vCoRoutineScheduler() within an - // infinite loop. - void vApplicationIdleHook( void ) - { - for( ;; ) - { - vCoRoutineSchedule(); - } - } - </pre> - * \defgroup vCoRoutineSchedule vCoRoutineSchedule - * \ingroup Tasks - */ -void vCoRoutineSchedule( void ); - -/** - * croutine. h - * <pre> - crSTART( xCoRoutineHandle xHandle );</pre> - * - * This macro MUST always be called at the start of a co-routine function. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static long ulAVariable; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Co-routine functionality goes here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crSTART crSTART - * \ingroup Tasks - */ -#define crSTART( pxCRCB ) switch( ( ( corCRCB * )( pxCRCB ) )->uxState ) { case 0: - -/** - * croutine. h - * <pre> - crEND();</pre> - * - * This macro MUST always be called at the end of a co-routine function. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static long ulAVariable; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Co-routine functionality goes here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crSTART crSTART - * \ingroup Tasks - */ -#define crEND() } - -/* - * These macros are intended for internal use by the co-routine implementation - * only. The macros should not be used directly by application writers. - */ -#define crSET_STATE0( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2): -#define crSET_STATE1( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1): - -/** - * croutine. h - *<pre> - crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay );</pre> - * - * Delay a co-routine for a fixed period of time. - * - * crDELAY can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * @param xHandle The handle of the co-routine to delay. This is the xHandle - * parameter of the co-routine function. - * - * @param xTickToDelay The number of ticks that the co-routine should delay - * for. The actual amount of time this equates to is defined by - * configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_RATE_MS - * can be used to convert ticks to milliseconds. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - // This may not be necessary for const variables. - // We are to delay for 200ms. - static const xTickType xDelayTime = 200 / portTICK_RATE_MS; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Delay for 200ms. - crDELAY( xHandle, xDelayTime ); - - // Do something here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crDELAY crDELAY - * \ingroup Tasks - */ -#define crDELAY( xHandle, xTicksToDelay ) \ - if( ( xTicksToDelay ) > 0 ) \ - { \ - vCoRoutineAddToDelayedList( ( xTicksToDelay ), NULL ); \ - } \ - crSET_STATE0( ( xHandle ) ); - -/** - * <pre> - crQUEUE_SEND( - xCoRoutineHandle xHandle, - xQueueHandle pxQueue, - void *pvItemToQueue, - portTickType xTicksToWait, - portBASE_TYPE *pxResult - )</pre> - * - * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine - * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks. - * - * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas - * xQueueSend() and xQueueReceive() can only be used from tasks. - * - * crQUEUE_SEND can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xHandle The handle of the calling co-routine. This is the xHandle - * parameter of the co-routine function. - * - * @param pxQueue The handle of the queue on which the data will be posted. - * The handle is obtained as the return value when the queue is created using - * the xQueueCreate() API function. - * - * @param pvItemToQueue A pointer to the data being posted onto the queue. - * The number of bytes of each queued item is specified when the queue is - * created. This number of bytes is copied from pvItemToQueue into the queue - * itself. - * - * @param xTickToDelay The number of ticks that the co-routine should block - * to wait for space to become available on the queue, should space not be - * available immediately. The actual amount of time this equates to is defined - * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see example - * below). - * - * @param pxResult The variable pointed to by pxResult will be set to pdPASS if - * data was successfully posted onto the queue, otherwise it will be set to an - * error defined within ProjDefs.h. - * - * Example usage: - <pre> - // Co-routine function that blocks for a fixed period then posts a number onto - // a queue. - static void prvCoRoutineFlashTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static portBASE_TYPE xNumberToPost = 0; - static portBASE_TYPE xResult; - - // Co-routines must begin with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // This assumes the queue has already been created. - crQUEUE_SEND( xHandle, xCoRoutineQueue, &xNumberToPost, NO_DELAY, &xResult ); - - if( xResult != pdPASS ) - { - // The message was not posted! - } - - // Increment the number to be posted onto the queue. - xNumberToPost++; - - // Delay for 100 ticks. - crDELAY( xHandle, 100 ); - } - - // Co-routines must end with a call to crEND(). - crEND(); - }</pre> - * \defgroup crQUEUE_SEND crQUEUE_SEND - * \ingroup Tasks - */ -#define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult ) \ -{ \ - *( pxResult ) = xQueueCRSend( ( pxQueue) , ( pvItemToQueue) , ( xTicksToWait ) ); \ - if( *( pxResult ) == errQUEUE_BLOCKED ) \ - { \ - crSET_STATE0( ( xHandle ) ); \ - *pxResult = xQueueCRSend( ( pxQueue ), ( pvItemToQueue ), 0 ); \ - } \ - if( *pxResult == errQUEUE_YIELD ) \ - { \ - crSET_STATE1( ( xHandle ) ); \ - *pxResult = pdPASS; \ - } \ -} - -/** - * croutine. h - * <pre> - crQUEUE_RECEIVE( - xCoRoutineHandle xHandle, - xQueueHandle pxQueue, - void *pvBuffer, - portTickType xTicksToWait, - portBASE_TYPE *pxResult - )</pre> - * - * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine - * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks. - * - * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas - * xQueueSend() and xQueueReceive() can only be used from tasks. - * - * crQUEUE_RECEIVE can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xHandle The handle of the calling co-routine. This is the xHandle - * parameter of the co-routine function. - * - * @param pxQueue The handle of the queue from which the data will be received. - * The handle is obtained as the return value when the queue is created using - * the xQueueCreate() API function. - * - * @param pvBuffer The buffer into which the received item is to be copied. - * The number of bytes of each queued item is specified when the queue is - * created. This number of bytes is copied into pvBuffer. - * - * @param xTickToDelay The number of ticks that the co-routine should block - * to wait for data to become available from the queue, should data not be - * available immediately. The actual amount of time this equates to is defined - * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see the - * crQUEUE_SEND example). - * - * @param pxResult The variable pointed to by pxResult will be set to pdPASS if - * data was successfully retrieved from the queue, otherwise it will be set to - * an error code as defined within ProjDefs.h. - * - * Example usage: - <pre> - // A co-routine receives the number of an LED to flash from a queue. It - // blocks on the queue until the number is received. - static void prvCoRoutineFlashWorkTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static portBASE_TYPE xResult; - static unsigned portBASE_TYPE uxLEDToFlash; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Wait for data to become available on the queue. - crQUEUE_RECEIVE( xHandle, xCoRoutineQueue, &uxLEDToFlash, portMAX_DELAY, &xResult ); - - if( xResult == pdPASS ) - { - // We received the LED to flash - flash it! - vParTestToggleLED( uxLEDToFlash ); - } - } - - crEND(); - }</pre> - * \defgroup crQUEUE_RECEIVE crQUEUE_RECEIVE - * \ingroup Tasks - */ -#define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult ) \ -{ \ - *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), ( xTicksToWait ) ); \ - if( *( pxResult ) == errQUEUE_BLOCKED ) \ - { \ - crSET_STATE0( ( xHandle ) ); \ - *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), 0 ); \ - } \ - if( *( pxResult ) == errQUEUE_YIELD ) \ - { \ - crSET_STATE1( ( xHandle ) ); \ - *( pxResult ) = pdPASS; \ - } \ -} - -/** - * croutine. h - * <pre> - crQUEUE_SEND_FROM_ISR( - xQueueHandle pxQueue, - void *pvItemToQueue, - portBASE_TYPE xCoRoutinePreviouslyWoken - )</pre> - * - * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the - * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR() - * functions used by tasks. - * - * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to - * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and - * xQueueReceiveFromISR() can only be used to pass data between a task and and - * ISR. - * - * crQUEUE_SEND_FROM_ISR can only be called from an ISR to send data to a queue - * that is being used from within a co-routine. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xCoRoutinePreviouslyWoken This is included so an ISR can post onto - * the same queue multiple times from a single interrupt. The first call - * should always pass in pdFALSE. Subsequent calls should pass in - * the value returned from the previous call. - * - * @return pdTRUE if a co-routine was woken by posting onto the queue. This is - * used by the ISR to determine if a context switch may be required following - * the ISR. - * - * Example usage: - <pre> - // A co-routine that blocks on a queue waiting for characters to be received. - static void vReceivingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - char cRxedChar; - portBASE_TYPE xResult; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Wait for data to become available on the queue. This assumes the - // queue xCommsRxQueue has already been created! - crQUEUE_RECEIVE( xHandle, xCommsRxQueue, &uxLEDToFlash, portMAX_DELAY, &xResult ); - - // Was a character received? - if( xResult == pdPASS ) - { - // Process the character here. - } - } - - // All co-routines must end with a call to crEND(). - crEND(); - } - - // An ISR that uses a queue to send characters received on a serial port to - // a co-routine. - void vUART_ISR( void ) - { - char cRxedChar; - portBASE_TYPE xCRWokenByPost = pdFALSE; - - // We loop around reading characters until there are none left in the UART. - while( UART_RX_REG_NOT_EMPTY() ) - { - // Obtain the character from the UART. - cRxedChar = UART_RX_REG; - - // Post the character onto a queue. xCRWokenByPost will be pdFALSE - // the first time around the loop. If the post causes a co-routine - // to be woken (unblocked) then xCRWokenByPost will be set to pdTRUE. - // In this manner we can ensure that if more than one co-routine is - // blocked on the queue only one is woken by this ISR no matter how - // many characters are posted to the queue. - xCRWokenByPost = crQUEUE_SEND_FROM_ISR( xCommsRxQueue, &cRxedChar, xCRWokenByPost ); - } - }</pre> - * \defgroup crQUEUE_SEND_FROM_ISR crQUEUE_SEND_FROM_ISR - * \ingroup Tasks - */ -#define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) - - -/** - * croutine. h - * <pre> - crQUEUE_SEND_FROM_ISR( - xQueueHandle pxQueue, - void *pvBuffer, - portBASE_TYPE * pxCoRoutineWoken - )</pre> - * - * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the - * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR() - * functions used by tasks. - * - * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to - * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and - * xQueueReceiveFromISR() can only be used to pass data between a task and and - * ISR. - * - * crQUEUE_RECEIVE_FROM_ISR can only be called from an ISR to receive data - * from a queue that is being used from within a co-routine (a co-routine - * posted to the queue). - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvBuffer A pointer to a buffer into which the received item will be - * placed. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from the queue into - * pvBuffer. - * - * @param pxCoRoutineWoken A co-routine may be blocked waiting for space to become - * available on the queue. If crQUEUE_RECEIVE_FROM_ISR causes such a - * co-routine to unblock *pxCoRoutineWoken will get set to pdTRUE, otherwise - * *pxCoRoutineWoken will remain unchanged. - * - * @return pdTRUE an item was successfully received from the queue, otherwise - * pdFALSE. - * - * Example usage: - <pre> - // A co-routine that posts a character to a queue then blocks for a fixed - // period. The character is incremented each time. - static void vSendingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // cChar holds its value while this co-routine is blocked and must therefore - // be declared static. - static char cCharToTx = 'a'; - portBASE_TYPE xResult; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Send the next character to the queue. - crQUEUE_SEND( xHandle, xCoRoutineQueue, &cCharToTx, NO_DELAY, &xResult ); - - if( xResult == pdPASS ) - { - // The character was successfully posted to the queue. - } - else - { - // Could not post the character to the queue. - } - - // Enable the UART Tx interrupt to cause an interrupt in this - // hypothetical UART. The interrupt will obtain the character - // from the queue and send it. - ENABLE_RX_INTERRUPT(); - - // Increment to the next character then block for a fixed period. - // cCharToTx will maintain its value across the delay as it is - // declared static. - cCharToTx++; - if( cCharToTx > 'x' ) - { - cCharToTx = 'a'; - } - crDELAY( 100 ); - } - - // All co-routines must end with a call to crEND(). - crEND(); - } - - // An ISR that uses a queue to receive characters to send on a UART. - void vUART_ISR( void ) - { - char cCharToTx; - portBASE_TYPE xCRWokenByPost = pdFALSE; - - while( UART_TX_REG_EMPTY() ) - { - // Are there any characters in the queue waiting to be sent? - // xCRWokenByPost will automatically be set to pdTRUE if a co-routine - // is woken by the post - ensuring that only a single co-routine is - // woken no matter how many times we go around this loop. - if( crQUEUE_RECEIVE_FROM_ISR( pxQueue, &cCharToTx, &xCRWokenByPost ) ) - { - SEND_CHARACTER( cCharToTx ); - } - } - }</pre> - * \defgroup crQUEUE_RECEIVE_FROM_ISR crQUEUE_RECEIVE_FROM_ISR - * \ingroup Tasks - */ -#define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) - -/* - * This function is intended for internal use by the co-routine macros only. - * The macro nature of the co-routine implementation requires that the - * prototype appears here. The function should not be used by application - * writers. - * - * Removes the current co-routine from its ready list and places it in the - * appropriate delayed list. - */ -void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList ); - -/* - * This function is intended for internal use by the queue implementation only. - * The function should not be used by application writers. - * - * Removes the highest priority co-routine from the event list and places it in - * the pending ready list. - */ -signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList ); - -#ifdef __cplusplus -} -#endif - -#endif /* CO_ROUTINE_H */ diff --git a/FreeRTOSWithTraces/FreeRTOS_include/list.h b/FreeRTOSWithTraces/FreeRTOS_include/list.h deleted file mode 100644 index e8b47c4..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/list.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* - * This is the list implementation used by the scheduler. While it is tailored - * heavily for the schedulers needs, it is also available for use by - * application code. - * - * xLists can only store pointers to xListItems. Each xListItem contains a - * numeric value (xItemValue). Most of the time the lists are sorted in - * descending item value order. - * - * Lists are created already containing one list item. The value of this - * item is the maximum possible that can be stored, it is therefore always at - * the end of the list and acts as a marker. The list member pxHead always - * points to this marker - even though it is at the tail of the list. This - * is because the tail contains a wrap back pointer to the true head of - * the list. - * - * In addition to it's value, each list item contains a pointer to the next - * item in the list (pxNext), a pointer to the list it is in (pxContainer) - * and a pointer to back to the object that contains it. These later two - * pointers are included for efficiency of list manipulation. There is - * effectively a two way link between the object containing the list item and - * the list item itself. - * - * - * \page ListIntroduction List Implementation - * \ingroup FreeRTOSIntro - */ - - -#ifndef LIST_H -#define LIST_H - -#ifdef __cplusplus -extern "C" { -#endif -/* - * Definition of the only type of object that a list can contain. - */ -struct xLIST_ITEM -{ - portTickType xItemValue; /*< The value being listed. In most cases this is used to sort the list in descending order. */ - volatile struct xLIST_ITEM * pxNext; /*< Pointer to the next xListItem in the list. */ - volatile struct xLIST_ITEM * pxPrevious;/*< Pointer to the previous xListItem in the list. */ - void * pvOwner; /*< Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */ - void * pvContainer; /*< Pointer to the list in which this list item is placed (if any). */ -}; -typedef struct xLIST_ITEM xListItem; /* For some reason lint wants this as two separate definitions. */ - -struct xMINI_LIST_ITEM -{ - portTickType xItemValue; - volatile struct xLIST_ITEM *pxNext; - volatile struct xLIST_ITEM *pxPrevious; -}; -typedef struct xMINI_LIST_ITEM xMiniListItem; - -/* - * Definition of the type of queue used by the scheduler. - */ -typedef struct xLIST -{ - volatile unsigned portBASE_TYPE uxNumberOfItems; - volatile xListItem * pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to pvListGetOwnerOfNextEntry (). */ - volatile xMiniListItem xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ -} xList; - -/* - * Access macro to set the owner of a list item. The owner of a list item - * is the object (usually a TCB) that contains the list item. - * - * \page listSET_LIST_ITEM_OWNER listSET_LIST_ITEM_OWNER - * \ingroup LinkedList - */ -#define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner ) ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) - -/* - * Access macro to set the value of the list item. In most cases the value is - * used to sort the list in descending order. - * - * \page listSET_LIST_ITEM_VALUE listSET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listSET_LIST_ITEM_VALUE( pxListItem, xValue ) ( pxListItem )->xItemValue = ( xValue ) - -/* - * Access macro the retrieve the value of the list item. The value can - * represent anything - for example a the priority of a task, or the time at - * which a task should be unblocked. - * - * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listGET_LIST_ITEM_VALUE( pxListItem ) ( ( pxListItem )->xItemValue ) - -/* - * Access macro the retrieve the value of the list item at the head of a given - * list. - * - * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList ) ( (&( ( pxList )->xListEnd ))->pxNext->xItemValue ) - -/* - * Access macro to determine if a list contains any items. The macro will - * only have the value true if the list is empty. - * - * \page listLIST_IS_EMPTY listLIST_IS_EMPTY - * \ingroup LinkedList - */ -#define listLIST_IS_EMPTY( pxList ) ( ( pxList )->uxNumberOfItems == ( unsigned portBASE_TYPE ) 0 ) - -/* - * Access macro to return the number of items in the list. - */ -#define listCURRENT_LIST_LENGTH( pxList ) ( ( pxList )->uxNumberOfItems ) - -/* - * Access function to obtain the owner of the next entry in a list. - * - * The list member pxIndex is used to walk through a list. Calling - * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list - * and returns that entries pxOwner parameter. Using multiple calls to this - * function it is therefore possible to move through every item contained in - * a list. - * - * The pxOwner parameter of a list item is a pointer to the object that owns - * the list item. In the scheduler this is normally a task control block. - * The pxOwner parameter effectively creates a two way link between the list - * item and its owner. - * - * @param pxList The list from which the next item owner is to be returned. - * - * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY - * \ingroup LinkedList - */ -#define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \ -{ \ -xList * const pxConstList = ( pxList ); \ - /* Increment the index to the next item and return the item, ensuring */ \ - /* we don't return the marker used at the end of the list. */ \ - ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \ - if( ( pxConstList )->pxIndex == ( xListItem * ) &( ( pxConstList )->xListEnd ) ) \ - { \ - ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \ - } \ - ( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \ -} - - -/* - * Access function to obtain the owner of the first entry in a list. Lists - * are normally sorted in ascending item value order. - * - * This function returns the pxOwner member of the first item in the list. - * The pxOwner parameter of a list item is a pointer to the object that owns - * the list item. In the scheduler this is normally a task control block. - * The pxOwner parameter effectively creates a two way link between the list - * item and its owner. - * - * @param pxList The list from which the owner of the head item is to be - * returned. - * - * \page listGET_OWNER_OF_HEAD_ENTRY listGET_OWNER_OF_HEAD_ENTRY - * \ingroup LinkedList - */ -#define listGET_OWNER_OF_HEAD_ENTRY( pxList ) ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner ) - -/* - * Check to see if a list item is within a list. The list item maintains a - * "container" pointer that points to the list it is in. All this macro does - * is check to see if the container and the list match. - * - * @param pxList The list we want to know if the list item is within. - * @param pxListItem The list item we want to know if is in the list. - * @return pdTRUE is the list item is in the list, otherwise pdFALSE. - * pointer against - */ -#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) - -/* - * Must be called before a list is used! This initialises all the members - * of the list structure and inserts the xListEnd item into the list as a - * marker to the back of the list. - * - * @param pxList Pointer to the list being initialised. - * - * \page vListInitialise vListInitialise - * \ingroup LinkedList - */ -void vListInitialise( xList *pxList ); - -/* - * Must be called before a list item is used. This sets the list container to - * null so the item does not think that it is already contained in a list. - * - * @param pxItem Pointer to the list item being initialised. - * - * \page vListInitialiseItem vListInitialiseItem - * \ingroup LinkedList - */ -void vListInitialiseItem( xListItem *pxItem ); - -/* - * Insert a list item into a list. The item will be inserted into the list in - * a position determined by its item value (descending item value order). - * - * @param pxList The list into which the item is to be inserted. - * - * @param pxNewListItem The item to that is to be placed in the list. - * - * \page vListInsert vListInsert - * \ingroup LinkedList - */ -void vListInsert( xList *pxList, xListItem *pxNewListItem ); - -/* - * Insert a list item into a list. The item will be inserted in a position - * such that it will be the last item within the list returned by multiple - * calls to listGET_OWNER_OF_NEXT_ENTRY. - * - * The list member pvIndex is used to walk through a list. Calling - * listGET_OWNER_OF_NEXT_ENTRY increments pvIndex to the next item in the list. - * Placing an item in a list using vListInsertEnd effectively places the item - * in the list position pointed to by pvIndex. This means that every other - * item within the list will be returned by listGET_OWNER_OF_NEXT_ENTRY before - * the pvIndex parameter again points to the item being inserted. - * - * @param pxList The list into which the item is to be inserted. - * - * @param pxNewListItem The list item to be inserted into the list. - * - * \page vListInsertEnd vListInsertEnd - * \ingroup LinkedList - */ -void vListInsertEnd( xList *pxList, xListItem *pxNewListItem ); - -/* - * Remove an item from a list. The list item has a pointer to the list that - * it is in, so only the list item need be passed into the function. - * - * @param vListRemove The item to be removed. The item will remove itself from - * the list pointed to by it's pxContainer parameter. - * - * \page vListRemove vListRemove - * \ingroup LinkedList - */ -void vListRemove( xListItem *pxItemToRemove ); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/mpu_wrappers.h b/FreeRTOSWithTraces/FreeRTOS_include/mpu_wrappers.h deleted file mode 100644 index b7371b9..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/mpu_wrappers.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef MPU_WRAPPERS_H -#define MPU_WRAPPERS_H - -/* This file redefines API functions to be called through a wrapper macro, but -only for ports that are using the MPU. */ -#ifdef portUSING_MPU_WRAPPERS - - /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is - included from queue.c or task.c to prevent it from having an effect within - those files. */ - #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - - #define xTaskGenericCreate MPU_xTaskGenericCreate - #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions - #define vTaskDelete MPU_vTaskDelete - #define vTaskDelayUntil MPU_vTaskDelayUntil - #define vTaskDelay MPU_vTaskDelay - #define uxTaskPriorityGet MPU_uxTaskPriorityGet - #define vTaskPrioritySet MPU_vTaskPrioritySet - #define vTaskSuspend MPU_vTaskSuspend - #define xTaskIsTaskSuspended MPU_xTaskIsTaskSuspended - #define vTaskResume MPU_vTaskResume - #define vTaskSuspendAll MPU_vTaskSuspendAll - #define xTaskResumeAll MPU_xTaskResumeAll - #define xTaskGetTickCount MPU_xTaskGetTickCount - #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks - #define vTaskList MPU_vTaskList - #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats - #define vTaskStartTrace MPU_vTaskStartTrace - #define ulTaskEndTrace MPU_ulTaskEndTrace - #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag - #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag - #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook - #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark - #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle - #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState - - #define xQueueCreate MPU_xQueueCreate - #define xQueueCreateMutex MPU_xQueueCreateMutex - #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive - #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive - #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore - #define xQueueGenericSend MPU_xQueueGenericSend - #define xQueueAltGenericSend MPU_xQueueAltGenericSend - #define xQueueAltGenericReceive MPU_xQueueAltGenericReceive - #define xQueueGenericReceive MPU_xQueueGenericReceive - #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting - #define vQueueDelete MPU_vQueueDelete - - #define pvPortMalloc MPU_pvPortMalloc - #define vPortFree MPU_vPortFree - #define xPortGetFreeHeapSize MPU_xPortGetFreeHeapSize - #define vPortInitialiseBlocks MPU_vPortInitialiseBlocks - - #if configQUEUE_REGISTRY_SIZE > 0 - #define vQueueAddToRegistry MPU_vQueueAddToRegistry - #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue - #endif - - /* Remove the privileged function macro. */ - #define PRIVILEGED_FUNCTION - - #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ - - /* Ensure API functions go in the privileged execution section. */ - #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions"))) - #define PRIVILEGED_DATA __attribute__((section("privileged_data"))) - //#define PRIVILEGED_DATA - - #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ - -#else /* portUSING_MPU_WRAPPERS */ - - #define PRIVILEGED_FUNCTION - #define PRIVILEGED_DATA - #define portUSING_MPU_WRAPPERS 0 - -#endif /* portUSING_MPU_WRAPPERS */ - - -#endif /* MPU_WRAPPERS_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/portable.h b/FreeRTOSWithTraces/FreeRTOS_include/portable.h deleted file mode 100644 index 5bb784d..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/portable.h +++ /dev/null @@ -1,396 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/*----------------------------------------------------------- - * Portable layer API. Each function must be defined for each port. - *----------------------------------------------------------*/ - -#ifndef PORTABLE_H -#define PORTABLE_H - -/* Include the macro file relevant to the port being used. */ - -#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT - #include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT - #include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef GCC_MEGA_AVR -#include "portmacro.h" -#endif - -#ifdef IAR_MEGA_AVR -#include "portmacro.h" -#endif - -#ifdef MPLAB_PIC24_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_DSPIC_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_PIC18F_PORT - #include "..\..\Source\portable\MPLAB\PIC18F\portmacro.h" -#endif - -#ifdef MPLAB_PIC32MX_PORT - #include "..\..\Source\portable\MPLAB\PIC32MX\portmacro.h" -#endif - -#ifdef _FEDPICC -#include "portmacro.h" -#endif - -#ifdef SDCC_CYGNAL -#include "portmacro.h" -#endif - -#ifdef GCC_ARM7 -#include "portmacro.h" -#endif - -#ifdef GCC_ARM7_ECLIPSE - #include "portmacro.h" -#endif - -#ifdef ROWLEY_LPC23xx -#include "portmacro.h" -#endif - -#ifdef IAR_MSP430 - #include "..\..\Source\portable\IAR\MSP430\portmacro.h" -#endif - -#ifdef GCC_MSP430 -#include "portmacro.h" -#endif - -#ifdef ROWLEY_MSP430 -#include "portmacro.h" -#endif - -#ifdef ARM7_LPC21xx_KEIL_RVDS - #include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h" -#endif - -#ifdef SAM7_GCC -#include "portmacro.h" -#endif - -#ifdef SAM7_IAR - #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h" -#endif - -#ifdef SAM9XE_IAR - #include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h" -#endif - -#ifdef LPC2000_IAR - #include "..\..\Source\portable\IAR\LPC2000\portmacro.h" -#endif - -#ifdef STR71X_IAR - #include "..\..\Source\portable\IAR\STR71x\portmacro.h" -#endif - -#ifdef STR75X_IAR - #include "..\..\Source\portable\IAR\STR75x\portmacro.h" -#endif - -#ifdef STR75X_GCC - #include "..\..\Source\portable\GCC\STR75x\portmacro.h" -#endif - -#ifdef STR91X_IAR - #include "..\..\Source\portable\IAR\STR91x\portmacro.h" -#endif - -#ifdef GCC_H8S -#include "portmacro.h" -#endif - -#ifdef GCC_AT91FR40008 -#include "portmacro.h" -#endif - -#ifdef RVDS_ARMCM3_LM3S102 -#include "portmacro.h" -#endif - -#ifdef GCC_ARMCM3_LM3S102 -#include "portmacro.h" -#endif - -#ifdef GCC_ARMCM3 -#include "portmacro.h" -#endif - -#ifdef IAR_ARM_CM3 -#include "portmacro.h" -#endif - -#ifdef IAR_ARMCM3_LM -#include "portmacro.h" -#endif - -#ifdef HCS12_CODE_WARRIOR -#include "portmacro.h" -#endif - -#ifdef MICROBLAZE_GCC -#include "portmacro.h" -#endif - -#ifdef TERN_EE - #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h" -#endif - -#ifdef GCC_HCS12 -#include "portmacro.h" -#endif - -#ifdef GCC_MCF5235 -#include "portmacro.h" -#endif - -#ifdef COLDFIRE_V2_GCC -#include "portmacro.h" -#endif - -#ifdef COLDFIRE_V2_CODEWARRIOR -#include "portmacro.h" -#endif - -#ifdef GCC_PPC405 -#include "portmacro.h" -#endif - -#ifdef GCC_PPC440 -#include "portmacro.h" -#endif - -#ifdef _16FX_SOFTUNE - #include "..\..\Source\portable\Softune\MB96340\portmacro.h" -#endif - -#ifdef BCC_INDUSTRIAL_PC_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\PC\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef BCC_FLASH_LITE_186_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef __GNUC__ - #ifdef __AVR32_AVR32A__ - #include "portmacro.h" - #endif -#endif - -#ifdef __ICCAVR32__ - #ifdef __CORE__ - #if __CORE__ == __AVR32A__ - #include "portmacro.h" - #endif - #endif -#endif - -#ifdef __91467D - #include "portmacro.h" -#endif - -#ifdef __96340 - #include "portmacro.h" -#endif - - -#ifdef __IAR_V850ES_Fx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3_L__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx2__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Hx2__ -#include "portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3L__ -#include "portmacro.h" -#endif - -/* Catch all to ensure portmacro.h is included in the build. Newer demos -have the path as part of the project options, rather than as relative from -the project location. If portENTER_CRITICAL() has not been defined then -portmacro.h has not yet been included - as every portmacro.h provides a -portENTER_CRITICAL() definition. Check the demo application for your demo -to find the path to the correct portmacro.h file. */ -#ifndef portENTER_CRITICAL - #include "portmacro.h" -#endif - -#if portBYTE_ALIGNMENT == 8 - #define portBYTE_ALIGNMENT_MASK ( 0x0007 ) -#endif - -#if portBYTE_ALIGNMENT == 4 - #define portBYTE_ALIGNMENT_MASK ( 0x0003 ) -#endif - -#if portBYTE_ALIGNMENT == 2 - #define portBYTE_ALIGNMENT_MASK ( 0x0001 ) -#endif - -#if portBYTE_ALIGNMENT == 1 - #define portBYTE_ALIGNMENT_MASK ( 0x0000 ) -#endif - -#ifndef portBYTE_ALIGNMENT_MASK - #error "Invalid portBYTE_ALIGNMENT definition" -#endif - -#ifndef portNUM_CONFIGURABLE_REGIONS - #define portNUM_CONFIGURABLE_REGIONS 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include "mpu_wrappers.h" - -/* - * Setup the stack of a new task so it is ready to be placed under the - * scheduler control. The registers have to be placed on the stack in - * the order that the port expects to find them. - * - */ -#if( portUSING_MPU_WRAPPERS == 1 ) - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged ) PRIVILEGED_FUNCTION; -#else - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ); -#endif - -/* - * Map to the memory management routines required for the port. - */ -void *pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION; -void vPortFree( void *pv ) PRIVILEGED_FUNCTION; -void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION; -size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION; - -/* - * Setup the hardware ready for the scheduler to take control. This generally - * sets up a tick interrupt and sets timers for the correct tick frequency. - */ -portBASE_TYPE xPortStartScheduler( void ) PRIVILEGED_FUNCTION; - -/* - * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so - * the hardware is left in its original condition after the scheduler stops - * executing. - */ -void vPortEndScheduler( void ) PRIVILEGED_FUNCTION; - -/* - * The structures and methods of manipulating the MPU are contained within the - * port layer. - * - * Fills the xMPUSettings structure with the memory region information - * contained in xRegions. - */ -#if( portUSING_MPU_WRAPPERS == 1 ) - struct xMEMORY_REGION; - void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PORTABLE_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/projdefs.h b/FreeRTOSWithTraces/FreeRTOS_include/projdefs.h deleted file mode 100644 index bf118a8..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/projdefs.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef PROJDEFS_H -#define PROJDEFS_H - -/* Defines the prototype to which task functions must conform. */ -typedef void (*pdTASK_CODE)( void * ); - -#define pdTRUE ( 1 ) -#define pdFALSE ( 0 ) - -#define pdPASS ( 1 ) -#define pdFAIL ( 0 ) -#define errQUEUE_EMPTY ( 0 ) -#define errQUEUE_FULL ( 0 ) - -/* Error definitions. */ -#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ( -1 ) -#define errNO_TASK_TO_RUN ( -2 ) -#define errQUEUE_BLOCKED ( -4 ) -#define errQUEUE_YIELD ( -5 ) - -#endif /* PROJDEFS_H */ - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/queue.h b/FreeRTOSWithTraces/FreeRTOS_include/queue.h deleted file mode 100644 index 47add26..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/queue.h +++ /dev/null @@ -1,1270 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef QUEUE_H -#define QUEUE_H - -#ifndef INC_FREERTOS_H - #error "#include FreeRTOS.h" must appear in source files before "#include queue.h" -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#include "mpu_wrappers.h" - -/** - * Type by which queues are referenced. For example, a call to xQueueCreate - * returns (via a pointer parameter) an xQueueHandle variable that can then - * be used as a parameter to xQueueSend(), xQueueReceive(), etc. - */ -typedef void * xQueueHandle; - - -/* For internal use only. */ -#define queueSEND_TO_BACK ( 0 ) -#define queueSEND_TO_FRONT ( 1 ) - - -/** - * queue. h - * <pre> - xQueueHandle xQueueCreate( - unsigned portBASE_TYPE uxQueueLength, - unsigned portBASE_TYPE uxItemSize - ); - * </pre> - * - * Creates a new queue instance. This allocates the storage required by the - * new queue and returns a handle for the queue. - * - * @param uxQueueLength The maximum number of items that the queue can contain. - * - * @param uxItemSize The number of bytes each item in the queue will require. - * Items are queued by copy, not by reference, so this is the number of bytes - * that will be copied for each posted item. Each item on the queue must be - * the same size. - * - * @return If the queue is successfully create then a handle to the newly - * created queue is returned. If the queue cannot be created then 0 is - * returned. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - }; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - if( xQueue1 == 0 ) - { - // Queue was not created and must not be used. - } - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue2 == 0 ) - { - // Queue was not created and must not be used. - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueCreate xQueueCreate - * \ingroup QueueManagement - */ -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToToFront( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). - * - * Post an item to the front of a queue. The item is queued by copy, not by - * reference. This function must not be called from an interrupt service - * routine. See xQueueSendFromISR () for an alternative which may be used - * in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToBack( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). - * - * Post an item to the back of a queue. The item is queued by copy, not by - * reference. This function must not be called from an interrupt service - * routine. See xQueueSendFromISR () for an alternative which may be used - * in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the queue - * is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSend( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). It is included for - * backward compatibility with versions of FreeRTOS.org that did not - * include the xQueueSendToFront() and xQueueSendToBack() macros. It is - * equivalent to xQueueSendToBack(). - * - * Post an item on a queue. The item is queued by copy, not by reference. - * This function must not be called from an interrupt service routine. - * See xQueueSendFromISR () for an alternative which may be used in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericSend( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - portBASE_TYPE xCopyPosition - ); - * </pre> - * - * It is preferred that the macros xQueueSend(), xQueueSendToFront() and - * xQueueSendToBack() are used in place of calling this function directly. - * - * Post an item on a queue. The item is queued by copy, not by reference. - * This function must not be called from an interrupt service routine. - * See xQueueSendFromISR () for an alternative which may be used in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the - * item at the back of the queue, or queueSEND_TO_FRONT to place the item - * at the front of the queue (for high priority messages). - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10, queueSEND_TO_BACK ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0, queueSEND_TO_BACK ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueuePeek( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - );</pre> - * - * This is a macro that calls the xQueueGenericReceive() function. - * - * Receive an item from a queue without removing the item from the queue. - * The item is received by copy so a buffer of adequate size must be - * provided. The number of bytes copied into the buffer was defined when - * the queue was created. - * - * Successfully received items remain on the queue so will be returned again - * by the next call, or a call to xQueueReceive(). - * - * This macro must not be used in an interrupt service routine. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * xQueuePeek() will return immediately if xTicksToWait is 0 and the queue - * is empty. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to peek the data from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Peek a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueuePeek( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask, but the item still remains on the queue. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -#define xQueuePeek( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueReceive( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - );</pre> - * - * This is a macro that calls the xQueueGenericReceive() function. - * - * Receive an item from a queue. The item is received by copy so a buffer of - * adequate size must be provided. The number of bytes copied into the buffer - * was defined when the queue was created. - * - * Successfully received items are removed from the queue. - * - * This function must not be used in an interrupt service routine. See - * xQueueReceiveFromISR for an alternative that can. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. xQueueReceive() will return immediately if xTicksToWait - * is zero and the queue is empty. The time is defined in tick periods so the - * constant portTICK_RATE_MS should be used to convert to real time if this is - * required. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to receive from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Receive a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueueReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericReceive( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - portBASE_TYPE xJustPeek - );</pre> - * - * It is preferred that the macro xQueueReceive() be used rather than calling - * this function directly. - * - * Receive an item from a queue. The item is received by copy so a buffer of - * adequate size must be provided. The number of bytes copied into the buffer - * was defined when the queue was created. - * - * This function must not be used in an interrupt service routine. See - * xQueueReceiveFromISR for an alternative that can. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * xQueueGenericReceive() will return immediately if the queue is empty and - * xTicksToWait is 0. - * - * @param xJustPeek When set to true, the item received from the queue is not - * actually removed from the queue - meaning a subsequent call to - * xQueueReceive() will return the same item. When set to false, the item - * being received from the queue is also removed from the queue. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to receive from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Receive a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeek ); - -/** - * queue. h - * <pre>unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );</pre> - * - * Return the number of messages stored in a queue. - * - * @param xQueue A handle to the queue being queried. - * - * @return The number of messages available in the queue. - * - * \page uxQueueMessagesWaiting uxQueueMessagesWaiting - * \ingroup QueueManagement - */ -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue ); - -/** - * queue. h - * <pre>void vQueueDelete( xQueueHandle xQueue );</pre> - * - * Delete a queue - freeing all the memory allocated for storing of items - * placed on the queue. - * - * @param xQueue A handle to the queue to be deleted. - * - * \page vQueueDelete vQueueDelete - * \ingroup QueueManagement - */ -void vQueueDelete( xQueueHandle pxQueue ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToFrontFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). - * - * Post an item to the front of a queue. It is safe to use this macro from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendToFrontFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendToFromFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPrioritTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendToFrontFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - taskYIELD (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendToFrontFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_FRONT ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToBackFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). - * - * Post an item to the back of a queue. It is safe to use this macro from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendToBackFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendToBackFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendToBackFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - taskYIELD (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendToBackFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). It is included - * for backward compatibility with versions of FreeRTOS.org that did not - * include the xQueueSendToBackFromISR() and xQueueSendToFrontFromISR() - * macros. - * - * Post an item to the back of a queue. It is safe to use this function from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - // Actual macro used here is port specific. - taskYIELD_FROM_ISR (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericSendFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken, - portBASE_TYPE xCopyPosition - ); - </pre> - * - * It is preferred that the macros xQueueSendFromISR(), - * xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place - * of calling this function directly. - * - * Post an item on a queue. It is safe to use this function from within an - * interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueGenericSendFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueGenericSendFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the - * item at the back of the queue, or queueSEND_TO_FRONT to place the item - * at the front of the queue (for high priority messages). - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWokenByPost; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWokenByPost = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post each byte. - xQueueGenericSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWokenByPost, queueSEND_TO_BACK ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. Note that the - // name of the yield function required is port specific. - if( xHigherPriorityTaskWokenByPost ) - { - taskYIELD_YIELD_FROM_ISR(); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueReceiveFromISR( - xQueueHandle pxQueue, - void *pvBuffer, - portBASE_TYPE *pxTaskWoken - ); - * </pre> - * - * Receive an item from a queue. It is safe to use this function from within an - * interrupt service routine. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param pxTaskWoken A task may be blocked waiting for space to become - * available on the queue. If xQueueReceiveFromISR causes such a task to - * unblock *pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will - * remain unchanged. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - - xQueueHandle xQueue; - - // Function to create a queue and post some values. - void vAFunction( void *pvParameters ) - { - char cValueToPost; - const portTickType xBlockTime = ( portTickType )0xff; - - // Create a queue capable of containing 10 characters. - xQueue = xQueueCreate( 10, sizeof( char ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Post some characters that will be used within an ISR. If the queue - // is full then this task will block for xBlockTime ticks. - cValueToPost = 'a'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - cValueToPost = 'b'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - - // ... keep posting characters ... this task may block when the queue - // becomes full. - - cValueToPost = 'c'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - } - - // ISR that outputs all the characters received on the queue. - void vISR_Routine( void ) - { - portBASE_TYPE xTaskWokenByReceive = pdFALSE; - char cRxedChar; - - while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) ) - { - // A character was received. Output the character now. - vOutputCharacter( cRxedChar ); - - // If removing the character from the queue woke the task that was - // posting onto the queue cTaskWokenByReceive will have been set to - // pdTRUE. No matter how many times this loop iterates only one - // task will be woken. - } - - if( cTaskWokenByPost != ( char ) pdFALSE; - { - taskYIELD (); - } - } - </pre> - * \defgroup xQueueReceiveFromISR xQueueReceiveFromISR - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ); - -/* - * Utilities to query queue that are safe to use from an ISR. These utilities - * should be used only from witin an ISR, or within a critical section. - */ -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ); -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ); -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ); - - -/* - * xQueueAltGenericSend() is an alternative version of xQueueGenericSend(). - * Likewise xQueueAltGenericReceive() is an alternative version of - * xQueueGenericReceive(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ); -signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ); -#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT ) -#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) -#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE ) -#define xQueueAltPeek( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE ) - -/* - * The functions defined above are for passing data to and from tasks. The - * functions below are the equivalents for passing data to and from - * co-routines. - * - * These functions are called from the co-routine macro implementation and - * should not be called directly from application code. Instead use the macro - * wrappers defined within croutine.h. - */ -signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ); -signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken ); -signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ); -signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ); - -/* - * For internal use only. Use xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting() instead of calling these functions directly. - */ -xQueueHandle xQueueCreateMutex( void ); -xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ); - -/* - * For internal use only. Use xSemaphoreTakeMutexRecursive() or - * xSemaphoreGiveMutexRecursive() instead of calling these functions directly. - */ -portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime ); -portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ); - -/* - * The registry is provided as a means for kernel aware debuggers to - * locate queues, semaphores and mutexes. Call vQueueAddToRegistry() add - * a queue, semaphore or mutex handle to the registry if you want the handle - * to be available to a kernel aware debugger. If you are not using a kernel - * aware debugger then this function can be ignored. - * - * configQUEUE_REGISTRY_SIZE defines the maximum number of handles the - * registry can hold. configQUEUE_REGISTRY_SIZE must be greater than 0 - * within FreeRTOSConfig.h for the registry to be available. Its value - * does not effect the number of queues, semaphores and mutexes that can be - * created - just the number that the registry can hold. - * - * @param xQueue The handle of the queue being added to the registry. This - * is the handle returned by a call to xQueueCreate(). Semaphore and mutex - * handles can also be passed in here. - * - * @param pcName The name to be associated with the handle. This is the - * name that the kernel aware debugger will display. - */ -#if configQUEUE_REGISTRY_SIZE > 0U - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName ); -#endif - -/* Not a public API function, hence the 'Restricted' in the name. */ -void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ); - - -#ifdef __cplusplus -} -#endif - -#endif /* QUEUE_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/semphr.h b/FreeRTOSWithTraces/FreeRTOS_include/semphr.h deleted file mode 100644 index 0130f1d..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/semphr.h +++ /dev/null @@ -1,717 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef SEMAPHORE_H -#define SEMAPHORE_H - -#ifndef INC_FREERTOS_H - #error "#include FreeRTOS.h" must appear in source files before "#include semphr.h" -#endif - -#include "queue.h" - -typedef xQueueHandle xSemaphoreHandle; - -#define semBINARY_SEMAPHORE_QUEUE_LENGTH ( ( unsigned char ) 1U ) -#define semSEMAPHORE_QUEUE_ITEM_LENGTH ( ( unsigned char ) 0U ) -#define semGIVE_BLOCK_TIME ( ( portTickType ) 0U ) - - -/** - * semphr. h - * <pre>vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )</pre> - * - * <i>Macro</i> that implements a semaphore by using the existing queue mechanism. - * The queue length is 1 as this is a binary semaphore. The data size is 0 - * as we don't want to actually store any data - we just want to know if the - * queue is empty or full. - * - * This type of semaphore can be used for pure synchronisation between tasks or - * between an interrupt and a task. The semaphore need not be given back once - * obtained, so one task/interrupt can continuously 'give' the semaphore while - * another continuously 'takes' the semaphore. For this reason this type of - * semaphore does not use a priority inheritance mechanism. For an alternative - * that does use priority inheritance see xSemaphoreCreateMutex(). - * - * @param xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to vSemaphoreCreateBinary (). - // This is a macro so pass the variable in directly. - vSemaphoreCreateBinary( xSemaphore ); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateBinary vSemaphoreCreateBinary - * \ingroup Semaphores - */ -#define vSemaphoreCreateBinary( xSemaphore ) { \ - ( xSemaphore ) = xQueueCreate( ( unsigned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH ); \ - if( ( xSemaphore ) != NULL ) \ - { \ - xSemaphoreGive( ( xSemaphore ) ); \ - } \ - } - -/** - * semphr. h - * <pre>xSemaphoreTake( - * xSemaphoreHandle xSemaphore, - * portTickType xBlockTime - * )</pre> - * - * <i>Macro</i> to obtain a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting(). - * - * @param xSemaphore A handle to the semaphore being taken - obtained when - * the semaphore was created. - * - * @param xBlockTime The time in ticks to wait for the semaphore to become - * available. The macro portTICK_RATE_MS can be used to convert this to a - * real time. A block time of zero can be used to poll the semaphore. A block - * time of portMAX_DELAY can be used to block indefinitely (provided - * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h). - * - * @return pdTRUE if the semaphore was obtained. pdFALSE - * if xBlockTime expired without the semaphore becoming available. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore = NULL; - - // A task that creates a semaphore. - void vATask( void * pvParameters ) - { - // Create the semaphore to guard a shared resource. - vSemaphoreCreateBinary( xSemaphore ); - } - - // A task that uses the semaphore. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xSemaphore != NULL ) - { - // See if we can obtain the semaphore. If the semaphore is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the semaphore and can now access the - // shared resource. - - // ... - - // We have finished accessing the shared resource. Release the - // semaphore. - xSemaphoreGive( xSemaphore ); - } - else - { - // We could not obtain the semaphore and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreTake xSemaphoreTake - * \ingroup Semaphores - */ -#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE ) - -/** - * semphr. h - * xSemaphoreTakeRecursive( - * xSemaphoreHandle xMutex, - * portTickType xBlockTime - * ) - * - * <i>Macro</i> to recursively obtain, or 'take', a mutex type semaphore. - * The mutex must have previously been created using a call to - * xSemaphoreCreateRecursiveMutex(); - * - * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this - * macro to be available. - * - * This macro must not be used on mutexes created using xSemaphoreCreateMutex(). - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * @param xMutex A handle to the mutex being obtained. This is the - * handle returned by xSemaphoreCreateRecursiveMutex(); - * - * @param xBlockTime The time in ticks to wait for the semaphore to become - * available. The macro portTICK_RATE_MS can be used to convert this to a - * real time. A block time of zero can be used to poll the semaphore. If - * the task already owns the semaphore then xSemaphoreTakeRecursive() will - * return immediately no matter what the value of xBlockTime. - * - * @return pdTRUE if the semaphore was obtained. pdFALSE if xBlockTime - * expired without the semaphore becoming available. - * - * Example usage: - <pre> - xSemaphoreHandle xMutex = NULL; - - // A task that creates a mutex. - void vATask( void * pvParameters ) - { - // Create the mutex to guard a shared resource. - xMutex = xSemaphoreCreateRecursiveMutex(); - } - - // A task that uses the mutex. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xMutex != NULL ) - { - // See if we can obtain the mutex. If the mutex is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTakeRecursive( xSemaphore, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the mutex and can now access the - // shared resource. - - // ... - // For some reason due to the nature of the code further calls to - // xSemaphoreTakeRecursive() are made on the same mutex. In real - // code these would not be just sequential calls as this would make - // no sense. Instead the calls are likely to be buried inside - // a more complex call structure. - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - - // The mutex has now been 'taken' three times, so will not be - // available to another task until it has also been given back - // three times. Again it is unlikely that real code would have - // these calls sequentially, but instead buried in a more complex - // call structure. This is just for illustrative purposes. - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - - // Now the mutex can be taken by other tasks. - } - else - { - // We could not obtain the mutex and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreTakeRecursive xSemaphoreTakeRecursive - * \ingroup Semaphores - */ -#define xSemaphoreTakeRecursive( xMutex, xBlockTime ) xQueueTakeMutexRecursive( ( xMutex ), ( xBlockTime ) ) - - -/* - * xSemaphoreAltTake() is an alternative version of xSemaphoreTake(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -#define xSemaphoreAltTake( xSemaphore, xBlockTime ) xQueueAltGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE ) - -/** - * semphr. h - * <pre>xSemaphoreGive( xSemaphoreHandle xSemaphore )</pre> - * - * <i>Macro</i> to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting(). and obtained using sSemaphoreTake(). - * - * This macro must not be used from an ISR. See xSemaphoreGiveFromISR () for - * an alternative which can be used from an ISR. - * - * This macro must also not be used on semaphores created using - * xSemaphoreCreateRecursiveMutex(). - * - * @param xSemaphore A handle to the semaphore being released. This is the - * handle returned when the semaphore was created. - * - * @return pdTRUE if the semaphore was released. pdFALSE if an error occurred. - * Semaphores are implemented using queues. An error can occur if there is - * no space on the queue to post a message - indicating that the - * semaphore was not first obtained correctly. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore = NULL; - - void vATask( void * pvParameters ) - { - // Create the semaphore to guard a shared resource. - vSemaphoreCreateBinary( xSemaphore ); - - if( xSemaphore != NULL ) - { - if( xSemaphoreGive( xSemaphore ) != pdTRUE ) - { - // We would expect this call to fail because we cannot give - // a semaphore without first "taking" it! - } - - // Obtain the semaphore - don't block if the semaphore is not - // immediately available. - if( xSemaphoreTake( xSemaphore, ( portTickType ) 0 ) ) - { - // We now have the semaphore and can access the shared resource. - - // ... - - // We have finished accessing the shared resource so can free the - // semaphore. - if( xSemaphoreGive( xSemaphore ) != pdTRUE ) - { - // We would not expect this call to fail because we must have - // obtained the semaphore to get here. - } - } - } - } - </pre> - * \defgroup xSemaphoreGive xSemaphoreGive - * \ingroup Semaphores - */ -#define xSemaphoreGive( xSemaphore ) xQueueGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre>xSemaphoreGiveRecursive( xSemaphoreHandle xMutex )</pre> - * - * <i>Macro</i> to recursively release, or 'give', a mutex type semaphore. - * The mutex must have previously been created using a call to - * xSemaphoreCreateRecursiveMutex(); - * - * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this - * macro to be available. - * - * This macro must not be used on mutexes created using xSemaphoreCreateMutex(). - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * @param xMutex A handle to the mutex being released, or 'given'. This is the - * handle returned by xSemaphoreCreateMutex(); - * - * @return pdTRUE if the semaphore was given. - * - * Example usage: - <pre> - xSemaphoreHandle xMutex = NULL; - - // A task that creates a mutex. - void vATask( void * pvParameters ) - { - // Create the mutex to guard a shared resource. - xMutex = xSemaphoreCreateRecursiveMutex(); - } - - // A task that uses the mutex. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xMutex != NULL ) - { - // See if we can obtain the mutex. If the mutex is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the mutex and can now access the - // shared resource. - - // ... - // For some reason due to the nature of the code further calls to - // xSemaphoreTakeRecursive() are made on the same mutex. In real - // code these would not be just sequential calls as this would make - // no sense. Instead the calls are likely to be buried inside - // a more complex call structure. - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - - // The mutex has now been 'taken' three times, so will not be - // available to another task until it has also been given back - // three times. Again it is unlikely that real code would have - // these calls sequentially, it would be more likely that the calls - // to xSemaphoreGiveRecursive() would be called as a call stack - // unwound. This is just for demonstrative purposes. - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - - // Now the mutex can be taken by other tasks. - } - else - { - // We could not obtain the mutex and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreGiveRecursive xSemaphoreGiveRecursive - * \ingroup Semaphores - */ -#define xSemaphoreGiveRecursive( xMutex ) xQueueGiveMutexRecursive( ( xMutex ) ) - -/* - * xSemaphoreAltGive() is an alternative version of xSemaphoreGive(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -#define xSemaphoreAltGive( xSemaphore ) xQueueAltGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre> - xSemaphoreGiveFromISR( - xSemaphoreHandle xSemaphore, - signed portBASE_TYPE *pxHigherPriorityTaskWoken - )</pre> - * - * <i>Macro</i> to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary() or xSemaphoreCreateCounting(). - * - * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex()) - * must not be used with this macro. - * - * This macro can be used from an ISR. - * - * @param xSemaphore A handle to the semaphore being released. This is the - * handle returned when the semaphore was created. - * - * @param pxHigherPriorityTaskWoken xSemaphoreGiveFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if giving the semaphore caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xSemaphoreGiveFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the semaphore was successfully given, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - \#define LONG_TIME 0xffff - \#define TICKS_TO_WAIT 10 - xSemaphoreHandle xSemaphore = NULL; - - // Repetitive task. - void vATask( void * pvParameters ) - { - for( ;; ) - { - // We want this task to run every 10 ticks of a timer. The semaphore - // was created before this task was started. - - // Block waiting for the semaphore to become available. - if( xSemaphoreTake( xSemaphore, LONG_TIME ) == pdTRUE ) - { - // It is time to execute. - - // ... - - // We have finished our task. Return to the top of the loop where - // we will block on the semaphore until it is time to execute - // again. Note when using the semaphore for synchronisation with an - // ISR in this manner there is no need to 'give' the semaphore back. - } - } - } - - // Timer ISR - void vTimerISR( void * pvParameters ) - { - static unsigned char ucLocalTickCount = 0; - static signed portBASE_TYPE xHigherPriorityTaskWoken; - - // A timer tick has occurred. - - // ... Do other time functions. - - // Is it time for vATask () to run? - xHigherPriorityTaskWoken = pdFALSE; - ucLocalTickCount++; - if( ucLocalTickCount >= TICKS_TO_WAIT ) - { - // Unblock the task by releasing the semaphore. - xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken ); - - // Reset the count so we release the semaphore again in 10 ticks time. - ucLocalTickCount = 0; - } - - if( xHigherPriorityTaskWoken != pdFALSE ) - { - // We can force a context switch here. Context switching from an - // ISR uses port specific syntax. Check the demo task for your port - // to find the syntax required. - } - } - </pre> - * \defgroup xSemaphoreGiveFromISR xSemaphoreGiveFromISR - * \ingroup Semaphores - */ -#define xSemaphoreGiveFromISR( xSemaphore, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueueHandle ) ( xSemaphore ), NULL, ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateMutex( void )</pre> - * - * <i>Macro</i> that implements a mutex semaphore by using the existing queue - * mechanism. - * - * Mutexes created using this macro can be accessed using the xSemaphoreTake() - * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and - * xSemaphoreGiveRecursive() macros should not be used. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. - * - * Mutex type semaphores cannot be used from within interrupt service routines. - * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt - * service routines. - * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to xSemaphoreCreateMutex(). - // This is a macro so pass the variable in directly. - xSemaphore = xSemaphoreCreateMutex(); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex - * \ingroup Semaphores - */ -#define xSemaphoreCreateMutex() xQueueCreateMutex() - - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateRecursiveMutex( void )</pre> - * - * <i>Macro</i> that implements a recursive mutex by using the existing queue - * mechanism. - * - * Mutexes created using this macro can be accessed using the - * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The - * xSemaphoreTake() and xSemaphoreGive() macros should not be used. - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. - * - * Mutex type semaphores cannot be used from within interrupt service routines. - * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt - * service routines. - * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to xSemaphoreCreateMutex(). - // This is a macro so pass the variable in directly. - xSemaphore = xSemaphoreCreateRecursiveMutex(); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex - * \ingroup Semaphores - */ -#define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex() - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )</pre> - * - * <i>Macro</i> that creates a counting semaphore by using the existing - * queue mechanism. - * - * Counting semaphores are typically used for two things: - * - * 1) Counting events. - * - * In this usage scenario an event handler will 'give' a semaphore each time - * an event occurs (incrementing the semaphore count value), and a handler - * task will 'take' a semaphore each time it processes an event - * (decrementing the semaphore count value). The count value is therefore - * the difference between the number of events that have occurred and the - * number that have been processed. In this case it is desirable for the - * initial count value to be zero. - * - * 2) Resource management. - * - * In this usage scenario the count value indicates the number of resources - * available. To obtain control of a resource a task must first obtain a - * semaphore - decrementing the semaphore count value. When the count value - * reaches zero there are no free resources. When a task finishes with the - * resource it 'gives' the semaphore back - incrementing the semaphore count - * value. In this case it is desirable for the initial count value to be - * equal to the maximum count value, indicating that all resources are free. - * - * @param uxMaxCount The maximum count value that can be reached. When the - * semaphore reaches this value it can no longer be 'given'. - * - * @param uxInitialCount The count value assigned to the semaphore when it is - * created. - * - * @return Handle to the created semaphore. Null if the semaphore could not be - * created. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - xSemaphoreHandle xSemaphore = NULL; - - // Semaphore cannot be used before a call to xSemaphoreCreateCounting(). - // The max value to which the semaphore can count should be 10, and the - // initial value assigned to the count should be 0. - xSemaphore = xSemaphoreCreateCounting( 10, 0 ); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup xSemaphoreCreateCounting xSemaphoreCreateCounting - * \ingroup Semaphores - */ -#define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( ( uxMaxCount ), ( uxInitialCount ) ) - - -#endif /* SEMAPHORE_H */ - - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/task.h b/FreeRTOSWithTraces/FreeRTOS_include/task.h deleted file mode 100644 index 3c44904..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/task.h +++ /dev/null @@ -1,1307 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef TASK_H -#define TASK_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include task.h" -#endif - -#include "portable.h" -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------- - * MACROS AND DEFINITIONS - *----------------------------------------------------------*/ - -#define tskKERNEL_VERSION_NUMBER "V7.0.1" - -/** - * task. h - * - * Type by which tasks are referenced. For example, a call to xTaskCreate - * returns (via a pointer parameter) an xTaskHandle variable that can then - * be used as a parameter to vTaskDelete to delete the task. - * - * \page xTaskHandle xTaskHandle - * \ingroup Tasks - */ -typedef void * xTaskHandle; - -/* - * Used internally only. - */ -typedef struct xTIME_OUT -{ - portBASE_TYPE xOverflowCount; - portTickType xTimeOnEntering; -} xTimeOutType; - -/* - * Defines the memory ranges allocated to the task when an MPU is used. - */ -typedef struct xMEMORY_REGION -{ - void *pvBaseAddress; - unsigned long ulLengthInBytes; - unsigned long ulParameters; -} xMemoryRegion; - -/* - * Parameters required to create an MPU protected task. - */ -typedef struct xTASK_PARAMTERS -{ - pdTASK_CODE pvTaskCode; - const signed char * const pcName; - unsigned short usStackDepth; - void *pvParameters; - unsigned portBASE_TYPE uxPriority; - portSTACK_TYPE *puxStackBuffer; - xMemoryRegion xRegions[ portNUM_CONFIGURABLE_REGIONS ]; -} xTaskParameters; - -/* - * Defines the priority used by the idle task. This must not be modified. - * - * \ingroup TaskUtils - */ -#define tskIDLE_PRIORITY ( ( unsigned portBASE_TYPE ) 0U ) - -/** - * task. h - * - * Macro for forcing a context switch. - * - * \page taskYIELD taskYIELD - * \ingroup SchedulerControl - */ -#define taskYIELD() portYIELD() - -/** - * task. h - * - * Macro to mark the start of a critical code region. Preemptive context - * switches cannot occur when in a critical region. - * - * NOTE: This may alter the stack (depending on the portable implementation) - * so must be used with care! - * - * \page taskENTER_CRITICAL taskENTER_CRITICAL - * \ingroup SchedulerControl - */ -#define taskENTER_CRITICAL() portENTER_CRITICAL() - -/** - * task. h - * - * Macro to mark the end of a critical code region. Preemptive context - * switches cannot occur when in a critical region. - * - * NOTE: This may alter the stack (depending on the portable implementation) - * so must be used with care! - * - * \page taskEXIT_CRITICAL taskEXIT_CRITICAL - * \ingroup SchedulerControl - */ -#define taskEXIT_CRITICAL() portEXIT_CRITICAL() - -/** - * task. h - * - * Macro to disable all maskable interrupts. - * - * \page taskDISABLE_INTERRUPTS taskDISABLE_INTERRUPTS - * \ingroup SchedulerControl - */ -#define taskDISABLE_INTERRUPTS() portDISABLE_INTERRUPTS() - -/** - * task. h - * - * Macro to enable microcontroller interrupts. - * - * \page taskENABLE_INTERRUPTS taskENABLE_INTERRUPTS - * \ingroup SchedulerControl - */ -#define taskENABLE_INTERRUPTS() portENABLE_INTERRUPTS() - -/* Definitions returned by xTaskGetSchedulerState(). */ -#define taskSCHEDULER_NOT_STARTED 0 -#define taskSCHEDULER_RUNNING 1 -#define taskSCHEDULER_SUSPENDED 2 - -/*----------------------------------------------------------- - * TASK CREATION API - *----------------------------------------------------------*/ - -/** - * task. h - *<pre> - portBASE_TYPE xTaskCreate( - pdTASK_CODE pvTaskCode, - const char * const pcName, - unsigned short usStackDepth, - void *pvParameters, - unsigned portBASE_TYPE uxPriority, - xTaskHandle *pvCreatedTask - );</pre> - * - * Create a new task and add it to the list of tasks that are ready to run. - * - * xTaskCreate() can only be used to create a task that has unrestricted - * access to the entire microcontroller memory map. Systems that include MPU - * support can alternatively create an MPU constrained task using - * xTaskCreateRestricted(). - * - * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). - * - * @param pcName A descriptive name for the task. This is mainly used to - * facilitate debugging. Max length defined by tskMAX_TASK_NAME_LEN - default - * is 16. - * - * @param usStackDepth The size of the task stack specified as the number of - * variables the stack can hold - not the number of bytes. For example, if - * the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes - * will be allocated for stack storage. - * - * @param pvParameters Pointer that will be used as the parameter for the task - * being created. - * - * @param uxPriority The priority at which the task should run. Systems that - * include MPU support can optionally create tasks in a privileged (system) - * mode by setting bit portPRIVILEGE_BIT of the priority parameter. For - * example, to create a privileged task at priority 2 the uxPriority parameter - * should be set to ( 2 | portPRIVILEGE_BIT ). - * - * @param pvCreatedTask Used to pass back a handle by which the created task - * can be referenced. - * - * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h - * - * Example usage: - <pre> - // Task to be created. - void vTaskCode( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - } - } - - // Function that creates a task. - void vOtherFunction( void ) - { - static unsigned char ucParameterToPass; - xTaskHandle xHandle; - - // Create the task, storing the handle. Note that the passed parameter ucParameterToPass - // must exist for the lifetime of the task, so in this case is declared static. If it was just an - // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time - // the new task attempts to access it. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle ); - - // Use the handle to delete the task. - vTaskDelete( xHandle ); - } - </pre> - * \defgroup xTaskCreate xTaskCreate - * \ingroup Tasks - */ -#define xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) xTaskGenericCreate( ( pvTaskCode ), ( pcName ), ( usStackDepth ), ( pvParameters ), ( uxPriority ), ( pxCreatedTask ), ( NULL ), ( NULL ) ) - -/** - * task. h - *<pre> - portBASE_TYPE xTaskCreateRestricted( xTaskParameters *pxTaskDefinition, xTaskHandle *pxCreatedTask );</pre> - * - * xTaskCreateRestricted() should only be used in systems that include an MPU - * implementation. - * - * Create a new task and add it to the list of tasks that are ready to run. - * The function parameters define the memory regions and associated access - * permissions allocated to the task. - * - * @param pxTaskDefinition Pointer to a structure that contains a member - * for each of the normal xTaskCreate() parameters (see the xTaskCreate() API - * documentation) plus an optional stack buffer and the memory region - * definitions. - * - * @param pxCreatedTask Used to pass back a handle by which the created task - * can be referenced. - * - * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h - * - * Example usage: - <pre> -// Create an xTaskParameters structure that defines the task to be created. -static const xTaskParameters xCheckTaskParameters = -{ - vATask, // pvTaskCode - the function that implements the task. - "ATask", // pcName - just a text name for the task to assist debugging. - 100, // usStackDepth - the stack size DEFINED IN WORDS. - NULL, // pvParameters - passed into the task function as the function parameters. - ( 1UL | portPRIVILEGE_BIT ),// uxPriority - task priority, set the portPRIVILEGE_BIT if the task should run in a privileged state. - cStackBuffer,// puxStackBuffer - the buffer to be used as the task stack. - - // xRegions - Allocate up to three separate memory regions for access by - // the task, with appropriate access permissions. Different processors have - // different memory alignment requirements - refer to the FreeRTOS documentation - // for full information. - { - // Base address Length Parameters - { cReadWriteArray, 32, portMPU_REGION_READ_WRITE }, - { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY }, - { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE } - } -}; - -int main( void ) -{ -xTaskHandle xHandle; - - // Create a task from the const structure defined above. The task handle - // is requested (the second parameter is not NULL) but in this case just for - // demonstration purposes as its not actually used. - xTaskCreateRestricted( &xRegTest1Parameters, &xHandle ); - - // Start the scheduler. - vTaskStartScheduler(); - - // Will only get here if there was insufficient memory to create the idle - // task. - for( ;; ); -} - </pre> - * \defgroup xTaskCreateRestricted xTaskCreateRestricted - * \ingroup Tasks - */ -#define xTaskCreateRestricted( x, pxCreatedTask ) xTaskGenericCreate( ((x)->pvTaskCode), ((x)->pcName), ((x)->usStackDepth), ((x)->pvParameters), ((x)->uxPriority), (pxCreatedTask), ((x)->puxStackBuffer), ((x)->xRegions) ) - -/** - * task. h - *<pre> - void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions );</pre> - * - * Memory regions are assigned to a restricted task when the task is created by - * a call to xTaskCreateRestricted(). These regions can be redefined using - * vTaskAllocateMPURegions(). - * - * @param xTask The handle of the task being updated. - * - * @param xRegions A pointer to an xMemoryRegion structure that contains the - * new memory region definitions. - * - * Example usage: - <pre> -// Define an array of xMemoryRegion structures that configures an MPU region -// allowing read/write access for 1024 bytes starting at the beginning of the -// ucOneKByte array. The other two of the maximum 3 definable regions are -// unused so set to zero. -static const xMemoryRegion xAltRegions[ portNUM_CONFIGURABLE_REGIONS ] = -{ - // Base address Length Parameters - { ucOneKByte, 1024, portMPU_REGION_READ_WRITE }, - { 0, 0, 0 }, - { 0, 0, 0 } -}; - -void vATask( void *pvParameters ) -{ - // This task was created such that it has access to certain regions of - // memory as defined by the MPU configuration. At some point it is - // desired that these MPU regions are replaced with that defined in the - // xAltRegions const struct above. Use a call to vTaskAllocateMPURegions() - // for this purpose. NULL is used as the task handle to indicate that this - // function should modify the MPU regions of the calling task. - vTaskAllocateMPURegions( NULL, xAltRegions ); - - // Now the task can continue its function, but from this point on can only - // access its stack and the ucOneKByte array (unless any other statically - // defined or shared regions have been declared elsewhere). -} - </pre> - * \defgroup xTaskCreateRestricted xTaskCreateRestricted - * \ingroup Tasks - */ -void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskDelete( xTaskHandle pxTask );</pre> - * - * INCLUDE_vTaskDelete must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Remove a task from the RTOS real time kernels management. The task being - * deleted will be removed from all ready, blocked, suspended and event lists. - * - * NOTE: The idle task is responsible for freeing the kernel allocated - * memory from tasks that have been deleted. It is therefore important that - * the idle task is not starved of microcontroller processing time if your - * application makes any calls to vTaskDelete (). Memory allocated by the - * task code is not automatically freed, and should be freed before the task - * is deleted. - * - * See the demo application file death.c for sample code that utilises - * vTaskDelete (). - * - * @param pxTask The handle of the task to be deleted. Passing NULL will - * cause the calling task to be deleted. - * - * Example usage: - <pre> - void vOtherFunction( void ) - { - xTaskHandle xHandle; - - // Create the task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // Use the handle to delete the task. - vTaskDelete( xHandle ); - } - </pre> - * \defgroup vTaskDelete vTaskDelete - * \ingroup Tasks - */ -void vTaskDelete( xTaskHandle pxTaskToDelete ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * TASK CONTROL API - *----------------------------------------------------------*/ - -/** - * task. h - * <pre>void vTaskDelay( portTickType xTicksToDelay );</pre> - * - * Delay a task for a given number of ticks. The actual time that the - * task remains blocked depends on the tick rate. The constant - * portTICK_RATE_MS can be used to calculate real time from the tick - * rate - with the resolution of one tick period. - * - * INCLUDE_vTaskDelay must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * - * vTaskDelay() specifies a time at which the task wishes to unblock relative to - * the time at which vTaskDelay() is called. For example, specifying a block - * period of 100 ticks will cause the task to unblock 100 ticks after - * vTaskDelay() is called. vTaskDelay() does not therefore provide a good method - * of controlling the frequency of a cyclical task as the path taken through the - * code, as well as other task and interrupt activity, will effect the frequency - * at which vTaskDelay() gets called and therefore the time at which the task - * next executes. See vTaskDelayUntil() for an alternative API function designed - * to facilitate fixed frequency execution. It does this by specifying an - * absolute time (rather than a relative time) at which the calling task should - * unblock. - * - * @param xTicksToDelay The amount of time, in tick periods, that - * the calling task should block. - * - * Example usage: - - void vTaskFunction( void * pvParameters ) - { - void vTaskFunction( void * pvParameters ) - { - // Block for 500ms. - const portTickType xDelay = 500 / portTICK_RATE_MS; - - for( ;; ) - { - // Simply toggle the LED every 500ms, blocking between each toggle. - vToggleLED(); - vTaskDelay( xDelay ); - } - } - - * \defgroup vTaskDelay vTaskDelay - * \ingroup TaskCtrl - */ -void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );</pre> - * - * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Delay a task until a specified time. This function can be used by cyclical - * tasks to ensure a constant execution frequency. - * - * This function differs from vTaskDelay () in one important aspect: vTaskDelay () will - * cause a task to block for the specified number of ticks from the time vTaskDelay () is - * called. It is therefore difficult to use vTaskDelay () by itself to generate a fixed - * execution frequency as the time between a task starting to execute and that task - * calling vTaskDelay () may not be fixed [the task may take a different path though the - * code between calls, or may get interrupted or preempted a different number of times - * each time it executes]. - * - * Whereas vTaskDelay () specifies a wake time relative to the time at which the function - * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to - * unblock. - * - * The constant portTICK_RATE_MS can be used to calculate real time from the tick - * rate - with the resolution of one tick period. - * - * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the - * task was last unblocked. The variable must be initialised with the current time - * prior to its first use (see the example below). Following this the variable is - * automatically updated within vTaskDelayUntil (). - * - * @param xTimeIncrement The cycle time period. The task will be unblocked at - * time *pxPreviousWakeTime + xTimeIncrement. Calling vTaskDelayUntil with the - * same xTimeIncrement parameter value will cause the task to execute with - * a fixed interface period. - * - * Example usage: - <pre> - // Perform an action every 10 ticks. - void vTaskFunction( void * pvParameters ) - { - portTickType xLastWakeTime; - const portTickType xFrequency = 10; - - // Initialise the xLastWakeTime variable with the current time. - xLastWakeTime = xTaskGetTickCount (); - for( ;; ) - { - // Wait for the next cycle. - vTaskDelayUntil( &xLastWakeTime, xFrequency ); - - // Perform action here. - } - } - </pre> - * \defgroup vTaskDelayUntil vTaskDelayUntil - * \ingroup TaskCtrl - */ -void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );</pre> - * - * INCLUDE_xTaskPriorityGet must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Obtain the priority of any task. - * - * @param pxTask Handle of the task to be queried. Passing a NULL - * handle results in the priority of the calling task being returned. - * - * @return The priority of pxTask. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to obtain the priority of the created task. - // It was created with tskIDLE_PRIORITY, but may have changed - // it itself. - if( uxTaskPriorityGet( xHandle ) != tskIDLE_PRIORITY ) - { - // The task has changed it's priority. - } - - // ... - - // Is our priority higher than the created task? - if( uxTaskPriorityGet( xHandle ) < uxTaskPriorityGet( NULL ) ) - { - // Our priority (obtained using NULL handle) is higher. - } - } - </pre> - * \defgroup uxTaskPriorityGet uxTaskPriorityGet - * \ingroup TaskCtrl - */ -unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );</pre> - * - * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Set the priority of any task. - * - * A context switch will occur before the function returns if the priority - * being set is higher than the currently executing task. - * - * @param pxTask Handle to the task for which the priority is being set. - * Passing a NULL handle results in the priority of the calling task being set. - * - * @param uxNewPriority The priority to which the task will be set. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to raise the priority of the created task. - vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 ); - - // ... - - // Use a NULL handle to raise our priority to the same value. - vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 ); - } - </pre> - * \defgroup vTaskPrioritySet vTaskPrioritySet - * \ingroup TaskCtrl - */ -void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskSuspend( xTaskHandle pxTaskToSuspend );</pre> - * - * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Suspend any task. When suspended a task will never get any microcontroller - * processing time, no matter what its priority. - * - * Calls to vTaskSuspend are not accumulative - - * i.e. calling vTaskSuspend () twice on the same task still only requires one - * call to vTaskResume () to ready the suspended task. - * - * @param pxTaskToSuspend Handle to the task being suspended. Passing a NULL - * handle will cause the calling task to be suspended. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to suspend the created task. - vTaskSuspend( xHandle ); - - // ... - - // The created task will not run during this period, unless - // another task calls vTaskResume( xHandle ). - - //... - - - // Suspend ourselves. - vTaskSuspend( NULL ); - - // We cannot get here unless another task calls vTaskResume - // with our handle as the parameter. - } - </pre> - * \defgroup vTaskSuspend vTaskSuspend - * \ingroup TaskCtrl - */ -void vTaskSuspend( xTaskHandle pxTaskToSuspend ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskResume( xTaskHandle pxTaskToResume );</pre> - * - * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Resumes a suspended task. - * - * A task that has been suspended by one of more calls to vTaskSuspend () - * will be made available for running again by a single call to - * vTaskResume (). - * - * @param pxTaskToResume Handle to the task being readied. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to suspend the created task. - vTaskSuspend( xHandle ); - - // ... - - // The created task will not run during this period, unless - // another task calls vTaskResume( xHandle ). - - //... - - - // Resume the suspended task ourselves. - vTaskResume( xHandle ); - - // The created task will once again get microcontroller processing - // time in accordance with it priority within the system. - } - </pre> - * \defgroup vTaskResume vTaskResume - * \ingroup TaskCtrl - */ -void vTaskResume( xTaskHandle pxTaskToResume ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void xTaskResumeFromISR( xTaskHandle pxTaskToResume );</pre> - * - * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be - * available. See the configuration section for more information. - * - * An implementation of vTaskResume() that can be called from within an ISR. - * - * A task that has been suspended by one of more calls to vTaskSuspend () - * will be made available for running again by a single call to - * xTaskResumeFromISR (). - * - * @param pxTaskToResume Handle to the task being readied. - * - * \defgroup vTaskResumeFromISR vTaskResumeFromISR - * \ingroup TaskCtrl - */ -portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * SCHEDULER CONTROL - *----------------------------------------------------------*/ - -/** - * task. h - * <pre>void vTaskStartScheduler( void );</pre> - * - * Starts the real time kernel tick processing. After calling the kernel - * has control over which tasks are executed and when. This function - * does not return until an executing task calls vTaskEndScheduler (). - * - * At least one task should be created via a call to xTaskCreate () - * before calling vTaskStartScheduler (). The idle task is created - * automatically when the first application task is created. - * - * See the demo application file main.c for an example of creating - * tasks and starting the kernel. - * - * Example usage: - <pre> - void vAFunction( void ) - { - // Create at least one task before starting the kernel. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - - // Start the real time kernel with preemption. - vTaskStartScheduler (); - - // Will not get here unless a task calls vTaskEndScheduler () - } - </pre> - * - * \defgroup vTaskStartScheduler vTaskStartScheduler - * \ingroup SchedulerControl - */ -void vTaskStartScheduler( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskEndScheduler( void );</pre> - * - * Stops the real time kernel tick. All created tasks will be automatically - * deleted and multitasking (either preemptive or cooperative) will - * stop. Execution then resumes from the point where vTaskStartScheduler () - * was called, as if vTaskStartScheduler () had just returned. - * - * See the demo application file main. c in the demo/PC directory for an - * example that uses vTaskEndScheduler (). - * - * vTaskEndScheduler () requires an exit function to be defined within the - * portable layer (see vPortEndScheduler () in port. c for the PC port). This - * performs hardware specific operations such as stopping the kernel tick. - * - * vTaskEndScheduler () will cause all of the resources allocated by the - * kernel to be freed - but will not free resources allocated by application - * tasks. - * - * Example usage: - <pre> - void vTaskCode( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // At some point we want to end the real time kernel processing - // so call ... - vTaskEndScheduler (); - } - } - - void vAFunction( void ) - { - // Create at least one task before starting the kernel. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - - // Start the real time kernel with preemption. - vTaskStartScheduler (); - - // Will only get here when the vTaskCode () task has called - // vTaskEndScheduler (). When we get here we are back to single task - // execution. - } - </pre> - * - * \defgroup vTaskEndScheduler vTaskEndScheduler - * \ingroup SchedulerControl - */ -void vTaskEndScheduler( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskSuspendAll( void );</pre> - * - * Suspends all real time kernel activity while keeping interrupts (including the - * kernel tick) enabled. - * - * After calling vTaskSuspendAll () the calling task will continue to execute - * without risk of being swapped out until a call to xTaskResumeAll () has been - * made. - * - * API functions that have the potential to cause a context switch (for example, - * vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler - * is suspended. - * - * Example usage: - <pre> - void vTask1( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // ... - - // At some point the task wants to perform a long operation during - // which it does not want to get swapped out. It cannot use - // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the - // operation may cause interrupts to be missed - including the - // ticks. - - // Prevent the real time kernel swapping out the task. - vTaskSuspendAll (); - - // Perform the operation here. There is no need to use critical - // sections as we have all the microcontroller processing time. - // During this time interrupts will still operate and the kernel - // tick count will be maintained. - - // ... - - // The operation is complete. Restart the kernel. - xTaskResumeAll (); - } - } - </pre> - * \defgroup vTaskSuspendAll vTaskSuspendAll - * \ingroup SchedulerControl - */ -void vTaskSuspendAll( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>char xTaskResumeAll( void );</pre> - * - * Resumes real time kernel activity following a call to vTaskSuspendAll (). - * After a call to vTaskSuspendAll () the kernel will take control of which - * task is executing at any time. - * - * @return If resuming the scheduler caused a context switch then pdTRUE is - * returned, otherwise pdFALSE is returned. - * - * Example usage: - <pre> - void vTask1( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // ... - - // At some point the task wants to perform a long operation during - // which it does not want to get swapped out. It cannot use - // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the - // operation may cause interrupts to be missed - including the - // ticks. - - // Prevent the real time kernel swapping out the task. - vTaskSuspendAll (); - - // Perform the operation here. There is no need to use critical - // sections as we have all the microcontroller processing time. - // During this time interrupts will still operate and the real - // time kernel tick count will be maintained. - - // ... - - // The operation is complete. Restart the kernel. We want to force - // a context switch - but there is no point if resuming the scheduler - // caused a context switch already. - if( !xTaskResumeAll () ) - { - taskYIELD (); - } - } - } - </pre> - * \defgroup xTaskResumeAll xTaskResumeAll - * \ingroup SchedulerControl - */ -signed portBASE_TYPE xTaskResumeAll( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask );</pre> - * - * Utility task that simply returns pdTRUE if the task referenced by xTask is - * currently in the Suspended state, or pdFALSE if the task referenced by xTask - * is in any other state. - * - */ -signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * TASK UTILITIES - *----------------------------------------------------------*/ - -/** - * task. h - * <PRE>portTickType xTaskGetTickCount( void );</PRE> - * - * @return The count of ticks since vTaskStartScheduler was called. - * - * \page xTaskGetTickCount xTaskGetTickCount - * \ingroup TaskUtils - */ -portTickType xTaskGetTickCount( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>portTickType xTaskGetTickCountFromISR( void );</PRE> - * - * @return The count of ticks since vTaskStartScheduler was called. - * - * This is a version of xTaskGetTickCount() that is safe to be called from an - * ISR - provided that portTickType is the natural word size of the - * microcontroller being used or interrupt nesting is either not supported or - * not being used. - * - * \page xTaskGetTickCount xTaskGetTickCount - * \ingroup TaskUtils - */ -portTickType xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>unsigned short uxTaskGetNumberOfTasks( void );</PRE> - * - * @return The number of tasks that the real time kernel is currently managing. - * This includes all ready, blocked and suspended tasks. A task that - * has been deleted but not yet freed by the idle task will also be - * included in the count. - * - * \page uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks - * \ingroup TaskUtils - */ -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskList( char *pcWriteBuffer );</PRE> - * - * configUSE_TRACE_FACILITY must be defined as 1 for this function to be - * available. See the configuration section for more information. - * - * NOTE: This function will disable interrupts for its duration. It is - * not intended for normal application runtime use but as a debug aid. - * - * Lists all the current tasks, along with their current state and stack - * usage high water mark. - * - * Tasks are reported as blocked ('B'), ready ('R'), deleted ('D') or - * suspended ('S'). - * - * @param pcWriteBuffer A buffer into which the above mentioned details - * will be written, in ascii form. This buffer is assumed to be large - * enough to contain the generated report. Approximately 40 bytes per - * task should be sufficient. - * - * \page vTaskList vTaskList - * \ingroup TaskUtils - */ -void vTaskList( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskGetRunTimeStats( char *pcWriteBuffer );</PRE> - * - * configGENERATE_RUN_TIME_STATS must be defined as 1 for this function - * to be available. The application must also then provide definitions - * for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and - * portGET_RUN_TIME_COUNTER_VALUE to configure a peripheral timer/counter - * and return the timers current count value respectively. The counter - * should be at least 10 times the frequency of the tick count. - * - * NOTE: This function will disable interrupts for its duration. It is - * not intended for normal application runtime use but as a debug aid. - * - * Setting configGENERATE_RUN_TIME_STATS to 1 will result in a total - * accumulated execution time being stored for each task. The resolution - * of the accumulated time value depends on the frequency of the timer - * configured by the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() macro. - * Calling vTaskGetRunTimeStats() writes the total execution time of each - * task into a buffer, both as an absolute count value and as a percentage - * of the total system execution time. - * - * @param pcWriteBuffer A buffer into which the execution times will be - * written, in ascii form. This buffer is assumed to be large enough to - * contain the generated report. Approximately 40 bytes per task should - * be sufficient. - * - * \page vTaskGetRunTimeStats vTaskGetRunTimeStats - * \ingroup TaskUtils - */ -void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskStartTrace( char * pcBuffer, unsigned portBASE_TYPE uxBufferSize );</PRE> - * - * Starts a real time kernel activity trace. The trace logs the identity of - * which task is running when. - * - * The trace file is stored in binary format. A separate DOS utility called - * convtrce.exe is used to convert this into a tab delimited text file which - * can be viewed and plotted in a spread sheet. - * - * @param pcBuffer The buffer into which the trace will be written. - * - * @param ulBufferSize The size of pcBuffer in bytes. The trace will continue - * until either the buffer in full, or ulTaskEndTrace () is called. - * - * \page vTaskStartTrace vTaskStartTrace - * \ingroup TaskUtils - */ -void vTaskStartTrace( signed char * pcBuffer, unsigned long ulBufferSize ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>unsigned long ulTaskEndTrace( void );</PRE> - * - * Stops a kernel activity trace. See vTaskStartTrace (). - * - * @return The number of bytes that have been written into the trace buffer. - * - * \page usTaskEndTrace usTaskEndTrace - * \ingroup TaskUtils - */ -unsigned long ulTaskEndTrace( void ) PRIVILEGED_FUNCTION; - -/** - * task.h - * <PRE>unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask );</PRE> - * - * INCLUDE_uxTaskGetStackHighWaterMark must be set to 1 in FreeRTOSConfig.h for - * this function to be available. - * - * Returns the high water mark of the stack associated with xTask. That is, - * the minimum free stack space there has been (in words, so on a 32 bit machine - * a value of 1 means 4 bytes) since the task started. The smaller the returned - * number the closer the task has come to overflowing its stack. - * - * @param xTask Handle of the task associated with the stack to be checked. - * Set xTask to NULL to check the stack of the calling task. - * - * @return The smallest amount of free stack space there has been (in bytes) - * since the task referenced by xTask was created. - */ -unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - -/* When using trace macros it is sometimes necessary to include tasks.h before -FreeRTOS.h. When this is done pdTASK_HOOK_CODE will not yet have been defined, -so the following two prototypes will cause a compilation error. This can be -fixed by simply guarding against the inclusion of these two prototypes unless -they are explicitly required by the configUSE_APPLICATION_TASK_TAG configuration -constant. */ -#ifdef configUSE_APPLICATION_TASK_TAG - #if configUSE_APPLICATION_TASK_TAG == 1 - /** - * task.h - * <pre>void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre> - * - * Sets pxHookFunction to be the task hook function used by the task xTask. - * Passing xTask as NULL has the effect of setting the calling tasks hook - * function. - */ - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) PRIVILEGED_FUNCTION; - - /** - * task.h - * <pre>void xTaskGetApplicationTaskTag( xTaskHandle xTask );</pre> - * - * Returns the pxHookFunction value assigned to the task xTask. - */ - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - #endif /* configUSE_APPLICATION_TASK_TAG ==1 */ -#endif /* ifdef configUSE_APPLICATION_TASK_TAG */ - -/** - * task.h - * <pre>portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre> - * - * Calls the hook function associated with xTask. Passing xTask as NULL has - * the effect of calling the Running tasks (the calling task) hook function. - * - * pvParameter is passed to the hook function for the task to interpret as it - * wants. - */ -portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) PRIVILEGED_FUNCTION; - - -/*----------------------------------------------------------- - * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES - *----------------------------------------------------------*/ - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY - * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS - * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * Called from the real time kernel tick (either preemptive or cooperative), - * this increments the tick count and checks if any tasks that are blocked - * for a finite period required removing from a blocked list and placing on - * a ready list. - */ -void vTaskIncrementTick( void ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * Removes the calling task from the ready list and places it both - * on the list of tasks waiting for a particular event, and the - * list of delayed tasks. The task will be removed from both lists - * and replaced on the ready list should either the event occur (and - * there be no higher priority tasks waiting on the same event) or - * the delay period expires. - * - * @param pxEventList The list containing tasks that are blocked waiting - * for the event to occur. - * - * @param xTicksToWait The maximum amount of time that the task should wait - * for the event to occur. This is specified in kernel ticks,the constant - * portTICK_RATE_MS can be used to convert kernel ticks into a real time - * period. - */ -void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * This function performs nearly the same function as vTaskPlaceOnEventList(). - * The difference being that this function does not permit tasks to block - * indefinitely, whereas vTaskPlaceOnEventList() does. - * - * @return pdTRUE if the task being removed has a higher priority than the task - * making the call, otherwise pdFALSE. - */ -void vTaskPlaceOnEventListRestricted( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * Removes a task from both the specified event list and the list of blocked - * tasks, and places it on a ready queue. - * - * xTaskRemoveFromEventList () will be called if either an event occurs to - * unblock a task, or the block timeout period expires. - * - * @return pdTRUE if the task being removed has a higher priority than the task - * making the call, otherwise pdFALSE. - */ -signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * INCLUDE_vTaskCleanUpResources and INCLUDE_vTaskSuspend must be defined as 1 - * for this function to be available. - * See the configuration section for more information. - * - * Empties the ready and delayed queues of task control blocks, freeing the - * memory allocated for the task control block and task stacks as it goes. - */ -void vTaskCleanUpResources( void ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY - * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS - * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * Sets the pointer to the current TCB to the TCB of the highest priority task - * that is ready to run. - */ -void vTaskSwitchContext( void ) PRIVILEGED_FUNCTION; - -/* - * Return the handle of the calling task. - */ -xTaskHandle xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION; - -/* - * Capture the current time status for future reference. - */ -void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) PRIVILEGED_FUNCTION; - -/* - * Compare the time status now with that previously captured to see if the - * timeout has expired. - */ -portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * Shortcut used by the queue implementation to prevent unnecessary call to - * taskYIELD(); - */ -void vTaskMissedYield( void ) PRIVILEGED_FUNCTION; - -/* - * Returns the scheduler state as taskSCHEDULER_RUNNING, - * taskSCHEDULER_NOT_STARTED or taskSCHEDULER_SUSPENDED. - */ -portBASE_TYPE xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION; - -/* - * Raises the priority of the mutex holder to that of the calling task should - * the mutex holder have a priority less than the calling task. - */ -void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder ) PRIVILEGED_FUNCTION; - -/* - * Set the priority of a task back to its proper priority in the case that it - * inherited a higher priority while it was holding a semaphore. - */ -void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder ) PRIVILEGED_FUNCTION; - -/* - * Generic version of the task creation function which is in turn called by the - * xTaskCreate() and xTaskCreateRestricted() macros. - */ -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) PRIVILEGED_FUNCTION; - -#ifdef __cplusplus -} -#endif -#endif /* TASK_H */ - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_include/timers.h b/FreeRTOSWithTraces/FreeRTOS_include/timers.h deleted file mode 100644 index 3d78c0a..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_include/timers.h +++ /dev/null @@ -1,936 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef TIMERS_H -#define TIMERS_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include timers.h" -#endif - -#include "portable.h" -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* IDs for commands that can be sent/received on the timer queue. These are to -be used solely through the macros that make up the public software timer API, -as defined below. */ -#define tmrCOMMAND_START 0 -#define tmrCOMMAND_STOP 1 -#define tmrCOMMAND_CHANGE_PERIOD 2 -#define tmrCOMMAND_DELETE 3 - -/*----------------------------------------------------------- - * MACROS AND DEFINITIONS - *----------------------------------------------------------*/ - - /** - * Type by which software timers are referenced. For example, a call to - * xTimerCreate() returns an xTimerHandle variable that can then be used to - * reference the subject timer in calls to other software timer API functions - * (for example, xTimerStart(), xTimerReset(), etc.). - */ -typedef void * xTimerHandle; - -/* Define the prototype to which timer callback functions must conform. */ -typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); - -/** - * xTimerHandle xTimerCreate( const signed char *pcTimerName, - * portTickType xTimerPeriod, - * unsigned portBASE_TYPE uxAutoReload, - * void * pvTimerID, - * tmrTIMER_CALLBACK pxCallbackFunction ); - * - * Creates a new software timer instance. This allocates the storage required - * by the new timer, initialises the new timers internal state, and returns a - * handle by which the new timer can be referenced. - * - * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), - * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and - * xTimerChangePeriodFromISR() API functions can all be used to transition a timer into the - * active state. - * - * @param pcTimerName A text name that is assigned to the timer. This is done - * purely to assist debugging. The kernel itself only ever references a timer by - * its handle, and never by its name. - * - * @param xTimerPeriod The timer period. The time is defined in tick periods so - * the constant portTICK_RATE_MS can be used to convert a time that has been - * specified in milliseconds. For example, if the timer must expire after 100 - * ticks, then xTimerPeriod should be set to 100. Alternatively, if the timer - * must expire after 500ms, then xPeriod can be set to ( 500 / portTICK_RATE_MS ) - * provided configTICK_RATE_HZ is less than or equal to 1000. - * - * @param uxAutoReload If uxAutoReload is set to pdTRUE then the timer will - * expire repeatedly with a frequency set by the xTimerPeriod parameter. If - * uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and - * enter the dormant state after it expires. - * - * @param pvTimerID An identifier that is assigned to the timer being created. - * Typically this would be used in the timer callback function to identify which - * timer expired when the same callback function is assigned to more than one - * timer. - * - * @param pxCallbackFunction The function to call when the timer expires. - * Callback functions must have the prototype defined by tmrTIMER_CALLBACK, - * which is "void vCallbackFunction( xTIMER *xTimer );". - * - * @return If the timer is successfully create then a handle to the newly - * created timer is returned. If the timer cannot be created (because either - * there is insufficient FreeRTOS heap remaining to allocate the timer - * structures, or the timer period was set to 0) then 0 is returned. - * - * Example usage: - * - * - * #define NUM_TIMERS 5 - * - * // An array to hold handles to the created timers. - * xTimerHandle xTimers[ NUM_TIMERS ]; - * - * // An array to hold a count of the number of times each timer expires. - * long lExpireCounters[ NUM_TIMERS ] = { 0 }; - * - * // Define a callback function that will be used by multiple timer instances. - * // The callback function does nothing but count the number of times the - * // associated timer expires, and stop the timer once the timer has expired - * // 10 times. - * void vTimerCallback( xTIMER *pxTimer ) - * { - * long lArrayIndex; - * const long xMaxExpiryCountBeforeStopping = 10; - * - * // Optionally do something if the pxTimer parameter is NULL. - * configASSERT( pxTimer ); - * - * // Which timer expired? - * lArrayIndex = ( long ) pvTimerGetTimerID( pxTimer ); - * - * // Increment the number of times that pxTimer has expired. - * lExpireCounters[ lArrayIndex ] += 1; - * - * // If the timer has expired 10 times then stop it from running. - * if( lExpireCounters[ lArrayIndex ] == xMaxExpiryCountBeforeStopping ) - * { - * // Do not use a block time if calling a timer API function from a - * // timer callback function, as doing so could cause a deadlock! - * xTimerStop( pxTimer, 0 ); - * } - * } - * - * void main( void ) - * { - * long x; - * - * // Create then start some timers. Starting the timers before the scheduler - * // has been started means the timers will start running immediately that - * // the scheduler starts. - * for( x = 0; x < NUM_TIMERS; x++ ) - * { - * xTimers[ x ] = xTimerCreate( "Timer", // Just a text name, not used by the kernel. - * ( 100 * x ), // The timer period in ticks. - * pdTRUE, // The timers will auto-reload themselves when they expire. - * ( void * ) x, // Assign each timer a unique id equal to its array index. - * vTimerCallback // Each timer calls the same callback when it expires. - * ); - * - * if( xTimers[ x ] == NULL ) - * { - * // The timer was not created. - * } - * else - * { - * // Start the timer. No block time is specified, and even if one was - * // it would be ignored because the scheduler has not yet been - * // started. - * if( xTimerStart( xTimers[ x ], 0 ) != pdPASS ) - * { - * // The timer could not be set into the Active state. - * } - * } - * } - * - * // ... - * // Create tasks here. - * // ... - * - * // Starting the scheduler will start the timers running as they have already - * // been set into the active state. - * xTaskStartScheduler(); - * - * // Should not reach here. - * for( ;; ); - * } - */ -xTimerHandle xTimerCreate( const signed char *pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void * pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) PRIVILEGED_FUNCTION; - -/** - * void *pvTimerGetTimerID( xTimerHandle xTimer ); - * - * Returns the ID assigned to the timer. - * - * IDs are assigned to timers using the pvTimerID parameter of the call to - * xTimerCreated() that was used to create the timer. - * - * If the same callback function is assigned to multiple timers then the timer - * ID can be used within the callback function to identify which timer actually - * expired. - * - * @param xTimer The timer being queried. - * - * @return The ID assigned to the timer being queried. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - */ -void *pvTimerGetTimerID( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; - -/** - * portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ); - * - * Queries a timer to see if it is active or dormant. - * - * A timer will be dormant if: - * 1) It has been created but not started, or - * 2) It is an expired on-shot timer that has not been restarted. - * - * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), - * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and - * xTimerChangePeriodFromISR() API functions can all be used to transition a timer into the - * active state. - * - * @param xTimer The timer being queried. - * - * @return pdFALSE will be returned if the timer is dormant. A value other than - * pdFALSE will be returned if the timer is active. - * - * Example usage: - * - * // This function assumes xTimer has already been created. - * void vAFunction( xTimerHandle xTimer ) - * { - * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" - * { - * // xTimer is active, do something. - * } - * else - * { - * // xTimer is not active, do something else. - * } - * } - */ -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; - -/** - * portBASE_TYPE xTimerStart( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerStart() starts a timer that was previously created using the - * xTimerCreate() API function. If the timer had already been started and was - * already in the active state, then xTimerStart() has equivalent functionality - * to the xTimerReset() API function. - * - * Starting a timer ensures the timer is in the active state. If the timer - * is not stopped, deleted, or reset in the mean time, the callback function - * associated with the timer will get called 'n' ticks after xTimerStart() was - * called, where 'n' is the timers defined period. - * - * It is valid to call xTimerStart() before the scheduler has been started, but - * when this is done the timer will not actually start until the scheduler is - * started, and the timers expiry time will be relative to when the scheduler is - * started, not relative to when xTimerStart() was called. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerStart() - * to be available. - * - * @param xTimer The handle of the timer being started/restarted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the start command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerStart() was called. xBlockTime is ignored if xTimerStart() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the start command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system, although the - * timers expiry time is relative to when xTimerStart() is actually called. The - * timer service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - * - */ -#define xTimerStart( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerStop( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerStop() stops a timer that was previously started using either of the - * The xTimerStart(), xTimerReset(), xTimerStartFromISR(), xTimerResetFromISR(), - * xTimerChangePeriod() or xTimerChangePeriodFromISR() API functions. - * - * Stopping a timer ensures the timer is not in the active state. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerStop() - * to be available. - * - * @param xTimer The handle of the timer being stopped. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the stop command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerStop() was called. xBlockTime is ignored if xTimerStop() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the stop command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system. The timer - * service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - * - */ -#define xTimerStop( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0U, NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerChangePeriod( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerChangePeriod() changes the period of a timer that was previously - * created using the xTimerCreate() API function. - * - * xTimerChangePeriod() can be called to change the period of an active or - * dormant state timer. - * - * The configUSE_TIMERS configuration constant must be set to 1 for - * xTimerChangePeriod() to be available. - * - * @param xTimer The handle of the timer that is having its period changed. - * - * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time - * that has been specified in milliseconds. For example, if the timer must - * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, - * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than - * or equal to 1000. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the change period command to be - * successfully sent to the timer command queue, should the queue already be - * full when xTimerChangePeriod() was called. xBlockTime is ignored if - * xTimerChangePeriod() is called before the scheduler is started. - * - * @return pdFAIL will be returned if the change period command could not be - * sent to the timer command queue even after xBlockTime ticks had passed. - * pdPASS will be returned if the command was successfully sent to the timer - * command queue. When the command is actually processed will depend on the - * priority of the timer service/daemon task relative to other tasks in the - * system. The timer service/daemon task priority is set by the - * configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This function assumes xTimer has already been created. If the timer - * // referenced by xTimer is already active when it is called, then the timer - * // is deleted. If the timer referenced by xTimer is not active when it is - * // called, then the period of the timer is set to 500ms and the timer is - * // started. - * void vAFunction( xTimerHandle xTimer ) - * { - * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" - * { - * // xTimer is already active - delete it. - * xTimerDelete( xTimer ); - * } - * else - * { - * // xTimer is not active, change its period to 500ms. This will also - * // cause the timer to start. Block for a maximum of 100 ticks if the - * // change period command cannot immediately be sent to the timer - * // command queue. - * if( xTimerChangePeriod( xTimer, 500 / portTICK_RATE_MS, 100 ) == pdPASS ) - * { - * // The command was successfully sent. - * } - * else - * { - * // The command could not be sent, even after waiting for 100 ticks - * // to pass. Take appropriate action here. - * } - * } - * } - */ - #define xTimerChangePeriod( xTimer, xNewPeriod, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerDelete( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerDelete() deletes a timer that was previously created using the - * xTimerCreate() API function. - * - * The configUSE_TIMERS configuration constant must be set to 1 for - * xTimerDelete() to be available. - * - * @param xTimer The handle of the timer being deleted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the delete command to be - * successfully sent to the timer command queue, should the queue already be - * full when xTimerDelete() was called. xBlockTime is ignored if xTimerDelete() - * is called before the scheduler is started. - * - * @return pdFAIL will be returned if the delete command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system. The timer - * service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerChangePeriod() API function example usage scenario. - */ -#define xTimerDelete( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_DELETE, 0U, NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerReset( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerReset() re-starts a timer that was previously created using the - * xTimerCreate() API function. If the timer had already been started and was - * already in the active state, then xTimerReset() will cause the timer to - * re-evaluate its expiry time so that it is relative to when xTimerReset() was - * called. If the timer was in the dormant state then xTimerReset() has - * equivalent functionality to the xTimerStart() API function. - * - * Resetting a timer ensures the timer is in the active state. If the timer - * is not stopped, deleted, or reset in the mean time, the callback function - * associated with the timer will get called 'n' ticks after xTimerReset() was - * called, where 'n' is the timers defined period. - * - * It is valid to call xTimerReset() before the scheduler has been started, but - * when this is done the timer will not actually start until the scheduler is - * started, and the timers expiry time will be relative to when the scheduler is - * started, not relative to when xTimerReset() was called. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerReset() - * to be available. - * - * @param xTimer The handle of the timer being reset/started/restarted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the reset command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerReset() was called. xBlockTime is ignored if xTimerReset() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the reset command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system, although the - * timers expiry time is relative to when xTimerStart() is actually called. The - * timer service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * // When a key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer. - * - * xTimerHandle xBacklightTimer = NULL; - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press event handler. - * void vKeyPressEventHandler( char cKey ) - * { - * // Ensure the LCD back-light is on, then reset the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. Wait 10 ticks for the command to be successfully sent - * // if it cannot be sent immediately. - * vSetBacklightState( BACKLIGHT_ON ); - * if( xTimerReset( xBacklightTimer, 100 ) != pdPASS ) - * { - * // The reset command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * } - * - * void main( void ) - * { - * long x; - * - * // Create then start the one-shot timer that is responsible for turning - * // the back-light off if no keys are pressed within a 5 second period. - * xBacklightTimer = xTimerCreate( "BacklightTimer", // Just a text name, not used by the kernel. - * ( 5000 / portTICK_RATE_MS), // The timer period in ticks. - * pdFALSE, // The timer is a one-shot timer. - * 0, // The id is not used by the callback so can take any value. - * vBacklightTimerCallback // The callback function that switches the LCD back-light off. - * ); - * - * if( xBacklightTimer == NULL ) - * { - * // The timer was not created. - * } - * else - * { - * // Start the timer. No block time is specified, and even if one was - * // it would be ignored because the scheduler has not yet been - * // started. - * if( xTimerStart( xBacklightTimer, 0 ) != pdPASS ) - * { - * // The timer could not be set into the Active state. - * } - * } - * - * // ... - * // Create tasks here. - * // ... - * - * // Starting the scheduler will start the timer running as it has already - * // been set into the active state. - * xTaskStartScheduler(); - * - * // Should not reach here. - * for( ;; ); - * } - */ -#define xTimerReset( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerStartFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerStart() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer being started/restarted. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerStartFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerStartFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerStartFromISR() function. If - * xTimerStartFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the start command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system, although the timers expiry time is - * relative to when xTimerStartFromISR() is actually called. The timer service/daemon - * task priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xBacklightTimer has already been created. When a - * // key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer, and unlike the example given for - * // the xTimerReset() function, the key press event handler is an interrupt - * // service routine. - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press interrupt service routine. - * void vKeyPressEventInterruptHandler( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // Ensure the LCD back-light is on, then restart the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. This is an interrupt service routine so can only - * // call FreeRTOS API functions that end in "FromISR". - * vSetBacklightState( BACKLIGHT_ON ); - * - * // xTimerStartFromISR() or xTimerResetFromISR() could be called here - * // as both cause the timer to re-calculate its expiry time. - * // xHigherPriorityTaskWoken was initialised to pdFALSE when it was - * // declared (in this function). - * if( xTimerStartFromISR( xBacklightTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The start command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerStartFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerStopFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerStop() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer being stopped. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerStopFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerStopFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerStopFromISR() function. If - * xTimerStopFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the stop command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system. The timer service/daemon task - * priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xTimer has already been created and started. When - * // an interrupt occurs, the timer should be simply stopped. - * - * // The interrupt service routine that stops the timer. - * void vAnExampleInterruptServiceRoutine( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // The interrupt has occurred - simply stop the timer. - * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined - * // (within this function). As this is an interrupt service routine, only - * // FreeRTOS API functions that end in "FromISR" can be used. - * if( xTimerStopFromISR( xTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The stop command was not executed successfully. Take appropriate - * // action here. - * } - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerStopFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0, ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerChangePeriodFromISR( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerChangePeriod() that can be called from an interrupt - * service routine. - * - * @param xTimer The handle of the timer that is having its period changed. - * - * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time - * that has been specified in milliseconds. For example, if the timer must - * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, - * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than - * or equal to 1000. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerChangePeriodFromISR() writes a message to the - * timer command queue, so has the potential to transition the timer service/ - * daemon task out of the Blocked state. If calling xTimerChangePeriodFromISR() - * causes the timer service/daemon task to leave the Blocked state, and the - * timer service/daemon task has a priority equal to or greater than the - * currently executing task (the task that was interrupted), then - * *pxHigherPriorityTaskWoken will get set to pdTRUE internally within the - * xTimerChangePeriodFromISR() function. If xTimerChangePeriodFromISR() sets - * this value to pdTRUE then a context switch should be performed before the - * interrupt exits. - * - * @return pdFAIL will be returned if the command to change the timers period - * could not be sent to the timer command queue. pdPASS will be returned if the - * command was successfully sent to the timer command queue. When the command - * is actually processed will depend on the priority of the timer service/daemon - * task relative to other tasks in the system. The timer service/daemon task - * priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xTimer has already been created and started. When - * // an interrupt occurs, the period of xTimer should be changed to 500ms. - * - * // The interrupt service routine that changes the period of xTimer. - * void vAnExampleInterruptServiceRoutine( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // The interrupt has occurred - change the period of xTimer to 500ms. - * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined - * // (within this function). As this is an interrupt service routine, only - * // FreeRTOS API functions that end in "FromISR" can be used. - * if( xTimerChangePeriodFromISR( xTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The command to change the timers period was not executed - * // successfully. Take appropriate action here. - * } - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerChangePeriodFromISR( xTimer, xNewPeriod, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerResetFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerReset() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer that is to be started, reset, or - * restarted. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerResetFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerResetFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerResetFromISR() function. If - * xTimerResetFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the reset command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system, although the timers expiry time is - * relative to when xTimerResetFromISR() is actually called. The timer service/daemon - * task priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xBacklightTimer has already been created. When a - * // key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer, and unlike the example given for - * // the xTimerReset() function, the key press event handler is an interrupt - * // service routine. - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press interrupt service routine. - * void vKeyPressEventInterruptHandler( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // Ensure the LCD back-light is on, then reset the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. This is an interrupt service routine so can only - * // call FreeRTOS API functions that end in "FromISR". - * vSetBacklightState( BACKLIGHT_ON ); - * - * // xTimerStartFromISR() or xTimerResetFromISR() could be called here - * // as both cause the timer to re-calculate its expiry time. - * // xHigherPriorityTaskWoken was initialised to pdFALSE when it was - * // declared (in this function). - * if( xTimerResetFromISR( xBacklightTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The reset command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerResetFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) - -/* - * Functions beyond this part are not part of the public API and are intended - * for use by the kernel only. - */ -portBASE_TYPE xTimerCreateTimerTask( void ) PRIVILEGED_FUNCTION; -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) PRIVILEGED_FUNCTION; - -#ifdef __cplusplus -} -#endif -#endif /* TIMERS_H */ - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_1.c b/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_1.c deleted file mode 100644 index f063be1..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_1.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -/* - * The simplest possible implementation of pvPortMalloc(). Note that this - * implementation does NOT allow allocated memory to be freed again. - * - * See heap_2.c and heap_3.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* Allocate the memory for the heap. The struct is used to force byte -alignment without using any non-portable code. */ -static union xRTOS_HEAP -{ - #if portBYTE_ALIGNMENT == 8 - volatile portDOUBLE dDummy; - #else - volatile unsigned long ulDummy; - #endif - unsigned char ucHeap[ configTOTAL_HEAP_SIZE ]; -} xHeap; - -static size_t xNextFreeByte = ( size_t ) 0; -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn = NULL; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - #if portBYTE_ALIGNMENT != 1 - if( xWantedSize & portBYTE_ALIGNMENT_MASK ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - #endif - - vTaskSuspendAll(); - { - /* Check there is enough room left for the allocation. */ - if( ( ( xNextFreeByte + xWantedSize ) < configTOTAL_HEAP_SIZE ) && - ( ( xNextFreeByte + xWantedSize ) > xNextFreeByte ) )/* Check for overflow. */ - { - /* Return the next free byte then increment the index past this - block. */ - pvReturn = &( xHeap.ucHeap[ xNextFreeByte ] ); - xNextFreeByte += xWantedSize; - } - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - /* Memory cannot be freed using this scheme. See heap_2.c and heap_3.c - for alternative implementations, and the memory management pages of - http://www.FreeRTOS.org for more information. */ - ( void ) pv; -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* Only required when static memory is not cleared. */ - xNextFreeByte = ( size_t ) 0; -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return ( configTOTAL_HEAP_SIZE - xNextFreeByte ); -} - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_2.c b/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_2.c deleted file mode 100644 index 1d1c76a..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_2.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* - * A sample implementation of pvPortMalloc() and vPortFree() that permits - * allocated blocks to be freed, but does not combine adjacent free blocks - * into a single larger block. - * - * See heap_1.c and heap_3.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* Allocate the memory for the heap. The struct is used to force byte -alignment without using any non-portable code. */ -static union xRTOS_HEAP -{ - #if portBYTE_ALIGNMENT == 8 - volatile portDOUBLE dDummy; - #else - volatile unsigned long ulDummy; - #endif - unsigned char ucHeap[ configTOTAL_HEAP_SIZE ]; -} xHeap; - -/* Define the linked list structure. This is used to link free blocks in order -of their size. */ -typedef struct A_BLOCK_LINK -{ - struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */ - size_t xBlockSize; /*<< The size of the free block. */ -} xBlockLink; - - -static const unsigned short heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + portBYTE_ALIGNMENT - ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) ); -#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) ) - -/* Create a couple of list links to mark the start and end of the list. */ -static xBlockLink xStart, xEnd; - -/* Keeps track of the number of free bytes remaining, but says nothing about -fragmentation. */ -static size_t xFreeBytesRemaining = configTOTAL_HEAP_SIZE; - -/* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */ - -/* - * Insert a block into the list of free blocks - which is ordered by size of - * the block. Small blocks at the start of the list and large blocks at the end - * of the list. - */ -#define prvInsertBlockIntoFreeList( pxBlockToInsert ) \ -{ \ -xBlockLink *pxIterator; \ -size_t xBlockSize; \ - \ - xBlockSize = pxBlockToInsert->xBlockSize; \ - \ - /* Iterate through the list until a block is found that has a larger size */ \ - /* than the block we are inserting. */ \ - for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock ) \ - { \ - /* There is nothing to do here - just iterate to the correct position. */ \ - } \ - \ - /* Update the list to include the block being inserted in the correct */ \ - /* position. */ \ - pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; \ - pxIterator->pxNextFreeBlock = pxBlockToInsert; \ -} -/*-----------------------------------------------------------*/ - -#define prvHeapInit() \ -{ \ -xBlockLink *pxFirstFreeBlock; \ - \ - /* xStart is used to hold a pointer to the first item in the list of free */ \ - /* blocks. The void cast is used to prevent compiler warnings. */ \ - xStart.pxNextFreeBlock = ( void * ) xHeap.ucHeap; \ - xStart.xBlockSize = ( size_t ) 0; \ - \ - /* xEnd is used to mark the end of the list of free blocks. */ \ - xEnd.xBlockSize = configTOTAL_HEAP_SIZE; \ - xEnd.pxNextFreeBlock = NULL; \ - \ - /* To start with there is a single free block that is sized to take up the \ - entire heap space. */ \ - pxFirstFreeBlock = ( void * ) xHeap.ucHeap; \ - pxFirstFreeBlock->xBlockSize = configTOTAL_HEAP_SIZE; \ - pxFirstFreeBlock->pxNextFreeBlock = &xEnd; \ -} -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -xBlockLink *pxBlock, *pxPreviousBlock, *pxNewBlockLink; -static portBASE_TYPE xHeapHasBeenInitialised = pdFALSE; -void *pvReturn = NULL; - - vTaskSuspendAll(); - { - /* If this is the first call to malloc then the heap will require - initialisation to setup the list of free blocks. */ - if( xHeapHasBeenInitialised == pdFALSE ) - { - prvHeapInit(); - xHeapHasBeenInitialised = pdTRUE; - } - - /* The wanted size is increased so it can contain a xBlockLink - structure in addition to the requested amount of bytes. */ - if( xWantedSize > 0 ) - { - xWantedSize += heapSTRUCT_SIZE; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - if( xWantedSize & portBYTE_ALIGNMENT_MASK ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - } - - if( ( xWantedSize > 0 ) && ( xWantedSize < configTOTAL_HEAP_SIZE ) ) - { - /* Blocks are stored in byte order - traverse the list from the start - (smallest) block until one of adequate size is found. */ - pxPreviousBlock = &xStart; - pxBlock = xStart.pxNextFreeBlock; - while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock ) ) - { - pxPreviousBlock = pxBlock; - pxBlock = pxBlock->pxNextFreeBlock; - } - - /* If we found the end marker then a block of adequate size was not found. */ - if( pxBlock != &xEnd ) - { - /* Return the memory space - jumping over the xBlockLink structure - at its start. */ - pvReturn = ( void * ) ( ( ( unsigned char * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE ); - - /* This block is being returned for use so must be taken our of the - list of free blocks. */ - pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; - - /* If the block is larger than required it can be split into two. */ - if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) - { - /* This block is to be split into two. Create a new block - following the number of bytes requested. The void cast is - used to prevent byte alignment warnings from the compiler. */ - pxNewBlockLink = ( void * ) ( ( ( unsigned char * ) pxBlock ) + xWantedSize ); - - /* Calculate the sizes of two blocks split from the single - block. */ - pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; - pxBlock->xBlockSize = xWantedSize; - - /* Insert the new block into the list of free blocks. */ - prvInsertBlockIntoFreeList( ( pxNewBlockLink ) ); - } - - xFreeBytesRemaining -= pxBlock->xBlockSize; - } - } - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ -unsigned char *puc = ( unsigned char * ) pv; -xBlockLink *pxLink; - - if( pv ) - { - /* The memory being freed will have an xBlockLink structure immediately - before it. */ - puc -= heapSTRUCT_SIZE; - - /* This casting is to keep the compiler from issuing warnings. */ - pxLink = ( void * ) puc; - - vTaskSuspendAll(); - { - /* Add this block to the list of free blocks. */ - prvInsertBlockIntoFreeList( ( ( xBlockLink * ) pxLink ) ); - xFreeBytesRemaining += pxLink->xBlockSize; - } - xTaskResumeAll(); - } -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return xFreeBytesRemaining; -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* This just exists to keep the linker quiet. */ -} diff --git a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_3.c b/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_3.c deleted file mode 100644 index fa799a0..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_portable/MemMang/heap_3.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -/* - * Implementation of pvPortMalloc() and vPortFree() that relies on the - * compilers own malloc() and free() implementations. - * - * This file can only be used if the linker is configured to to generate - * a heap memory area. - * - * See heap_2.c and heap_1.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ - -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn; - - vTaskSuspendAll(); - { - pvReturn = malloc( xWantedSize ); - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - if( pv ) - { - vTaskSuspendAll(); - { - free( pv ); - } - xTaskResumeAll(); - } -} - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_portable/port.c b/FreeRTOSWithTraces/FreeRTOS_portable/port.c deleted file mode 100644 index 70c7491..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_portable/port.c +++ /dev/null @@ -1,283 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/*----------------------------------------------------------- - * Implementation of functions defined in portable.h for the ARM CM3 port. - *----------------------------------------------------------*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is -defined. The value should also ensure backward compatibility. -FreeRTOS.org versions prior to V4.4.0 did not include this definition. */ -#ifndef configKERNEL_INTERRUPT_PRIORITY - #define configKERNEL_INTERRUPT_PRIORITY 255 -#endif - -/* Constants required to manipulate the NVIC. */ -#define portNVIC_SYSTICK_CTRL ( ( volatile unsigned long *) 0xe000e010 ) -#define portNVIC_SYSTICK_LOAD ( ( volatile unsigned long *) 0xe000e014 ) -#define portNVIC_INT_CTRL ( ( volatile unsigned long *) 0xe000ed04 ) -#define portNVIC_SYSPRI2 ( ( volatile unsigned long *) 0xe000ed20 ) -#define portNVIC_SYSTICK_CLK 0x00000004 -#define portNVIC_SYSTICK_INT 0x00000002 -#define portNVIC_SYSTICK_ENABLE 0x00000001 -#define portNVIC_PENDSVSET 0x10000000 -#define portNVIC_PENDSV_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16 ) -#define portNVIC_SYSTICK_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24 ) - -/* Constants required to set up the initial stack. */ -#define portINITIAL_XPSR ( 0x01000000 ) - -/* The priority used by the kernel is assigned to a variable to make access -from inline assembler easier. */ -const unsigned long ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY; - -/* Each task maintains its own interrupt status in the critical nesting -variable. */ -static unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa; - -/* - * Setup the timer to generate the tick interrupts. - */ -static void prvSetupTimerInterrupt( void ); - -/* - * Exception handlers. - */ -void xPortPendSVHandler( void ) __attribute__ (( naked )); -void xPortSysTickHandler( void ); -void vPortSVCHandler( void ) __attribute__ (( naked )); - -/* - * Start first task is a separate function so it can be tested in isolation. - */ -void vPortStartFirstTask( void ) __attribute__ (( naked )); - -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ) -{ - /* Simulate the stack frame as it would be created by a context switch - interrupt. */ - pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */ - *pxTopOfStack = portINITIAL_XPSR; /* xPSR */ - pxTopOfStack--; - *pxTopOfStack = ( portSTACK_TYPE ) pxCode; /* PC */ - pxTopOfStack--; - *pxTopOfStack = 0; /* LR */ - pxTopOfStack -= 5; /* R12, R3, R2 and R1. */ - *pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */ - pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */ - - return pxTopOfStack; -} -/*-----------------------------------------------------------*/ - -void vPortSVCHandler( void ) -{ - __asm volatile ( - " ldr r3, pxCurrentTCBConst2 \n" /* Restore the context. */ - " ldr r1, [r3] \n" /* Use pxCurrentTCBConst to get the pxCurrentTCB address. */ - " ldr r0, [r1] \n" /* The first item in pxCurrentTCB is the task top of stack. */ - " ldmia r0!, {r4-r11} \n" /* Pop the registers that are not automatically saved on exception entry and the critical nesting count. */ - " msr psp, r0 \n" /* Restore the task stack pointer. */ - " mov r0, #0 \n" - " msr basepri, r0 \n" - " orr r14, #0xd \n" - " bx r14 \n" - " \n" - " .align 2 \n" - "pxCurrentTCBConst2: .word pxCurrentTCB \n" - ); -} -/*-----------------------------------------------------------*/ - -void vPortStartFirstTask( void ) -{ - __asm volatile( - " ldr r0, =0xE000ED08 \n" /* Use the NVIC offset register to locate the stack. */ - " ldr r0, [r0] \n" - " ldr r0, [r0] \n" - " msr msp, r0 \n" /* Set the msp back to the start of the stack. */ - " cpsie i \n" /* Globally enable interrupts. */ - " svc 0 \n" /* System call to start first task. */ - " nop \n" - ); -} -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -portBASE_TYPE xPortStartScheduler( void ) -{ - /* Make PendSV, CallSV and SysTick the same priroity as the kernel. */ - *(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI; - *(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI; - - /* Start the timer that generates the tick ISR. Interrupts are disabled - here already. */ - prvSetupTimerInterrupt(); - - /* Initialise the critical nesting count ready for the first task. */ - uxCriticalNesting = 0; - - /* Start the first task. */ - vPortStartFirstTask(); - - /* Should not get here! */ - return 0; -} -/*-----------------------------------------------------------*/ - -void vPortEndScheduler( void ) -{ - /* It is unlikely that the CM3 port will require this function as there - is nothing to return to. */ -} -/*-----------------------------------------------------------*/ - -void vPortYieldFromISR( void ) -{ - /* Set a PendSV to request a context switch. */ - *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET; -} -/*-----------------------------------------------------------*/ - -void vPortEnterCritical( void ) -{ - portDISABLE_INTERRUPTS(); - uxCriticalNesting++; -} -/*-----------------------------------------------------------*/ - -void vPortExitCritical( void ) -{ - uxCriticalNesting--; - if( uxCriticalNesting == 0 ) - { - portENABLE_INTERRUPTS(); - } -} -/*-----------------------------------------------------------*/ - -void xPortPendSVHandler( void ) -{ - /* This is a naked function. */ - - __asm volatile - ( - " mrs r0, psp \n" - " \n" - " ldr r3, pxCurrentTCBConst \n" /* Get the location of the current TCB. */ - " ldr r2, [r3] \n" - " \n" - " stmdb r0!, {r4-r11} \n" /* Save the remaining registers. */ - " str r0, [r2] \n" /* Save the new top of stack into the first member of the TCB. */ - " \n" - " stmdb sp!, {r3, r14} \n" - " mov r0, %0 \n" - " msr basepri, r0 \n" - " bl vTaskSwitchContext \n" - " mov r0, #0 \n" - " msr basepri, r0 \n" - " ldmia sp!, {r3, r14} \n" - " \n" /* Restore the context, including the critical nesting count. */ - " ldr r1, [r3] \n" - " ldr r0, [r1] \n" /* The first item in pxCurrentTCB is the task top of stack. */ - " ldmia r0!, {r4-r11} \n" /* Pop the registers. */ - " msr psp, r0 \n" - " bx r14 \n" - " \n" - " .align 2 \n" - "pxCurrentTCBConst: .word pxCurrentTCB \n" - ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY) - ); -} -/*-----------------------------------------------------------*/ - -void xPortSysTickHandler( void ) -{ -unsigned long ulDummy; - - /* If using preemption, also force a context switch. */ - #if configUSE_PREEMPTION == 1 - *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET; - #endif - - ulDummy = portSET_INTERRUPT_MASK_FROM_ISR(); - { - vTaskIncrementTick(); - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( ulDummy ); -} -/*-----------------------------------------------------------*/ - -/* - * Setup the systick timer to generate the tick interrupts at the required - * frequency. - */ -void prvSetupTimerInterrupt( void ) -{ - /* Configure SysTick to interrupt at the requested rate. */ - *(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL; - *(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE; -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOSWithTraces/FreeRTOS_portable/portmacro.h b/FreeRTOSWithTraces/FreeRTOS_portable/portmacro.h deleted file mode 100644 index 461bf90..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_portable/portmacro.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef PORTMACRO_H -#define PORTMACRO_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------- - * Port specific definitions. - * - * The settings in this file configure FreeRTOS correctly for the - * given hardware and compiler. - * - * These settings should not be altered. - *----------------------------------------------------------- - */ - -/* Type definitions. */ -#define portCHAR char -#define portFLOAT float -#define portDOUBLE double -#define portLONG long -#define portSHORT short -#define portSTACK_TYPE unsigned portLONG -#define portBASE_TYPE long - -#if( configUSE_16_BIT_TICKS == 1 ) - typedef unsigned portSHORT portTickType; - #define portMAX_DELAY ( portTickType ) 0xffff -#else - typedef unsigned portLONG portTickType; - #define portMAX_DELAY ( portTickType ) 0xffffffff -#endif -/*-----------------------------------------------------------*/ - -/* Architecture specifics. */ -#define portSTACK_GROWTH ( -1 ) -#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) -#define portBYTE_ALIGNMENT 8 -/*-----------------------------------------------------------*/ - - -/* Scheduler utilities. */ -extern void vPortYieldFromISR( void ); - -#define portYIELD() vPortYieldFromISR() - -#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR() -/*-----------------------------------------------------------*/ - - -/* Critical section management. */ - -/* - * Set basepri to portMAX_SYSCALL_INTERRUPT_PRIORITY without effecting other - * registers. r0 is clobbered. - */ -#define portSET_INTERRUPT_MASK() \ - __asm volatile \ - ( \ - " mov r0, %0 \n" \ - " msr basepri, r0 \n" \ - ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY):"r0" \ - ) - -/* - * Set basepri back to 0 without effective other registers. - * r0 is clobbered. - */ -#define portCLEAR_INTERRUPT_MASK() \ - __asm volatile \ - ( \ - " mov r0, #0 \n" \ - " msr basepri, r0 \n" \ - :::"r0" \ - ) - -#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK() -#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x - - -extern void vPortEnterCritical( void ); -extern void vPortExitCritical( void ); - -#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK() -#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK() -#define portENTER_CRITICAL() vPortEnterCritical() -#define portEXIT_CRITICAL() vPortExitCritical() -/*-----------------------------------------------------------*/ - -/* Task function macros as described on the FreeRTOS.org WEB site. */ -#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) -#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters ) - -#define portNOP() - -#ifdef __cplusplus -} -#endif - -#endif /* PORTMACRO_H */ - diff --git a/FreeRTOSWithTraces/FreeRTOS_src/croutine.c b/FreeRTOSWithTraces/FreeRTOS_src/croutine.c deleted file mode 100644 index 58fb1bf..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/croutine.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#include "FreeRTOS.h" -#include "task.h" -#include "croutine.h" - -/* - * Some kernel aware debuggers require data to be viewed to be global, rather - * than file scope. - */ -#ifdef portREMOVE_STATIC_QUALIFIER - #define static -#endif - - -/* Lists for ready and blocked co-routines. --------------------*/ -static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */ -static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */ -static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */ -static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */ -static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */ -static xList xPendingReadyCoRoutineList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */ - -/* Other file private variables. --------------------------------*/ -corCRCB * pxCurrentCoRoutine = NULL; -static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0; -static portTickType xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0; - -/* The initial state of the co-routine when it is created. */ -#define corINITIAL_STATE ( 0 ) - -/* - * Place the co-routine represented by pxCRCB into the appropriate ready queue - * for the priority. It is inserted at the end of the list. - * - * This macro accesses the co-routine ready lists and therefore must not be - * used from within an ISR. - */ -#define prvAddCoRoutineToReadyQueue( pxCRCB ) \ -{ \ - if( pxCRCB->uxPriority > uxTopCoRoutineReadyPriority ) \ - { \ - uxTopCoRoutineReadyPriority = pxCRCB->uxPriority; \ - } \ - vListInsertEnd( ( xList * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \ -} - -/* - * Utility to ready all the lists used by the scheduler. This is called - * automatically upon the creation of the first co-routine. - */ -static void prvInitialiseCoRoutineLists( void ); - -/* - * Co-routines that are readied by an interrupt cannot be placed directly into - * the ready lists (there is no mutual exclusion). Instead they are placed in - * in the pending ready list in order that they can later be moved to the ready - * list by the co-routine scheduler. - */ -static void prvCheckPendingReadyList( void ); - -/* - * Macro that looks at the list of co-routines that are currently delayed to - * see if any require waking. - * - * Co-routines are stored in the queue in the order of their wake time - - * meaning once one co-routine has been found whose timer has not expired - * we need not look any further down the list. - */ -static void prvCheckDelayedList( void ); - -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex ) -{ -signed portBASE_TYPE xReturn; -corCRCB *pxCoRoutine; - - /* Allocate the memory that will store the co-routine control block. */ - pxCoRoutine = ( corCRCB * ) pvPortMalloc( sizeof( corCRCB ) ); - if( pxCoRoutine ) - { - /* If pxCurrentCoRoutine is NULL then this is the first co-routine to - be created and the co-routine data structures need initialising. */ - if( pxCurrentCoRoutine == NULL ) - { - pxCurrentCoRoutine = pxCoRoutine; - prvInitialiseCoRoutineLists(); - } - - /* Check the priority is within limits. */ - if( uxPriority >= configMAX_CO_ROUTINE_PRIORITIES ) - { - uxPriority = configMAX_CO_ROUTINE_PRIORITIES - 1; - } - - /* Fill out the co-routine control block from the function parameters. */ - pxCoRoutine->uxState = corINITIAL_STATE; - pxCoRoutine->uxPriority = uxPriority; - pxCoRoutine->uxIndex = uxIndex; - pxCoRoutine->pxCoRoutineFunction = pxCoRoutineCode; - - /* Initialise all the other co-routine control block parameters. */ - vListInitialiseItem( &( pxCoRoutine->xGenericListItem ) ); - vListInitialiseItem( &( pxCoRoutine->xEventListItem ) ); - - /* Set the co-routine control block as a link back from the xListItem. - This is so we can get back to the containing CRCB from a generic item - in a list. */ - listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xGenericListItem ), pxCoRoutine ); - listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xEventListItem ), pxCoRoutine ); - - /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxCoRoutine->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority ); - - /* Now the co-routine has been initialised it can be added to the ready - list at the correct priority. */ - prvAddCoRoutineToReadyQueue( pxCoRoutine ); - - xReturn = pdPASS; - } - else - { - xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList ) -{ -portTickType xTimeToWake; - - /* Calculate the time to wake - this may overflow but this is - not a problem. */ - xTimeToWake = xCoRoutineTickCount + xTicksToDelay; - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - - /* The list item will be inserted in wake time order. */ - listSET_LIST_ITEM_VALUE( &( pxCurrentCoRoutine->xGenericListItem ), xTimeToWake ); - - if( xTimeToWake < xCoRoutineTickCount ) - { - /* Wake time has overflowed. Place this item in the - overflow list. */ - vListInsert( ( xList * ) pxOverflowDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - } - else - { - /* The wake time has not overflowed, so we can use the - current block list. */ - vListInsert( ( xList * ) pxDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - } - - if( pxEventList ) - { - /* Also add the co-routine to an event list. If this is done then the - function must be called with interrupts disabled. */ - vListInsert( pxEventList, &( pxCurrentCoRoutine->xEventListItem ) ); - } -} -/*-----------------------------------------------------------*/ - -static void prvCheckPendingReadyList( void ) -{ - /* Are there any co-routines waiting to get moved to the ready list? These - are co-routines that have been readied by an ISR. The ISR cannot access - the ready lists itself. */ - while( listLIST_IS_EMPTY( &xPendingReadyCoRoutineList ) == pdFALSE ) - { - corCRCB *pxUnblockedCRCB; - - /* The pending ready list can be accessed by an ISR. */ - portDISABLE_INTERRUPTS(); - { - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) ); - vListRemove( &( pxUnblockedCRCB->xEventListItem ) ); - } - portENABLE_INTERRUPTS(); - - vListRemove( &( pxUnblockedCRCB->xGenericListItem ) ); - prvAddCoRoutineToReadyQueue( pxUnblockedCRCB ); - } -} -/*-----------------------------------------------------------*/ - -static void prvCheckDelayedList( void ) -{ -corCRCB *pxCRCB; - - xPassedTicks = xTaskGetTickCount() - xLastTickCount; - while( xPassedTicks ) - { - xCoRoutineTickCount++; - xPassedTicks--; - - /* If the tick count has overflowed we need to swap the ready lists. */ - if( xCoRoutineTickCount == 0 ) - { - xList * pxTemp; - - /* Tick count has overflowed so we need to swap the delay lists. If there are - any items in pxDelayedCoRoutineList here then there is an error! */ - pxTemp = pxDelayedCoRoutineList; - pxDelayedCoRoutineList = pxOverflowDelayedCoRoutineList; - pxOverflowDelayedCoRoutineList = pxTemp; - } - - /* See if this tick has made a timeout expire. */ - while( listLIST_IS_EMPTY( pxDelayedCoRoutineList ) == pdFALSE ) - { - pxCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedCoRoutineList ); - - if( xCoRoutineTickCount < listGET_LIST_ITEM_VALUE( &( pxCRCB->xGenericListItem ) ) ) - { - /* Timeout not yet expired. */ - break; - } - - portDISABLE_INTERRUPTS(); - { - /* The event could have occurred just before this critical - section. If this is the case then the generic list item will - have been moved to the pending ready list and the following - line is still valid. Also the pvContainer parameter will have - been set to NULL so the following lines are also valid. */ - vListRemove( &( pxCRCB->xGenericListItem ) ); - - /* Is the co-routine waiting on an event also? */ - if( pxCRCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxCRCB->xEventListItem ) ); - } - } - portENABLE_INTERRUPTS(); - - prvAddCoRoutineToReadyQueue( pxCRCB ); - } - } - - xLastTickCount = xCoRoutineTickCount; -} -/*-----------------------------------------------------------*/ - -void vCoRoutineSchedule( void ) -{ - /* See if any co-routines readied by events need moving to the ready lists. */ - prvCheckPendingReadyList(); - - /* See if any delayed co-routines have timed out. */ - prvCheckDelayedList(); - - /* Find the highest priority queue that contains ready co-routines. */ - while( listLIST_IS_EMPTY( &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) ) ) - { - if( uxTopCoRoutineReadyPriority == 0 ) - { - /* No more co-routines to check. */ - return; - } - --uxTopCoRoutineReadyPriority; - } - - /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the co-routines - of the same priority get an equal share of the processor time. */ - listGET_OWNER_OF_NEXT_ENTRY( pxCurrentCoRoutine, &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) ); - - /* Call the co-routine. */ - ( pxCurrentCoRoutine->pxCoRoutineFunction )( pxCurrentCoRoutine, pxCurrentCoRoutine->uxIndex ); - - return; -} -/*-----------------------------------------------------------*/ - -static void prvInitialiseCoRoutineLists( void ) -{ -unsigned portBASE_TYPE uxPriority; - - for( uxPriority = 0; uxPriority < configMAX_CO_ROUTINE_PRIORITIES; uxPriority++ ) - { - vListInitialise( ( xList * ) &( pxReadyCoRoutineLists[ uxPriority ] ) ); - } - - vListInitialise( ( xList * ) &xDelayedCoRoutineList1 ); - vListInitialise( ( xList * ) &xDelayedCoRoutineList2 ); - vListInitialise( ( xList * ) &xPendingReadyCoRoutineList ); - - /* Start with pxDelayedCoRoutineList using list1 and the - pxOverflowDelayedCoRoutineList using list2. */ - pxDelayedCoRoutineList = &xDelayedCoRoutineList1; - pxOverflowDelayedCoRoutineList = &xDelayedCoRoutineList2; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList ) -{ -corCRCB *pxUnblockedCRCB; -signed portBASE_TYPE xReturn; - - /* This function is called from within an interrupt. It can only access - event lists and the pending ready list. This function assumes that a - check has already been made to ensure pxEventList is not empty. */ - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); - vListRemove( &( pxUnblockedCRCB->xEventListItem ) ); - vListInsertEnd( ( xList * ) &( xPendingReadyCoRoutineList ), &( pxUnblockedCRCB->xEventListItem ) ); - - if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority ) - { - xReturn = pdTRUE; - } - else - { - xReturn = pdFALSE; - } - - return xReturn; -} - diff --git a/FreeRTOSWithTraces/FreeRTOS_src/list.c b/FreeRTOSWithTraces/FreeRTOS_src/list.c deleted file mode 100644 index c3ef2a8..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/list.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#include <stdlib.h> -#include "FreeRTOS.h" -#include "list.h" - -/*----------------------------------------------------------- - * PUBLIC LIST API documented in list.h - *----------------------------------------------------------*/ - -void vListInitialise( xList *pxList ) -{ - /* The list structure contains a list item which is used to mark the - end of the list. To initialise the list the list end is inserted - as the only list entry. */ - pxList->pxIndex = ( xListItem * ) &( pxList->xListEnd ); - - /* The list end value is the highest possible value in the list to - ensure it remains at the end of the list. */ - pxList->xListEnd.xItemValue = portMAX_DELAY; - - /* The list end next and previous pointers point to itself so we know - when the list is empty. */ - pxList->xListEnd.pxNext = ( xListItem * ) &( pxList->xListEnd ); - pxList->xListEnd.pxPrevious = ( xListItem * ) &( pxList->xListEnd ); - - pxList->uxNumberOfItems = ( unsigned portBASE_TYPE ) 0U; -} -/*-----------------------------------------------------------*/ - -void vListInitialiseItem( xListItem *pxItem ) -{ - /* Make sure the list item is not recorded as being on a list. */ - pxItem->pvContainer = NULL; -} -/*-----------------------------------------------------------*/ - -void vListInsertEnd( xList *pxList, xListItem *pxNewListItem ) -{ -volatile xListItem * pxIndex; - - /* Insert a new list item into pxList, but rather than sort the list, - makes the new list item the last item to be removed by a call to - pvListGetOwnerOfNextEntry. This means it has to be the item pointed to by - the pxIndex member. */ - pxIndex = pxList->pxIndex; - - pxNewListItem->pxNext = pxIndex->pxNext; - pxNewListItem->pxPrevious = pxList->pxIndex; - pxIndex->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem; - pxIndex->pxNext = ( volatile xListItem * ) pxNewListItem; - pxList->pxIndex = ( volatile xListItem * ) pxNewListItem; - - /* Remember which list the item is in. */ - pxNewListItem->pvContainer = ( void * ) pxList; - - ( pxList->uxNumberOfItems )++; -} -/*-----------------------------------------------------------*/ - -void vListInsert( xList *pxList, xListItem *pxNewListItem ) -{ -volatile xListItem *pxIterator; -portTickType xValueOfInsertion; - - /* Insert the new list item into the list, sorted in ulListItem order. */ - xValueOfInsertion = pxNewListItem->xItemValue; - - /* If the list already contains a list item with the same item value then - the new list item should be placed after it. This ensures that TCB's which - are stored in ready lists (all of which have the same ulListItem value) - get an equal share of the CPU. However, if the xItemValue is the same as - the back marker the iteration loop below will not end. This means we need - to guard against this by checking the value first and modifying the - algorithm slightly if necessary. */ - if( xValueOfInsertion == portMAX_DELAY ) - { - pxIterator = pxList->xListEnd.pxPrevious; - } - else - { - /* *** NOTE *********************************************************** - If you find your application is crashing here then likely causes are: - 1) Stack overflow - - see http://www.freertos.org/Stacks-and-stack-overflow-checking.html - 2) Incorrect interrupt priority assignment, especially on Cortex-M3 - parts where numerically high priority values denote low actual - interrupt priories, which can seem counter intuitive. See - configMAX_SYSCALL_INTERRUPT_PRIORITY on http://www.freertos.org/a00110.html - 3) Calling an API function from within a critical section or when - the scheduler is suspended. - 4) Using a queue or semaphore before it has been initialised or - before the scheduler has been started (are interrupts firing - before vTaskStartScheduler() has been called?). - See http://www.freertos.org/FAQHelp.html for more tips. - **********************************************************************/ - - for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) - { - /* There is nothing to do here, we are just iterating to the - wanted insertion position. */ - } - } - - pxNewListItem->pxNext = pxIterator->pxNext; - pxNewListItem->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem; - pxNewListItem->pxPrevious = pxIterator; - pxIterator->pxNext = ( volatile xListItem * ) pxNewListItem; - - /* Remember which list the item is in. This allows fast removal of the - item later. */ - pxNewListItem->pvContainer = ( void * ) pxList; - - ( pxList->uxNumberOfItems )++; -} -/*-----------------------------------------------------------*/ - -void vListRemove( xListItem *pxItemToRemove ) -{ -xList * pxList; - - pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; - pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; - - /* The list item knows which list it is in. Obtain the list from the list - item. */ - pxList = ( xList * ) pxItemToRemove->pvContainer; - - /* Make sure the index is left pointing to a valid item. */ - if( pxList->pxIndex == pxItemToRemove ) - { - pxList->pxIndex = pxItemToRemove->pxPrevious; - } - - pxItemToRemove->pvContainer = NULL; - ( pxList->uxNumberOfItems )--; -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOSWithTraces/FreeRTOS_src/queue.c b/FreeRTOSWithTraces/FreeRTOS_src/queue.c deleted file mode 100644 index 2ae7c70..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/queue.c +++ /dev/null @@ -1,1539 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#include <stdlib.h> -#include <string.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "croutine.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/*----------------------------------------------------------- - * PUBLIC LIST API documented in list.h - *----------------------------------------------------------*/ - -/* Constants used with the cRxLock and cTxLock structure members. */ -#define queueUNLOCKED ( ( signed portBASE_TYPE ) -1 ) -#define queueLOCKED_UNMODIFIED ( ( signed portBASE_TYPE ) 0 ) - -#define queueERRONEOUS_UNBLOCK ( -1 ) - -/* For internal use only. */ -#define queueSEND_TO_BACK ( 0 ) -#define queueSEND_TO_FRONT ( 1 ) - -/* Effectively make a union out of the xQUEUE structure. */ -#define pxMutexHolder pcTail -#define uxQueueType pcHead -#define uxRecursiveCallCount pcReadFrom -#define queueQUEUE_IS_MUTEX NULL - -/* Semaphores do not actually store or copy data, so have an items size of -zero. */ -#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( 0 ) -#define queueDONT_BLOCK ( ( portTickType ) 0 ) -#define queueMUTEX_GIVE_BLOCK_TIME ( ( portTickType ) 0 ) - -/* - * Definition of the queue used by the scheduler. - * Items are queued by copy, not reference. - */ -typedef struct QueueDefinition -{ - signed char *pcHead; /*< Points to the beginning of the queue storage area. */ - signed char *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ - - signed char *pcWriteTo; /*< Points to the free next place in the storage area. */ - signed char *pcReadFrom; /*< Points to the last place that a queued item was read from. */ - - xList xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ - xList xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */ - - volatile unsigned portBASE_TYPE uxMessagesWaiting;/*< The number of items currently in the queue. */ - unsigned portBASE_TYPE uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */ - unsigned portBASE_TYPE uxItemSize; /*< The size of each items that the queue will hold. */ - - signed portBASE_TYPE xRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - signed portBASE_TYPE xTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - -} xQUEUE; -/*-----------------------------------------------------------*/ - -/* - * Inside this file xQueueHandle is a pointer to a xQUEUE structure. - * To keep the definition private the API header file defines it as a - * pointer to void. - */ -typedef xQUEUE * xQueueHandle; - -/* - * Prototypes for public functions are included here so we don't have to - * include the API header file (as it defines xQueueHandle differently). These - * functions are documented in the API header file. - */ -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ) PRIVILEGED_FUNCTION; -xQueueHandle xQueueCreateMutex( void ) PRIVILEGED_FUNCTION; -xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) PRIVILEGED_FUNCTION; -portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime ) PRIVILEGED_FUNCTION; -portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * Co-routine queue functions differ from task queue functions. Co-routines are - * an optional component. - */ -#if configUSE_CO_ROUTINES == 1 - signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; -#endif - -/* - * The queue registry is just a means for kernel aware debuggers to locate - * queue structures. It has no other purpose so is an optional component. - */ -#if configQUEUE_REGISTRY_SIZE > 0 - - /* The type stored within the queue registry array. This allows a name - to be assigned to each queue making kernel aware debugging a little - more user friendly. */ - typedef struct QUEUE_REGISTRY_ITEM - { - signed char *pcQueueName; - xQueueHandle xHandle; - } xQueueRegistryItem; - - /* The queue registry is simply an array of xQueueRegistryItem structures. - The pcQueueName member of a structure being NULL is indicative of the - array position being vacant. */ - xQueueRegistryItem xQueueRegistry[ configQUEUE_REGISTRY_SIZE ]; - - /* Removes a queue from the registry by simply setting the pcQueueName - member to NULL. */ - static void vQueueUnregisterQueue( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName ) PRIVILEGED_FUNCTION; -#endif - -/* - * Unlocks a queue locked by a call to prvLockQueue. Locking a queue does not - * prevent an ISR from adding or removing items to the queue, but does prevent - * an ISR from removing tasks from the queue event lists. If an ISR finds a - * queue is locked it will instead increment the appropriate queue lock count - * to indicate that a task may require unblocking. When the queue in unlocked - * these lock counts are inspected, and the appropriate action taken. - */ -static void prvUnlockQueue( xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Uses a critical section to determine if there is any data in a queue. - * - * @return pdTRUE if the queue contains no items, otherwise pdFALSE. - */ -static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Uses a critical section to determine if there is any space in a queue. - * - * @return pdTRUE if there is no space, otherwise pdFALSE; - */ -static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Copies an item into the queue, either at the front of the queue or the - * back of the queue. - */ -static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) PRIVILEGED_FUNCTION; - -/* - * Copies an item out of a queue. - */ -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer ) PRIVILEGED_FUNCTION; -/*-----------------------------------------------------------*/ - -/* - * Macro to mark a queue as locked. Locking a queue prevents an ISR from - * accessing the queue event lists. - */ -#define prvLockQueue( pxQueue ) \ - taskENTER_CRITICAL(); \ - { \ - if( ( pxQueue )->xRxLock == queueUNLOCKED ) \ - { \ - ( pxQueue )->xRxLock = queueLOCKED_UNMODIFIED; \ - } \ - if( ( pxQueue )->xTxLock == queueUNLOCKED ) \ - { \ - ( pxQueue )->xTxLock = queueLOCKED_UNMODIFIED; \ - } \ - } \ - taskEXIT_CRITICAL() -/*-----------------------------------------------------------*/ - - -/*----------------------------------------------------------- - * PUBLIC QUEUE MANAGEMENT API documented in queue.h - *----------------------------------------------------------*/ - -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ) -{ -xQUEUE *pxNewQueue; -size_t xQueueSizeInBytes; -xQueueHandle xReturn = NULL; - - /* Allocate the new queue structure. */ - if( uxQueueLength > ( unsigned portBASE_TYPE ) 0 ) - { - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); - if( pxNewQueue != NULL ) - { - /* Create the list of pointers to queue items. The queue is one byte - longer than asked for to make wrap checking easier/faster. */ - xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; - - pxNewQueue->pcHead = ( signed char * ) pvPortMalloc( xQueueSizeInBytes ); - if( pxNewQueue->pcHead != NULL ) - { - /* Initialise the queue members as described above where the - queue type is defined. */ - pxNewQueue->pcTail = pxNewQueue->pcHead + ( uxQueueLength * uxItemSize ); - pxNewQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->pcWriteTo = pxNewQueue->pcHead; - pxNewQueue->pcReadFrom = pxNewQueue->pcHead + ( ( uxQueueLength - ( unsigned portBASE_TYPE ) 1U ) * uxItemSize ); - pxNewQueue->uxLength = uxQueueLength; - pxNewQueue->uxItemSize = uxItemSize; - pxNewQueue->xRxLock = queueUNLOCKED; - pxNewQueue->xTxLock = queueUNLOCKED; - - /* Likewise ensure the event queues start with the correct state. */ - vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); - vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); - - traceQUEUE_CREATE( pxNewQueue ); - xReturn = pxNewQueue; - } - else - { - traceQUEUE_CREATE_FAILED(); - vPortFree( pxNewQueue ); - } - } - } - - configASSERT( xReturn ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - xQueueHandle xQueueCreateMutex( void ) - { - xQUEUE *pxNewQueue; - - /* Allocate the new queue structure. */ - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); - if( pxNewQueue != NULL ) - { - /* Information required for priority inheritance. */ - pxNewQueue->pxMutexHolder = NULL; - pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; - - /* Queues used as a mutex no data is actually copied into or out - of the queue. */ - pxNewQueue->pcWriteTo = NULL; - pxNewQueue->pcReadFrom = NULL; - - /* Each mutex has a length of 1 (like a binary semaphore) and - an item size of 0 as nothing is actually copied into or out - of the mutex. */ - pxNewQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->uxLength = ( unsigned portBASE_TYPE ) 1U; - pxNewQueue->uxItemSize = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->xRxLock = queueUNLOCKED; - pxNewQueue->xTxLock = queueUNLOCKED; - - /* Ensure the event queues start with the correct state. */ - vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); - vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); - - /* Start with the semaphore in the expected state. */ - xQueueGenericSend( pxNewQueue, NULL, ( portTickType ) 0U, queueSEND_TO_BACK ); - - traceCREATE_MUTEX( pxNewQueue ); - } - else - { - traceCREATE_MUTEX_FAILED(); - } - - configASSERT( pxNewQueue ); - return pxNewQueue; - } - -#endif /* configUSE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_RECURSIVE_MUTEXES == 1 - - portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ) - { - portBASE_TYPE xReturn; - - configASSERT( pxMutex ); - - /* If this is the task that holds the mutex then pxMutexHolder will not - change outside of this task. If this task does not hold the mutex then - pxMutexHolder can never coincidentally equal the tasks handle, and as - this is the only condition we are interested in it does not matter if - pxMutexHolder is accessed simultaneously by another task. Therefore no - mutual exclusion is required to test the pxMutexHolder variable. */ - if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() ) - { - traceGIVE_MUTEX_RECURSIVE( pxMutex ); - - /* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to - the task handle, therefore no underflow check is required. Also, - uxRecursiveCallCount is only modified by the mutex holder, and as - there can only be one, no mutual exclusion is required to modify the - uxRecursiveCallCount member. */ - ( pxMutex->uxRecursiveCallCount )--; - - /* Have we unwound the call count? */ - if( pxMutex->uxRecursiveCallCount == 0 ) - { - /* Return the mutex. This will automatically unblock any other - task that might be waiting to access the mutex. */ - xQueueGenericSend( pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK ); - } - - xReturn = pdPASS; - } - else - { - /* We cannot give the mutex because we are not the holder. */ - xReturn = pdFAIL; - - traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ); - } - - return xReturn; - } - -#endif /* configUSE_RECURSIVE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_RECURSIVE_MUTEXES == 1 - - portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime ) - { - portBASE_TYPE xReturn; - - configASSERT( pxMutex ); - - /* Comments regarding mutual exclusion as per those within - xQueueGiveMutexRecursive(). */ - - traceTAKE_MUTEX_RECURSIVE( pxMutex ); - - if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() ) - { - ( pxMutex->uxRecursiveCallCount )++; - xReturn = pdPASS; - } - else - { - xReturn = xQueueGenericReceive( pxMutex, NULL, xBlockTime, pdFALSE ); - - /* pdPASS will only be returned if we successfully obtained the mutex, - we may have blocked to reach here. */ - if( xReturn == pdPASS ) - { - ( pxMutex->uxRecursiveCallCount )++; - } - else - { - traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ); - } - } - - return xReturn; - } - -#endif /* configUSE_RECURSIVE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_COUNTING_SEMAPHORES == 1 - - xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) - { - xQueueHandle pxHandle; - - pxHandle = xQueueCreate( ( unsigned portBASE_TYPE ) uxCountValue, queueSEMAPHORE_QUEUE_ITEM_LENGTH ); - - if( pxHandle != NULL ) - { - pxHandle->uxMessagesWaiting = uxInitialCount; - - traceCREATE_COUNTING_SEMAPHORE(); - } - else - { - traceCREATE_COUNTING_SEMAPHORE_FAILED(); - } - - configASSERT( pxHandle ); - return pxHandle; - } - -#endif /* configUSE_COUNTING_SEMAPHORES */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) -{ -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; - - configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there room on the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If there was a task waiting for data to arrive on the - queue then unblock it now. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) - { - /* The unblocked task has a priority higher than - our own so yield immediately. Yes it is ok to do - this from within the critical section - the kernel - takes care of that. */ - portYIELD_WITHIN_API(); - } - } - - taskEXIT_CRITICAL(); - - /* Return to the original privilege level before exiting the - function. */ - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - /* The queue was full and no block time is specified (or - the block time has expired) so leave now. */ - taskEXIT_CRITICAL(); - - /* Return to the original privilege level before exiting - the function. */ - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - else if( xEntryTimeSet == pdFALSE ) - { - /* The queue was full and a block time was specified so - configure the timeout structure. */ - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - /* Interrupts and other tasks can send to and receive from the queue - now the critical section has been exited. */ - - vTaskSuspendAll(); - prvLockQueue( pxQueue ); - - /* Update the timeout state to see if it has expired yet. */ - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueFull( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_SEND( pxQueue ); - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); - - /* Unlocking the queue means queue events can effect the - event list. It is possible that interrupts occurring now - remove this task from the event list again - but as the - scheduler is suspended the task will go onto the pending - ready last instead of the actual ready list. */ - prvUnlockQueue( pxQueue ); - - /* Resuming the scheduler will move tasks from the pending - ready list into the ready list - so it is feasible that this - task is already in a ready list before it yields - in which - case the yield will not cause a context switch unless there - is also a higher priority task in the pending ready list. */ - if( !xTaskResumeAll() ) - { - portYIELD_WITHIN_API(); - } - } - else - { - /* Try again. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - } - } - else - { - /* The timeout has expired. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - - /* Return to the original privilege level before exiting the - function. */ - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - } -} -/*-----------------------------------------------------------*/ - -#if configUSE_ALTERNATIVE_API == 1 - - signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - - configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there room on the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If there was a task waiting for data to arrive on the - queue then unblock it now. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) - { - /* The unblocked task has a priority higher than - our own so yield immediately. */ - portYIELD_WITHIN_API(); - } - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - return errQUEUE_FULL; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueFull( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_SEND( pxQueue ); - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - } - taskEXIT_CRITICAL(); - } - } - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ - -#if configUSE_ALTERNATIVE_API == 1 - - signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - signed char *pcOriginalReadPosition; - - configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Remember our read position in case we are just peeking. */ - pcOriginalReadPosition = pxQueue->pcReadFrom; - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - - if( xJustPeeking == pdFALSE ) - { - traceQUEUE_RECEIVE( pxQueue ); - - /* We are actually removing data. */ - --( pxQueue->uxMessagesWaiting ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* Record the information required to implement - priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle(); - } - } - #endif - - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - else - { - traceQUEUE_PEEK( pxQueue ); - - /* We are not removing the data, so reset our read - pointer. */ - pxQueue->pcReadFrom = pcOriginalReadPosition; - - /* The data is being left in the queue, so see if there are - any other tasks waiting for the data. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); - } - } - - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueEmpty( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - portENTER_CRITICAL(); - vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); - portEXIT_CRITICAL(); - } - } - #endif - - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - } - taskEXIT_CRITICAL(); - } - } - - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) -{ -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - configASSERT( pxQueue ); - configASSERT( pxHigherPriorityTaskWoken ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* Similar to xQueueGenericSend, except we don't block if there is no room - in the queue. Also we don't directly wake a task that was blocked on a - queue read, instead we return a flag to say whether a context switch is - required or not (i.e. has a task with a higher priority than us been woken - by this post). */ - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - { - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND_FROM_ISR( pxQueue ); - - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If the queue is locked we do not alter the event list. This will - be done when the queue is unlocked later. */ - if( pxQueue->xTxLock == queueUNLOCKED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority so record that a - context switch is required. */ - *pxHigherPriorityTaskWoken = pdTRUE; - } - } - } - else - { - /* Increment the lock count so the task that unlocks the queue - knows that data was posted while it was locked. */ - ++( pxQueue->xTxLock ); - } - - xReturn = pdPASS; - } - else - { - traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); - xReturn = errQUEUE_FULL; - } - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) -{ -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; -signed char *pcOriginalReadPosition; - - configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there data in the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Remember our read position in case we are just peeking. */ - pcOriginalReadPosition = pxQueue->pcReadFrom; - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - - if( xJustPeeking == pdFALSE ) - { - traceQUEUE_RECEIVE( pxQueue ); - - /* We are actually removing data. */ - --( pxQueue->uxMessagesWaiting ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* Record the information required to implement - priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle(); - } - } - #endif - - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - else - { - traceQUEUE_PEEK( pxQueue ); - - /* We are not removing the data, so reset our read - pointer. */ - pxQueue->pcReadFrom = pcOriginalReadPosition; - - /* The data is being left in the queue, so see if there are - any other tasks waiting for the data. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); - } - } - - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - /* The queue was empty and no block time is specified (or - the block time has expired) so leave now. */ - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - else if( xEntryTimeSet == pdFALSE ) - { - /* The queue was empty and a block time was specified so - configure the timeout structure. */ - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - /* Interrupts and other tasks can send to and receive from the queue - now the critical section has been exited. */ - - vTaskSuspendAll(); - prvLockQueue( pxQueue ); - - /* Update the timeout state to see if it has expired yet. */ - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueEmpty( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - portENTER_CRITICAL(); - { - vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); - } - portEXIT_CRITICAL(); - } - } - #endif - - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - prvUnlockQueue( pxQueue ); - if( !xTaskResumeAll() ) - { - portYIELD_WITHIN_API(); - } - } - else - { - /* Try again. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - } - } - else - { - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - } -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ) -{ -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - configASSERT( pxQueue ); - configASSERT( pxTaskWoken ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - { - /* We cannot block from an ISR, so check there is data available. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - traceQUEUE_RECEIVE_FROM_ISR( pxQueue ); - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - --( pxQueue->uxMessagesWaiting ); - - /* If the queue is locked we will not modify the event list. Instead - we update the lock count so the task that unlocks the queue will know - that an ISR has removed data while the queue was locked. */ - if( pxQueue->xRxLock == queueUNLOCKED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than us so - force a context switch. */ - *pxTaskWoken = pdTRUE; - } - } - } - else - { - /* Increment the lock count so the task that unlocks the queue - knows that data was removed while it was locked. */ - ++( pxQueue->xRxLock ); - } - - xReturn = pdPASS; - } - else - { - xReturn = pdFAIL; - traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ); - } - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue ) -{ -unsigned portBASE_TYPE uxReturn; - - configASSERT( pxQueue ); - - taskENTER_CRITICAL(); - uxReturn = pxQueue->uxMessagesWaiting; - taskEXIT_CRITICAL(); - - return uxReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ) -{ -unsigned portBASE_TYPE uxReturn; - - configASSERT( pxQueue ); - - uxReturn = pxQueue->uxMessagesWaiting; - - return uxReturn; -} -/*-----------------------------------------------------------*/ - -void vQueueDelete( xQueueHandle pxQueue ) -{ - configASSERT( pxQueue ); - - traceQUEUE_DELETE( pxQueue ); - vQueueUnregisterQueue( pxQueue ); - vPortFree( pxQueue->pcHead ); - vPortFree( pxQueue ); -} -/*-----------------------------------------------------------*/ - -static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) -{ - if( pxQueue->uxItemSize == ( unsigned portBASE_TYPE ) 0 ) - { - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* The mutex is no longer being held. */ - vTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); - pxQueue->pxMutexHolder = NULL; - } - } - #endif - } - else if( xPosition == queueSEND_TO_BACK ) - { - memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize ); - pxQueue->pcWriteTo += pxQueue->uxItemSize; - if( pxQueue->pcWriteTo >= pxQueue->pcTail ) - { - pxQueue->pcWriteTo = pxQueue->pcHead; - } - } - else - { - memcpy( ( void * ) pxQueue->pcReadFrom, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize ); - pxQueue->pcReadFrom -= pxQueue->uxItemSize; - if( pxQueue->pcReadFrom < pxQueue->pcHead ) - { - pxQueue->pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize ); - } - } - - ++( pxQueue->uxMessagesWaiting ); -} -/*-----------------------------------------------------------*/ - -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer ) -{ - if( pxQueue->uxQueueType != queueQUEUE_IS_MUTEX ) - { - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - } -} -/*-----------------------------------------------------------*/ - -static void prvUnlockQueue( xQueueHandle pxQueue ) -{ - /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */ - - /* The lock counts contains the number of extra data items placed or - removed from the queue while the queue was locked. When a queue is - locked items can be added or removed, but the event lists cannot be - updated. */ - taskENTER_CRITICAL(); - { - /* See if data was added to the queue while it was locked. */ - while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED ) - { - /* Data was posted while the queue was locked. Are any tasks - blocked waiting for data to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority so record that a - context switch is required. */ - vTaskMissedYield(); - } - - --( pxQueue->xTxLock ); - } - else - { - break; - } - } - - pxQueue->xTxLock = queueUNLOCKED; - } - taskEXIT_CRITICAL(); - - /* Do the same for the Rx lock. */ - taskENTER_CRITICAL(); - { - while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - vTaskMissedYield(); - } - - --( pxQueue->xRxLock ); - } - else - { - break; - } - } - - pxQueue->xRxLock = queueUNLOCKED; - } - taskEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - taskENTER_CRITICAL(); - xReturn = ( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ); - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - configASSERT( pxQueue ); - xReturn = ( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - taskENTER_CRITICAL(); - xReturn = ( pxQueue->uxMessagesWaiting == pxQueue->uxLength ); - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - configASSERT( pxQueue ); - xReturn = ( pxQueue->uxMessagesWaiting == pxQueue->uxLength ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ) -{ -signed portBASE_TYPE xReturn; - - /* If the queue is already full we may have to block. A critical section - is required to prevent an interrupt removing something from the queue - between the check to see if the queue is full and blocking on the queue. */ - portDISABLE_INTERRUPTS(); - { - if( prvIsQueueFull( pxQueue ) ) - { - /* The queue is full - do we want to block or just leave without - posting? */ - if( xTicksToWait > ( portTickType ) 0 ) - { - /* As this is called from a coroutine we cannot block directly, but - return indicating that we need to block. */ - vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToSend ) ); - portENABLE_INTERRUPTS(); - return errQUEUE_BLOCKED; - } - else - { - portENABLE_INTERRUPTS(); - return errQUEUE_FULL; - } - } - } - portENABLE_INTERRUPTS(); - - portNOP(); - - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - /* There is room in the queue, copy the data into the queue. */ - prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); - xReturn = pdPASS; - - /* Were any co-routines waiting for data to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* In this instance the co-routine could be placed directly - into the ready list as we are within a critical section. - Instead the same pending ready list mechanism is used as if - the event were caused from within an interrupt. */ - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The co-routine waiting has a higher priority so record - that a yield might be appropriate. */ - xReturn = errQUEUE_YIELD; - } - } - } - else - { - xReturn = errQUEUE_FULL; - } - } - portENABLE_INTERRUPTS(); - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ) -{ -signed portBASE_TYPE xReturn; - - /* If the queue is already empty we may have to block. A critical section - is required to prevent an interrupt adding something to the queue - between the check to see if the queue is empty and blocking on the queue. */ - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ) - { - /* There are no messages in the queue, do we want to block or just - leave with nothing? */ - if( xTicksToWait > ( portTickType ) 0 ) - { - /* As this is a co-routine we cannot block directly, but return - indicating that we need to block. */ - vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToReceive ) ); - portENABLE_INTERRUPTS(); - return errQUEUE_BLOCKED; - } - else - { - portENABLE_INTERRUPTS(); - return errQUEUE_FULL; - } - } - } - portENABLE_INTERRUPTS(); - - portNOP(); - - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Data is available from the queue. */ - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - --( pxQueue->uxMessagesWaiting ); - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - - xReturn = pdPASS; - - /* Were any co-routines waiting for space to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - /* In this instance the co-routine could be placed directly - into the ready list as we are within a critical section. - Instead the same pending ready list mechanism is used as if - the event were caused from within an interrupt. */ - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - xReturn = errQUEUE_YIELD; - } - } - } - else - { - xReturn = pdFAIL; - } - } - portENABLE_INTERRUPTS(); - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - - - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) -{ - /* Cannot block within an ISR so if there is no space on the queue then - exit without doing anything. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); - - /* We only want to wake one co-routine per ISR, so check that a - co-routine has not already been woken. */ - if( !xCoRoutinePreviouslyWoken ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - return pdTRUE; - } - } - } - } - - return xCoRoutinePreviouslyWoken; -} -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken ) -{ -signed portBASE_TYPE xReturn; - - /* We cannot block from an ISR, so check there is data available. If - not then just leave without doing anything. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Copy the data from the queue. */ - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - --( pxQueue->uxMessagesWaiting ); - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - - if( !( *pxCoRoutineWoken ) ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - *pxCoRoutineWoken = pdTRUE; - } - } - } - - xReturn = pdPASS; - } - else - { - xReturn = pdFAIL; - } - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - -#if configQUEUE_REGISTRY_SIZE > 0 - - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName ) - { - unsigned portBASE_TYPE ux; - - /* See if there is an empty space in the registry. A NULL name denotes - a free slot. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < configQUEUE_REGISTRY_SIZE; ux++ ) - { - if( xQueueRegistry[ ux ].pcQueueName == NULL ) - { - /* Store the information on this queue. */ - xQueueRegistry[ ux ].pcQueueName = pcQueueName; - xQueueRegistry[ ux ].xHandle = xQueue; - break; - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if configQUEUE_REGISTRY_SIZE > 0 - - static void vQueueUnregisterQueue( xQueueHandle xQueue ) - { - unsigned portBASE_TYPE ux; - - /* See if the handle of the queue being unregistered in actually in the - registry. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < configQUEUE_REGISTRY_SIZE; ux++ ) - { - if( xQueueRegistry[ ux ].xHandle == xQueue ) - { - /* Set the name to NULL to show that this slot if free again. */ - xQueueRegistry[ ux ].pcQueueName = NULL; - break; - } - } - - } - -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_TIMERS == 1 - - void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ) - { - /* This function should not be called by application code hence the - 'Restricted' in its name. It is not part of the public API. It is - designed for use by kernel code, and has special calling requirements. - It can result in vListInsert() being called on a list that can only - possibly ever have one item in it, so the list will be fast, but even - so it should be called with the scheduler locked and not from a critical - section. */ - - /* Only do anything if there are no messages in the queue. This function - will not actually cause the task to block, just place it on a blocked - list. It will not block until the scheduler is unlocked - at which - time a yield will be performed. If an item is added to the queue while - the queue is locked, and the calling task blocks on the queue, then the - calling task will be immediately unblocked when the queue is unlocked. */ - prvLockQueue( pxQueue ); - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0U ) - { - /* There is nothing in the queue, block for the specified period. */ - vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - } - prvUnlockQueue( pxQueue ); - } - -#endif - diff --git a/FreeRTOSWithTraces/FreeRTOS_src/readme.txt b/FreeRTOSWithTraces/FreeRTOS_src/readme.txt deleted file mode 100644 index 81518ec..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/readme.txt +++ /dev/null @@ -1,17 +0,0 @@ -Each real time kernel port consists of three files that contain the core kernel -components and are common to every port, and one or more files that are -specific to a particular microcontroller and or compiler. - -+ The FreeRTOS/Source directory contains the three files that are common to -every port - list.c, queue.c and tasks.c. The kernel is contained within these -three files. croutine.c implements the optional co-routine functionality - which -is normally only used on very memory limited systems. - -+ The FreeRTOS/Source/Portable directory contains the files that are specific to -a particular microcontroller and or compiler. - -+ The FreeRTOS/Source/include directory contains the real time kernel header -files. - -See the readme file in the FreeRTOS/Source/Portable directory for more -information. \ No newline at end of file diff --git a/FreeRTOSWithTraces/FreeRTOS_src/tasks.c b/FreeRTOSWithTraces/FreeRTOS_src/tasks.c deleted file mode 100644 index 94afbe3..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/tasks.c +++ /dev/null @@ -1,2542 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" -#include "StackMacros.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* - * Macro to define the amount of stack available to the idle task. - */ -#define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE - -/* - * Task control block. A task control block (TCB) is allocated to each task, - * and stores the context of the task. - */ -typedef struct tskTaskControlBlock -{ - volatile portSTACK_TYPE *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE STRUCT. */ - - #if ( portUSING_MPU_WRAPPERS == 1 ) - xMPU_SETTINGS xMPUSettings; /*< The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE STRUCT. */ - #endif - - xListItem xGenericListItem; /*< List item used to place the TCB in ready and blocked queues. */ - xListItem xEventListItem; /*< List item used to place the TCB in event lists. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the task where 0 is the lowest priority. */ - portSTACK_TYPE *pxStack; /*< Points to the start of the stack. */ - signed char pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */ - - #if ( portSTACK_GROWTH > 0 ) - portSTACK_TYPE *pxEndOfStack; /*< Used for stack overflow checking on architectures where the stack grows up from low memory. */ - #endif - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - unsigned portBASE_TYPE uxCriticalNesting; - #endif - - #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned portBASE_TYPE uxTCBNumber; /*< This is used for tracing the scheduler and making debugging easier only. */ - #endif - #if ( configHEPIA_TRACING == 1 ) - unsigned char task_id; - #endif - #if ( configUSE_MUTEXES == 1 ) - unsigned portBASE_TYPE uxBasePriority; /*< The priority last assigned to the task - used by the priority inheritance mechanism. */ - #endif - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - pdTASK_HOOK_CODE pxTaskTag; - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - unsigned long ulRunTimeCounter; /*< Used for calculating how much CPU time each task is utilising. */ - #endif - -} tskTCB; - -#if ( configHEPIA_TRACING == 1 ) -void write_trace(uint8_t sig_idx, short val); -static unsigned previous_id_in=0xFF; -#endif - -/* - * Some kernel aware debuggers require data to be viewed to be global, rather - * than file scope. - */ -#ifdef portREMOVE_STATIC_QUALIFIER - #define static -#endif - -/*lint -e956 */ -PRIVILEGED_DATA tskTCB * volatile pxCurrentTCB = NULL; - -/* Lists for ready and blocked tasks. --------------------*/ - -PRIVILEGED_DATA static xList pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList1; /*< Delayed tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList * volatile pxDelayedTaskList ; /*< Points to the delayed task list currently being used. */ -PRIVILEGED_DATA static xList * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready queue when the scheduler is resumed. */ - -#if ( INCLUDE_vTaskDelete == 1 ) - - PRIVILEGED_DATA static volatile xList xTasksWaitingTermination; /*< Tasks that have been deleted - but the their memory not yet freed. */ - PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTasksDeleted = ( unsigned portBASE_TYPE ) 0; - -#endif - -#if ( INCLUDE_vTaskSuspend == 1 ) - - PRIVILEGED_DATA static xList xSuspendedTaskList; /*< Tasks that are currently suspended. */ - -#endif - -/* File private variables. --------------------------------*/ -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static volatile portTickType xTickCount = ( portTickType ) 0; -PRIVILEGED_DATA static unsigned portBASE_TYPE uxTopUsedPriority = tskIDLE_PRIORITY; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTopReadyPriority = tskIDLE_PRIORITY; -PRIVILEGED_DATA static volatile signed portBASE_TYPE xSchedulerRunning = pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxSchedulerSuspended = ( unsigned portBASE_TYPE ) pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxMissedTicks = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static volatile portBASE_TYPE xMissedYield = ( portBASE_TYPE ) pdFALSE; -PRIVILEGED_DATA static volatile portBASE_TYPE xNumOfOverflows = ( portBASE_TYPE ) 0; -PRIVILEGED_DATA static unsigned portBASE_TYPE uxTaskNumber = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static portTickType xNextTaskUnblockTime = ( portTickType ) portMAX_DELAY; - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - PRIVILEGED_DATA static char pcStatsString[ 50 ] ; - PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ - static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime ) PRIVILEGED_FUNCTION; - -#endif - -/* Debugging and trace facilities private variables and macros. ------------*/ - -/* - * The value used to fill the stack of a task when the task is created. This - * is used purely for checking the high water mark for tasks. - */ -#define tskSTACK_FILL_BYTE ( 0xa5U ) - -/* - * Macros used by vListTask to indicate which state a task is in. - */ -#define tskBLOCKED_CHAR ( ( signed char ) 'B' ) -#define tskREADY_CHAR ( ( signed char ) 'R' ) -#define tskDELETED_CHAR ( ( signed char ) 'D' ) -#define tskSUSPENDED_CHAR ( ( signed char ) 'S' ) - -/* - * Macros and private variables used by the trace facility. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - #define tskSIZE_OF_EACH_TRACE_LINE ( ( unsigned long ) ( sizeof( unsigned long ) + sizeof( unsigned long ) ) ) - PRIVILEGED_DATA static volatile signed char * volatile pcTraceBuffer; - PRIVILEGED_DATA static signed char *pcTraceBufferStart; - PRIVILEGED_DATA static signed char *pcTraceBufferEnd; - PRIVILEGED_DATA static signed portBASE_TYPE xTracing = pdFALSE; - static unsigned portBASE_TYPE uxPreviousTask = 255U; - PRIVILEGED_DATA static char pcStatusString[ 50 ]; - -#endif - -/*-----------------------------------------------------------*/ - -/* - * Macro that writes a trace of scheduler activity to a buffer. This trace - * shows which task is running when and is very useful as a debugging tool. - * As this macro is called each context switch it is a good idea to undefine - * it if not using the facility. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - #define vWriteTraceToBuffer() \ - { \ - if( xTracing ) \ - { \ - if( uxPreviousTask != pxCurrentTCB->uxTCBNumber ) \ - { \ - if( ( pcTraceBuffer + tskSIZE_OF_EACH_TRACE_LINE ) < pcTraceBufferEnd ) \ - { \ - uxPreviousTask = pxCurrentTCB->uxTCBNumber; \ - *( unsigned long * ) pcTraceBuffer = ( unsigned long ) xTickCount; \ - pcTraceBuffer += sizeof( unsigned long ); \ - *( unsigned long * ) pcTraceBuffer = ( unsigned long ) uxPreviousTask; \ - pcTraceBuffer += sizeof( unsigned long ); \ - } \ - else \ - { \ - xTracing = pdFALSE; \ - } \ - } \ - } \ - } - -#else - - #define vWriteTraceToBuffer() - -#endif -/*-----------------------------------------------------------*/ - -/* - * Place the task represented by pxTCB into the appropriate ready queue for - * the task. It is inserted at the end of the list. One quirk of this is - * that if the task being inserted is at the same priority as the currently - * executing task, then it will only be rescheduled after the currently - * executing task has been rescheduled. - */ -#define prvAddTaskToReadyQueue( pxTCB ) \ - if( ( pxTCB )->uxPriority > uxTopReadyPriority ) \ - { \ - uxTopReadyPriority = ( pxTCB )->uxPriority; \ - } \ - vListInsertEnd( ( xList * ) &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) ) -/*-----------------------------------------------------------*/ - -/* - * Macro that looks at the list of tasks that are currently delayed to see if - * any require waking. - * - * Tasks are stored in the queue in the order of their wake time - meaning - * once one tasks has been found whose timer has not expired we need not look - * any further down the list. - */ -#define prvCheckDelayedTasks() \ -{ \ -portTickType xItemValue; \ - \ - /* Is the tick count greater than or equal to the wake time of the first \ - task referenced from the delayed tasks list? */ \ - if( xTickCount >= xNextTaskUnblockTime ) \ - { \ - for( ;; ) \ - { \ - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) \ - { \ - /* The delayed list is empty. Set xNextTaskUnblockTime to the \ - maximum possible value so it is extremely unlikely that the \ - if( xTickCount >= xNextTaskUnblockTime ) test will pass next \ - time through. */ \ - xNextTaskUnblockTime = portMAX_DELAY; \ - break; \ - } \ - else \ - { \ - /* The delayed list is not empty, get the value of the item at \ - the head of the delayed list. This is the time at which the \ - task at the head of the delayed list should be removed from \ - the Blocked state. */ \ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); \ - xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); \ - \ - if( xTickCount < xItemValue ) \ - { \ - /* It is not time to unblock this item yet, but the item \ - value is the time at which the task at the head of the \ - blocked list should be removed from the Blocked state - \ - so record the item value in xNextTaskUnblockTime. */ \ - xNextTaskUnblockTime = xItemValue; \ - break; \ - } \ - \ - /* It is time to remove the item from the Blocked state. */ \ - vListRemove( &( pxTCB->xGenericListItem ) ); \ - \ - /* Is the task waiting on an event also? */ \ - if( pxTCB->xEventListItem.pvContainer ) \ - { \ - vListRemove( &( pxTCB->xEventListItem ) ); \ - } \ - prvAddTaskToReadyQueue( pxTCB ); \ - } \ - } \ - } \ -} -/*-----------------------------------------------------------*/ - -/* - * Several functions take an xTaskHandle parameter that can optionally be NULL, - * where NULL is used to indicate that the handle of the currently executing - * task should be used in place of the parameter. This macro simply checks to - * see if the parameter is NULL and returns a pointer to the appropriate TCB. - */ -#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( tskTCB * ) pxCurrentTCB : ( tskTCB * ) ( pxHandle ) ) - -/* Callback function prototypes. --------------------------*/ -extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName ); -extern void vApplicationTickHook( void ); - -/* File private functions. --------------------------------*/ - -/* - * Utility to ready a TCB for a given task. Mainly just copies the parameters - * into the TCB structure. - */ -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; - -/* - * Utility to ready all the lists used by the scheduler. This is called - * automatically upon the creation of the first task. - */ -static void prvInitialiseTaskLists( void ) PRIVILEGED_FUNCTION; - -/* - * The idle task, which as all tasks is implemented as a never ending loop. - * The idle task is automatically created and added to the ready lists upon - * creation of the first user task. - * - * The portTASK_FUNCTION_PROTO() macro is used to allow port/compiler specific - * language extensions. The equivalent prototype for this function is: - * - * void prvIdleTask( void *pvParameters ); - * - */ -static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ); - -/* - * Utility to free all memory allocated by the scheduler to hold a TCB, - * including the stack pointed to by the TCB. - * - * This does not free memory allocated by the task itself (i.e. memory - * allocated by calls to pvPortMalloc from within the tasks application code). - */ -#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) ) - - static void prvDeleteTCB( tskTCB *pxTCB ) PRIVILEGED_FUNCTION; - -#endif - -/* - * Used only by the idle task. This checks to see if anything has been placed - * in the list of tasks waiting to be deleted. If so the task is cleaned up - * and its TCB deleted. - */ -static void prvCheckTasksWaitingTermination( void ) PRIVILEGED_FUNCTION; - -/* - * The currently executing task is entering the Blocked state. Add the task to - * either the current or the overflow delayed task list. - */ -static void prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) PRIVILEGED_FUNCTION; - -/* - * Allocates memory from the heap for a TCB and associated stack. Checks the - * allocation was successful. - */ -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) PRIVILEGED_FUNCTION; - -/* - * Called from vTaskList. vListTasks details all the tasks currently under - * control of the scheduler. The tasks may be in one of a number of lists. - * prvListTaskWithinSingleList accepts a list and details the tasks from - * within just that list. - * - * THIS FUNCTION IS INTENDED FOR DEBUGGING ONLY, AND SHOULD NOT BE CALLED FROM - * NORMAL APPLICATION CODE. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - static void prvListTaskWithinSingleList( const signed char *pcWriteBuffer, xList *pxList, signed char cStatus ) PRIVILEGED_FUNCTION; - -#endif - -/* - * When a task is created, the stack of the task is filled with a known value. - * This function determines the 'high water mark' of the task stack by - * determining how much of the stack remains at the original preset value. - */ -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - - static unsigned short usTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) PRIVILEGED_FUNCTION; - -#endif - - -/*lint +e956 */ - - - -/*----------------------------------------------------------- - * TASK CREATION API documented in task.h - *----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) -{ -signed portBASE_TYPE xReturn; -tskTCB * pxNewTCB; - - configASSERT( pxTaskCode ); - configASSERT( ( uxPriority < configMAX_PRIORITIES ) ); - - /* Allocate the memory required by the TCB and stack for the new task, - checking that the allocation was successful. */ - pxNewTCB = prvAllocateTCBAndStack( usStackDepth, puxStackBuffer ); - - if( pxNewTCB != NULL ) - { - portSTACK_TYPE *pxTopOfStack; - - #if( portUSING_MPU_WRAPPERS == 1 ) - /* Should the task be created in privileged mode? */ - portBASE_TYPE xRunPrivileged; - if( ( uxPriority & portPRIVILEGE_BIT ) != 0x00 ) - { - xRunPrivileged = pdTRUE; - } - else - { - xRunPrivileged = pdFALSE; - } - uxPriority &= ~portPRIVILEGE_BIT; - #endif /* portUSING_MPU_WRAPPERS == 1 */ - - /* Calculate the top of stack address. This depends on whether the - stack grows from high memory to low (as per the 80x86) or visa versa. - portSTACK_GROWTH is used to make the result positive or negative as - required by the port. */ - #if( portSTACK_GROWTH < 0 ) - { - pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - ( unsigned short ) 1 ); - pxTopOfStack = ( portSTACK_TYPE * ) ( ( ( unsigned long ) pxTopOfStack ) & ( ( unsigned long ) ~portBYTE_ALIGNMENT_MASK ) ); - - /* Check the alignment of the calculated top of stack is correct. */ - configASSERT( ( ( ( unsigned long ) pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - } - #else - { - pxTopOfStack = pxNewTCB->pxStack; - - /* Check the alignment of the stack buffer is correct. */ - configASSERT( ( ( ( unsigned long ) pxNewTCB->pxStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - - /* If we want to use stack checking on architectures that use - a positive stack growth direction then we also need to store the - other extreme of the stack space. */ - pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 ); - } - #endif - - /* Setup the newly allocated TCB with the initial state of the task. */ - prvInitialiseTCBVariables( pxNewTCB, pcName, uxPriority, xRegions, usStackDepth ); - - /* Initialize the TCB stack to look as if the task was already running, - but had been interrupted by the scheduler. The return address is set - to the start of the task function. Once the stack has been initialised - the top of stack variable is updated. */ - #if( portUSING_MPU_WRAPPERS == 1 ) - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); - } - #else - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); - } - #endif - - /* Check the alignment of the initialised stack. */ - configASSERT( ( ( ( unsigned long ) pxNewTCB->pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - - if( ( void * ) pxCreatedTask != NULL ) - { - /* Pass the TCB out - in an anonymous way. The calling function/ - task can use this as a handle to delete the task later if - required.*/ - *pxCreatedTask = ( xTaskHandle ) pxNewTCB; - } - - /* We are going to manipulate the task queues to add this task to a - ready list, so must make sure no interrupts occur. */ - taskENTER_CRITICAL(); - { - uxCurrentNumberOfTasks++; - if( pxCurrentTCB == NULL ) - { - /* There are no other tasks, or all the other tasks are in - the suspended state - make this the current task. */ - pxCurrentTCB = pxNewTCB; - - if( uxCurrentNumberOfTasks == ( unsigned portBASE_TYPE ) 1 ) - { - /* This is the first task to be created so do the preliminary - initialisation required. We will not recover if this call - fails, but we will report the failure. */ - prvInitialiseTaskLists(); - } - } - else - { - /* If the scheduler is not already running, make this task the - current task if it is the highest priority task to be created - so far. */ - if( xSchedulerRunning == pdFALSE ) - { - if( pxCurrentTCB->uxPriority <= uxPriority ) - { - pxCurrentTCB = pxNewTCB; - } - } - } - - /* Remember the top priority to make context switching faster. Use - the priority in pxNewTCB as this has been capped to a valid value. */ - if( pxNewTCB->uxPriority > uxTopUsedPriority ) - { - uxTopUsedPriority = pxNewTCB->uxPriority; - } - - #if ( configUSE_TRACE_FACILITY == 1 ) - { - /* Add a counter into the TCB for tracing only. */ - pxNewTCB->uxTCBNumber = uxTaskNumber; - } - #endif - #if ( configHEPIA_TRACING == 1 ) - { - pxNewTCB->task_id = (unsigned char)uxTaskNumber; - } - #endif - uxTaskNumber++; - - prvAddTaskToReadyQueue( pxNewTCB ); - - xReturn = pdPASS; - traceTASK_CREATE( pxNewTCB ); - } - taskEXIT_CRITICAL(); - } - else - { - xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; - traceTASK_CREATE_FAILED(); - } - - if( xReturn == pdPASS ) - { - if( xSchedulerRunning != pdFALSE ) - { - /* If the created task is of a higher priority than the current task - then it should run now. */ - if( pxCurrentTCB->uxPriority < uxPriority ) - { - portYIELD_WITHIN_API(); - } - } - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelete == 1 ) - - void vTaskDelete( xTaskHandle pxTaskToDelete ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - /* Ensure a yield is performed if the current task is being - deleted. */ - if( pxTaskToDelete == pxCurrentTCB ) - { - pxTaskToDelete = NULL; - } - - /* If null is passed in here then we are deleting ourselves. */ - pxTCB = prvGetTCBFromHandle( pxTaskToDelete ); - - /* Remove task from the ready list and place in the termination list. - This will stop the task from be scheduled. The idle task will check - the termination list and free up any memory allocated by the - scheduler for the TCB and stack. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Is the task waiting on an event also? */ - if( pxTCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxTCB->xEventListItem ) ); - } - - vListInsertEnd( ( xList * ) &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) ); - - /* Increment the ucTasksDeleted variable so the idle task knows - there is a task that has been deleted and that it should therefore - check the xTasksWaitingTermination list. */ - ++uxTasksDeleted; - - /* Increment the uxTaskNumberVariable also so kernel aware debuggers - can detect that the task lists need re-generating. */ - uxTaskNumber++; - - traceTASK_DELETE( pxTCB ); - } - taskEXIT_CRITICAL(); - - /* Force a reschedule if we have just deleted the current task. */ - if( xSchedulerRunning != pdFALSE ) - { - if( ( void * ) pxTaskToDelete == NULL ) - { - portYIELD_WITHIN_API(); - } - } - } - -#endif - - - - - - -/*----------------------------------------------------------- - * TASK CONTROL API documented in task.h - *----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelayUntil == 1 ) - - void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) - { - portTickType xTimeToWake; - portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE; - - configASSERT( pxPreviousWakeTime ); - configASSERT( ( xTimeIncrement > 0 ) ); - - vTaskSuspendAll(); - { - /* Generate the tick time at which the task wants to wake. */ - xTimeToWake = *pxPreviousWakeTime + xTimeIncrement; - - if( xTickCount < *pxPreviousWakeTime ) - { - /* The tick count has overflowed since this function was - lasted called. In this case the only time we should ever - actually delay is if the wake time has also overflowed, - and the wake time is greater than the tick time. When this - is the case it is as if neither time had overflowed. */ - if( ( xTimeToWake < *pxPreviousWakeTime ) && ( xTimeToWake > xTickCount ) ) - { - xShouldDelay = pdTRUE; - } - } - else - { - /* The tick time has not overflowed. In this case we will - delay if either the wake time has overflowed, and/or the - tick time is less than the wake time. */ - if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xTickCount ) ) - { - xShouldDelay = pdTRUE; - } - } - - /* Update the wake time ready for the next call. */ - *pxPreviousWakeTime = xTimeToWake; - - if( xShouldDelay != pdFALSE ) - { - traceTASK_DELAY_UNTIL(); - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - } - xAlreadyYielded = xTaskResumeAll(); - - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( !xAlreadyYielded ) - { - portYIELD_WITHIN_API(); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelay == 1 ) - - void vTaskDelay( portTickType xTicksToDelay ) - { - portTickType xTimeToWake; - signed portBASE_TYPE xAlreadyYielded = pdFALSE; - - /* A delay time of zero just forces a reschedule. */ - if( xTicksToDelay > ( portTickType ) 0 ) - { - vTaskSuspendAll(); - { - traceTASK_DELAY(); - - /* A task that is removed from the event list while the - scheduler is suspended will not get placed in the ready - list or removed from the blocked list until the scheduler - is resumed. - - This task cannot be in an event list as it is the currently - executing task. */ - - /* Calculate the time to wake - this may overflow but this is - not a problem. */ - xTimeToWake = xTickCount + xTicksToDelay; - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - xAlreadyYielded = xTaskResumeAll(); - } - - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( !xAlreadyYielded ) - { - portYIELD_WITHIN_API(); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_uxTaskPriorityGet == 1 ) - - unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask ) - { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxReturn; - - taskENTER_CRITICAL(); - { - /* If null is passed in here then we are changing the - priority of the calling function. */ - pxTCB = prvGetTCBFromHandle( pxTask ); - uxReturn = pxTCB->uxPriority; - } - taskEXIT_CRITICAL(); - - return uxReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskPrioritySet == 1 ) - - void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority ) - { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxCurrentPriority; - portBASE_TYPE xYieldRequired = pdFALSE; - - configASSERT( ( uxNewPriority < configMAX_PRIORITIES ) ); - - /* Ensure the new priority is valid. */ - if( uxNewPriority >= configMAX_PRIORITIES ) - { - uxNewPriority = configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; - } - - taskENTER_CRITICAL(); - { - if( pxTask == pxCurrentTCB ) - { - pxTask = NULL; - } - - /* If null is passed in here then we are changing the - priority of the calling function. */ - pxTCB = prvGetTCBFromHandle( pxTask ); - - traceTASK_PRIORITY_SET( pxTask, uxNewPriority ); - - #if ( configUSE_MUTEXES == 1 ) - { - uxCurrentPriority = pxTCB->uxBasePriority; - } - #else - { - uxCurrentPriority = pxTCB->uxPriority; - } - #endif - - if( uxCurrentPriority != uxNewPriority ) - { - /* The priority change may have readied a task of higher - priority than the calling task. */ - if( uxNewPriority > uxCurrentPriority ) - { - if( pxTask != NULL ) - { - /* The priority of another task is being raised. If we - were raising the priority of the currently running task - there would be no need to switch as it must have already - been the highest priority task. */ - xYieldRequired = pdTRUE; - } - } - else if( pxTask == NULL ) - { - /* Setting our own priority down means there may now be another - task of higher priority that is ready to execute. */ - xYieldRequired = pdTRUE; - } - - - - #if ( configUSE_MUTEXES == 1 ) - { - /* Only change the priority being used if the task is not - currently using an inherited priority. */ - if( pxTCB->uxBasePriority == pxTCB->uxPriority ) - { - pxTCB->uxPriority = uxNewPriority; - } - - /* The base priority gets set whatever. */ - pxTCB->uxBasePriority = uxNewPriority; - } - #else - { - pxTCB->uxPriority = uxNewPriority; - } - #endif - - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( configMAX_PRIORITIES - ( portTickType ) uxNewPriority ) ); - - /* If the task is in the blocked or suspended list we need do - nothing more than change it's priority variable. However, if - the task is in a ready list it needs to be removed and placed - in the queue appropriate to its new priority. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxCurrentPriority ] ), &( pxTCB->xGenericListItem ) ) ) - { - /* The task is currently in its ready list - remove before adding - it to it's new ready list. As we are in a critical section we - can do this even if the scheduler is suspended. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - } - - if( xYieldRequired == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - taskEXIT_CRITICAL(); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - void vTaskSuspend( xTaskHandle pxTaskToSuspend ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - /* Ensure a yield is performed if the current task is being - suspended. */ - if( pxTaskToSuspend == pxCurrentTCB ) - { - pxTaskToSuspend = NULL; - } - - /* If null is passed in here then we are suspending ourselves. */ - pxTCB = prvGetTCBFromHandle( pxTaskToSuspend ); - - traceTASK_SUSPEND( pxTCB ); - - /* Remove task from the ready/delayed list and place in the suspended list. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Is the task waiting on an event also? */ - if( pxTCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxTCB->xEventListItem ) ); - } - - vListInsertEnd( ( xList * ) &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ); - } - taskEXIT_CRITICAL(); - - if( ( void * ) pxTaskToSuspend == NULL ) - { - if( xSchedulerRunning != pdFALSE ) - { - /* We have just suspended the current task. */ - portYIELD_WITHIN_API(); - } - else - { - /* The scheduler is not running, but the task that was pointed - to by pxCurrentTCB has just been suspended and pxCurrentTCB - must be adjusted to point to a different task. */ - if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == uxCurrentNumberOfTasks ) - { - /* No other tasks are ready, so set pxCurrentTCB back to - NULL so when the next task is created pxCurrentTCB will - be set to point to it no matter what its relative priority - is. */ - pxCurrentTCB = NULL; - } - else - { - vTaskSwitchContext(); - } - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) - { - portBASE_TYPE xReturn = pdFALSE; - const tskTCB * const pxTCB = ( tskTCB * ) xTask; - - /* It does not make sense to check if the calling task is suspended. */ - configASSERT( xTask ); - - /* Is the task we are attempting to resume actually in the - suspended list? */ - if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ) != pdFALSE ) - { - /* Has the task already been resumed from within an ISR? */ - if( listIS_CONTAINED_WITHIN( &xPendingReadyList, &( pxTCB->xEventListItem ) ) != pdTRUE ) - { - /* Is it in the suspended list because it is in the - Suspended state? It is possible to be in the suspended - list because it is blocked on a task with no timeout - specified. */ - if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) == pdTRUE ) - { - xReturn = pdTRUE; - } - } - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - void vTaskResume( xTaskHandle pxTaskToResume ) - { - tskTCB *pxTCB; - - /* It does not make sense to resume the calling task. */ - configASSERT( pxTaskToResume ); - - /* Remove the task from whichever list it is currently in, and place - it in the ready list. */ - pxTCB = ( tskTCB * ) pxTaskToResume; - - /* The parameter cannot be NULL as it is impossible to resume the - currently executing task. */ - if( ( pxTCB != NULL ) && ( pxTCB != pxCurrentTCB ) ) - { - taskENTER_CRITICAL(); - { - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) - { - traceTASK_RESUME( pxTCB ); - - /* As we are in a critical section we can access the ready - lists even if the scheduler is suspended. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - - /* We may have just resumed a higher priority task. */ - if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - /* This yield may not cause the task just resumed to run, but - will leave the lists in the correct state for the next yield. */ - portYIELD_WITHIN_API(); - } - } - } - taskEXIT_CRITICAL(); - } - } - -#endif - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) - - portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume ) - { - portBASE_TYPE xYieldRequired = pdFALSE; - tskTCB *pxTCB; - - configASSERT( pxTaskToResume ); - - pxTCB = ( tskTCB * ) pxTaskToResume; - - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) - { - traceTASK_RESUME_FROM_ISR( pxTCB ); - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - xYieldRequired = ( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ); - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - } - else - { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed, at which point a - yield will be performed if necessary. */ - vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); - } - } - - return xYieldRequired; - } - -#endif - - - - -/*----------------------------------------------------------- - * PUBLIC SCHEDULER CONTROL documented in task.h - *----------------------------------------------------------*/ - - -void vTaskStartScheduler( void ) -{ -portBASE_TYPE xReturn; - - /* Add the idle task at the lowest priority. */ - xReturn = xTaskCreate( prvIdleTask, ( signed char * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), ( xTaskHandle * ) NULL ); - - #if ( configUSE_TIMERS == 1 ) - { - if( xReturn == pdPASS ) - { - xReturn = xTimerCreateTimerTask(); - } - } - #endif - - if( xReturn == pdPASS ) - { - /* Interrupts are turned off here, to ensure a tick does not occur - before or during the call to xPortStartScheduler(). The stacks of - the created tasks contain a status word with interrupts switched on - so interrupts will automatically get re-enabled when the first task - starts to run. - - STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE - DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */ - portDISABLE_INTERRUPTS(); - - xSchedulerRunning = pdTRUE; - xTickCount = ( portTickType ) 0; - - /* If configGENERATE_RUN_TIME_STATS is defined then the following - macro must be defined to configure the timer/counter used to generate - the run time counter time base. */ - portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(); - - /* Setting up the timer tick is hardware specific and thus in the - portable interface. */ - if( xPortStartScheduler() ) - { - /* Should not reach here as if the scheduler is running the - function will not return. */ - } - else - { - /* Should only reach here if a task calls xTaskEndScheduler(). */ - } - } - - /* This line will only be reached if the kernel could not be started. */ - configASSERT( xReturn ); -} -/*-----------------------------------------------------------*/ - -void vTaskEndScheduler( void ) -{ - /* Stop the scheduler interrupts and call the portable scheduler end - routine so the original ISRs can be restored if necessary. The port - layer must ensure interrupts enable bit is left in the correct state. */ - portDISABLE_INTERRUPTS(); - xSchedulerRunning = pdFALSE; - vPortEndScheduler(); -} -/*----------------------------------------------------------*/ - -void vTaskSuspendAll( void ) -{ - /* A critical section is not required as the variable is of type - portBASE_TYPE. */ - ++uxSchedulerSuspended; -} -/*----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskResumeAll( void ) -{ -register tskTCB *pxTCB; -signed portBASE_TYPE xAlreadyYielded = pdFALSE; - - /* If uxSchedulerSuspended is zero then this function does not match a - previous call to vTaskSuspendAll(). */ - configASSERT( uxSchedulerSuspended ); - - /* It is possible that an ISR caused a task to be removed from an event - list while the scheduler was suspended. If this was the case then the - removed task will have been added to the xPendingReadyList. Once the - scheduler has been resumed it is safe to move all the pending ready - tasks from this list into their appropriate ready list. */ - taskENTER_CRITICAL(); - { - --uxSchedulerSuspended; - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - if( uxCurrentNumberOfTasks > ( unsigned portBASE_TYPE ) 0 ) - { - portBASE_TYPE xYieldRequired = pdFALSE; - - /* Move any readied tasks from the pending list into the - appropriate ready list. */ - while( listLIST_IS_EMPTY( ( xList * ) &xPendingReadyList ) == pdFALSE ) - { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xPendingReadyList ) ); - vListRemove( &( pxTCB->xEventListItem ) ); - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - - /* If we have moved a task that has a priority higher than - the current task then we should yield. */ - if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - xYieldRequired = pdTRUE; - } - } - - /* If any ticks occurred while the scheduler was suspended then - they should be processed now. This ensures the tick count does not - slip, and that any delayed tasks are resumed at the correct time. */ - if( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 ) - { - while( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 ) - { - vTaskIncrementTick(); - --uxMissedTicks; - } - - /* As we have processed some ticks it is appropriate to yield - to ensure the highest priority task that is ready to run is - the task actually running. */ - #if configUSE_PREEMPTION == 1 - { - xYieldRequired = pdTRUE; - } - #endif - } - - if( ( xYieldRequired == pdTRUE ) || ( xMissedYield == pdTRUE ) ) - { - xAlreadyYielded = pdTRUE; - xMissedYield = pdFALSE; - portYIELD_WITHIN_API(); - } - } - } - } - taskEXIT_CRITICAL(); - - return xAlreadyYielded; -} - - - - - - -/*----------------------------------------------------------- - * PUBLIC TASK UTILITIES documented in task.h - *----------------------------------------------------------*/ - - - -portTickType xTaskGetTickCount( void ) -{ -portTickType xTicks; - - /* Critical section required if running on a 16 bit processor. */ - taskENTER_CRITICAL(); - { - xTicks = xTickCount; - } - taskEXIT_CRITICAL(); - - return xTicks; -} -/*-----------------------------------------------------------*/ - -portTickType xTaskGetTickCountFromISR( void ) -{ -portTickType xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - xReturn = xTickCount; - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) -{ - /* A critical section is not required because the variables are of type - portBASE_TYPE. */ - return uxCurrentNumberOfTasks; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - void vTaskList( signed char *pcWriteBuffer ) - { - unsigned portBASE_TYPE uxQueue; - - /* This is a VERY costly function that should be used for debug only. - It leaves interrupts disabled for a LONG time. */ - - vTaskSuspendAll(); - { - /* Run through all the lists that could potentially contain a TCB and - report the task name, state and stack high water mark. */ - - *pcWriteBuffer = ( signed char ) 0x00; - strcat( ( char * ) pcWriteBuffer, ( const char * ) "\r\n" ); - - uxQueue = uxTopUsedPriority + ( unsigned portBASE_TYPE ) 1U; - - do - { - uxQueue--; - - if( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxQueue ] ) ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &( pxReadyTasksLists[ uxQueue ] ), tskREADY_CHAR ); - } - }while( uxQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxDelayedTaskList, tskBLOCKED_CHAR ); - } - - if( listLIST_IS_EMPTY( pxOverflowDelayedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxOverflowDelayedTaskList, tskBLOCKED_CHAR ); - } - - #if( INCLUDE_vTaskDelete == 1 ) - { - if( listLIST_IS_EMPTY( &xTasksWaitingTermination ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xTasksWaitingTermination, tskDELETED_CHAR ); - } - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xSuspendedTaskList, tskSUSPENDED_CHAR ); - } - } - #endif - } - xTaskResumeAll(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) - { - unsigned portBASE_TYPE uxQueue; - unsigned long ulTotalRunTime; - - /* This is a VERY costly function that should be used for debug only. - It leaves interrupts disabled for a LONG time. */ - - vTaskSuspendAll(); - { - #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE - portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime ); - #else - ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); - #endif - - /* Divide ulTotalRunTime by 100 to make the percentage caluclations - simpler in the prvGenerateRunTimeStatsForTasksInList() function. */ - ulTotalRunTime /= 100UL; - - /* Run through all the lists that could potentially contain a TCB, - generating a table of run timer percentages in the provided - buffer. */ - - *pcWriteBuffer = ( signed char ) 0x00; - strcat( ( char * ) pcWriteBuffer, ( const char * ) "\r\n" ); - - uxQueue = uxTopUsedPriority + ( unsigned portBASE_TYPE ) 1U; - - do - { - uxQueue--; - - if( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxQueue ] ) ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &( pxReadyTasksLists[ uxQueue ] ), ulTotalRunTime ); - } - }while( uxQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) pxDelayedTaskList, ulTotalRunTime ); - } - - if( listLIST_IS_EMPTY( pxOverflowDelayedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) pxOverflowDelayedTaskList, ulTotalRunTime ); - } - - #if ( INCLUDE_vTaskDelete == 1 ) - { - if( listLIST_IS_EMPTY( &xTasksWaitingTermination ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &xTasksWaitingTermination, ulTotalRunTime ); - } - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &xSuspendedTaskList, ulTotalRunTime ); - } - } - #endif - } - xTaskResumeAll(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - void vTaskStartTrace( signed char * pcBuffer, unsigned long ulBufferSize ) - { - configASSERT( pcBuffer ); - configASSERT( ulBufferSize ); - - taskENTER_CRITICAL(); - { - pcTraceBuffer = ( signed char * )pcBuffer; - pcTraceBufferStart = pcBuffer; - pcTraceBufferEnd = pcBuffer + ( ulBufferSize - tskSIZE_OF_EACH_TRACE_LINE ); - xTracing = pdTRUE; - } - taskEXIT_CRITICAL(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - unsigned long ulTaskEndTrace( void ) - { - unsigned long ulBufferLength; - - taskENTER_CRITICAL(); - xTracing = pdFALSE; - taskEXIT_CRITICAL(); - - ulBufferLength = ( unsigned long ) ( pcTraceBuffer - pcTraceBufferStart ); - - return ulBufferLength; - } - -#endif - - - -/*----------------------------------------------------------- - * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES - * documented in task.h - *----------------------------------------------------------*/ - - -void vTaskIncrementTick( void ) -{ -tskTCB * pxTCB; - - /* Called by the portable layer each time a tick interrupt occurs. - Increments the tick then checks to see if the new tick value will cause any - tasks to be unblocked. */ - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - ++xTickCount; - if( xTickCount == ( portTickType ) 0 ) - { - xList *pxTemp; - - /* Tick count has overflowed so we need to swap the delay lists. - If there are any items in pxDelayedTaskList here then there is - an error! */ - configASSERT( ( listLIST_IS_EMPTY( pxDelayedTaskList ) ) ); - - pxTemp = pxDelayedTaskList; - pxDelayedTaskList = pxOverflowDelayedTaskList; - pxOverflowDelayedTaskList = pxTemp; - xNumOfOverflows++; - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) - { - /* The new current delayed list is empty. Set - xNextTaskUnblockTime to the maximum possible value so it is - extremely unlikely that the - if( xTickCount >= xNextTaskUnblockTime ) test will pass until - there is an item in the delayed list. */ - xNextTaskUnblockTime = portMAX_DELAY; - } - else - { - /* The new current delayed list is not empty, get the value of - the item at the head of the delayed list. This is the time at - which the task at the head of the delayed list should be removed - from the Blocked state. */ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); - xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); - } - } - - /* See if this tick has made a timeout expire. */ - prvCheckDelayedTasks(); - } - else - { - ++uxMissedTicks; - - /* The tick hook gets called at regular intervals, even if the - scheduler is locked. */ - #if ( configUSE_TICK_HOOK == 1 ) - { - vApplicationTickHook(); - } - #endif - } - - #if ( configUSE_TICK_HOOK == 1 ) - { - /* Guard against the tick hook being called when the missed tick - count is being unwound (when the scheduler is being unlocked. */ - if( uxMissedTicks == ( unsigned portBASE_TYPE ) 0U ) - { - vApplicationTickHook(); - } - } - #endif - - traceTASK_INCREMENT_TICK( xTickCount ); -} -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_vTaskCleanUpResources == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) - - void vTaskCleanUpResources( void ) - { - unsigned short usQueue; - volatile tskTCB *pxTCB; - - usQueue = ( unsigned short ) uxTopUsedPriority + ( unsigned short ) 1; - - /* Remove any TCB's from the ready queues. */ - do - { - usQueue--; - - while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ usQueue ] ) ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &( pxReadyTasksLists[ usQueue ] ) ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - }while( usQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - /* Remove any TCB's from the delayed queue. */ - while( listLIST_IS_EMPTY( &xDelayedTaskList1 ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList1 ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - - /* Remove any TCB's from the overflow delayed queue. */ - while( listLIST_IS_EMPTY( &xDelayedTaskList2 ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList2 ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - - while( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xSuspendedTaskList ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) - { - tskTCB *xTCB; - - /* If xTask is NULL then we are setting our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - /* Save the hook function in the TCB. A critical section is required as - the value can be accessed from an interrupt. */ - taskENTER_CRITICAL(); - xTCB->pxTaskTag = pxHookFunction; - taskEXIT_CRITICAL(); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) - { - tskTCB *xTCB; - pdTASK_HOOK_CODE xReturn; - - /* If xTask is NULL then we are setting our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - /* Save the hook function in the TCB. A critical section is required as - the value can be accessed from an interrupt. */ - taskENTER_CRITICAL(); - xReturn = xTCB->pxTaskTag; - taskEXIT_CRITICAL(); - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) - { - tskTCB *xTCB; - portBASE_TYPE xReturn; - - /* If xTask is NULL then we are calling our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - if( xTCB->pxTaskTag != NULL ) - { - xReturn = xTCB->pxTaskTag( pvParameter ); - } - else - { - xReturn = pdFAIL; - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -void vTaskSwitchContext( void ) -{ - if( uxSchedulerSuspended != ( unsigned portBASE_TYPE ) pdFALSE ) - { - /* The scheduler is currently suspended - do not allow a context - switch. */ - xMissedYield = pdTRUE; - } - else - { - traceTASK_SWITCHED_OUT(); - //id_out=pxCurrentTCB->task_id; - - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - unsigned long ulTempCounter; - - #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE - portALT_GET_RUN_TIME_COUNTER_VALUE( ulTempCounter ); - #else - ulTempCounter = portGET_RUN_TIME_COUNTER_VALUE(); - #endif - - /* Add the amount of time the task has been running to the accumulated - time so far. The time the task started running was stored in - ulTaskSwitchedInTime. Note that there is no overflow protection here - so count values are only valid until the timer overflows. Generally - this will be about 1 hour assuming a 1uS timer increment. */ - pxCurrentTCB->ulRunTimeCounter += ( ulTempCounter - ulTaskSwitchedInTime ); - ulTaskSwitchedInTime = ulTempCounter; - } - #endif - - taskFIRST_CHECK_FOR_STACK_OVERFLOW(); - taskSECOND_CHECK_FOR_STACK_OVERFLOW(); - - /* Find the highest priority queue that contains ready tasks. */ - while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopReadyPriority ] ) ) ) - { - configASSERT( uxTopReadyPriority ); - --uxTopReadyPriority; - } - - /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the tasks of the - same priority get an equal share of the processor time. */ - listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) ); - - traceTASK_SWITCHED_IN(); - /*if (previous_id_in!=pxCurrentTCB->task_id) - { - if (previous_id_in!=0xFF) - write_trace_vcd(previous_id_in, 0); - write_trace_vcd(pxCurrentTCB->task_id, 1); - previous_id_in=pxCurrentTCB->task_id; - }*/ - vWriteTraceToBuffer(); - } -} -/*-----------------------------------------------------------*/ - -void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait ) -{ -portTickType xTimeToWake; - - configASSERT( pxEventList ); - - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. */ - - /* Place the event list item of the TCB in the appropriate event list. - This is placed in the list in priority order so the highest priority task - is the first to be woken by the event. */ - vListInsert( ( xList * ) pxEventList, ( xListItem * ) &( pxCurrentTCB->xEventListItem ) ); - - /* We must remove ourselves from the ready list before adding ourselves - to the blocked list as the same list item is used for both lists. We have - exclusive access to the ready lists as the scheduler is locked. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( xTicksToWait == portMAX_DELAY ) - { - /* Add ourselves to the suspended task list instead of a delayed task - list to ensure we are not woken by a timing event. We will block - indefinitely. */ - vListInsertEnd( ( xList * ) &xSuspendedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - } - #else - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - #endif -} -/*-----------------------------------------------------------*/ - -#if configUSE_TIMERS == 1 - - void vTaskPlaceOnEventListRestricted( const xList * const pxEventList, portTickType xTicksToWait ) - { - portTickType xTimeToWake; - - configASSERT( pxEventList ); - - /* This function should not be called by application code hence the - 'Restricted' in its name. It is not part of the public API. It is - designed for use by kernel code, and has special calling requirements - - it should be called from a critical section. */ - - - /* Place the event list item of the TCB in the appropriate event list. - In this case it is assume that this is the only task that is going to - be waiting on this event list, so the faster vListInsertEnd() function - can be used in place of vListInsert. */ - vListInsertEnd( ( xList * ) pxEventList, ( xListItem * ) &( pxCurrentTCB->xEventListItem ) ); - - /* We must remove this task from the ready list before adding it to the - blocked list as the same list item is used for both lists. This - function is called form a critical section. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - -#endif /* configUSE_TIMERS */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) -{ -tskTCB *pxUnblockedTCB; -portBASE_TYPE xReturn; - - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. It can also be called from within an ISR. */ - - /* The event list is sorted in priority order, so we can remove the - first in the list, remove the TCB from the delayed list, and add - it to the ready list. - - If an event is for a queue that is locked then this function will never - get called - the lock count on the queue will get modified instead. This - means we can always expect exclusive access to the event list here. - - This function assumes that a check has already been made to ensure that - pxEventList is not empty. */ - pxUnblockedTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); - configASSERT( pxUnblockedTCB ); - vListRemove( &( pxUnblockedTCB->xEventListItem ) ); - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - vListRemove( &( pxUnblockedTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxUnblockedTCB ); - } - else - { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed. */ - vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); - } - - if( pxUnblockedTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - /* Return true if the task removed from the event list has - a higher priority than the calling task. This allows - the calling task to know if it should force a context - switch now. */ - xReturn = pdTRUE; - } - else - { - xReturn = pdFALSE; - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) -{ - configASSERT( pxTimeOut ); - pxTimeOut->xOverflowCount = xNumOfOverflows; - pxTimeOut->xTimeOnEntering = xTickCount; -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) -{ -portBASE_TYPE xReturn; - - configASSERT( pxTimeOut ); - configASSERT( pxTicksToWait ); - - taskENTER_CRITICAL(); - { - #if ( INCLUDE_vTaskSuspend == 1 ) - /* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is - the maximum block time then the task should block indefinitely, and - therefore never time out. */ - if( *pxTicksToWait == portMAX_DELAY ) - { - xReturn = pdFALSE; - } - else /* We are not blocking indefinitely, perform the checks below. */ - #endif - - if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( ( portTickType ) xTickCount >= ( portTickType ) pxTimeOut->xTimeOnEntering ) ) - { - /* The tick count is greater than the time at which vTaskSetTimeout() - was called, but has also overflowed since vTaskSetTimeOut() was called. - It must have wrapped all the way around and gone past us again. This - passed since vTaskSetTimeout() was called. */ - xReturn = pdTRUE; - } - else if( ( ( portTickType ) ( ( portTickType ) xTickCount - ( portTickType ) pxTimeOut->xTimeOnEntering ) ) < ( portTickType ) *pxTicksToWait ) - { - /* Not a genuine timeout. Adjust parameters for time remaining. */ - *pxTicksToWait -= ( ( portTickType ) xTickCount - ( portTickType ) pxTimeOut->xTimeOnEntering ); - vTaskSetTimeOutState( pxTimeOut ); - xReturn = pdFALSE; - } - else - { - xReturn = pdTRUE; - } - } - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vTaskMissedYield( void ) -{ - xMissedYield = pdTRUE; -} - -/* - * ----------------------------------------------------------- - * The Idle task. - * ---------------------------------------------------------- - * - * The portTASK_FUNCTION() macro is used to allow port/compiler specific - * language extensions. The equivalent prototype for this function is: - * - * void prvIdleTask( void *pvParameters ); - * - */ -static portTASK_FUNCTION( prvIdleTask, pvParameters ) -{ - /* Stop warnings. */ - ( void ) pvParameters; - - for( ;; ) - { - /* See if any tasks have been deleted. */ - prvCheckTasksWaitingTermination(); - - #if ( configUSE_PREEMPTION == 0 ) - { - /* If we are not using preemption we keep forcing a task switch to - see if any other task has become available. If we are using - preemption we don't need to do this as any task becoming available - will automatically get the processor anyway. */ - taskYIELD(); - } - #endif - - #if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) - { - /* When using preemption tasks of equal priority will be - timesliced. If a task that is sharing the idle priority is ready - to run then the idle task should yield before the end of the - timeslice. - - A critical region is not required here as we are just reading from - the list, and an occasional incorrect value will not matter. If - the ready list at the idle priority contains more than one task - then a task other than the idle task is ready to execute. */ - if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( unsigned portBASE_TYPE ) 1 ) - { - taskYIELD(); - } - } - #endif - - #if ( configUSE_IDLE_HOOK == 1 ) - { - extern void vApplicationIdleHook( void ); - - /* Call the user defined function from within the idle task. This - allows the application designer to add background functionality - without the overhead of a separate task. - NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - CALL A FUNCTION THAT MIGHT BLOCK. */ - vApplicationIdleHook(); - } - #endif - } -} /*lint !e715 pvParameters is not accessed but all task functions require the same prototype. */ - - - - - - - -/*----------------------------------------------------------- - * File private functions documented at the top of the file. - *----------------------------------------------------------*/ - - - -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) -{ - /* Store the function name in the TCB. */ - #if configMAX_TASK_NAME_LEN > 1 - { - /* Don't bring strncpy into the build unnecessarily. */ - strncpy( ( char * ) pxTCB->pcTaskName, ( const char * ) pcName, ( unsigned short ) configMAX_TASK_NAME_LEN ); - } - #endif - pxTCB->pcTaskName[ ( unsigned short ) configMAX_TASK_NAME_LEN - ( unsigned short ) 1 ] = ( signed char ) '\0'; - - /* This is used as an array index so must ensure it's not too large. First - remove the privilege bit if one is present. */ - if( uxPriority >= configMAX_PRIORITIES ) - { - uxPriority = configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; - } - - pxTCB->uxPriority = uxPriority; - #if ( configUSE_MUTEXES == 1 ) - { - pxTCB->uxBasePriority = uxPriority; - } - #endif - - vListInitialiseItem( &( pxTCB->xGenericListItem ) ); - vListInitialiseItem( &( pxTCB->xEventListItem ) ); - - /* Set the pxTCB as a link back from the xListItem. This is so we can get - back to the containing TCB from a generic item in a list. */ - listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB ); - - /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority ); - listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB ); - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - { - pxTCB->uxCriticalNesting = ( unsigned portBASE_TYPE ) 0; - } - #endif - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - { - pxTCB->pxTaskTag = NULL; - } - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - pxTCB->ulRunTimeCounter = 0UL; - } - #endif - - #if ( portUSING_MPU_WRAPPERS == 1 ) - { - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, pxTCB->pxStack, usStackDepth ); - } - #else - { - ( void ) xRegions; - ( void ) usStackDepth; - } - #endif -} -/*-----------------------------------------------------------*/ - -#if ( portUSING_MPU_WRAPPERS == 1 ) - - void vTaskAllocateMPURegions( xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions ) - { - tskTCB *pxTCB; - - if( xTaskToModify == pxCurrentTCB ) - { - xTaskToModify = NULL; - } - - /* If null is passed in here then we are deleting ourselves. */ - pxTCB = prvGetTCBFromHandle( xTaskToModify ); - - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, NULL, 0 ); - } - /*-----------------------------------------------------------*/ -#endif - -static void prvInitialiseTaskLists( void ) -{ -unsigned portBASE_TYPE uxPriority; - - for( uxPriority = ( unsigned portBASE_TYPE ) 0U; uxPriority < configMAX_PRIORITIES; uxPriority++ ) - { - vListInitialise( ( xList * ) &( pxReadyTasksLists[ uxPriority ] ) ); - } - - vListInitialise( ( xList * ) &xDelayedTaskList1 ); - vListInitialise( ( xList * ) &xDelayedTaskList2 ); - vListInitialise( ( xList * ) &xPendingReadyList ); - - #if ( INCLUDE_vTaskDelete == 1 ) - { - vListInitialise( ( xList * ) &xTasksWaitingTermination ); - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - vListInitialise( ( xList * ) &xSuspendedTaskList ); - } - #endif - - /* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList - using list2. */ - pxDelayedTaskList = &xDelayedTaskList1; - pxOverflowDelayedTaskList = &xDelayedTaskList2; -} -/*-----------------------------------------------------------*/ - -static void prvCheckTasksWaitingTermination( void ) -{ - #if ( INCLUDE_vTaskDelete == 1 ) - { - portBASE_TYPE xListIsEmpty; - - /* ucTasksDeleted is used to prevent vTaskSuspendAll() being called - too often in the idle task. */ - if( uxTasksDeleted > ( unsigned portBASE_TYPE ) 0 ) - { - vTaskSuspendAll(); - xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination ); - xTaskResumeAll(); - - if( xListIsEmpty == pdFALSE ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xTasksWaitingTermination ) ); - vListRemove( &( pxTCB->xGenericListItem ) ); - --uxCurrentNumberOfTasks; - --uxTasksDeleted; - } - taskEXIT_CRITICAL(); - - prvDeleteTCB( pxTCB ); - } - } - } - #endif -} -/*-----------------------------------------------------------*/ - -static void prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) -{ - /* The list item will be inserted in wake time order. */ - listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake ); - - if( xTimeToWake < xTickCount ) - { - /* Wake time has overflowed. Place this item in the overflow list. */ - vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* The wake time has not overflowed, so we can use the current block list. */ - vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - /* If the task entering the blocked state was placed at the head of the - list of blocked tasks then xNextTaskUnblockTime needs to be updated - too. */ - if( xTimeToWake < xNextTaskUnblockTime ) - { - xNextTaskUnblockTime = xTimeToWake; - } - } -} -/*-----------------------------------------------------------*/ - -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) -{ -tskTCB *pxNewTCB; - - /* Allocate space for the TCB. Where the memory comes from depends on - the implementation of the port malloc function. */ - pxNewTCB = ( tskTCB * ) pvPortMalloc( sizeof( tskTCB ) ); - - if( pxNewTCB != NULL ) - { - /* Allocate space for the stack used by the task being created. - The base of the stack memory stored in the TCB so the task can - be deleted later if required. */ - pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMallocAligned( ( ( ( size_t )usStackDepth ) * sizeof( portSTACK_TYPE ) ), puxStackBuffer ); - - if( pxNewTCB->pxStack == NULL ) - { - /* Could not allocate the stack. Delete the allocated TCB. */ - vPortFree( pxNewTCB ); - pxNewTCB = NULL; - } - else - { - /* Just to help debugging. */ - memset( pxNewTCB->pxStack, tskSTACK_FILL_BYTE, usStackDepth * sizeof( portSTACK_TYPE ) ); - } - } - - return pxNewTCB; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - static void prvListTaskWithinSingleList( const signed char *pcWriteBuffer, xList *pxList, signed char cStatus ) - { - volatile tskTCB *pxNextTCB, *pxFirstTCB; - unsigned short usStackRemaining; - - /* Write the details of all the TCB's in pxList into the buffer. */ - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); - do - { - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); - #if ( portSTACK_GROWTH > 0 ) - { - usStackRemaining = usTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxEndOfStack ); - } - #else - { - usStackRemaining = usTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxStack ); - } - #endif - - sprintf( pcStatusString, ( char * ) "%s\t\t%c\t%u\t%u\t%u\r\n", pxNextTCB->pcTaskName, cStatus, ( unsigned int ) pxNextTCB->uxPriority, usStackRemaining, ( unsigned int ) pxNextTCB->uxTCBNumber ); - strcat( ( char * ) pcWriteBuffer, ( char * ) pcStatusString ); - - } while( pxNextTCB != pxFirstTCB ); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime ) - { - volatile tskTCB *pxNextTCB, *pxFirstTCB; - unsigned long ulStatsAsPercentage; - - /* Write the run time stats of all the TCB's in pxList into the buffer. */ - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); - do - { - /* Get next TCB in from the list. */ - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); - - /* Divide by zero check. */ - if( ulTotalRunTime > 0UL ) - { - /* Has the task run at all? */ - if( pxNextTCB->ulRunTimeCounter == 0 ) - { - /* The task has used no CPU time at all. */ - sprintf( pcStatsString, ( char * ) "%s\t\t0\t\t0%%\r\n", pxNextTCB->pcTaskName ); - } - else - { - /* What percentage of the total run time has the task used? - This will always be rounded down to the nearest integer. - ulTotalRunTime has already been divided by 100. */ - ulStatsAsPercentage = pxNextTCB->ulRunTimeCounter / ulTotalRunTime; - - if( ulStatsAsPercentage > 0UL ) - { - #ifdef portLU_PRINTF_SPECIFIER_REQUIRED - { - sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter, ulStatsAsPercentage ); - } - #else - { - /* sizeof( int ) == sizeof( long ) so a smaller - printf() library can be used. */ - sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t%u%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); - } - #endif - } - else - { - /* If the percentage is zero here then the task has - consumed less than 1% of the total run time. */ - #ifdef portLU_PRINTF_SPECIFIER_REQUIRED - { - sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter ); - } - #else - { - /* sizeof( int ) == sizeof( long ) so a smaller - printf() library can be used. */ - sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t<1%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter ); - } - #endif - } - } - - strcat( ( char * ) pcWriteBuffer, ( char * ) pcStatsString ); - } - - } while( pxNextTCB != pxFirstTCB ); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - - static unsigned short usTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) - { - register unsigned short usCount = 0; - - while( *pucStackByte == tskSTACK_FILL_BYTE ) - { - pucStackByte -= portSTACK_GROWTH; - usCount++; - } - - usCount /= sizeof( portSTACK_TYPE ); - - return usCount; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) - - unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) - { - tskTCB *pxTCB; - unsigned char *pcEndOfStack; - unsigned portBASE_TYPE uxReturn; - - pxTCB = prvGetTCBFromHandle( xTask ); - - #if portSTACK_GROWTH < 0 - { - pcEndOfStack = ( unsigned char * ) pxTCB->pxStack; - } - #else - { - pcEndOfStack = ( unsigned char * ) pxTCB->pxEndOfStack; - } - #endif - - uxReturn = ( unsigned portBASE_TYPE ) usTaskCheckFreeStackSpace( pcEndOfStack ); - - return uxReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) ) - - static void prvDeleteTCB( tskTCB *pxTCB ) - { - /* Free up the memory allocated by the scheduler for the task. It is up to - the task to free any memory allocated at the application level. */ - vPortFreeAligned( pxTCB->pxStack ); - vPortFree( pxTCB ); - } - -#endif - - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) - - xTaskHandle xTaskGetCurrentTaskHandle( void ) - { - xTaskHandle xReturn; - - /* A critical section is not required as this is not called from - an interrupt and the current TCB will always be the same for any - individual execution thread. */ - xReturn = pxCurrentTCB; - - return xReturn; - } - -#endif - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) - - portBASE_TYPE xTaskGetSchedulerState( void ) - { - portBASE_TYPE xReturn; - - if( xSchedulerRunning == pdFALSE ) - { - xReturn = taskSCHEDULER_NOT_STARTED; - } - else - { - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - xReturn = taskSCHEDULER_RUNNING; - } - else - { - xReturn = taskSCHEDULER_SUSPENDED; - } - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder ) - { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; - - configASSERT( pxMutexHolder ); - - if( pxTCB->uxPriority < pxCurrentTCB->uxPriority ) - { - /* Adjust the mutex holder state to account for its new priority. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxCurrentTCB->uxPriority ); - - /* If the task being modified is in the ready state it will need to - be moved in to a new list. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) ) - { - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Inherit the priority before being moved into the new list. */ - pxTCB->uxPriority = pxCurrentTCB->uxPriority; - prvAddTaskToReadyQueue( pxTCB ); - } - else - { - /* Just inherit the priority. */ - pxTCB->uxPriority = pxCurrentTCB->uxPriority; - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder ) - { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; - - if( pxMutexHolder != NULL ) - { - if( pxTCB->uxPriority != pxTCB->uxBasePriority ) - { - /* We must be the running task to be able to give the mutex back. - Remove ourselves from the ready list we currently appear in. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Disinherit the priority before adding ourselves into the new - ready list. */ - pxTCB->uxPriority = pxTCB->uxBasePriority; - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxTCB->uxPriority ); - prvAddTaskToReadyQueue( pxTCB ); - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( portCRITICAL_NESTING_IN_TCB == 1 ) - - void vTaskEnterCritical( void ) - { - portDISABLE_INTERRUPTS(); - - if( xSchedulerRunning != pdFALSE ) - { - ( pxCurrentTCB->uxCriticalNesting )++; - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( portCRITICAL_NESTING_IN_TCB == 1 ) - -void vTaskExitCritical( void ) -{ - if( xSchedulerRunning != pdFALSE ) - { - if( pxCurrentTCB->uxCriticalNesting > 0 ) - { - ( pxCurrentTCB->uxCriticalNesting )--; - - if( pxCurrentTCB->uxCriticalNesting == 0 ) - { - portENABLE_INTERRUPTS(); - } - } - } -} - -#endif -/*-----------------------------------------------------------*/ - - - - diff --git a/FreeRTOSWithTraces/FreeRTOS_src/timers.c b/FreeRTOSWithTraces/FreeRTOS_src/timers.c deleted file mode 100644 index 7e5ef22..0000000 --- a/FreeRTOSWithTraces/FreeRTOS_src/timers.c +++ /dev/null @@ -1,649 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "timers.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* This entire source file will be skipped if the application is not configured -to include software timer functionality. This #if is closed at the very bottom -of this file. If you want to include software timer functionality then ensure -configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -#if ( configUSE_TIMERS == 1 ) - -/* Misc definitions. */ -#define tmrNO_DELAY ( portTickType ) 0U - -/* The definition of the timers themselves. */ -typedef struct tmrTimerControl -{ - const signed char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ - xListItem xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ - portTickType xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ - unsigned portBASE_TYPE uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one shot timer. */ - void *pvTimerID; /*<< An ID to identify the timer. This allows the timer to be identified when the same callback is used for multiple timers. */ - tmrTIMER_CALLBACK pxCallbackFunction; /*<< The function that will be called when the timer expires. */ -} xTIMER; - -/* The definition of messages that can be sent and received on the timer -queue. */ -typedef struct tmrTimerQueueMessage -{ - portBASE_TYPE xMessageID; /*<< The command being sent to the timer service task. */ - portTickType xMessageValue; /*<< An optional value used by a subset of commands, for example, when changing the period of a timer. */ - xTIMER * pxTimer; /*<< The timer to which the command will be applied. */ -} xTIMER_MESSAGE; - - -/* The list in which active timers are stored. Timers are referenced in expire -time order, with the nearest expiry time at the front of the list. Only the -timer service task is allowed to access xActiveTimerList. */ -PRIVILEGED_DATA static xList xActiveTimerList1; -PRIVILEGED_DATA static xList xActiveTimerList2; -PRIVILEGED_DATA static xList *pxCurrentTimerList; -PRIVILEGED_DATA static xList *pxOverflowTimerList; - -/* A queue that is used to send commands to the timer service task. */ -PRIVILEGED_DATA static xQueueHandle xTimerQueue = NULL; - -/*-----------------------------------------------------------*/ - -/* - * Initialise the infrastructure used by the timer service task if it has not - * been initialised already. - */ -static void prvCheckForValidListAndQueue( void ) PRIVILEGED_FUNCTION; - -/* - * The timer service task (daemon). Timer functionality is controlled by this - * task. Other tasks communicate with the timer service task using the - * xTimerQueue queue. - */ -static void prvTimerTask( void *pvParameters ) PRIVILEGED_FUNCTION; - -/* - * Called by the timer service task to interpret and process a command it - * received on the timer queue. - */ -static void prvProcessReceivedCommands( void ) PRIVILEGED_FUNCTION; - -/* - * Insert the timer into either xActiveTimerList1, or xActiveTimerList2, - * depending on if the expire time causes a timer counter overflow. - */ -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) PRIVILEGED_FUNCTION; - -/* - * An active timer has reached its expire time. Reload the timer if it is an - * auto reload timer, then call its callback. - */ -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) PRIVILEGED_FUNCTION; - -/* - * The tick count has overflowed. Switch the timer lists after ensuring the - * current timer list does not still reference some timers. - */ -static void prvSwitchTimerLists( portTickType xLastTime ) PRIVILEGED_FUNCTION; - -/* - * Obtain the current tick count, setting *pxTimerListsWereSwitched to pdTRUE - * if a tick count overflow occurred since prvSampleTimeNow() was last called. - */ -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) PRIVILEGED_FUNCTION; - -/* - * If the timer list contains any active timers then return the expire time of - * the timer that will expire first and set *pxListWasEmpty to false. If the - * timer list does not contain any timers then return 0 and set *pxListWasEmpty - * to pdTRUE. - */ -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) PRIVILEGED_FUNCTION; - -/* - * If a timer has expired, process it. Otherwise, block the timer service task - * until either a timer does expire or a command is received. - */ -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) PRIVILEGED_FUNCTION; - -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerCreateTimerTask( void ) -{ -portBASE_TYPE xReturn = pdFAIL; - - /* This function is called when the scheduler is started if - configUSE_TIMERS is set to 1. Check that the infrastructure used by the - timer service task has been created/initialised. If timers have already - been created then the initialisation will already have been performed. */ - prvCheckForValidListAndQueue(); - - if( xTimerQueue != NULL ) - { - xReturn = xTaskCreate( prvTimerTask, ( const signed char * ) "Tmr Svc", ( unsigned short ) configTIMER_TASK_STACK_DEPTH, NULL, ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY, NULL); - } - - configASSERT( xReturn ); - return xReturn; -} -/*-----------------------------------------------------------*/ - -xTimerHandle xTimerCreate( const signed char *pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void *pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) -{ -xTIMER *pxNewTimer; - - /* Allocate the timer structure. */ - if( xTimerPeriodInTicks == ( portTickType ) 0U ) - { - pxNewTimer = NULL; - configASSERT( ( xTimerPeriodInTicks > 0 ) ); - } - else - { - pxNewTimer = ( xTIMER * ) pvPortMalloc( sizeof( xTIMER ) ); - if( pxNewTimer != NULL ) - { - /* Ensure the infrastructure used by the timer service task has been - created/initialised. */ - prvCheckForValidListAndQueue(); - - /* Initialise the timer structure members using the function parameters. */ - pxNewTimer->pcTimerName = pcTimerName; - pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; - pxNewTimer->uxAutoReload = uxAutoReload; - pxNewTimer->pvTimerID = pvTimerID; - pxNewTimer->pxCallbackFunction = pxCallbackFunction; - vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); - - traceTIMER_CREATE( pxNewTimer ); - } - else - { - traceTIMER_CREATE_FAILED(); - } - } - - return ( xTimerHandle ) pxNewTimer; -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) -{ -portBASE_TYPE xReturn = pdFAIL; -xTIMER_MESSAGE xMessage; - - /* Send a message to the timer service task to perform a particular action - on a particular timer definition. */ - if( xTimerQueue != NULL ) - { - /* Send a command to the timer service task to start the xTimer timer. */ - xMessage.xMessageID = xCommandID; - xMessage.xMessageValue = xOptionalValue; - xMessage.pxTimer = ( xTIMER * ) xTimer; - - if( pxHigherPriorityTaskWoken == NULL ) - { - if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) - { - xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xBlockTime ); - } - else - { - xReturn = xQueueSendToBack( xTimerQueue, &xMessage, tmrNO_DELAY ); - } - } - else - { - xReturn = xQueueSendToBackFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); - } - - traceTIMER_COMMAND_SEND( xTimer, xCommandID, xOptionalValue, xReturn ); - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) -{ -xTIMER *pxTimer; -portBASE_TYPE xResult; - - /* Remove the timer from the list of active timers. A check has already - been performed to ensure the list is not empty. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); - vListRemove( &( pxTimer->xTimerListItem ) ); - traceTIMER_EXPIRED( pxTimer ); - - /* If the timer is an auto reload timer then calculate the next - expiry time and re-insert the timer in the list of active timers. */ - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - /* This is the only time a timer is inserted into a list using - a time relative to anything other than the current time. It - will therefore be inserted into the correct list relative to - the time this task thinks it is now, even if a command to - switch lists due to a tick count overflow is already waiting in - the timer queue. */ - if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) == pdTRUE ) - { - /* The timer expired before it was added to the active timer - list. Reload it now. */ - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - - /* Call the timer callback. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); -} -/*-----------------------------------------------------------*/ - -static void prvTimerTask( void *pvParameters ) -{ -portTickType xNextExpireTime; -portBASE_TYPE xListWasEmpty; - - /* Just to avoid compiler warnings. */ - ( void ) pvParameters; - - for( ;; ) - { - /* Query the timers list to see if it contains any timers, and if so, - obtain the time at which the next timer will expire. */ - xNextExpireTime = prvGetNextExpireTime( &xListWasEmpty ); - - /* If a timer has expired, process it. Otherwise, block this task - until either a timer does expire, or a command is received. */ - prvProcessTimerOrBlockTask( xNextExpireTime, xListWasEmpty ); - - /* Empty the command queue. */ - prvProcessReceivedCommands(); - } -} -/*-----------------------------------------------------------*/ - -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) -{ -portTickType xTimeNow; -portBASE_TYPE xTimerListsWereSwitched; - - vTaskSuspendAll(); - { - /* Obtain the time now to make an assessment as to whether the timer - has expired or not. If obtaining the time causes the lists to switch - then don't process this timer as any timers that remained in the list - when the lists were switched will have been processed within the - prvSampelTimeNow() function. */ - xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); - if( xTimerListsWereSwitched == pdFALSE ) - { - /* The tick count has not overflowed, has the timer expired? */ - if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) ) - { - xTaskResumeAll(); - prvProcessExpiredTimer( xNextExpireTime, xTimeNow ); - } - else - { - /* The tick count has not overflowed, and the next expire - time has not been reached yet. This task should therefore - block to wait for the next expire time or a command to be - received - whichever comes first. The following line cannot - be reached unless xNextExpireTime > xTimeNow, except in the - case when the current timer list is empty. */ - vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ) ); - - if( xTaskResumeAll() == pdFALSE ) - { - /* Yield to wait for either a command to arrive, or the block time - to expire. If a command arrived between the critical section being - exited and this yield then the yield will not cause the task - to block. */ - portYIELD_WITHIN_API(); - } - } - } - else - { - xTaskResumeAll(); - } - } -} -/*-----------------------------------------------------------*/ - -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) -{ -portTickType xNextExpireTime; - - /* Timers are listed in expiry time order, with the head of the list - referencing the task that will expire first. Obtain the time at which - the timer with the nearest expiry time will expire. If there are no - active timers then just set the next expire time to 0. That will cause - this task to unblock when the tick count overflows, at which point the - timer lists will be switched and the next expiry time can be - re-assessed. */ - *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); - if( *pxListWasEmpty == pdFALSE ) - { - xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); - } - else - { - /* Ensure the task unblocks when the tick count rolls over. */ - xNextExpireTime = ( portTickType ) 0U; - } - - return xNextExpireTime; -} -/*-----------------------------------------------------------*/ - -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) -{ -portTickType xTimeNow; -static portTickType xLastTime = ( portTickType ) 0U; - - xTimeNow = xTaskGetTickCount(); - - if( xTimeNow < xLastTime ) - { - prvSwitchTimerLists( xLastTime ); - *pxTimerListsWereSwitched = pdTRUE; - } - else - { - *pxTimerListsWereSwitched = pdFALSE; - } - - xLastTime = xTimeNow; - - return xTimeNow; -} -/*-----------------------------------------------------------*/ - -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) -{ -portBASE_TYPE xProcessTimerNow = pdFALSE; - - listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime ); - listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); - - if( xNextExpiryTime <= xTimeNow ) - { - /* Has the expiry time elapsed between the command to start/reset a - timer was issued, and the time the command was processed? */ - if( ( ( portTickType ) ( xTimeNow - xCommandTime ) ) >= pxTimer->xTimerPeriodInTicks ) - { - /* The time between a command being issued and the command being - processed actually exceeds the timers period. */ - xProcessTimerNow = pdTRUE; - } - else - { - vListInsert( pxOverflowTimerList, &( pxTimer->xTimerListItem ) ); - } - } - else - { - if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) ) - { - /* If, since the command was issued, the tick count has overflowed - but the expiry time has not, then the timer must have already passed - its expiry time and should be processed immediately. */ - xProcessTimerNow = pdTRUE; - } - else - { - vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); - } - } - - return xProcessTimerNow; -} -/*-----------------------------------------------------------*/ - -static void prvProcessReceivedCommands( void ) -{ -xTIMER_MESSAGE xMessage; -xTIMER *pxTimer; -portBASE_TYPE xTimerListsWereSwitched, xResult; -portTickType xTimeNow; - - /* In this case the xTimerListsWereSwitched parameter is not used, but it - must be present in the function call. */ - xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); - - while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) - { - pxTimer = xMessage.pxTimer; - - /* Is the timer already in a list of active timers? When the command - is trmCOMMAND_PROCESS_TIMER_OVERFLOW, the timer will be NULL as the - command is to the task rather than to an individual timer. */ - if( pxTimer != NULL ) - { - if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) - { - /* The timer is in a list, remove it. */ - vListRemove( &( pxTimer->xTimerListItem ) ); - } - } - - traceTIMER_COMMAND_RECEIVED( pxTimer, xMessage.xMessageID, xMessage.xMessageValue ); - - switch( xMessage.xMessageID ) - { - case tmrCOMMAND_START : - /* Start or restart a timer. */ - if( prvInsertTimerInActiveList( pxTimer, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.xMessageValue ) == pdTRUE ) - { - /* The timer expired before it was added to the active timer - list. Process it now. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); - - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - break; - - case tmrCOMMAND_STOP : - /* The timer has already been removed from the active list. - There is nothing to do here. */ - break; - - case tmrCOMMAND_CHANGE_PERIOD : - pxTimer->xTimerPeriodInTicks = xMessage.xMessageValue; - configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); - prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); - break; - - case tmrCOMMAND_DELETE : - /* The timer has already been removed from the active list, - just free up the memory. */ - vPortFree( pxTimer ); - break; - - default : - /* Don't expect to get here. */ - break; - } - } -} -/*-----------------------------------------------------------*/ - -static void prvSwitchTimerLists( portTickType xLastTime ) -{ -portTickType xNextExpireTime, xReloadTime; -xList *pxTemp; -xTIMER *pxTimer; -portBASE_TYPE xResult; - - /* Remove compiler warnings if configASSERT() is not defined. */ - ( void ) xLastTime; - - /* The tick count has overflowed. The timer lists must be switched. - If there are any timers still referenced from the current timer list - then they must have expired and should be processed before the lists - are switched. */ - while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE ) - { - xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); - - /* Remove the timer from the list. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); - vListRemove( &( pxTimer->xTimerListItem ) ); - - /* Execute its callback, then send a command to restart the timer if - it is an auto-reload timer. It cannot be restarted here as the lists - have not yet been switched. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); - - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - /* Calculate the reload value, and if the reload value results in - the timer going into the same timer list then it has already expired - and the timer should be re-inserted into the current list so it is - processed again within this loop. Otherwise a command should be sent - to restart the timer to ensure it is only inserted into a list after - the lists have been swapped. */ - xReloadTime = ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ); - if( xReloadTime > xNextExpireTime ) - { - listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xReloadTime ); - listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); - vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); - } - else - { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - } - - pxTemp = pxCurrentTimerList; - pxCurrentTimerList = pxOverflowTimerList; - pxOverflowTimerList = pxTemp; -} -/*-----------------------------------------------------------*/ - -static void prvCheckForValidListAndQueue( void ) -{ - /* Check that the list from which active timers are referenced, and the - queue used to communicate with the timer service, have been - initialised. */ - taskENTER_CRITICAL(); - { - if( xTimerQueue == NULL ) - { - vListInitialise( &xActiveTimerList1 ); - vListInitialise( &xActiveTimerList2 ); - pxCurrentTimerList = &xActiveTimerList1; - pxOverflowTimerList = &xActiveTimerList2; - xTimerQueue = xQueueCreate( ( unsigned portBASE_TYPE ) configTIMER_QUEUE_LENGTH, sizeof( xTIMER_MESSAGE ) ); - } - } - taskEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) -{ -portBASE_TYPE xTimerIsInActiveList; -xTIMER *pxTimer = ( xTIMER * ) xTimer; - - /* Is the timer in the list of active timers? */ - taskENTER_CRITICAL(); - { - /* Checking to see if it is in the NULL list in effect checks to see if - it is referenced from either the current or the overflow timer lists in - one go, but the logic has to be reversed, hence the '!'. */ - xTimerIsInActiveList = !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); - } - taskEXIT_CRITICAL(); - - return xTimerIsInActiveList; -} -/*-----------------------------------------------------------*/ - -void *pvTimerGetTimerID( xTimerHandle xTimer ) -{ -xTIMER *pxTimer = ( xTIMER * ) xTimer; - - return pxTimer->pvTimerID; -} -/*-----------------------------------------------------------*/ - -/* This entire source file will be skipped if the application is not configured -to include software timer functionality. If you want to include software timer -functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -#endif /* configUSE_TIMERS == 1 */ diff --git a/FreeRTOSWithTraces/src/FreeRTOSConfig.h b/FreeRTOSWithTraces/src/FreeRTOSConfig.h deleted file mode 100644 index ef80ce4..0000000 --- a/FreeRTOSWithTraces/src/FreeRTOSConfig.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -#include <stdint.h> - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - *----------------------------------------------------------*/ - -#define configUSE_PREEMPTION 1 -#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 ) -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( ( unsigned long ) 100000000 ) -#define configTICK_RATE_HZ ( ( portTickType ) 100 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 20 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 12 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_MUTEXES 1 -#define configHEPIA_TRACING 1 -#define configUSE_IDLE_HOOK 0 /*configHEPIA_TRACING*/ - -#if configHEPIA_TRACING -// TRACE WITHOUT TRACING TASK: -// condition task_id!=uxTaskNumber-1 can be useful to avoid tracing the tracing task itself! -/*#define traceTASK_SWITCHED_IN() {if (previous_id_in!=pxCurrentTCB->task_id) {\ - if (previous_id_in!=0xFF && previous_id_in!=uxTaskNumber-1) \ - write_trace(previous_id_in, 0); \ - if (pxCurrentTCB->task_id!=uxTaskNumber-1) \ - write_trace(pxCurrentTCB->task_id, 1); \ - previous_id_in=pxCurrentTCB->task_id;}}*/ - -// TRACE INCLUDING TRACING TASK: -#define traceTASK_SWITCHED_IN() {if (previous_id_in!=pxCurrentTCB->task_id) {\ - if (previous_id_in!=0xFF) \ - write_trace(previous_id_in, 0); \ - write_trace(pxCurrentTCB->task_id, 1); \ - previous_id_in=pxCurrentTCB->task_id;}} -#endif - - -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_ALTERNATIVE_API 0 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 10 -#define configGENERATE_RUN_TIME_STATS 0 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ - -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 1 - -/*----------------------------------------------------------- - * Ethernet configuration. - *-----------------------------------------------------------*/ - -/* MAC address configuration. */ -#define configMAC_ADDR0 0x00 -#define configMAC_ADDR1 0x12 -#define configMAC_ADDR2 0x13 -#define configMAC_ADDR3 0x10 -#define configMAC_ADDR4 0x15 -#define configMAC_ADDR5 0x11 - -/* IP address configuration. */ -#define configIP_ADDR0 192 -#define configIP_ADDR1 168 -#define configIP_ADDR2 0 -#define configIP_ADDR3 201 - -/* Netmask configuration. */ -#define configNET_MASK0 255 -#define configNET_MASK1 255 -#define configNET_MASK2 255 -#define configNET_MASK3 0 - -/* Use the system definition, if there is one */ -#ifdef __NVIC_PRIO_BITS - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 5 /* 32 priority levels */ -#endif - -/* The lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) ) -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) ) - -/* Priorities passed to NVIC_SetPriority() do not require shifting as the -function does the shifting itself. Note these priorities need to be equal to -or lower than configMAX_SYSCALL_INTERRUPT_PRIORITY - therefore the numeric -value needs to be equal to or greater than 5 (on the Cortex-M3 the lower the -numeric value the higher the interrupt priority). */ -#define configEMAC_INTERRUPT_PRIORITY 5 -#define configUSB_INTERRUPT_PRIORITY 6 - - - -/*----------------------------------------------------------- - * Macros required to setup the timer for the run time stats. - *-----------------------------------------------------------*/ -extern void vConfigureTimerForRunTimeStats( void ); - -#define portGET_RUN_TIME_COUNTER_VALUE() LPC_TIM0->TC - - -#endif /* FREERTOS_CONFIG_H */ diff --git a/FreeRTOSWithTraces/src/cr_startup_lpc17.c b/FreeRTOSWithTraces/src/cr_startup_lpc17.c deleted file mode 100644 index 18fe10b..0000000 --- a/FreeRTOSWithTraces/src/cr_startup_lpc17.c +++ /dev/null @@ -1,349 +0,0 @@ -//***************************************************************************** -// +--+ -// | ++----+ -// +-++ | -// | | -// +-+--+ | -// | +--+--+ -// +----+ Copyright (c) 2009-10 Code Red Technologies Ltd. -// -// Microcontroller Startup code for use with Red Suite -// -// Software License Agreement -// -// The software is owned by Code Red Technologies and/or its suppliers, and is -// protected under applicable copyright laws. All rights are reserved. Any -// use in violation of the foregoing restrictions may subject the user to criminal -// sanctions under applicable laws, as well as to civil liability for the breach -// of the terms and conditions of this license. -// -// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED -// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. -// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT -// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH -// CODE RED TECHNOLOGIES LTD. -// -//***************************************************************************** -#if defined (__cplusplus) -#ifdef __REDLIB__ -#error Redlib does not support C++ -#else -//***************************************************************************** -// -// The entry point for the C++ library startup -// -//***************************************************************************** -extern "C" { - extern void __libc_init_array(void); -} -#endif -#endif - -#define WEAK __attribute__ ((weak)) -#define ALIAS(f) __attribute__ ((weak, alias (#f))) - -// Code Red - if CMSIS is being used, then SystemInit() routine -// will be called by startup code rather than in application's main() -#if defined (__USE_CMSIS) -#include "system_LPC17xx.h" -#endif - -//***************************************************************************** -#if defined (__cplusplus) -extern "C" { -#endif - -//***************************************************************************** -// -// Forward declaration of the default handlers. These are aliased. -// When the application defines a handler (with the same name), this will -// automatically take precedence over these weak definitions -// -//***************************************************************************** - void ResetISR(void); -WEAK void NMI_Handler(void); -WEAK void HardFault_Handler(void); -WEAK void MemManage_Handler(void); -WEAK void BusFault_Handler(void); -WEAK void UsageFault_Handler(void); -WEAK void SVCall_Handler(void); -WEAK void DebugMon_Handler(void); -WEAK void PendSV_Handler(void); -WEAK void SysTick_Handler(void); -WEAK void IntDefaultHandler(void); - -//***************************************************************************** -// -// Forward declaration of the specific IRQ handlers. These are aliased -// to the IntDefaultHandler, which is a 'forever' loop. When the application -// defines a handler (with the same name), this will automatically take -// precedence over these weak definitions -// -//***************************************************************************** -void WDT_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER0_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER1_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER2_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER3_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART0_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART1_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART2_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART3_IRQHandler(void) ALIAS(IntDefaultHandler); -void PWM1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C0_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C2_IRQHandler(void) ALIAS(IntDefaultHandler); -void SPI_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP0_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP1_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL0_IRQHandler(void) ALIAS(IntDefaultHandler); -void RTC_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT0_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT1_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT2_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT3_IRQHandler(void) ALIAS(IntDefaultHandler); -void ADC_IRQHandler(void) ALIAS(IntDefaultHandler); -void BOD_IRQHandler(void) ALIAS(IntDefaultHandler); -void USB_IRQHandler(void) ALIAS(IntDefaultHandler); -void CAN_IRQHandler(void) ALIAS(IntDefaultHandler); -void DMA_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2S_IRQHandler(void) ALIAS(IntDefaultHandler); -void ENET_IRQHandler(void) ALIAS(IntDefaultHandler); -void RIT_IRQHandler(void) ALIAS(IntDefaultHandler); -void MCPWM_IRQHandler(void) ALIAS(IntDefaultHandler); -void QEI_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL1_IRQHandler(void) ALIAS(IntDefaultHandler); -void USBActivity_IRQHandler(void) ALIAS(IntDefaultHandler); -void CANActivity_IRQHandler(void) ALIAS(IntDefaultHandler); - -extern void xPortSysTickHandler(void); -extern void xPortPendSVHandler(void); -extern void vPortSVCHandler( void ); -extern void vEMAC_ISR( void ); - -//***************************************************************************** -// -// The entry point for the application. -// __main() is the entry point for Redlib based applications -// main() is the entry point for Newlib based applications -// -//***************************************************************************** -#if defined (__REDLIB__) -extern void __main(void); -#endif -extern int main(void); -//***************************************************************************** -// -// External declaration for the pointer to the stack top from the Linker Script -// -//***************************************************************************** -extern void _vStackTop(void); - -//***************************************************************************** -#if defined (__cplusplus) -} // extern "C" -#endif -//***************************************************************************** -// -// The vector table. -// This relies on the linker script to place at correct location in memory. -// -//***************************************************************************** -extern void (* const g_pfnVectors[])(void); -__attribute__ ((section(".isr_vector"))) -void (* const g_pfnVectors[])(void) = -{ - // Core Level - CM3 - (void *)&_vStackTop, // The initial stack pointer - ResetISR, // The reset handler - NMI_Handler, // The NMI handler - HardFault_Handler, // The hard fault handler - MemManage_Handler, // The MPU fault handler - BusFault_Handler, // The bus fault handler - UsageFault_Handler, // The usage fault handler - 0, // Reserved - 0, // Reserved - 0, // Reserved - 0, // Reserved - vPortSVCHandler, // SVCall handler - DebugMon_Handler, // Debug monitor handler - 0, // Reserved - xPortPendSVHandler, // The PendSV handler - xPortSysTickHandler, // The SysTick handler - - // Chip Level - LPC17 - WDT_IRQHandler, // 16, 0x40 - WDT - TIMER0_IRQHandler, // 17, 0x44 - TIMER0 - TIMER1_IRQHandler, // 18, 0x48 - TIMER1 - TIMER2_IRQHandler, // 19, 0x4c - TIMER2 - TIMER3_IRQHandler, // 20, 0x50 - TIMER3 - UART0_IRQHandler, // 21, 0x54 - UART0 - UART1_IRQHandler, // 22, 0x58 - UART1 - UART2_IRQHandler, // 23, 0x5c - UART2 - UART3_IRQHandler, // 24, 0x60 - UART3 - PWM1_IRQHandler, // 25, 0x64 - PWM1 - I2C0_IRQHandler, // 26, 0x68 - I2C0 - I2C1_IRQHandler, // 27, 0x6c - I2C1 - I2C2_IRQHandler, // 28, 0x70 - I2C2 - SPI_IRQHandler, // 29, 0x74 - SPI - SSP0_IRQHandler, // 30, 0x78 - SSP0 - SSP1_IRQHandler, // 31, 0x7c - SSP1 - PLL0_IRQHandler, // 32, 0x80 - PLL0 (Main PLL) - RTC_IRQHandler, // 33, 0x84 - RTC - EINT0_IRQHandler, // 34, 0x88 - EINT0 - EINT1_IRQHandler, // 35, 0x8c - EINT1 - EINT2_IRQHandler, // 36, 0x90 - EINT2 - EINT3_IRQHandler, // 37, 0x94 - EINT3 - ADC_IRQHandler, // 38, 0x98 - ADC - BOD_IRQHandler, // 39, 0x9c - BOD - USB_IRQHandler, // 40, 0xA0 - USB - CAN_IRQHandler, // 41, 0xa4 - CAN - DMA_IRQHandler, // 42, 0xa8 - GP DMA - I2S_IRQHandler, // 43, 0xac - I2S - ENET_IRQHandler, // Ethernet. - RIT_IRQHandler, // 45, 0xb4 - RITINT - MCPWM_IRQHandler, // 46, 0xb8 - Motor Control PWM - QEI_IRQHandler, // 47, 0xbc - Quadrature Encoder - PLL1_IRQHandler, // 48, 0xc0 - PLL1 (USB PLL) - USBActivity_IRQHandler, // 49, 0xc4 - USB Activity interrupt to wakeup - CANActivity_IRQHandler, // 50, 0xc8 - CAN Activity interrupt to wakeup -}; - -//***************************************************************************** -// -// The following are constructs created by the linker, indicating where the -// the "data" and "bss" segments reside in memory. The initializers for the -// for the "data" segment resides immediately following the "text" segment. -// -//***************************************************************************** -extern unsigned long _etext; -extern unsigned long _data; -extern unsigned long _edata; -extern unsigned long _bss; -extern unsigned long _ebss; - -//***************************************************************************** -// Reset entry point for your code. -// Sets up a simple runtime environment and initializes the C/C++ -// library. -// -//***************************************************************************** -void -ResetISR(void) { - unsigned long *pulSrc, *pulDest; - - // - // Copy the data segment initializers from flash to SRAM. - // - pulSrc = &_etext; - for(pulDest = &_data; pulDest < &_edata; ) - { - *pulDest++ = *pulSrc++; - } - - // - // Zero fill the bss segment. This is done with inline assembly since this - // will clear the value of pulDest if it is not kept in a register. - // - __asm(" ldr r0, =_bss\n" - " ldr r1, =_ebss\n" - " mov r2, #0\n" - " .thumb_func\n" - "zero_loop:\n" - " cmp r0, r1\n" - " it lt\n" - " strlt r2, [r0], #4\n" - " blt zero_loop"); - -#ifdef __USE_CMSIS - SystemInit(); -#endif - -#if defined (__cplusplus) - // - // Call C++ library initialisation - // - __libc_init_array(); -#endif - -#if defined (__REDLIB__) - // Call the Redlib library, which in turn calls main() - __main() ; -#else - main(); -#endif - - // - // main() shouldn't return, but if it does, we'll just enter an infinite loop - // - while (1) { - ; - } -} - -//***************************************************************************** -// -// This is the code that gets called when the processor receives a NMI. This -// simply enters an infinite loop, preserving the system state for examination -// by a debugger. -// -//***************************************************************************** -void NMI_Handler(void) -{ - while(1) - { - } -} - -void HardFault_Handler(void) -{ - while(1) - { - } -} - -void MemManage_Handler(void) -{ - while(1) - { - } -} - -void BusFault_Handler(void) -{ - while(1) - { - } -} - -void UsageFault_Handler(void) -{ - while(1) - { - } -} - - -void DebugMon_Handler(void) -{ - while(1) - { - } -} - -//***************************************************************************** -// -// Processor ends up here if an unexpected interrupt occurs or a handler -// is not present in the application code. -// -//***************************************************************************** -void IntDefaultHandler(void) -{ - // - // Go into an infinite loop. - // - while(1) - { - } -} diff --git a/FreeRTOSWithTraces/src/main.c b/FreeRTOSWithTraces/src/main.c deleted file mode 100644 index 5b5767f..0000000 --- a/FreeRTOSWithTraces/src/main.c +++ /dev/null @@ -1,25 +0,0 @@ -/** -* Created on : 19.01.2014 - * Author : VP - * Description : exercice 1 of serie 4 - */ - - -#ifdef __USE_CMSIS -#include "LPC17xx.h" -#endif -#include <stdio.h> -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" -#include "uart.h" - -void write_trace(uint8_t sig_idx, short val) {} - -int main(void) -{ - uart0_init_ref(115200, NULL, NULL); - - return 1; -} diff --git a/FreeRTOSWithTraces/src/uart.h b/FreeRTOSWithTraces/src/uart.h deleted file mode 100644 index ccd49ea..0000000 --- a/FreeRTOSWithTraces/src/uart.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Description: UART 0 driver - * Created on : 30 sept. 2013 - * Author : VP - */ -#ifndef __UART_H -#define __UART_H - -#define IER_RX 0x1 // interrupt enable flags -#define IER_TX 0x2 - -#define IIR_TX 0x2 // interrupt identification flags -#define IIR_RX 0x4 -#define IS_TX_EMPTY (1<<5) // status flags on LSR register -#define IS_RX_NOT_EMPTY (1<<2) - -/* Callback function prototype for UART interrupt */ -typedef void (*uart_callback_t)(int int_status); - -/* Description: UART 0 initialisation. Callbacks can be used, but at most once for TX and once for RX data. - * Note that only the first call of uart0_init_ref is setting up the baudrate, which can't be - * modified during further calls. - * - * Parameters: baudrate [bit/s] - * tx_callback: pointer on callback function called by interrupt at the end of TX character - * transmission. Note that calling uart0_init_ref() does NOT activate IER_THRE to avoid - * continuous calls of tx_callback when the transmission buffer is empty. It is up to - * the user to enable it when necessary (LPC_UART0->IER |= IER_THRE) and to disable it at - * the end of the transmission (LPC_UART0->IER &= ~IER_THRE). Once IER configured to enable - * the interrupt, the first interrupt can be provoked either by sending a character on the UART - * or by forcing the VIC to rise it with NVIC_SetPendingIRQ(UART0_IRQn). Note that if this last - * method is used, the int_flags of the callback parameter are not significant. In this case, - * LPC_UART0->LSR must be read to know if a transmission has been done. - * rx_callback: pointer on callback function called by interrupt on RX character - * receiving. if NULL is given, no interrupt is configured. The callback - * will be called each time a character is received. - */ -void uart0_init_ref(uint32_t baudrate, uart_callback_t tx_callback, uart_callback_t rx_callback); - -/* Description: UART 0 initialisation - * - * Parameters: data: pointer on data to be sent - * length: data length [bytes] - */ -void uart0_send_ref(uint8_t *data, uint32_t length); - -/* Description: stop UART0 interrupts. The switch off is only managed by the VIC. */ -void uart0_stop_interrupt(); - -#endif diff --git a/TP1_labyrinth_etu/.cproject b/TP1_labyrinth_etu/.cproject deleted file mode 100644 index 8744ca5..0000000 --- a/TP1_labyrinth_etu/.cproject +++ /dev/null @@ -1,238 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> - <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="com.crt.advproject.config.exe.debug.215110136"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.215110136" moduleId="org.eclipse.cdt.core.settings" name="Debug"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Debug build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.debug.215110136" name="Debug" parent="com.crt.advproject.config.exe.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; " preannouncebuildStep="" prebuildStep=""> - <folderInfo id="com.crt.advproject.config.exe.debug.215110136." name="/" resourcePath=""> - <toolChain errorParsers="" id="com.crt.advproject.toolchain.exe.debug.1804927929" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.debug"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.debug.1527502542" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/TP2}/Debug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="com.crt.advproject.builder.exe.debug.490842416" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/> - <tool id="com.crt.advproject.cpp.exe.debug.330627341" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug"> - <option id="com.crt.advproject.cpp.hdrlib.1542235693" name="Library headers" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> - <option id="gnu.cpp.compiler.option.preprocessor.def.1033251062" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/> - <option id="com.crt.advproject.cpp.fpu.1390250600" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="true"/> - </tool> - <tool command="arm-none-eabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.crt.advproject.gcc.exe.debug.1250049820" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug"> - <option id="com.crt.advproject.gcc.arch.780875128" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="true" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.891265985" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option id="com.crt.advproject.gcc.hdrlib.1590293672" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" useByScannerDiscovery="false" value="com.crt.advproject.gcc.hdrlib.codered" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1935059032" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__REDLIB__"/> - <listOptionValue builtIn="false" value="__USE_CMSIS=CMSISv2p00_LPC17xx"/> - <listOptionValue builtIn="false" value="DEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="PACK_STRUCT_END=__attribute\(\(packed\)\)"/> - <listOptionValue builtIn="false" value="GCC_ARMCM3"/> - </option> - <option id="gnu.c.compiler.option.misc.other.903224402" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.221342748" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" useByScannerDiscovery="true"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.2063520027" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> - <listOptionValue builtIn="false" value="../src"/> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/inc}""/> - <listOptionValue builtIn="false" value="../FreeRTOS_include"/> - <listOptionValue builtIn="false" value="../FreeRTOS_portable"/> - </option> - <option id="com.crt.advproject.gcc.fpu.451212913" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="true"/> - <inputType id="com.crt.advproject.compiler.input.1300873006" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool command="arm-none-eabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.gas.exe.debug.80806858" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug"> - <option id="com.crt.advproject.gas.arch.1931039645" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.315086202" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.621293431" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -DDEBUG -D__CODE_RED -D__REDLIB__" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.1714928458" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.codered" valueType="enumerated"/> - <option id="com.crt.advproject.gas.specs.649457621" name="Specs" superClass="com.crt.advproject.gas.specs" value="com.crt.advproject.gas.specs.codered" valueType="enumerated"/> - <option id="com.crt.advproject.gas.fpu.950250050" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.321505136" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.196020520" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.debug.1287150940" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug"> - <option id="com.crt.advproject.link.cpp.hdrlib.840329032" name="Library" superClass="com.crt.advproject.link.cpp.hdrlib"/> - <option id="com.crt.advproject.link.cpp.fpu.1531155306" name="Floating point" superClass="com.crt.advproject.link.cpp.fpu"/> - </tool> - <tool command="arm-none-eabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.crt.advproject.link.exe.debug.539946703" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"> - <option id="com.crt.advproject.link.arch.1188932394" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.880718650" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.230425977" name="Linker script" superClass="com.crt.advproject.link.script" value="TP1_labyrinth_etu_Debug.ld" valueType="string"/> - <option id="com.crt.advproject.link.manage.798320364" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.766477309" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.other.442238479" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.508433176" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.codered.semihost" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.1983727347" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.libs.622752648" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> - <listOptionValue builtIn="false" value="MyLab_lib"/> - <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> - </option> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.2103028876" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> - <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Debug}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Debug}""/> - </option> - <option id="com.crt.advproject.link.gcc.multicore.slave.1598157986" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> - <option id="com.crt.advproject.link.memory.load.image.150114658" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> - <option id="com.crt.advproject.link.memory.heapAndStack.14079040" name="Heap and Stack options" superClass="com.crt.advproject.link.memory.heapAndStack" value="&Heap:Default;Post Data;Default&Stack:Default;End;Default" valueType="string"/> - <option id="com.crt.advproject.link.memory.data.1400138320" name="Global data placement" superClass="com.crt.advproject.link.memory.data" value="" valueType="string"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.1663873252" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> - <option id="com.crt.advproject.link.fpu.987598863" name="Floating point" superClass="com.crt.advproject.link.fpu"/> - <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.1659116030" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> - <option id="com.crt.advproject.link.gcc.multicore.master.1074213353" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.615549911" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - <tool id="com.crt.advproject.tool.debug.debug.607313775" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.debug"/> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_include"/> - <entry excluding="MemMang/heap_3.c|MemMang/heap_1.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_portable"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_src"/> - <entry excluding="trace_mgt_sol.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - <cconfiguration id="com.crt.advproject.config.exe.release.888357251"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.888357251" moduleId="org.eclipse.cdt.core.settings" name="Release"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Release build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.release.888357251" name="Release" parent="com.crt.advproject.config.exe.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; "> - <folderInfo id="com.crt.advproject.config.exe.release.888357251." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.exe.release.1404220263" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release.279372661" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/> - <builder buildPath="${workspace_loc:/TP2}/Release" id="com.crt.advproject.builder.exe.release.53884433" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/> - <tool id="com.crt.advproject.cpp.exe.release.64077473" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release"/> - <tool id="com.crt.advproject.gcc.exe.release.647642122" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release"> - <option id="com.crt.advproject.gcc.arch.448155008" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="true" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.664712729" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option id="com.crt.advproject.gcc.hdrlib.1361225698" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" useByScannerDiscovery="false" value="com.crt.advproject.gcc.hdrlib.newlib" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1436089355" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__NEWLIB__"/> - <listOptionValue builtIn="false" value="NDEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="PACK_STRUCT_END=__attribute\(\(packed\)\)"/> - <listOptionValue builtIn="false" value="GCC_ARMCM3"/> - </option> - <option id="gnu.c.compiler.option.misc.other.1518566865" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.exe.release.option.optimization.level.276657637" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level" useByScannerDiscovery="true"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.362116296" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> - <listOptionValue builtIn="false" value="../src"/> - <listOptionValue builtIn="false" value="../FreeRTOS_include"/> - <listOptionValue builtIn="false" value="../FreeRTOS_portable"/> - </option> - <option id="com.crt.advproject.gcc.specs.1492295667" name="Specs" superClass="com.crt.advproject.gcc.specs" useByScannerDiscovery="false" value="com.crt.advproject.gcc.specs.newlib" valueType="enumerated"/> - <inputType id="com.crt.advproject.compiler.input.510162422" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.exe.release.204333355" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release"> - <option id="com.crt.advproject.gas.arch.80160302" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.5877606" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.2136234858" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__NEWLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.1079337911" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.newlib" valueType="enumerated"/> - <option id="com.crt.advproject.gas.specs.148349439" name="Specs" superClass="com.crt.advproject.gas.specs" value="com.crt.advproject.gas.specs.newlib" valueType="enumerated"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.97585317" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.994256559" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.release.671111905" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release"/> - <tool id="com.crt.advproject.link.exe.release.575860282" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"> - <option id="com.crt.advproject.link.arch.1354382116" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.1774848315" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.1242159919" name="Linker script" superClass="com.crt.advproject.link.script" value="TP1_labyrinth_etu_Release.ld" valueType="string"/> - <option id="com.crt.advproject.link.manage.1035341187" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.383809744" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.other.1967530262" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.652701584" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.newlib.none" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.1041574837" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <option id="com.crt.advproject.link.memory.load.image.1927945293" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> - <option id="com.crt.advproject.link.memory.heapAndStack.1630402613" name="Heap and Stack options" superClass="com.crt.advproject.link.memory.heapAndStack" value="&Heap:Default;Post Data;Default&Stack:Default;End;Default" valueType="string"/> - <option id="com.crt.advproject.link.memory.data.1044931913" name="Global data placement" superClass="com.crt.advproject.link.memory.data" value="" valueType="string"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.93930457" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> - <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.1079415734" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> - <option id="com.crt.advproject.link.gcc.multicore.slave.708619833" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1207060680" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - <tool id="com.crt.advproject.tool.debug.release.1963871936" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.release"/> - </toolChain> - </folderInfo> - <sourceEntries> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_include"/> - <entry excluding="MemMang/heap_3.c|MemMang/heap_1.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_portable"/> - <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="FreeRTOS_src"/> - <entry excluding="trace_mgt_sol.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <project id="TP2.com.crt.advproject.projecttype.exe.1564122844" name="Executable" projectType="com.crt.advproject.projecttype.exe"/> - </storageModule> - <storageModule moduleId="scannerConfiguration"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> - <storageModule moduleId="com.crt.config"> - <projectStorage><?xml version="1.0" encoding="UTF-8"?> -<TargetConfig> -<Properties property_2="LPC175x_6x_512.cfx" property_3="NXP" property_4="LPC1769" property_count="5" version="100300"/> -<infoList vendor="NXP"> -<info chip="LPC1769" flash_driver="LPC175x_6x_512.cfx" match_id="0x26113F37" name="LPC1769" package="lpc17_lqfp100.xml" stub="crt_emu_cm3_nxp"> -<chip> -<name>LPC1769</name> -<family>LPC17xx</family> -<vendor>NXP (formerly Philips)</vendor> -<reset board="None" core="Real" sys="Real"/> -<clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/> -<memory can_program="true" id="Flash" is_ro="true" type="Flash"/> -<memory id="RAM" type="RAM"/> -<memory id="Periph" is_volatile="true" type="Peripheral"/> -<memoryInstance derived_from="Flash" id="MFlash512" location="0x00000000" size="0x80000"/> -<memoryInstance derived_from="RAM" id="RamLoc32" location="0x10000000" size="0x8000"/> -<memoryInstance derived_from="RAM" id="RamAHB32" location="0x2007c000" size="0x8000"/> -<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x1000" progwithcode="TRUE" size="0x10000"/> -<prog_flash blocksz="0x8000" location="0x10000" maxprgbuff="0x1000" progwithcode="TRUE" size="0x70000"/> -</chip> -<processor> -<name gcc_name="cortex-m3">Cortex-M3</name> -<family>Cortex-M</family> -</processor> -</info> -</infoList> -</TargetConfig></projectStorage> - </storageModule> - <storageModule moduleId="refreshScope"/> - <storageModule moduleId="com.crt.advproject"/> - <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> -</cproject> \ No newline at end of file diff --git a/TP1_labyrinth_etu/.project b/TP1_labyrinth_etu/.project deleted file mode 100644 index 8be6fd9..0000000 --- a/TP1_labyrinth_etu/.project +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>G3_TP1_labyrinth_etu</name> - <comment></comment> - <projects> - <project>CMSISv2p00_LPC17xx</project> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <triggers>full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.cnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - </natures> -</projectDescription> diff --git a/TP1_labyrinth_etu/.project~ b/TP1_labyrinth_etu/.project~ deleted file mode 100644 index c29adf4..0000000 --- a/TP1_labyrinth_etu/.project~ +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>TP22</name> - <comment></comment> - <projects> - <project>CMSISv2p00_LPC17xx</project> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <triggers>full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.cnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - </natures> -</projectDescription> diff --git a/TP1_labyrinth_etu/.settings/language.settings.xml b/TP1_labyrinth_etu/.settings/language.settings.xml deleted file mode 100644 index d07aacf..0000000 --- a/TP1_labyrinth_etu/.settings/language.settings.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<project> - <configuration id="com.crt.advproject.config.exe.debug.215110136" name="Debug"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="com.crt.advproject.GCCBuildCommandParser" keep-relative-paths="false" name="MCU GCC Build Output Parser" parameter="(arm-none-eabi-gcc)|(arm-none-eabi-[gc]\+\+)|(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1421239171053619650" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> - <configuration id="com.crt.advproject.config.exe.release.888357251" name="Release"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1467668262890638690" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> -</project> \ No newline at end of file diff --git a/TP1_labyrinth_etu/.settings/org.eclipse.core.resources.prefs b/TP1_labyrinth_etu/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/TP1_labyrinth_etu/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/<project>=UTF-8 diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/heap_2.su b/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/heap_2.su deleted file mode 100644 index ac8f984..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/heap_2.su +++ /dev/null @@ -1,4 +0,0 @@ -../FreeRTOS_portable/MemMang/heap_2.c:154:7:pvPortMalloc 48 static -../FreeRTOS_portable/MemMang/heap_2.c:244:6:vPortFree 32 static -../FreeRTOS_portable/MemMang/heap_2.c:269:8:xPortGetFreeHeapSize 4 static -../FreeRTOS_portable/MemMang/heap_2.c:275:6:vPortInitialiseBlocks 4 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/subdir.mk b/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/subdir.mk deleted file mode 100644 index 91ec1df..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/MemMang/subdir.mk +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_portable/MemMang/heap_2.c - -C_DEPS += \ -./FreeRTOS_portable/MemMang/heap_2.d - -OBJS += \ -./FreeRTOS_portable/MemMang/heap_2.o - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_portable/MemMang/%.o: ../FreeRTOS_portable/MemMang/%.c FreeRTOS_portable/MemMang/subdir.mk - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -D__USE_CMSIS=CMSISv2p00_LPC17xx -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -I../src -I"/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -gdwarf-4 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fmerge-constants -fmacro-prefix-map="$(<D)/"= -mcpu=cortex-m3 -mthumb -D__REDLIB__ -fstack-usage -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - -clean: clean-FreeRTOS_portable-2f-MemMang - -clean-FreeRTOS_portable-2f-MemMang: - -$(RM) ./FreeRTOS_portable/MemMang/heap_2.d ./FreeRTOS_portable/MemMang/heap_2.o - -.PHONY: clean-FreeRTOS_portable-2f-MemMang - diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/port.su b/TP1_labyrinth_etu/Debug/FreeRTOS_portable/port.su deleted file mode 100644 index 5c18af3..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/port.su +++ /dev/null @@ -1,11 +0,0 @@ -../FreeRTOS_portable/port.c:114:17:pxPortInitialiseStack 24 static -../FreeRTOS_portable/port.c:132:6:vPortSVCHandler 0 static -../FreeRTOS_portable/port.c:151:6:vPortStartFirstTask 0 static -../FreeRTOS_portable/port.c:168:15:xPortStartScheduler 8 static -../FreeRTOS_portable/port.c:189:6:vPortEndScheduler 4 static -../FreeRTOS_portable/port.c:196:6:vPortYieldFromISR 4 static -../FreeRTOS_portable/port.c:203:6:vPortEnterCritical 4 static -../FreeRTOS_portable/port.c:210:6:vPortExitCritical 4 static -../FreeRTOS_portable/port.c:220:6:xPortPendSVHandler 0 static -../FreeRTOS_portable/port.c:255:6:xPortSysTickHandler 16 static -../FreeRTOS_portable/port.c:276:6:prvSetupTimerInterrupt 4 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/subdir.mk b/TP1_labyrinth_etu/Debug/FreeRTOS_portable/subdir.mk deleted file mode 100644 index ece6a20..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_portable/subdir.mk +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_portable/port.c - -C_DEPS += \ -./FreeRTOS_portable/port.d - -OBJS += \ -./FreeRTOS_portable/port.o - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_portable/%.o: ../FreeRTOS_portable/%.c FreeRTOS_portable/subdir.mk - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -D__USE_CMSIS=CMSISv2p00_LPC17xx -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -I../src -I"/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -gdwarf-4 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fmerge-constants -fmacro-prefix-map="$(<D)/"= -mcpu=cortex-m3 -mthumb -D__REDLIB__ -fstack-usage -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - -clean: clean-FreeRTOS_portable - -clean-FreeRTOS_portable: - -$(RM) ./FreeRTOS_portable/port.d ./FreeRTOS_portable/port.o - -.PHONY: clean-FreeRTOS_portable - diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/croutine.su b/TP1_labyrinth_etu/Debug/FreeRTOS_src/croutine.su deleted file mode 100644 index 7d8030e..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_src/croutine.su +++ /dev/null @@ -1,7 +0,0 @@ -../FreeRTOS_src/croutine.c:131:22:xCoRoutineCreate 32 static -../FreeRTOS_src/croutine.c:188:6:vCoRoutineAddToDelayedList 24 static -../FreeRTOS_src/croutine.c:226:13:prvCheckPendingReadyList 16 static -../FreeRTOS_src/croutine.c:249:13:prvCheckDelayedList 16 static -../FreeRTOS_src/croutine.c:307:6:vCoRoutineSchedule 16 static -../FreeRTOS_src/croutine.c:337:13:prvInitialiseCoRoutineLists 16 static -../FreeRTOS_src/croutine.c:357:22:xCoRoutineRemoveFromEventList 24 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/list.su b/TP1_labyrinth_etu/Debug/FreeRTOS_src/list.su deleted file mode 100644 index 0e7ffb0..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_src/list.su +++ /dev/null @@ -1,5 +0,0 @@ -../FreeRTOS_src/list.c:69:6:vListInitialise 16 static -../FreeRTOS_src/list.c:89:6:vListInitialiseItem 16 static -../FreeRTOS_src/list.c:96:6:vListInsertEnd 24 static -../FreeRTOS_src/list.c:119:6:vListInsert 24 static -../FreeRTOS_src/list.c:176:6:vListRemove 24 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/queue.su b/TP1_labyrinth_etu/Debug/FreeRTOS_src/queue.su deleted file mode 100644 index 45215ac..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_src/queue.su +++ /dev/null @@ -1,20 +0,0 @@ -../FreeRTOS_src/queue.c:252:14:xQueueCreate 32 static -../FreeRTOS_src/queue.c:354:16:xQueueGiveMutexRecursive 32 static -../FreeRTOS_src/queue.c:403:16:xQueueTakeMutexRecursive 32 static -../FreeRTOS_src/queue.c:443:15:xQueueCreateCountingSemaphore 24 static -../FreeRTOS_src/queue.c:467:22:xQueueGenericSend 40 static -../FreeRTOS_src/queue.c:792:22:xQueueGenericSendFromISR 32 static -../FreeRTOS_src/queue.c:849:22:xQueueGenericReceive 40 static -../FreeRTOS_src/queue.c:999:22:xQueueReceiveFromISR 32 static -../FreeRTOS_src/queue.c:1054:24:uxQueueMessagesWaiting 24 static -../FreeRTOS_src/queue.c:1068:24:uxQueueMessagesWaitingFromISR 24 static -../FreeRTOS_src/queue.c:1080:6:vQueueDelete 16 static -../FreeRTOS_src/queue.c:1091:13:prvCopyDataToQueue 24 static -../FreeRTOS_src/queue.c:1129:13:prvCopyDataFromQueue 16 static -../FreeRTOS_src/queue.c:1143:13:prvUnlockQueue 16 static -../FreeRTOS_src/queue.c:1207:29:prvIsQueueEmpty 24 static -../FreeRTOS_src/queue.c:1219:22:xQueueIsQueueEmptyFromISR 24 static -../FreeRTOS_src/queue.c:1230:29:prvIsQueueFull 24 static -../FreeRTOS_src/queue.c:1242:22:xQueueIsQueueFullFromISR 24 static -../FreeRTOS_src/queue.c:1467:7:vQueueAddToRegistry 24 static -../FreeRTOS_src/queue.c:1490:14:vQueueUnregisterQueue 24 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/subdir.mk b/TP1_labyrinth_etu/Debug/FreeRTOS_src/subdir.mk deleted file mode 100644 index e98513a..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_src/subdir.mk +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../FreeRTOS_src/croutine.c \ -../FreeRTOS_src/list.c \ -../FreeRTOS_src/queue.c \ -../FreeRTOS_src/tasks.c \ -../FreeRTOS_src/timers.c - -C_DEPS += \ -./FreeRTOS_src/croutine.d \ -./FreeRTOS_src/list.d \ -./FreeRTOS_src/queue.d \ -./FreeRTOS_src/tasks.d \ -./FreeRTOS_src/timers.d - -OBJS += \ -./FreeRTOS_src/croutine.o \ -./FreeRTOS_src/list.o \ -./FreeRTOS_src/queue.o \ -./FreeRTOS_src/tasks.o \ -./FreeRTOS_src/timers.o - - -# Each subdirectory must supply rules for building sources it contributes -FreeRTOS_src/%.o: ../FreeRTOS_src/%.c FreeRTOS_src/subdir.mk - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -D__USE_CMSIS=CMSISv2p00_LPC17xx -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -I../src -I"/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -gdwarf-4 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fmerge-constants -fmacro-prefix-map="$(<D)/"= -mcpu=cortex-m3 -mthumb -D__REDLIB__ -fstack-usage -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - -clean: clean-FreeRTOS_src - -clean-FreeRTOS_src: - -$(RM) ./FreeRTOS_src/croutine.d ./FreeRTOS_src/croutine.o ./FreeRTOS_src/list.d ./FreeRTOS_src/list.o ./FreeRTOS_src/queue.d ./FreeRTOS_src/queue.o ./FreeRTOS_src/tasks.d ./FreeRTOS_src/tasks.o ./FreeRTOS_src/timers.d ./FreeRTOS_src/timers.o - -.PHONY: clean-FreeRTOS_src - diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/tasks.su b/TP1_labyrinth_etu/Debug/FreeRTOS_src/tasks.su deleted file mode 100644 index b0fd678..0000000 --- a/TP1_labyrinth_etu/Debug/FreeRTOS_src/tasks.su +++ /dev/null @@ -1,33 +0,0 @@ -../FreeRTOS_src/tasks.c:439:22:xTaskGenericCreate 48 static -../FreeRTOS_src/tasks.c:608:7:vTaskDelete 24 static -../FreeRTOS_src/tasks.c:674:7:vTaskDelayUntil 32 static -../FreeRTOS_src/tasks.c:739:7:vTaskDelay 24 static -../FreeRTOS_src/tasks.c:785:25:uxTaskPriorityGet 24 static -../FreeRTOS_src/tasks.c:807:7:vTaskPrioritySet 32 static -../FreeRTOS_src/tasks.c:915:7:vTaskSuspend 24 static -../FreeRTOS_src/tasks.c:979:23:xTaskIsTaskSuspended 24 static -../FreeRTOS_src/tasks.c:1013:7:vTaskResume 24 static -../FreeRTOS_src/tasks.c:1058:16:xTaskResumeFromISR 24 static -../FreeRTOS_src/tasks.c:1099:6:vTaskStartScheduler 32 static -../FreeRTOS_src/tasks.c:1153:6:vTaskEndScheduler 8 static -../FreeRTOS_src/tasks.c:1164:6:vTaskSuspendAll 4 static -../FreeRTOS_src/tasks.c:1172:22:xTaskResumeAll 24 static -../FreeRTOS_src/tasks.c:1259:14:xTaskGetTickCount 16 static -../FreeRTOS_src/tasks.c:1274:14:xTaskGetTickCountFromISR 16 static -../FreeRTOS_src/tasks.c:1287:24:uxTaskGetNumberOfTasks 4 static -../FreeRTOS_src/tasks.c:1478:6:vTaskIncrementTick 24 static -../FreeRTOS_src/tasks.c:1693:6:vTaskSwitchContext 16 static -../FreeRTOS_src/tasks.c:1754:6:vTaskPlaceOnEventList 24 static -../FreeRTOS_src/tasks.c:1836:22:xTaskRemoveFromEventList 24 static -../FreeRTOS_src/tasks.c:1887:6:vTaskSetTimeOutState 16 static -../FreeRTOS_src/tasks.c:1895:15:xTaskCheckForTimeOut 24 static -../FreeRTOS_src/tasks.c:1941:6:vTaskMissedYield 4 static -../FreeRTOS_src/tasks.c:1957:8:prvIdleTask 16 static -../FreeRTOS_src/tasks.c:2022:13:prvInitialiseTCBVariables 24 static -../FreeRTOS_src/tasks.c:2108:13:prvInitialiseTaskLists 16 static -../FreeRTOS_src/tasks.c:2140:13:prvCheckTasksWaitingTermination 16 static -../FreeRTOS_src/tasks.c:2175:13:prvAddCurrentTaskToDelayedList 16 static -../FreeRTOS_src/tasks.c:2201:16:prvAllocateTCBAndStack 24 static -../FreeRTOS_src/tasks.c:2337:24:usTaskCheckFreeStackSpace 16 static -../FreeRTOS_src/tasks.c:2357:25:uxTaskGetStackHighWaterMark 32 static -../FreeRTOS_src/tasks.c:2385:14:prvDeleteTCB 16 static diff --git a/TP1_labyrinth_etu/Debug/FreeRTOS_src/timers.su b/TP1_labyrinth_etu/Debug/FreeRTOS_src/timers.su deleted file mode 100644 index e69de29..0000000 diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth.map b/TP1_labyrinth_etu/Debug/TP1_labyrinth.map deleted file mode 100644 index 3bb3dbb..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth.map +++ /dev/null @@ -1,2636 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - ./src/labyrinth.o (accel_init) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - ./src/labyrinth.o (rnd_32) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - ./src/labyrinth.o (ethernet_init) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) (Init_EthMAC) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - ./src/labyrinth.o (init_lcd) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (ssp_init_custom) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - ./src/trace_mgt.o (write_trace_ref) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) (uart0_init_ref) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) (init_i2c) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (SmallFont) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - ./src/cr_startup_lpc17.o (SystemInit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - ./src/cr_startup_lpc17.o (__main) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - ./FreeRTOS_src/queue.o (memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - ./FreeRTOS_src/tasks.o (memset) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (malloc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - ./src/tools.o (ceil) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (fclose) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - ./src/tools.o (floor) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (fopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (vsprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (fread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) (freopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (fseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (ftell) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) (_initio) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (__vfprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (setvbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (sqrt) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (__Ciob) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (exit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) (strlen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - ./FreeRTOS_src/tasks.o (strncpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) (__filbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__heaps) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (_sbrk) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_deferredlazyseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (_do_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (_fdopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_frexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) (__huge_val) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_ldexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) (_Cread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_Cwritebuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) (errno) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) (raise) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) (__check_heap_overflow) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) (__aeabi_idiv0) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - ./src/labyrinth.o (__aeabi_dmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - ./src/tools.o (__aeabi_fmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) (__aeabi_memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_appexit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_close) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_flen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_istty) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) (__sys_open) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_read) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_readc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_rename) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_seek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_tmpnam) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_write) - -Allocating common symbols -Common symbol size file - -_j 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) -timer_counter 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) -xQueueRegistry 0x50 ./FreeRTOS_src/queue.o -_k 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) -trace_buffer 0x800 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - -Discarded input sections - - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/cr_startup_lpc17.o - .text 0x00000000 0x0 ./src/cr_startup_lpc17.o - .data 0x00000000 0x0 ./src/cr_startup_lpc17.o - .bss 0x00000000 0x0 ./src/cr_startup_lpc17.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .group 0x00000000 0x8 ./src/debug.o - .text 0x00000000 0x0 ./src/debug.o - .data 0x00000000 0x0 ./src/debug.o - .bss 0x00000000 0x0 ./src/debug.o - .debug_info 0x00000000 0x92 ./src/debug.o - .debug_abbrev 0x00000000 0x4e ./src/debug.o - .debug_aranges - 0x00000000 0x18 ./src/debug.o - .debug_macro 0x00000000 0x122 ./src/debug.o - .debug_macro 0x00000000 0x892 ./src/debug.o - .debug_macro 0x00000000 0x10 ./src/debug.o - .debug_macro 0x00000000 0x12d ./src/debug.o - .debug_macro 0x00000000 0xa0 ./src/debug.o - .debug_macro 0x00000000 0x1c ./src/debug.o - .debug_macro 0x00000000 0x2e ./src/debug.o - .debug_macro 0x00000000 0x5b2 ./src/debug.o - .debug_macro 0x00000000 0x18 ./src/debug.o - .debug_macro 0x00000000 0x7af ./src/debug.o - .debug_macro 0x00000000 0x2c7 ./src/debug.o - .debug_macro 0x00000000 0x10 ./src/debug.o - .debug_macro 0x00000000 0x46 ./src/debug.o - .debug_macro 0x00000000 0x150 ./src/debug.o - .debug_macro 0x00000000 0xa3 ./src/debug.o - .debug_macro 0x00000000 0x12 ./src/debug.o - .debug_macro 0x00000000 0x1f ./src/debug.o - .debug_macro 0x00000000 0x177 ./src/debug.o - .debug_macro 0x00000000 0x49 ./src/debug.o - .debug_macro 0x00000000 0x57 ./src/debug.o - .debug_macro 0x00000000 0x6a ./src/debug.o - .debug_macro 0x00000000 0x62 ./src/debug.o - .debug_macro 0x00000000 0x16 ./src/debug.o - .debug_line 0x00000000 0x266 ./src/debug.o - .debug_str 0x00000000 0xa8c3 ./src/debug.o - .comment 0x00000000 0x6f ./src/debug.o - .ARM.attributes - 0x00000000 0x33 ./src/debug.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .group 0x00000000 0x8 ./src/gpio.o - .text 0x00000000 0x0 ./src/gpio.o - .data 0x00000000 0x0 ./src/gpio.o - .bss 0x00000000 0x0 ./src/gpio.o - .text.NVIC_EnableIRQ - 0x00000000 0x30 ./src/gpio.o - .text.init_gpio - 0x00000000 0xd4 ./src/gpio.o - .text.set_gpio - 0x00000000 0x3c ./src/gpio.o - .debug_macro 0x00000000 0x892 ./src/gpio.o - .debug_macro 0x00000000 0x1c ./src/gpio.o - .debug_macro 0x00000000 0x2e ./src/gpio.o - .debug_macro 0x00000000 0x10 ./src/gpio.o - .debug_macro 0x00000000 0x12d ./src/gpio.o - .debug_macro 0x00000000 0x5b2 ./src/gpio.o - .debug_macro 0x00000000 0x18 ./src/gpio.o - .debug_macro 0x00000000 0x7af ./src/gpio.o - .debug_macro 0x00000000 0x2c7 ./src/gpio.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/labyrinth.o - .text 0x00000000 0x0 ./src/labyrinth.o - .data 0x00000000 0x0 ./src/labyrinth.o - .bss 0x00000000 0x0 ./src/labyrinth.o - .debug_macro 0x00000000 0x892 ./src/labyrinth.o - .debug_macro 0x00000000 0x10 ./src/labyrinth.o - .debug_macro 0x00000000 0x12d ./src/labyrinth.o - .debug_macro 0x00000000 0xa0 ./src/labyrinth.o - .debug_macro 0x00000000 0x22 ./src/labyrinth.o - .debug_macro 0x00000000 0x46 ./src/labyrinth.o - .debug_macro 0x00000000 0xa3 ./src/labyrinth.o - .debug_macro 0x00000000 0x12 ./src/labyrinth.o - .debug_macro 0x00000000 0x1f ./src/labyrinth.o - .debug_macro 0x00000000 0x177 ./src/labyrinth.o - .debug_macro 0x00000000 0x49 ./src/labyrinth.o - .debug_macro 0x00000000 0x57 ./src/labyrinth.o - .debug_macro 0x00000000 0x6a ./src/labyrinth.o - .debug_macro 0x00000000 0x62 ./src/labyrinth.o - .debug_macro 0x00000000 0x1c ./src/labyrinth.o - .debug_macro 0x00000000 0x2e ./src/labyrinth.o - .debug_macro 0x00000000 0x5b2 ./src/labyrinth.o - .debug_macro 0x00000000 0x18 ./src/labyrinth.o - .debug_macro 0x00000000 0x7af ./src/labyrinth.o - .debug_macro 0x00000000 0x2c7 ./src/labyrinth.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .text 0x00000000 0x0 ./src/tools.o - .data 0x00000000 0x0 ./src/tools.o - .bss 0x00000000 0x0 ./src/tools.o - .debug_macro 0x00000000 0x892 ./src/tools.o - .debug_macro 0x00000000 0x10 ./src/tools.o - .debug_macro 0x00000000 0x12d ./src/tools.o - .debug_macro 0x00000000 0x5b2 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x2e ./src/tools.o - .debug_macro 0x00000000 0x18 ./src/tools.o - .debug_macro 0x00000000 0x7af ./src/tools.o - .debug_macro 0x00000000 0x2c7 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x22 ./src/tools.o - .debug_macro 0x00000000 0x28 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0xc2 ./src/tools.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/trace_mgt.o - .text 0x00000000 0x0 ./src/trace_mgt.o - .data 0x00000000 0x0 ./src/trace_mgt.o - .bss 0x00000000 0x0 ./src/trace_mgt.o - .debug_macro 0x00000000 0x892 ./src/trace_mgt.o - .debug_macro 0x00000000 0x1c ./src/trace_mgt.o - .debug_macro 0x00000000 0x2e ./src/trace_mgt.o - .debug_macro 0x00000000 0x10 ./src/trace_mgt.o - .debug_macro 0x00000000 0x12d ./src/trace_mgt.o - .debug_macro 0x00000000 0x5b2 ./src/trace_mgt.o - .debug_macro 0x00000000 0x18 ./src/trace_mgt.o - .debug_macro 0x00000000 0x7af ./src/trace_mgt.o - .debug_macro 0x00000000 0x2c7 ./src/trace_mgt.o - .debug_macro 0x00000000 0xa0 ./src/trace_mgt.o - .debug_macro 0x00000000 0x22 ./src/trace_mgt.o - .debug_macro 0x00000000 0x10 ./src/trace_mgt.o - .debug_macro 0x00000000 0x46 ./src/trace_mgt.o - .debug_macro 0x00000000 0x150 ./src/trace_mgt.o - .debug_macro 0x00000000 0xa3 ./src/trace_mgt.o - .debug_macro 0x00000000 0x12 ./src/trace_mgt.o - .debug_macro 0x00000000 0x1f ./src/trace_mgt.o - .debug_macro 0x00000000 0x177 ./src/trace_mgt.o - .debug_macro 0x00000000 0x49 ./src/trace_mgt.o - .debug_macro 0x00000000 0x57 ./src/trace_mgt.o - .debug_macro 0x00000000 0x6a ./src/trace_mgt.o - .debug_macro 0x00000000 0x62 ./src/trace_mgt.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .group 0x00000000 0x8 ./src/uart.o - .text 0x00000000 0x0 ./src/uart.o - .data 0x00000000 0x0 ./src/uart.o - .bss 0x00000000 0x0 ./src/uart.o - .text.uart0_init - 0x00000000 0xac ./src/uart.o - .text.uart0_send - 0x00000000 0x40 ./src/uart.o - .debug_info 0x00000000 0x688 ./src/uart.o - .debug_abbrev 0x00000000 0x16c ./src/uart.o - .debug_aranges - 0x00000000 0x28 ./src/uart.o - .debug_ranges 0x00000000 0x18 ./src/uart.o - .debug_macro 0x00000000 0x84 ./src/uart.o - .debug_macro 0x00000000 0x892 ./src/uart.o - .debug_macro 0x00000000 0x1c ./src/uart.o - .debug_macro 0x00000000 0x2e ./src/uart.o - .debug_macro 0x00000000 0x10 ./src/uart.o - .debug_macro 0x00000000 0x12d ./src/uart.o - .debug_macro 0x00000000 0x5b2 ./src/uart.o - .debug_macro 0x00000000 0x18 ./src/uart.o - .debug_macro 0x00000000 0x7af ./src/uart.o - .debug_macro 0x00000000 0x2c7 ./src/uart.o - .debug_macro 0x00000000 0x16 ./src/uart.o - .debug_line 0x00000000 0x1d7 ./src/uart.o - .debug_str 0x00000000 0x804d ./src/uart.o - .comment 0x00000000 0x6f ./src/uart.o - .debug_frame 0x00000000 0x60 ./src/uart.o - .ARM.attributes - 0x00000000 0x33 ./src/uart.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/croutine.o - .text 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .data 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss.pxReadyCoRoutineLists - 0x00000000 0x28 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList1 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList2 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.pxOverflowDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPendingReadyCoRoutineList - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxCurrentCoRoutine - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.uxTopCoRoutineReadyPriority - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xCoRoutineTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xLastTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPassedTicks - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .text.xCoRoutineCreate - 0x00000000 0xcc ./FreeRTOS_src/croutine.o - .text.vCoRoutineAddToDelayedList - 0x00000000 0x84 ./FreeRTOS_src/croutine.o - .text.prvCheckPendingReadyList - 0x00000000 0x80 ./FreeRTOS_src/croutine.o - .text.prvCheckDelayedList - 0x00000000 0xfc ./FreeRTOS_src/croutine.o - .text.vCoRoutineSchedule - 0x00000000 0xa0 ./FreeRTOS_src/croutine.o - .text.prvInitialiseCoRoutineLists - 0x00000000 0x6c ./FreeRTOS_src/croutine.o - .text.xCoRoutineRemoveFromEventList - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_info 0x00000000 0x47e ./FreeRTOS_src/croutine.o - .debug_abbrev 0x00000000 0x18a ./FreeRTOS_src/croutine.o - .debug_aranges - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_ranges 0x00000000 0x40 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xad ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_line 0x00000000 0x2d0 ./FreeRTOS_src/croutine.o - .debug_str 0x00000000 0x5123 ./FreeRTOS_src/croutine.o - .comment 0x00000000 0x6f ./FreeRTOS_src/croutine.o - .debug_frame 0x00000000 0x10c ./FreeRTOS_src/croutine.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/croutine.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/list.o - .text 0x00000000 0x0 ./FreeRTOS_src/list.o - .data 0x00000000 0x0 ./FreeRTOS_src/list.o - .bss 0x00000000 0x0 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/list.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/queue.o - .text 0x00000000 0x0 ./FreeRTOS_src/queue.o - .data 0x00000000 0x0 ./FreeRTOS_src/queue.o - .bss 0x00000000 0x0 ./FreeRTOS_src/queue.o - .text.xQueueCreate - 0x00000000 0xbc ./FreeRTOS_src/queue.o - .text.xQueueGiveMutexRecursive - 0x00000000 0x48 ./FreeRTOS_src/queue.o - .text.xQueueTakeMutexRecursive - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.xQueueCreateCountingSemaphore - 0x00000000 0x2c ./FreeRTOS_src/queue.o - .text.xQueueGenericSend - 0x00000000 0x108 ./FreeRTOS_src/queue.o - .text.xQueueGenericSendFromISR - 0x00000000 0x80 ./FreeRTOS_src/queue.o - .text.xQueueGenericReceive - 0x00000000 0x13c ./FreeRTOS_src/queue.o - .text.xQueueReceiveFromISR - 0x00000000 0x84 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaiting - 0x00000000 0x20 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaitingFromISR - 0x00000000 0x1c ./FreeRTOS_src/queue.o - .text.vQueueDelete - 0x00000000 0x28 ./FreeRTOS_src/queue.o - .text.prvCopyDataToQueue - 0x00000000 0x9c ./FreeRTOS_src/queue.o - .text.prvCopyDataFromQueue - 0x00000000 0x4c ./FreeRTOS_src/queue.o - .text.prvUnlockQueue - 0x00000000 0x98 ./FreeRTOS_src/queue.o - .text.prvIsQueueEmpty - 0x00000000 0x2c ./FreeRTOS_src/queue.o - .text.xQueueIsQueueEmptyFromISR - 0x00000000 0x24 ./FreeRTOS_src/queue.o - .text.prvIsQueueFull - 0x00000000 0x30 ./FreeRTOS_src/queue.o - .text.xQueueIsQueueFullFromISR - 0x00000000 0x28 ./FreeRTOS_src/queue.o - .text.vQueueAddToRegistry - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.vQueueUnregisterQueue - 0x00000000 0x44 ./FreeRTOS_src/queue.o - .debug_info 0x00000000 0x859 ./FreeRTOS_src/queue.o - .debug_abbrev 0x00000000 0x1bb ./FreeRTOS_src/queue.o - .debug_aranges - 0x00000000 0xb8 ./FreeRTOS_src/queue.o - .debug_ranges 0x00000000 0xa8 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x11e ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_line 0x00000000 0x44f ./FreeRTOS_src/queue.o - .debug_str 0x00000000 0x54e2 ./FreeRTOS_src/queue.o - .comment 0x00000000 0x6f ./FreeRTOS_src/queue.o - .debug_frame 0x00000000 0x2fc ./FreeRTOS_src/queue.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/queue.o - COMMON 0x00000000 0x50 ./FreeRTOS_src/queue.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/tasks.o - .text 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .data 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .bss 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .text.vTaskDelete - 0x00000000 0x98 ./FreeRTOS_src/tasks.o - .text.vTaskDelay - 0x00000000 0x54 ./FreeRTOS_src/tasks.o - .text.uxTaskPriorityGet - 0x00000000 0x34 ./FreeRTOS_src/tasks.o - .text.vTaskPrioritySet - 0x00000000 0xe8 ./FreeRTOS_src/tasks.o - .text.vTaskSuspend - 0x00000000 0x9c ./FreeRTOS_src/tasks.o - .text.xTaskIsTaskSuspended - 0x00000000 0x44 ./FreeRTOS_src/tasks.o - .text.vTaskResume - 0x00000000 0x90 ./FreeRTOS_src/tasks.o - .text.xTaskResumeFromISR - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .text.vTaskEndScheduler - 0x00000000 0x20 ./FreeRTOS_src/tasks.o - .text.xTaskGetTickCountFromISR - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetNumberOfTasks - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .text.vTaskPlaceOnEventList - 0x00000000 0x60 ./FreeRTOS_src/tasks.o - .text.xTaskRemoveFromEventList - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .text.vTaskSetTimeOutState - 0x00000000 0x2c ./FreeRTOS_src/tasks.o - .text.xTaskCheckForTimeOut - 0x00000000 0x88 ./FreeRTOS_src/tasks.o - .text.vTaskMissedYield - 0x00000000 0x18 ./FreeRTOS_src/tasks.o - .text.usTaskCheckFreeStackSpace - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetStackHighWaterMark - 0x00000000 0x38 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x22 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/tasks.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_src/timers.o - .text 0x00000000 0x0 ./FreeRTOS_src/timers.o - .data 0x00000000 0x0 ./FreeRTOS_src/timers.o - .bss 0x00000000 0x0 ./FreeRTOS_src/timers.o - .debug_info 0x00000000 0x61 ./FreeRTOS_src/timers.o - .debug_abbrev 0x00000000 0x29 ./FreeRTOS_src/timers.o - .debug_aranges - 0x00000000 0x18 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xb6 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x6a ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x61 ./FreeRTOS_src/timers.o - .debug_line 0x00000000 0x1b1 ./FreeRTOS_src/timers.o - .debug_str 0x00000000 0x539e ./FreeRTOS_src/timers.o - .comment 0x00000000 0x6f ./FreeRTOS_src/timers.o - .ARM.attributes - 0x00000000 0x33 ./FreeRTOS_src/timers.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .text 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .data 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .rodata.heapSTRUCT_SIZE - 0x00000000 0x2 ./FreeRTOS_portable/MemMang/heap_2.o - .text.xPortGetFreeHeapSize - 0x00000000 0x14 ./FreeRTOS_portable/MemMang/heap_2.o - .text.vPortInitialiseBlocks - 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 ./FreeRTOS_portable/port.o - .text 0x00000000 0x0 ./FreeRTOS_portable/port.o - .data 0x00000000 0x0 ./FreeRTOS_portable/port.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/port.o - .rodata.ulKernelPriority - 0x00000000 0x4 ./FreeRTOS_portable/port.o - .text.vPortEndScheduler - 0x00000000 0xc ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x892 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12d ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0xd6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .text.rec_eth 0x00000000 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .text.ethernet_power_down - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .text.CheckIfFrameReceived - 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x5c3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.read_cmd - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.setup_scroll - 0x00000000 0x68 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_scroll - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_set_fenetre_pixel - 0x00000000 0x24 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.Ecran_Croix - 0x00000000 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_lineH - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_lineV - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_line - 0x00000000 0x158 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_circle - 0x00000000 0x1ac C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_filled_circle_on_square - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_empty_rectangle - 0x00000000 0x80 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.lcd_printf - 0x00000000 0x254 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.read_bmp_file - 0x00000000 0x1d0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.display_bitmap16 - 0x00000000 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .bss.is_scroll_setup.5886 - 0x00000000 0x1 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .bss.x.5883 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .data.offset.5885 - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .data.y.5884 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0xc4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x00000000 0xc2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .text.send_traces_to_uart0 - 0x00000000 0x74 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x16 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00000000 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .text.taskYIELD - 0x00000000 0xc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .text.uart0_send_ref - 0x00000000 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x00000000 0x16 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .text.I2C_slave_read - 0x00000000 0x1c8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .text.I2C_slave_write - 0x00000000 0x168 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00000000 0x52 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .rodata.SevenSegNumFont - 0x00000000 0x7d4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text.SystemCoreClockUpdate - 0x00000000 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data.SystemCoreClock - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text.memcpy 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.calloc 0x00000000 0x50 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.realloc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text.fopen 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.fprintf 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vfprintf - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vprintf 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text.fread 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text.freopen 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text.no_fp_display - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._fprintf - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._sprintf - 0x00000000 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vfprintf - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vprintf - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsnprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text.rename 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getc 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fgetc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getchar 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fputc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putchar 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.feof 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.ferror 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.clearerr - 0x00000000 0xe c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__rand 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__srand 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.rand 0x00000000 0x3c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.srand 0x00000000 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text._exit_init - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.atexit 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abort 0x00000000 0x12 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.labs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.div 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.ldiv 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data.next 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_number_seed - 0x00000000 0xdc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_j - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_k - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._Csys_read_ - 0x00000000 0x22 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text.__filbuf - 0x00000000 0x178 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._fillb2 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text._init_alloc - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text._Cread 0x00000000 0x8c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text.raise 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_ldivmod - 0x00000000 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_uldivmod - 0x00000000 0x174 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text.__aeabi_division_idiv0 - 0x00000000 0x2 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_drsub - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dneg - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2uiz - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2lz - 0x00000000 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2ulz - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__bhs_ul2d - 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ui2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_l2d - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ul2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpgt - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdcmple - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdrcmple - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_frsub - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fneg - 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2iz - 0x00000000 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2uiz - 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2lz - 0x00000000 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2ulz - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__bhs_ul2f - 0x00000000 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_l2f - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_ul2f - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpeq - 0x00000000 0x1e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfcmple - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfrcmple - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memcpy - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memmove - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memclr - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memset - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text.__sys_open - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text.__sys_read - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text.__sys_readc - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text.__sys_rename - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -Memory Configuration - -Name Origin Length Attributes -MFlash512 0x00000000 0x00080000 xr -RamLoc32 0x10000000 0x00008000 xrw -RamAHB32 0x2007c000 0x00008000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./src/cr_startup_lpc17.o -LOAD ./src/debug.o -LOAD ./src/gpio.o -LOAD ./src/labyrinth.o -LOAD ./src/tools.o -LOAD ./src/trace_mgt.o -LOAD ./src/uart.o -LOAD ./FreeRTOS_src/croutine.o -LOAD ./FreeRTOS_src/list.o -LOAD ./FreeRTOS_src/queue.o -LOAD ./FreeRTOS_src/tasks.o -LOAD ./FreeRTOS_src/timers.o -LOAD ./FreeRTOS_portable/MemMang/heap_2.o -LOAD ./FreeRTOS_portable/port.o -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a -START GROUP -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a -END GROUP - 0x00000000 __base_MFlash512 = 0x0 - 0x00000000 __base_Flash = 0x0 - 0x00080000 __top_MFlash512 = 0x80000 - 0x00080000 __top_Flash = 0x80000 - 0x10000000 __base_RamLoc32 = 0x10000000 - 0x10000000 __base_RAM = 0x10000000 - 0x10008000 __top_RamLoc32 = 0x10008000 - 0x10008000 __top_RAM = 0x10008000 - 0x2007c000 __base_RamAHB32 = 0x2007c000 - 0x2007c000 __base_RAM2 = 0x2007c000 - 0x20084000 __top_RamAHB32 = 0x20084000 - 0x20084000 __top_RAM2 = 0x20084000 - -.text 0x00000000 0x7c10 - FILL mask 0xff - 0x00000000 __vectors_start__ = ABSOLUTE (.) - *(.isr_vector) - .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc17.o - 0x00000000 g_pfnVectors - 0x000000cc . = ALIGN (0x4) - 0x000000cc __section_table_start = . - 0x000000cc __data_section_table = . - 0x000000cc 0x4 LONG 0x7c10 LOADADDR (.data) - 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) - 0x000000d4 0x4 LONG 0x2a0 SIZEOF (.data) - 0x000000d8 0x4 LONG 0x7c10 LOADADDR (.data_RAM2) - 0x000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) - 0x000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) - 0x000000e4 __data_section_table_end = . - 0x000000e4 __bss_section_table = . - 0x000000e4 0x4 LONG 0x100002a0 ADDR (.bss) - 0x000000e8 0x4 LONG 0x5774 SIZEOF (.bss) - 0x000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) - 0x000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) - 0x000000f4 __bss_section_table_end = . - 0x000000f4 __section_table_end = . - *(.after_vectors*) - .after_vectors - 0x000000f4 0x12c ./src/cr_startup_lpc17.o - 0x000000f4 data_init - 0x00000138 bss_init - 0x00000170 ResetISR - 0x000001e8 NMI_Handler - 0x000001f0 HardFault_Handler - 0x000001f8 MemManage_Handler - 0x00000200 BusFault_Handler - 0x00000208 UsageFault_Handler - 0x00000210 DebugMon_Handler - 0x00000218 UART1_IRQHandler - 0x00000218 CANActivity_IRQHandler - 0x00000218 TIMER3_IRQHandler - 0x00000218 USBActivity_IRQHandler - 0x00000218 EINT2_IRQHandler - 0x00000218 I2C1_IRQHandler - 0x00000218 IntDefaultHandler - 0x00000218 PLL0_IRQHandler - 0x00000218 CAN_IRQHandler - 0x00000218 PLL1_IRQHandler - 0x00000218 I2C0_IRQHandler - 0x00000218 I2S_IRQHandler - 0x00000218 I2C2_IRQHandler - 0x00000218 RTC_IRQHandler - 0x00000218 TIMER0_IRQHandler - 0x00000218 SPI_IRQHandler - 0x00000218 RIT_IRQHandler - 0x00000218 EINT1_IRQHandler - 0x00000218 TIMER1_IRQHandler - 0x00000218 UART2_IRQHandler - 0x00000218 ADC_IRQHandler - 0x00000218 SSP1_IRQHandler - 0x00000218 USB_IRQHandler - 0x00000218 BOD_IRQHandler - 0x00000218 PWM1_IRQHandler - 0x00000218 WDT_IRQHandler - 0x00000218 QEI_IRQHandler - 0x00000218 EINT0_IRQHandler - 0x00000218 SSP0_IRQHandler - 0x00000218 DMA_IRQHandler - 0x00000218 TIMER2_IRQHandler - 0x00000218 UART3_IRQHandler - 0x00000218 MCPWM_IRQHandler - *(.text*) - .text.EINT3_IRQHandler - 0x00000220 0x48 ./src/gpio.o - 0x00000220 EINT3_IRQHandler - .text.get_gpio - 0x00000268 0x2c ./src/gpio.o - 0x00000268 get_gpio - *fill* 0x00000294 0x4 ff - .text.ball 0x00000298 0x544 ./src/labyrinth.o - 0x00000298 ball - .text.slave_info_rx - 0x000007dc 0x28 ./src/labyrinth.o - 0x000007dc slave_info_rx - .text.main 0x00000804 0xb0 ./src/labyrinth.o - 0x00000804 main - .text.round 0x000008b4 0x78 ./src/tools.o - 0x000008b4 round - .text.draw_labyrinth - 0x0000092c 0x150 ./src/tools.o - 0x0000092c draw_labyrinth - .text.test_collision - 0x00000a7c 0x450 ./src/tools.o - 0x00000a7c test_collision - .text.write_trace - 0x00000ecc 0x28 ./src/trace_mgt.o - 0x00000ecc write_trace - .text.vListInitialise - 0x00000ef4 0x40 ./FreeRTOS_src/list.o - 0x00000ef4 vListInitialise - .text.vListInitialiseItem - 0x00000f34 0x18 ./FreeRTOS_src/list.o - 0x00000f34 vListInitialiseItem - .text.vListInsertEnd - 0x00000f4c 0x50 ./FreeRTOS_src/list.o - 0x00000f4c vListInsertEnd - .text.vListInsert - 0x00000f9c 0x70 ./FreeRTOS_src/list.o - 0x00000f9c vListInsert - .text.vListRemove - 0x0000100c 0x50 ./FreeRTOS_src/list.o - 0x0000100c vListRemove - .text.xTaskGenericCreate - 0x0000105c 0x15c ./FreeRTOS_src/tasks.o - 0x0000105c xTaskGenericCreate - .text.vTaskDelayUntil - 0x000011b8 0x98 ./FreeRTOS_src/tasks.o - 0x000011b8 vTaskDelayUntil - .text.vTaskStartScheduler - 0x00001250 0x5c ./FreeRTOS_src/tasks.o - 0x00001250 vTaskStartScheduler - .text.vTaskSuspendAll - 0x000012ac 0x1c ./FreeRTOS_src/tasks.o - 0x000012ac vTaskSuspendAll - .text.xTaskResumeAll - 0x000012c8 0xf0 ./FreeRTOS_src/tasks.o - 0x000012c8 xTaskResumeAll - .text.xTaskGetTickCount - 0x000013b8 0x24 ./FreeRTOS_src/tasks.o - 0x000013b8 xTaskGetTickCount - .text.vTaskIncrementTick - 0x000013dc 0x12c ./FreeRTOS_src/tasks.o - 0x000013dc vTaskIncrementTick - .text.vTaskSwitchContext - 0x00001508 0x100 ./FreeRTOS_src/tasks.o - 0x00001508 vTaskSwitchContext - .text.prvIdleTask - 0x00001608 0x14 ./FreeRTOS_src/tasks.o - .text.prvInitialiseTCBVariables - 0x0000161c 0x68 ./FreeRTOS_src/tasks.o - .text.prvInitialiseTaskLists - 0x00001684 0x80 ./FreeRTOS_src/tasks.o - .text.prvCheckTasksWaitingTermination - 0x00001704 0x78 ./FreeRTOS_src/tasks.o - .text.prvAddCurrentTaskToDelayedList - 0x0000177c 0x6c ./FreeRTOS_src/tasks.o - .text.prvAllocateTCBAndStack - 0x000017e8 0x64 ./FreeRTOS_src/tasks.o - .text.prvDeleteTCB - 0x0000184c 0x20 ./FreeRTOS_src/tasks.o - .text.pvPortMalloc - 0x0000186c 0x144 ./FreeRTOS_portable/MemMang/heap_2.o - 0x0000186c pvPortMalloc - .text.vPortFree - 0x000019b0 0x74 ./FreeRTOS_portable/MemMang/heap_2.o - 0x000019b0 vPortFree - .text.pxPortInitialiseStack - 0x00001a24 0x50 ./FreeRTOS_portable/port.o - 0x00001a24 pxPortInitialiseStack - .text.vPortSVCHandler - 0x00001a74 0x24 ./FreeRTOS_portable/port.o - 0x00001a74 vPortSVCHandler - .text.vPortStartFirstTask - 0x00001a98 0x18 ./FreeRTOS_portable/port.o - 0x00001a98 vPortStartFirstTask - .text.xPortStartScheduler - 0x00001ab0 0x38 ./FreeRTOS_portable/port.o - 0x00001ab0 xPortStartScheduler - .text.vPortYieldFromISR - 0x00001ae8 0x18 ./FreeRTOS_portable/port.o - 0x00001ae8 vPortYieldFromISR - .text.vPortEnterCritical - 0x00001b00 0x24 ./FreeRTOS_portable/port.o - 0x00001b00 vPortEnterCritical - .text.vPortExitCritical - 0x00001b24 0x2c ./FreeRTOS_portable/port.o - 0x00001b24 vPortExitCritical - .text.xPortPendSVHandler - 0x00001b50 0x40 ./FreeRTOS_portable/port.o - 0x00001b50 xPortPendSVHandler - .text.xPortSysTickHandler - 0x00001b90 0x28 ./FreeRTOS_portable/port.o - 0x00001b90 xPortSysTickHandler - .text.prvSetupTimerInterrupt - 0x00001bb8 0x24 ./FreeRTOS_portable/port.o - .text.accel_write_byte - 0x00001bdc 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - 0x00001bdc accel_write_byte - .text.accel_read_byte - 0x00001c20 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - 0x00001c20 accel_read_byte - .text.accel_init - 0x00001c74 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - 0x00001c74 accel_init - .text.accel_read - 0x00001d28 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - 0x00001d28 accel_read - .text.rnd_32 0x00001df4 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - 0x00001df4 rnd_32 - .text.init_rnd32 - 0x00001e6c 0x6c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - 0x00001e6c init_rnd32 - .text.NVIC_EnableIRQ - 0x00001ed8 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .text.ENET_IRQHandler - 0x00001f08 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - 0x00001f08 ENET_IRQHandler - .text.ethernet_init - 0x00001f80 0x4c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - 0x00001f80 ethernet_init - .text.send_eth - 0x00001fcc 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - 0x00001fcc send_eth - .text.WriteToPHY - 0x00002030 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x00002030 WriteToPHY - .text.ReadFromPHY - 0x00002080 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x00002080 ReadFromPHY - .text.Init_EthMAC - 0x000020e0 0x3e0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x000020e0 Init_EthMAC - .text.WriteFrame_EthMAC - 0x000024c0 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x000024c0 WriteFrame_EthMAC - .text.ReadFrame_EthMAC - 0x000024e8 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x000024e8 ReadFrame_EthMAC - .text.RequestSend - 0x00002504 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x00002504 RequestSend - .text.StartReadingFrame - 0x00002554 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x00002554 StartReadingFrame - .text.StopReadingFrame - 0x000025a4 0x34 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x000025a4 StopReadingFrame - .text.LCD_RS_ENA - 0x000025d8 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.LCD_RS_DIS - 0x00002610 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .text.Write_Cmd_Data - 0x00002648 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002648 Write_Cmd_Data - .text.Write_Cmd - 0x00002670 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002670 Write_Cmd - .text.Write_Data - 0x00002698 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002698 Write_Data - .text.Write_Data_U16 - 0x000026c8 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x000026c8 Write_Data_U16 - .text.Delay 0x000026f0 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x000026f0 Delay - .text.ILI9341_Initial - 0x00002720 0x220 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002720 ILI9341_Initial - .text.init_lcd - 0x00002940 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002940 init_lcd - .text.LCD_SetPos - 0x00002994 0xb8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002994 LCD_SetPos - .text.LCD_SetPosR - 0x00002a4c 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002a4c LCD_SetPosR - .text.read_pixels - 0x00002adc 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002adc read_pixels - .text.clear_screen - 0x00002bd4 0x4c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002bd4 clear_screen - .text.lcd_filled_circle - 0x00002c20 0xd8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002c20 lcd_filled_circle - .text.lcd_filled_rectangle - 0x00002cf8 0xa4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002cf8 lcd_filled_rectangle - .text.lcd_print_char - 0x00002d9c 0x10c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002d9c lcd_print_char - .text.lcd_print - 0x00002ea8 0xf4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x00002ea8 lcd_print - .text.ssp_init_custom - 0x00002f9c 0x84 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - 0x00002f9c ssp_init_custom - .text.ssp_send_buf - 0x00003020 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - 0x00003020 ssp_send_buf - .text.ssp_receive_buf - 0x00003068 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - 0x00003068 ssp_receive_buf - .text.NVIC_EnableIRQ - 0x000030d8 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .text.NVIC_SetPendingIRQ - 0x00003108 0x34 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .text.start_timer - 0x0000313c 0xa8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x0000313c start_timer - .text.write_trace_ref - 0x000031e4 0x138 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x000031e4 write_trace_ref - .text.UART0_IRQHandler - 0x0000331c 0x7c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x0000331c UART0_IRQHandler - .text.init_traces - 0x00003398 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x00003398 init_traces - .text.uart0_init_ref - 0x000033dc 0x80 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - 0x000033dc uart0_init_ref - .text.init_i2c - 0x0000345c 0xfc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - 0x0000345c init_i2c - .text.wait_SI 0x00003558 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - 0x00003558 wait_SI - .text.I2C_master_write - 0x0000359c 0xec C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - 0x0000359c I2C_master_write - .text.I2C_master_read - 0x00003688 0x120 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - 0x00003688 I2C_master_read - .text.SystemInit - 0x000037a8 0xe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x000037a8 SystemInit - .text.__main 0x0000388c 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x0000388c __CR_SEMIHOST - 0x0000388c __main - .text.memset 0x000038a0 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - 0x000038a0 memset - .text.malloc 0x000038a4 0xc8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x000038a4 malloc - .text.free 0x0000396c 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x0000396c free - .text._Csys_alloc - 0x0000399c 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x0000399c _Csys_alloc - .text.ceil 0x000039bc 0x90 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - 0x000039bc ceil - .text.fclose 0x00003a4c 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - 0x00003a4c fclose - .text.fflush 0x00003ab8 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - 0x00003ab8 fflush - .text.floor 0x00003ae8 0x94 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - 0x00003ae8 floor - .text.fp_round - 0x00003b7c 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.pr_dec.constprop.1 - 0x00003bc8 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - *fill* 0x00003bee 0x2 ff - .text.sprintf 0x00003bf0 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00003bf0 sprintf - *fill* 0x00003c5c 0x4 ff - .text.fp_display - 0x00003c60 0x8ec c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vsprintf - 0x0000454c 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x0000454c vsprintf - .text.vsnprintf - 0x000045a8 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x000045a8 vsnprintf - .text.printf 0x00004604 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00004604 printf - .text.fseek 0x00004658 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - 0x00004658 fseek - .text.ftell 0x00004768 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - 0x00004768 ftell - .text._initio 0x000047b4 0xa4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x000047b4 _initio - .text._terminateio - 0x00004858 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00004858 _terminateio - .text.__vfprintf - 0x0000489c 0xd28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x0000489c __vfprintf - .text.remove 0x000055c4 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - 0x000055c4 remove - .text.setvbuf 0x000055d8 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - 0x000055d8 setvbuf - .text.sqrt 0x00005618 0x11c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - 0x00005618 sqrt - .text.exit 0x00005734 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x00005734 exit - .text.strlen 0x00005760 0x4a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - 0x00005760 strlen - .text.strncpy 0x000057aa 0x56 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - 0x000057aa strncpy - .text._sbrk 0x00005800 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - 0x00005800 _sbrk - .text._deferredlazyseek - 0x00005840 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00005840 _deferredlazyseek - .text.__flsbuf - 0x00005884 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00005884 __flsbuf - .text._do_fflush - 0x000059c4 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - 0x000059c4 _do_fflush - .text._fdopen 0x00005a08 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - 0x00005a08 _fdopen - .text._fflush 0x00005a72 0x58 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - 0x00005a72 _fflush - .text._frexpl 0x00005aca 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - 0x00005aca _frexpl - .text._ldexpl 0x00005b24 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - 0x00005b24 _ldexpl - .text._Cwritebuf - 0x00005b70 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - 0x00005b70 _Cwritebuf - .text.__check_heap_overflow - 0x00005bd8 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - 0x00005bd8 __check_heap_overflow - .text.__aeabi_dmul - 0x00005bf0 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00005bf0 __aeabi_dmul - .text.__aeabi_ddiv - 0x00005d00 0x138 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00005d00 __aeabi_ddiv - .text.__aeabi_dsub - 0x00005e38 0x1a0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00005e38 __aeabi_dsub - .text.__aeabi_dadd - 0x00005fd8 0x10c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00005fd8 __aeabi_dadd - .text.__aeabi_d2f - 0x000060e4 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000060e4 __aeabi_d2f - .text.__aeabi_d2iz - 0x00006138 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00006138 __aeabi_d2iz - .text.__bhs_ui2d - 0x00006178 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00006178 __bhs_ui2d - .text.__aeabi_i2d - 0x000061be 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000061be __aeabi_i2d - .text.__aeabi_dcmpeq - 0x000061ce 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000061ce __aeabi_dcmpeq - .text.__aeabi_dcmplt - 0x000061fa 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000061fa __aeabi_dcmplt - .text.__aeabi_dcmple - 0x0000624e 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000624e __aeabi_dcmple - .text.__aeabi_dcmpge - 0x000062a2 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000062a2 __aeabi_dcmpge - *fill* 0x000062f6 0x2 ff - .text.__aeabi_fmul - 0x000062f8 0xb0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000062f8 __aeabi_fmul - .text.__aeabi_fdiv - 0x000063a8 0xc0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000063a8 __aeabi_fdiv - .text.__aeabi_fsub - 0x00006468 0xe0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x00006468 __aeabi_fsub - .text.__aeabi_fadd - 0x00006548 0xac c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x00006548 __aeabi_fadd - .text.__bhs_ui2f - 0x000065f4 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000065f4 __bhs_ui2f - .text.__aeabi_i2f - 0x0000661a 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x0000661a __aeabi_i2f - .text.__aeabi_ui2f - 0x0000662a 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x0000662a __aeabi_ui2f - *fill* 0x00006632 0x2 ff - .text.__aeabi_f2d - 0x00006634 0x38 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x00006634 __aeabi_f2d - .text.__aeabi_fcmplt - 0x0000666c 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x0000666c __aeabi_fcmplt - .text.__aeabi_fcmpgt - 0x000066a6 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000066a6 __aeabi_fcmpgt - .text.__aeabi_fcmple - 0x000066e0 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000066e0 __aeabi_fcmple - .text.__aeabi_fcmpge - 0x0000671e 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x0000671e __aeabi_fcmpge - .text.__aeabi_memset_lowlevel - 0x0000675c 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - 0x0000675c __aeabi_lowlevel_memset - *fill* 0x0000678e 0x2 ff - .text.__sys_appexit - 0x00006790 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - 0x00006790 __sys_appexit - 0x00006790 __exit - .text.__sys_close - 0x0000679c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - 0x0000679c __sys_close - .text.__sys_flen - 0x000067a8 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - 0x000067a8 __sys_flen - .text.__sys_istty - 0x000067b4 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - 0x000067b4 __sys_istty - .text.__sys_remove - 0x000067c0 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - 0x000067c0 __sys_remove - .text.__sys_seek - 0x000067cc 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - 0x000067cc __sys_seek - .text.__sys_tmpnam - 0x000067d8 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - 0x000067d8 __sys_tmpnam - .text.__sys_write - 0x000067e4 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - 0x000067e4 __sys_write - 0x000067e4 __write - *(.rodata .rodata.* .constdata .constdata.*) - .rodata 0x000067f0 0x5d ./src/labyrinth.o - *fill* 0x0000684d 0x3 ff - .rodata 0x00006850 0x5 ./FreeRTOS_src/tasks.o - *fill* 0x00006855 0x3 ff - .rodata 0x00006858 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .rodata 0x00006880 0x37 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - *fill* 0x000068b7 0x1 ff - .rodata 0x000068b8 0x19b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - *fill* 0x00006a53 0x1 ff - .rodata 0x00006a54 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .rodata.SmallFont - 0x00006b20 0x478 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - 0x00006b20 SmallFont - .rodata.BigFont - 0x00006f98 0xbe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - 0x00006f98 BigFont - .rodata.str1.1 - 0x00007b7c 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .rodata.str1.1 - 0x00007b94 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x35 (size before relaxing) - .rodata.str1.1 - 0x00007bc8 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .rodata.str1.1 - 0x00007bcc 0x31 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x38 (size before relaxing) - *fill* 0x00007bfd 0x3 ff - .rodata.__huge_val - 0x00007c00 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - 0x00007c00 __huge_val - .rodata.__huge_vall - 0x00007c08 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - 0x00007c08 __huge_vall - 0x00007c10 . = ALIGN (0x4) - -.glue_7 0x00007c10 0x0 - .glue_7 0x00007c10 0x0 linker stubs - -.glue_7t 0x00007c10 0x0 - .glue_7t 0x00007c10 0x0 linker stubs - -.vfp11_veneer 0x00007c10 0x0 - .vfp11_veneer 0x00007c10 0x0 linker stubs - -.v4_bx 0x00007c10 0x0 - .v4_bx 0x00007c10 0x0 linker stubs - -.iplt 0x00007c10 0x0 - .iplt 0x00007c10 0x0 ./src/cr_startup_lpc17.o - -.rel.dyn 0x00007c10 0x0 - .rel.iplt 0x00007c10 0x0 ./src/cr_startup_lpc17.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x00007c10 __exidx_start = . - -.ARM.exidx - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x00007c10 __exidx_end = . - 0x00007c10 _etext = . - -.data_RAM2 0x2007c000 0x0 load address 0x00007c10 - FILL mask 0xff - [!provide] PROVIDE (__start_data_RAM2, .) - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_data_RAM2, .) - -.uninit_RESERVED - 0x10000000 0x0 - *(.bss.$RESERVED*) - 0x10000000 . = ALIGN (0x4) - 0x10000000 _end_uninit_RESERVED = . - -.data 0x10000000 0x2a0 load address 0x00007c10 - FILL mask 0xff - 0x10000000 _data = . - *(vtable) - *(.ramfunc*) - *(.data*) - .data.labyrinth_points - 0x10000000 0x128 ./src/labyrinth.o - .data.ball_param_th.5985 - 0x10000128 0x8c ./src/labyrinth.o - .data.previous_id_in - 0x100001b4 0x4 ./FreeRTOS_src/tasks.o - .data.xNextTaskUnblockTime - 0x100001b8 0x4 ./FreeRTOS_src/tasks.o - .data.xFreeBytesRemaining - 0x100001bc 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .data.uxCriticalNesting - 0x100001c0 0x4 ./FreeRTOS_portable/port.o - .data.olds 0x100001c4 0xdc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - 0x100001c4 olds - 0x100002a0 . = ALIGN (0x4) - 0x100002a0 _edata = . - -.igot.plt 0x100002a0 0x0 load address 0x00007eb0 - .igot.plt 0x100002a0 0x0 ./src/cr_startup_lpc17.o - -.bss_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_bss_RAM2, .) - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) - [!provide] PROVIDE (__end_bss_RAM2, .) - -.bss 0x100002a0 0x5774 - 0x100002a0 _bss = . - *(.bss*) - .bss.gpio_int_clr - 0x100002a0 0x4 ./src/gpio.o - .bss.irq_callback_g - 0x100002a4 0x4 ./src/gpio.o - .bss.slave_accel - 0x100002a8 0x14 ./src/labyrinth.o - .bss.finished 0x100002bc 0x1 ./src/labyrinth.o - *fill* 0x100002bd 0x3 - .bss.pxCurrentTCB - 0x100002c0 0x4 ./FreeRTOS_src/tasks.o - 0x100002c0 pxCurrentTCB - .bss.pxReadyTasksLists - 0x100002c4 0x64 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList1 - 0x10000328 0x14 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList2 - 0x1000033c 0x14 ./FreeRTOS_src/tasks.o - .bss.pxDelayedTaskList - 0x10000350 0x4 ./FreeRTOS_src/tasks.o - .bss.pxOverflowDelayedTaskList - 0x10000354 0x4 ./FreeRTOS_src/tasks.o - .bss.xPendingReadyList - 0x10000358 0x14 ./FreeRTOS_src/tasks.o - .bss.xTasksWaitingTermination - 0x1000036c 0x14 ./FreeRTOS_src/tasks.o - .bss.uxTasksDeleted - 0x10000380 0x4 ./FreeRTOS_src/tasks.o - .bss.xSuspendedTaskList - 0x10000384 0x14 ./FreeRTOS_src/tasks.o - .bss.uxCurrentNumberOfTasks - 0x10000398 0x4 ./FreeRTOS_src/tasks.o - .bss.xTickCount - 0x1000039c 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopUsedPriority - 0x100003a0 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopReadyPriority - 0x100003a4 0x4 ./FreeRTOS_src/tasks.o - .bss.xSchedulerRunning - 0x100003a8 0x4 ./FreeRTOS_src/tasks.o - .bss.uxSchedulerSuspended - 0x100003ac 0x4 ./FreeRTOS_src/tasks.o - .bss.uxMissedTicks - 0x100003b0 0x4 ./FreeRTOS_src/tasks.o - .bss.xMissedYield - 0x100003b4 0x4 ./FreeRTOS_src/tasks.o - .bss.xNumOfOverflows - 0x100003b8 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTaskNumber - 0x100003bc 0x4 ./FreeRTOS_src/tasks.o - .bss.xHeap 0x100003c0 0x4c00 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xStart 0x10004fc0 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xEnd 0x10004fc8 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xHeapHasBeenInitialised.4128 - 0x10004fd0 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.i2c_h 0x10004fd4 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .bss.rx_irq_callback - 0x10004fd8 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .bss.dat 0x10004fdc 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .bss.rx 0x10005018 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - 0x10005018 rx - .bss.rxptr 0x1000501c 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .bss.txptr 0x10005020 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .bss.write_idx - 0x10005024 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x10005024 write_idx - .bss.read_idx 0x10005028 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x10005028 read_idx - .bss.int_enabled - 0x1000502c 0x1 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .bss.trace_init_done - 0x1000502d 0x1 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - *fill* 0x1000502e 0x2 - .bss._extra 0x10005030 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x10005030 _extra - .bss.__Ciob 0x10005034 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - 0x10005034 __Ciob - .bss._exitvector - 0x10005174 0x84 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x10005174 _exitvector - .bss._number_of_exit_functions - 0x100051f8 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x100051f8 _number_of_exit_functions - .bss.__heaps 0x100051fc 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x100051fc __heaps - .bss.__end_of_heap - 0x10005200 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x10005200 __end_of_heap - .bss.errno 0x10005204 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - 0x10005204 errno - *(COMMON) - COMMON 0x10005208 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - 0x10005208 _j - 0x1000520c _k - COMMON 0x10005210 0x804 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x10005210 timer_counter - 0x10005214 trace_buffer - 0x10005a14 . = ALIGN (0x4) - 0x10005a14 _ebss = . - [!provide] PROVIDE (end, .) - -.noinit_RAM2 0x2007c000 0x0 - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - -.noinit 0x10005a14 0x0 - 0x10005a14 _noinit = . - *(.noinit*) - 0x10005a14 . = ALIGN (0x4) - 0x10005a14 _end_noinit = . - 0x10005a14 PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) - 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) - [!provide] PROVIDE (__valid_user_code_checksum, (0x0 - ((((((_vStackTop + (ResetISR + 0x1)) + (NMI_Handler + 0x1)) + (HardFault_Handler + 0x1)) + (DEFINED (MemManage_Handler)?MemManage_Handler:0x0 + 0x1)) + (DEFINED (BusFault_Handler)?BusFault_Handler:0x0 + 0x1)) + (DEFINED (UsageFault_Handler)?UsageFault_Handler:0x0 + 0x1)))) -OUTPUT(TP1_labyrinth.axf elf32-littlearm) - -.debug_info 0x00000000 0x753b - .debug_info 0x00000000 0x259 ./src/cr_startup_lpc17.o - .debug_info 0x00000259 0xa41 ./src/gpio.o - .debug_info 0x00000c9a 0x6f9 ./src/labyrinth.o - .debug_info 0x00001393 0x2a0 ./src/tools.o - .debug_info 0x00001633 0xd7 ./src/trace_mgt.o - .debug_info 0x0000170a 0x264 ./FreeRTOS_src/list.o - .debug_info 0x0000196e 0xcbb ./FreeRTOS_src/tasks.o - .debug_info 0x00002629 0x295 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_info 0x000028be 0x1c6 ./FreeRTOS_portable/port.o - .debug_info 0x00002a84 0x362 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_info 0x00002de6 0x126 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_info 0x00002f0c 0x7d8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_info 0x000036e4 0x9cb C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_info 0x000040af 0x129f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_info 0x0000534e 0x5ab C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_info 0x000058f9 0xa05 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_info 0x000062fe 0x672 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_info 0x00006970 0x809 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_info 0x00007179 0xaa C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_info 0x00007223 0x318 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_abbrev 0x00000000 0x1b19 - .debug_abbrev 0x00000000 0x100 ./src/cr_startup_lpc17.o - .debug_abbrev 0x00000100 0x215 ./src/gpio.o - .debug_abbrev 0x00000315 0x176 ./src/labyrinth.o - .debug_abbrev 0x0000048b 0x122 ./src/tools.o - .debug_abbrev 0x000005ad 0x8a ./src/trace_mgt.o - .debug_abbrev 0x00000637 0xbf ./FreeRTOS_src/list.o - .debug_abbrev 0x000006f6 0x1ec ./FreeRTOS_src/tasks.o - .debug_abbrev 0x000008e2 0x16b ./FreeRTOS_portable/MemMang/heap_2.o - .debug_abbrev 0x00000a4d 0x11d ./FreeRTOS_portable/port.o - .debug_abbrev 0x00000b6a 0x111 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_abbrev 0x00000c7b 0xc2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_abbrev 0x00000d3d 0x1fc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_abbrev 0x00000f39 0x205 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_abbrev 0x0000113e 0x274 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_abbrev 0x000013b2 0x13a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_abbrev 0x000014ec 0x21e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_abbrev 0x0000170a 0x18b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_abbrev 0x00001895 0x156 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_abbrev 0x000019eb 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_abbrev 0x00001a33 0xe6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_aranges 0x00000000 0x680 - .debug_aranges - 0x00000000 0x68 ./src/cr_startup_lpc17.o - .debug_aranges - 0x00000068 0x40 ./src/gpio.o - .debug_aranges - 0x000000a8 0x30 ./src/labyrinth.o - .debug_aranges - 0x000000d8 0x30 ./src/tools.o - .debug_aranges - 0x00000108 0x20 ./src/trace_mgt.o - .debug_aranges - 0x00000128 0x40 ./FreeRTOS_src/list.o - .debug_aranges - 0x00000168 0x120 ./FreeRTOS_src/tasks.o - .debug_aranges - 0x00000288 0x38 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_aranges - 0x000002c0 0x70 ./FreeRTOS_portable/port.o - .debug_aranges - 0x00000330 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_aranges - 0x00000368 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_aranges - 0x00000390 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_aranges - 0x000003d0 0x68 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_aranges - 0x00000438 0x110 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_aranges - 0x00000548 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_aranges - 0x00000578 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_aranges - 0x000005c8 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_aranges - 0x000005f8 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_aranges - 0x00000640 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_aranges - 0x00000658 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_ranges 0x00000000 0x568 - .debug_ranges 0x00000000 0x58 ./src/cr_startup_lpc17.o - .debug_ranges 0x00000058 0x30 ./src/gpio.o - .debug_ranges 0x00000088 0x20 ./src/labyrinth.o - .debug_ranges 0x000000a8 0x20 ./src/tools.o - .debug_ranges 0x000000c8 0x10 ./src/trace_mgt.o - .debug_ranges 0x000000d8 0x30 ./FreeRTOS_src/list.o - .debug_ranges 0x00000108 0x110 ./FreeRTOS_src/tasks.o - .debug_ranges 0x00000218 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_ranges 0x00000240 0x60 ./FreeRTOS_portable/port.o - .debug_ranges 0x000002a0 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_ranges 0x000002c8 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_ranges 0x000002e0 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_ranges 0x00000310 0x58 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_ranges 0x00000368 0x130 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_ranges 0x00000498 0x20 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_ranges 0x000004b8 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_ranges 0x000004f8 0x20 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_ranges 0x00000518 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_ranges 0x00000550 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_macro 0x00000000 0x3e30 - .debug_macro 0x00000000 0x52 ./src/cr_startup_lpc17.o - .debug_macro 0x00000052 0x892 ./src/cr_startup_lpc17.o - .debug_macro 0x000008e4 0x10 ./src/cr_startup_lpc17.o - .debug_macro 0x000008f4 0x12d ./src/cr_startup_lpc17.o - .debug_macro 0x00000a21 0x5b2 ./src/cr_startup_lpc17.o - .debug_macro 0x00000fd3 0x8e ./src/gpio.o - .debug_macro 0x00001061 0x22 ./src/gpio.o - .debug_macro 0x00001083 0x219 ./src/labyrinth.o - .debug_macro 0x0000129c 0x22 ./src/labyrinth.o - .debug_macro 0x000012be 0xc4 ./src/labyrinth.o - .debug_macro 0x00001382 0x150 ./src/labyrinth.o - .debug_macro 0x000014d2 0x1c ./src/labyrinth.o - .debug_macro 0x000014ee 0x28 ./src/labyrinth.o - .debug_macro 0x00001516 0x1c ./src/labyrinth.o - .debug_macro 0x00001532 0xc2 ./src/labyrinth.o - .debug_macro 0x000015f4 0xd6 ./src/labyrinth.o - .debug_macro 0x000016ca 0x22 ./src/labyrinth.o - .debug_macro 0x000016ec 0x1c ./src/labyrinth.o - .debug_macro 0x00001708 0x10 ./src/labyrinth.o - .debug_macro 0x00001718 0xc0 ./src/tools.o - .debug_macro 0x000017d8 0xc4 ./src/tools.o - .debug_macro 0x0000189c 0x1c ./src/tools.o - .debug_macro 0x000018b8 0x135 ./src/trace_mgt.o - .debug_macro 0x000019ed 0x16 ./src/trace_mgt.o - .debug_macro 0x00001a03 0x9d ./FreeRTOS_src/list.o - .debug_macro 0x00001aa0 0x28 ./FreeRTOS_src/list.o - .debug_macro 0x00001ac8 0x130 ./FreeRTOS_src/tasks.o - .debug_macro 0x00001bf8 0x61 ./FreeRTOS_src/tasks.o - .debug_macro 0x00001c59 0x16 ./FreeRTOS_src/tasks.o - .debug_macro 0x00001c6f 0xcb ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00001d3a 0xda ./FreeRTOS_portable/port.o - .debug_macro 0x00001e14 0xaf C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x00001ec3 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x0000275b 0x52 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_macro 0x000027ad 0x46 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_macro 0x000027f3 0xd4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x000028c7 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00002961 0x7c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x000029dd 0x82 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00002a5f 0x5c3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_macro 0x00003022 0xa9 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_macro 0x000030cb 0x108 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_macro 0x000031d3 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00003263 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_macro 0x00003285 0xcf C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_macro 0x00003354 0x84 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_macro 0x000033d8 0x8d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_macro 0x00003465 0x1a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_macro 0x0000347f 0x12b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x000035aa 0x886 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_line 0x00000000 0x3c9a - .debug_line 0x00000000 0x1e2 ./src/cr_startup_lpc17.o - .debug_line 0x000001e2 0x273 ./src/gpio.o - .debug_line 0x00000455 0x41c ./src/labyrinth.o - .debug_line 0x00000871 0x32f ./src/tools.o - .debug_line 0x00000ba0 0x297 ./src/trace_mgt.o - .debug_line 0x00000e37 0x21e ./FreeRTOS_src/list.o - .debug_line 0x00001055 0x709 ./FreeRTOS_src/tasks.o - .debug_line 0x0000175e 0x256 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_line 0x000019b4 0x268 ./FreeRTOS_portable/port.o - .debug_line 0x00001c1c 0x299 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_line 0x00001eb5 0x19e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_line 0x00002053 0x320 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_line 0x00002373 0x3db C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_line 0x0000274e 0x80d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_line 0x00002f5b 0x25a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_line 0x000031b5 0x30e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_line 0x000034c3 0x221 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_line 0x000036e4 0x360 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_line 0x00003a44 0x83 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .debug_line 0x00003ac7 0x1d3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_str 0x00000000 0x10bd5 - .debug_str 0x00000000 0x3d87 ./src/cr_startup_lpc17.o - 0x3e06 (size before relaxing) - .debug_str 0x00003d87 0x472f ./src/gpio.o - 0x83c7 (size before relaxing) - .debug_str 0x000084b6 0x3cfe ./src/labyrinth.o - 0xbc14 (size before relaxing) - .debug_str 0x0000c1b4 0x56 ./src/tools.o - 0x88bd (size before relaxing) - .debug_str 0x0000c20a 0x74 ./src/trace_mgt.o - 0xa916 (size before relaxing) - .debug_str 0x0000c27e 0x135 ./FreeRTOS_src/list.o - 0x453a (size before relaxing) - .debug_str 0x0000c3b3 0x11c8 ./FreeRTOS_src/tasks.o - 0x5bff (size before relaxing) - .debug_str 0x0000d57b 0x45f ./FreeRTOS_portable/MemMang/heap_2.o - 0x4bfd (size before relaxing) - .debug_str 0x0000d9da 0x368 ./FreeRTOS_portable/port.o - 0x4a62 (size before relaxing) - .debug_str 0x0000dd42 0x267 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - 0x8393 (size before relaxing) - .debug_str 0x0000dfa9 0x31 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - 0x3cb0 (size before relaxing) - .debug_str 0x0000dfda 0x1e3b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - 0xa130 (size before relaxing) - .debug_str 0x0000fe15 0x227 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - 0x9a75 (size before relaxing) - .debug_str 0x0001003c 0x412 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - 0x9006 (size before relaxing) - .debug_str 0x0001044e 0xa7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - 0x80e2 (size before relaxing) - .debug_str 0x000104f5 0x17f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - 0x85c5 (size before relaxing) - .debug_str 0x00010674 0x45 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - 0x8063 (size before relaxing) - .debug_str 0x000106b9 0xe5 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - 0x823f (size before relaxing) - .debug_str 0x0001079e 0x1f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - 0x2587 (size before relaxing) - .debug_str 0x000107bd 0x418 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x814e (size before relaxing) - -.comment 0x00000000 0xdc - .comment 0x00000000 0x6e ./src/cr_startup_lpc17.o - 0x6f (size before relaxing) - .comment 0x0000006e 0x6f ./src/gpio.o - .comment 0x0000006e 0x6f ./src/labyrinth.o - .comment 0x0000006e 0x6f ./src/tools.o - .comment 0x0000006e 0x6f ./src/trace_mgt.o - .comment 0x0000006e 0x6f ./FreeRTOS_src/list.o - .comment 0x0000006e 0x6f ./FreeRTOS_src/tasks.o - .comment 0x0000006e 0x6f ./FreeRTOS_portable/MemMang/heap_2.o - .comment 0x0000006e 0x6f ./FreeRTOS_portable/port.o - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .comment 0x0000006e 0x6e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x6f (size before relaxing) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x33 ./src/cr_startup_lpc17.o - .ARM.attributes - 0x00000033 0x33 ./src/gpio.o - .ARM.attributes - 0x00000066 0x33 ./src/labyrinth.o - .ARM.attributes - 0x00000099 0x33 ./src/tools.o - .ARM.attributes - 0x000000cc 0x33 ./src/trace_mgt.o - .ARM.attributes - 0x000000ff 0x33 ./FreeRTOS_src/list.o - .ARM.attributes - 0x00000132 0x33 ./FreeRTOS_src/tasks.o - .ARM.attributes - 0x00000165 0x33 ./FreeRTOS_portable/MemMang/heap_2.o - .ARM.attributes - 0x00000198 0x33 ./FreeRTOS_portable/port.o - .ARM.attributes - 0x000001cb 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .ARM.attributes - 0x000001fe 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .ARM.attributes - 0x00000231 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .ARM.attributes - 0x00000264 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .ARM.attributes - 0x00000297 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .ARM.attributes - 0x000002ca 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .ARM.attributes - 0x000002fd 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .ARM.attributes - 0x00000330 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .ARM.attributes - 0x00000363 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .ARM.attributes - 0x00000396 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(fonts.o) - .ARM.attributes - 0x000003c9 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .ARM.attributes - 0x000003fc 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .ARM.attributes - 0x0000042f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .ARM.attributes - 0x00000462 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .ARM.attributes - 0x00000495 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .ARM.attributes - 0x000004c8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .ARM.attributes - 0x000004fb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .ARM.attributes - 0x0000052e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .ARM.attributes - 0x00000561 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .ARM.attributes - 0x00000594 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .ARM.attributes - 0x000005c7 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .ARM.attributes - 0x000005fa 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .ARM.attributes - 0x0000062d 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .ARM.attributes - 0x00000660 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .ARM.attributes - 0x00000693 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .ARM.attributes - 0x000006c6 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .ARM.attributes - 0x000006f9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .ARM.attributes - 0x0000072c 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .ARM.attributes - 0x0000075f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .ARM.attributes - 0x00000792 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strncpy.o) - .ARM.attributes - 0x000007c5 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .ARM.attributes - 0x000007f8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .ARM.attributes - 0x0000082b 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .ARM.attributes - 0x0000085e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .ARM.attributes - 0x00000891 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .ARM.attributes - 0x000008c4 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .ARM.attributes - 0x000008f7 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .ARM.attributes - 0x0000092a 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .ARM.attributes - 0x0000095d 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .ARM.attributes - 0x00000990 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .ARM.attributes - 0x000009c3 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .ARM.attributes - 0x000009f6 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .ARM.attributes - 0x00000a29 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .ARM.attributes - 0x00000a5c 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .ARM.attributes - 0x00000a8f 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .ARM.attributes - 0x00000ab0 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .ARM.attributes - 0x00000ad1 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .ARM.attributes - 0x00000af2 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .ARM.attributes - 0x00000b13 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .ARM.attributes - 0x00000b34 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .ARM.attributes - 0x00000b55 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .ARM.attributes - 0x00000b76 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .ARM.attributes - 0x00000b97 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -.debug_frame 0x00000000 0x15e0 - .debug_frame 0x00000000 0x128 ./src/cr_startup_lpc17.o - .debug_frame 0x00000128 0xcc ./src/gpio.o - .debug_frame 0x000001f4 0x88 ./src/labyrinth.o - .debug_frame 0x0000027c 0x90 ./src/tools.o - .debug_frame 0x0000030c 0x34 ./src/trace_mgt.o - .debug_frame 0x00000340 0xd8 ./FreeRTOS_src/list.o - .debug_frame 0x00000418 0x4b4 ./FreeRTOS_src/tasks.o - .debug_frame 0x000008cc 0x98 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_frame 0x00000964 0x148 ./FreeRTOS_portable/port.o - .debug_frame 0x00000aac 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(accelerometer.o) - .debug_frame 0x00000b4c 0x5c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(custom_rand.o) - .debug_frame 0x00000ba8 0xc8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethernet_mgt.o) - .debug_frame 0x00000c70 0x18c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ethmac.o) - .debug_frame 0x00000dfc 0x490 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(lcd.o) - .debug_frame 0x0000128c 0x88 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(ssp.o) - .debug_frame 0x00001314 0x11c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(traces.o) - .debug_frame 0x00001430 0x7c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(uart.o) - .debug_frame 0x000014ac 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth\Debug\libMylab_lib.a(I2C.o) - .debug_frame 0x000015a4 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug.ld deleted file mode 100644 index d8d0355..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug.ld +++ /dev/null @@ -1,151 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from linkscript.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:21 - */ - -INCLUDE "TP1_labyrinth_Debug_library.ld" -INCLUDE "TP1_labyrinth_Debug_memory.ld" - -ENTRY(ResetISR) - -SECTIONS -{ - /* MAIN TEXT SECTION */ - .text : ALIGN(4) - { - FILL(0xff) - __vectors_start__ = ABSOLUTE(.) ; - KEEP(*(.isr_vector)) - /* Global Section Table */ - . = ALIGN(4) ; - __section_table_start = .; - __data_section_table = .; - LONG(LOADADDR(.data)); - LONG( ADDR(.data)); - LONG( SIZEOF(.data)); - LONG(LOADADDR(.data_RAM2)); - LONG( ADDR(.data_RAM2)); - LONG( SIZEOF(.data_RAM2)); - __data_section_table_end = .; - __bss_section_table = .; - LONG( ADDR(.bss)); - LONG( SIZEOF(.bss)); - LONG( ADDR(.bss_RAM2)); - LONG( SIZEOF(.bss_RAM2)); - __bss_section_table_end = .; - __section_table_end = . ; - /* End of Global Section Table */ - - *(.after_vectors*) - - } >MFlash512 - - .text : ALIGN(4) - { - *(.text*) - *(.rodata .rodata.* .constdata .constdata.*) - . = ALIGN(4); - } > MFlash512 - /* - * for exception handling/unwind - some Newlib functions (in common - * with C++ and STDC++) use this. - */ - .ARM.extab : ALIGN(4) - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > MFlash512 - __exidx_start = .; - - .ARM.exidx : ALIGN(4) - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > MFlash512 - __exidx_end = .; - - _etext = .; - - /* DATA section for RamAHB32 */ - .data_RAM2 : ALIGN(4) - { - FILL(0xff) - PROVIDE(__start_data_RAM2 = .) ; - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - . = ALIGN(4) ; - PROVIDE(__end_data_RAM2 = .) ; - } > RamAHB32 AT>MFlash512 - - /* MAIN DATA SECTION */ - .uninit_RESERVED : ALIGN(4) - { - KEEP(*(.bss.$RESERVED*)) - . = ALIGN(4) ; - _end_uninit_RESERVED = .; - } > RamLoc32 - /* Main DATA section (RamLoc32) */ - .data : ALIGN(4) - { - FILL(0xff) - _data = . ; - *(vtable) - *(.ramfunc*) - *(.data*) - . = ALIGN(4) ; - _edata = . ; - } > RamLoc32 AT>MFlash512 - /* BSS section for RamAHB32 */ - .bss_RAM2 : ALIGN(4) - { - PROVIDE(__start_bss_RAM2 = .) ; - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */ - PROVIDE(__end_bss_RAM2 = .) ; - } > RamAHB32 - /* MAIN BSS SECTION */ - .bss : ALIGN(4) - { - _bss = .; - *(.bss*) - *(COMMON) - . = ALIGN(4) ; - _ebss = .; - PROVIDE(end = .); - } > RamLoc32 - /* NOINIT section for RamAHB32 */ - .noinit_RAM2 (NOLOAD) : ALIGN(4) - { - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - . = ALIGN(4) ; - } > RamAHB32 - /* DEFAULT NOINIT SECTION */ - .noinit (NOLOAD): ALIGN(4) - { - _noinit = .; - *(.noinit*) - . = ALIGN(4) ; - _end_noinit = .; - } > RamLoc32 - - PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .); - PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc32 - 0); - - /* ## Create checksum value (used in startup) ## */ - PROVIDE(__valid_user_code_checksum = 0 - - (_vStackTop - + (ResetISR + 1) - + (NMI_Handler + 1) - + (HardFault_Handler + 1) - + (( DEFINED(MemManage_Handler) ? MemManage_Handler : 0 ) + 1) /* MemManage_Handler may not be defined */ - + (( DEFINED(BusFault_Handler) ? BusFault_Handler : 0 ) + 1) /* BusFault_Handler may not be defined */ - + (( DEFINED(UsageFault_Handler) ? UsageFault_Handler : 0 ) + 1) /* UsageFault_Handler may not be defined */ - ) ); -} \ No newline at end of file diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_library.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_library.ld deleted file mode 100644 index e2f9dd7..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_library.ld +++ /dev/null @@ -1,15 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from library.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:21 - */ - -GROUP ( - libcr_semihost.a - libcr_c.a - libcr_eabihelpers.a -) diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_memory.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_memory.ld deleted file mode 100644 index 9881165..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_Debug_memory.ld +++ /dev/null @@ -1,31 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from memory.ldt by FMCreateLinkMemory - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:21 - */ - -MEMORY -{ - /* Define each memory region */ - MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512K bytes (alias Flash) */ - RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32K bytes (alias RAM) */ - RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32K bytes (alias RAM2) */ -} - - /* Define a symbol for the top of each memory region */ - __base_MFlash512 = 0x0 ; /* MFlash512 */ - __base_Flash = 0x0 ; /* Flash */ - __top_MFlash512 = 0x0 + 0x80000 ; /* 512K bytes */ - __top_Flash = 0x0 + 0x80000 ; /* 512K bytes */ - __base_RamLoc32 = 0x10000000 ; /* RamLoc32 */ - __base_RAM = 0x10000000 ; /* RAM */ - __top_RamLoc32 = 0x10000000 + 0x8000 ; /* 32K bytes */ - __top_RAM = 0x10000000 + 0x8000 ; /* 32K bytes */ - __base_RamAHB32 = 0x2007c000 ; /* RamAHB32 */ - __base_RAM2 = 0x2007c000 ; /* RAM2 */ - __top_RamAHB32 = 0x2007c000 + 0x8000 ; /* 32K bytes */ - __top_RAM2 = 0x2007c000 + 0x8000 ; /* 32K bytes */ diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu.map b/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu.map deleted file mode 100644 index 4084836..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu.map +++ /dev/null @@ -1,2695 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - ./src/labyrinth.o (accel_init) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - ./src/labyrinth.o (init_rnd32) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - ./src/labyrinth.o (init_lcd) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (ssp_init_custom) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - ./src/trace_mgt.o (write_trace_ref) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) (uart0_init_ref) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) (init_i2c) -/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (SmallFont) -/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) (SystemCoreClock) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - ./src/cr_startup_lpc17.o (__main) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) (__assertion_failed) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) (__Ciob) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) (__sys_appexit) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - ./FreeRTOS_src/queue.o (memcpy) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - ./FreeRTOS_src/tasks.o (memset) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) (__flsbuf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) (_fflush) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) (_Cwritebuf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (malloc) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - ./src/tools.o (ceil) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (fclose) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) (fflush) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - ./src/tools.o (floor) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (fopen) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (vsprintf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) (fputs) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (fread) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) (freopen) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (fseek) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) (ftell) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) (_initio) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) (__vfprintf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) (remove) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) (setvbuf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (sqrt) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (exit) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) (strlen) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - ./FreeRTOS_src/tasks.o (strncpy) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) (__heaps) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) (_sbrk) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) (_do_fflush) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) (_fdopen) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) (_frexpl) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) (_ldexpl) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) (_Cread) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) (errno) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) (raise) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) (__filbuf) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) (__check_heap_overflow) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_ldivmod) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) (__aeabi_idiv0) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) (__aeabi_dmul) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - ./src/tools.o (__aeabi_fmul) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) (__aeabi_memcpy) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) (__sys_close) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) (__sys_flen) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) (__sys_istty) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) (__sys_open) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) (__sys_read) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) (__sys_readc) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) (__sys_remove) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) (__sys_rename) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) (__sys_seek) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) (__sys_tmpnam) -/usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) (__sys_write) - -Allocating common symbols -Common symbol size file - -_j 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) -_k 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - -Discarded input sections - - .group 0x00000000 0xc ./src/cr_startup_lpc17.o - .group 0x00000000 0xc ./src/cr_startup_lpc17.o - .group 0x00000000 0xc ./src/cr_startup_lpc17.o - .group 0x00000000 0xc ./src/cr_startup_lpc17.o - .text 0x00000000 0x0 ./src/cr_startup_lpc17.o - .data 0x00000000 0x0 ./src/cr_startup_lpc17.o - .bss 0x00000000 0x0 ./src/cr_startup_lpc17.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .group 0x00000000 0xc ./src/labyrinth.o - .text 0x00000000 0x0 ./src/labyrinth.o - .data 0x00000000 0x0 ./src/labyrinth.o - .bss 0x00000000 0x0 ./src/labyrinth.o - .text.slave_info_rx - 0x00000000 0x14 ./src/labyrinth.o - .data.ball_param_th.0 - 0x00000000 0x8c ./src/labyrinth.o - .debug_macro 0x00000000 0xae4 ./src/labyrinth.o - .debug_macro 0x00000000 0x10 ./src/labyrinth.o - .debug_macro 0x00000000 0x12e ./src/labyrinth.o - .debug_macro 0x00000000 0x5b3 ./src/labyrinth.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .group 0x00000000 0xc ./src/tools.o - .text 0x00000000 0x0 ./src/tools.o - .data 0x00000000 0x0 ./src/tools.o - .bss 0x00000000 0x0 ./src/tools.o - .text.round 0x00000000 0x76 ./src/tools.o - .text.test_collision - 0x00000000 0x438 ./src/tools.o - .debug_macro 0x00000000 0xae4 ./src/tools.o - .debug_macro 0x00000000 0x10 ./src/tools.o - .debug_macro 0x00000000 0x12e ./src/tools.o - .debug_macro 0x00000000 0x5b3 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x2e ./src/tools.o - .debug_macro 0x00000000 0x18 ./src/tools.o - .debug_macro 0x00000000 0x7af ./src/tools.o - .debug_macro 0x00000000 0x2c7 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x22 ./src/tools.o - .debug_macro 0x00000000 0x28 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0xc2 ./src/tools.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .group 0x00000000 0xc ./src/trace_mgt.o - .text 0x00000000 0x0 ./src/trace_mgt.o - .data 0x00000000 0x0 ./src/trace_mgt.o - .bss 0x00000000 0x0 ./src/trace_mgt.o - .debug_macro 0x00000000 0xae4 ./src/trace_mgt.o - .debug_macro 0x00000000 0x1c ./src/trace_mgt.o - .debug_macro 0x00000000 0x2e ./src/trace_mgt.o - .debug_macro 0x00000000 0x10 ./src/trace_mgt.o - .debug_macro 0x00000000 0x12e ./src/trace_mgt.o - .debug_macro 0x00000000 0x5b3 ./src/trace_mgt.o - .debug_macro 0x00000000 0x18 ./src/trace_mgt.o - .debug_macro 0x00000000 0x7af ./src/trace_mgt.o - .debug_macro 0x00000000 0x2c7 ./src/trace_mgt.o - .debug_macro 0x00000000 0xa0 ./src/trace_mgt.o - .debug_macro 0x00000000 0x22 ./src/trace_mgt.o - .debug_macro 0x00000000 0x46 ./src/trace_mgt.o - .debug_macro 0x00000000 0xa3 ./src/trace_mgt.o - .debug_macro 0x00000000 0x12 ./src/trace_mgt.o - .debug_macro 0x00000000 0x1f ./src/trace_mgt.o - .debug_macro 0x00000000 0x177 ./src/trace_mgt.o - .debug_macro 0x00000000 0x49 ./src/trace_mgt.o - .debug_macro 0x00000000 0x57 ./src/trace_mgt.o - .debug_macro 0x00000000 0x6a ./src/trace_mgt.o - .debug_macro 0x00000000 0x62 ./src/trace_mgt.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/croutine.o - .text 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .data 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss 0x00000000 0x0 ./FreeRTOS_src/croutine.o - .bss.pxReadyCoRoutineLists - 0x00000000 0x28 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList1 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.xDelayedCoRoutineList2 - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.pxOverflowDelayedCoRoutineList - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPendingReadyCoRoutineList - 0x00000000 0x14 ./FreeRTOS_src/croutine.o - .bss.pxCurrentCoRoutine - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.uxTopCoRoutineReadyPriority - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xCoRoutineTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xLastTickCount - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .bss.xPassedTicks - 0x00000000 0x4 ./FreeRTOS_src/croutine.o - .text.xCoRoutineCreate - 0x00000000 0xcc ./FreeRTOS_src/croutine.o - .text.vCoRoutineAddToDelayedList - 0x00000000 0x84 ./FreeRTOS_src/croutine.o - .text.prvCheckPendingReadyList - 0x00000000 0x84 ./FreeRTOS_src/croutine.o - .text.prvCheckDelayedList - 0x00000000 0x100 ./FreeRTOS_src/croutine.o - .text.vCoRoutineSchedule - 0x00000000 0xa0 ./FreeRTOS_src/croutine.o - .text.prvInitialiseCoRoutineLists - 0x00000000 0x6c ./FreeRTOS_src/croutine.o - .text.xCoRoutineRemoveFromEventList - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_info 0x00000000 0x54f ./FreeRTOS_src/croutine.o - .debug_abbrev 0x00000000 0x1fa ./FreeRTOS_src/croutine.o - .debug_aranges - 0x00000000 0x50 ./FreeRTOS_src/croutine.o - .debug_ranges 0x00000000 0x40 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xad ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/croutine.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/croutine.o - .debug_line 0x00000000 0x434 ./FreeRTOS_src/croutine.o - .debug_str 0x00000000 0x5b23 ./FreeRTOS_src/croutine.o - .comment 0x00000000 0x45 ./FreeRTOS_src/croutine.o - .debug_frame 0x00000000 0x10c ./FreeRTOS_src/croutine.o - .ARM.attributes - 0x00000000 0x2d ./FreeRTOS_src/croutine.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/list.o - .text 0x00000000 0x0 ./FreeRTOS_src/list.o - .data 0x00000000 0x0 ./FreeRTOS_src/list.o - .bss 0x00000000 0x0 ./FreeRTOS_src/list.o - .text.vListInitialise - 0x00000000 0x3e ./FreeRTOS_src/list.o - .text.vListInitialiseItem - 0x00000000 0x18 ./FreeRTOS_src/list.o - .text.vListInsert - 0x00000000 0x70 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/list.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/list.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/queue.o - .text 0x00000000 0x0 ./FreeRTOS_src/queue.o - .data 0x00000000 0x0 ./FreeRTOS_src/queue.o - .bss 0x00000000 0x0 ./FreeRTOS_src/queue.o - .bss.xQueueRegistry - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.xQueueCreate - 0x00000000 0xbc ./FreeRTOS_src/queue.o - .text.xQueueGiveMutexRecursive - 0x00000000 0x48 ./FreeRTOS_src/queue.o - .text.xQueueTakeMutexRecursive - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.xQueueCreateCountingSemaphore - 0x00000000 0x2a ./FreeRTOS_src/queue.o - .text.xQueueGenericSend - 0x00000000 0x106 ./FreeRTOS_src/queue.o - .text.xQueueGenericSendFromISR - 0x00000000 0x80 ./FreeRTOS_src/queue.o - .text.xQueueGenericReceive - 0x00000000 0x13c ./FreeRTOS_src/queue.o - .text.xQueueReceiveFromISR - 0x00000000 0x82 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaiting - 0x00000000 0x20 ./FreeRTOS_src/queue.o - .text.uxQueueMessagesWaitingFromISR - 0x00000000 0x1a ./FreeRTOS_src/queue.o - .text.vQueueDelete - 0x00000000 0x26 ./FreeRTOS_src/queue.o - .text.prvCopyDataToQueue - 0x00000000 0x9c ./FreeRTOS_src/queue.o - .text.prvCopyDataFromQueue - 0x00000000 0x4c ./FreeRTOS_src/queue.o - .text.prvUnlockQueue - 0x00000000 0x98 ./FreeRTOS_src/queue.o - .text.prvIsQueueEmpty - 0x00000000 0x2a ./FreeRTOS_src/queue.o - .text.xQueueIsQueueEmptyFromISR - 0x00000000 0x24 ./FreeRTOS_src/queue.o - .text.prvIsQueueFull - 0x00000000 0x2e ./FreeRTOS_src/queue.o - .text.xQueueIsQueueFullFromISR - 0x00000000 0x28 ./FreeRTOS_src/queue.o - .text.vQueueAddToRegistry - 0x00000000 0x50 ./FreeRTOS_src/queue.o - .text.vQueueUnregisterQueue - 0x00000000 0x48 ./FreeRTOS_src/queue.o - .debug_info 0x00000000 0xa09 ./FreeRTOS_src/queue.o - .debug_abbrev 0x00000000 0x27c ./FreeRTOS_src/queue.o - .debug_aranges - 0x00000000 0xb8 ./FreeRTOS_src/queue.o - .debug_ranges 0x00000000 0xa8 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x11e ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/queue.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/queue.o - .debug_line 0x00000000 0x7fe ./FreeRTOS_src/queue.o - .debug_str 0x00000000 0x5f85 ./FreeRTOS_src/queue.o - .comment 0x00000000 0x45 ./FreeRTOS_src/queue.o - .debug_frame 0x00000000 0x2fc ./FreeRTOS_src/queue.o - .ARM.attributes - 0x00000000 0x2d ./FreeRTOS_src/queue.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/tasks.o - .text 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .data 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .bss 0x00000000 0x0 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList1 - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xDelayedTaskList2 - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xPendingReadyList - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.xTasksWaitingTermination - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.uxTasksDeleted - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.xSuspendedTaskList - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .bss.uxCurrentNumberOfTasks - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopUsedPriority - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .bss.xSchedulerRunning - 0x00000000 0x4 ./FreeRTOS_src/tasks.o - .text.xTaskGenericCreate - 0x00000000 0x15c ./FreeRTOS_src/tasks.o - .text.vTaskDelete - 0x00000000 0x98 ./FreeRTOS_src/tasks.o - .text.vTaskDelayUntil - 0x00000000 0x98 ./FreeRTOS_src/tasks.o - .text.vTaskDelay - 0x00000000 0x54 ./FreeRTOS_src/tasks.o - .text.uxTaskPriorityGet - 0x00000000 0x34 ./FreeRTOS_src/tasks.o - .text.vTaskPrioritySet - 0x00000000 0xe8 ./FreeRTOS_src/tasks.o - .text.vTaskSuspend - 0x00000000 0x9c ./FreeRTOS_src/tasks.o - .text.xTaskIsTaskSuspended - 0x00000000 0x44 ./FreeRTOS_src/tasks.o - .text.vTaskResume - 0x00000000 0x90 ./FreeRTOS_src/tasks.o - .text.xTaskResumeFromISR - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .rodata.vTaskStartScheduler.str1.4 - 0x00000000 0x5 ./FreeRTOS_src/tasks.o - .text.vTaskStartScheduler - 0x00000000 0x5c ./FreeRTOS_src/tasks.o - .text.vTaskEndScheduler - 0x00000000 0x20 ./FreeRTOS_src/tasks.o - .text.vTaskSuspendAll - 0x00000000 0x1c ./FreeRTOS_src/tasks.o - .text.xTaskResumeAll - 0x00000000 0xf0 ./FreeRTOS_src/tasks.o - .text.xTaskGetTickCount - 0x00000000 0x24 ./FreeRTOS_src/tasks.o - .text.xTaskGetTickCountFromISR - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetNumberOfTasks - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .text.vTaskPlaceOnEventList - 0x00000000 0x60 ./FreeRTOS_src/tasks.o - .text.xTaskRemoveFromEventList - 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .text.vTaskSetTimeOutState - 0x00000000 0x2c ./FreeRTOS_src/tasks.o - .text.xTaskCheckForTimeOut - 0x00000000 0x88 ./FreeRTOS_src/tasks.o - .text.vTaskMissedYield - 0x00000000 0x18 ./FreeRTOS_src/tasks.o - .text.prvIdleTask - 0x00000000 0x14 ./FreeRTOS_src/tasks.o - .text.prvInitialiseTCBVariables - 0x00000000 0x66 ./FreeRTOS_src/tasks.o - .text.prvInitialiseTaskLists - 0x00000000 0x80 ./FreeRTOS_src/tasks.o - .text.prvCheckTasksWaitingTermination - 0x00000000 0x78 ./FreeRTOS_src/tasks.o - .text.prvAddCurrentTaskToDelayedList - 0x00000000 0x6c ./FreeRTOS_src/tasks.o - .text.prvAllocateTCBAndStack - 0x00000000 0x62 ./FreeRTOS_src/tasks.o - .text.usTaskCheckFreeStackSpace - 0x00000000 0x30 ./FreeRTOS_src/tasks.o - .text.uxTaskGetStackHighWaterMark - 0x00000000 0x38 ./FreeRTOS_src/tasks.o - .text.prvDeleteTCB - 0x00000000 0x20 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa0 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x22 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/tasks.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/tasks.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_src/timers.o - .text 0x00000000 0x0 ./FreeRTOS_src/timers.o - .data 0x00000000 0x0 ./FreeRTOS_src/timers.o - .bss 0x00000000 0x0 ./FreeRTOS_src/timers.o - .debug_info 0x00000000 0x5a ./FreeRTOS_src/timers.o - .debug_abbrev 0x00000000 0x29 ./FreeRTOS_src/timers.o - .debug_aranges - 0x00000000 0x18 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xb6 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x6a ./FreeRTOS_src/timers.o - .debug_macro 0x00000000 0x61 ./FreeRTOS_src/timers.o - .debug_line 0x00000000 0x22f ./FreeRTOS_src/timers.o - .debug_str 0x00000000 0x5d2d ./FreeRTOS_src/timers.o - .comment 0x00000000 0x45 ./FreeRTOS_src/timers.o - .ARM.attributes - 0x00000000 0x2d ./FreeRTOS_src/timers.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .text 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .data 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xHeap 0x00000000 0x4c00 ./FreeRTOS_portable/MemMang/heap_2.o - .rodata.heapSTRUCT_SIZE - 0x00000000 0x2 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xStart 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xEnd 0x00000000 0x8 ./FreeRTOS_portable/MemMang/heap_2.o - .data.xFreeBytesRemaining - 0x00000000 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .text.pvPortMalloc - 0x00000000 0x144 ./FreeRTOS_portable/MemMang/heap_2.o - .text.vPortFree - 0x00000000 0x74 ./FreeRTOS_portable/MemMang/heap_2.o - .text.xPortGetFreeHeapSize - 0x00000000 0x14 ./FreeRTOS_portable/MemMang/heap_2.o - .text.vPortInitialiseBlocks - 0x00000000 0xc ./FreeRTOS_portable/MemMang/heap_2.o - .bss.xHeapHasBeenInitialised.0 - 0x00000000 0x4 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_info 0x00000000 0x2bf ./FreeRTOS_portable/MemMang/heap_2.o - .debug_abbrev 0x00000000 0x1ad ./FreeRTOS_portable/MemMang/heap_2.o - .debug_aranges - 0x00000000 0x38 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_ranges 0x00000000 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xcb ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x28 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_line 0x00000000 0x353 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_str 0x00000000 0x55ab ./FreeRTOS_portable/MemMang/heap_2.o - .comment 0x00000000 0x45 ./FreeRTOS_portable/MemMang/heap_2.o - .debug_frame 0x00000000 0x98 ./FreeRTOS_portable/MemMang/heap_2.o - .ARM.attributes - 0x00000000 0x2d ./FreeRTOS_portable/MemMang/heap_2.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .group 0x00000000 0xc ./FreeRTOS_portable/port.o - .text 0x00000000 0x0 ./FreeRTOS_portable/port.o - .data 0x00000000 0x0 ./FreeRTOS_portable/port.o - .bss 0x00000000 0x0 ./FreeRTOS_portable/port.o - .rodata.ulKernelPriority - 0x00000000 0x4 ./FreeRTOS_portable/port.o - .data.uxCriticalNesting - 0x00000000 0x4 ./FreeRTOS_portable/port.o - .text.pxPortInitialiseStack - 0x00000000 0x50 ./FreeRTOS_portable/port.o - .text.vPortStartFirstTask - 0x00000000 0x18 ./FreeRTOS_portable/port.o - .text.xPortStartScheduler - 0x00000000 0x38 ./FreeRTOS_portable/port.o - .text.vPortEndScheduler - 0x00000000 0xc ./FreeRTOS_portable/port.o - .text.vPortYieldFromISR - 0x00000000 0x18 ./FreeRTOS_portable/port.o - .text.vPortEnterCritical - 0x00000000 0x24 ./FreeRTOS_portable/port.o - .text.vPortExitCritical - 0x00000000 0x2c ./FreeRTOS_portable/port.o - .text.prvSetupTimerInterrupt - 0x00000000 0x24 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0xae4 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x10 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12e ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x16 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x46 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x150 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0xa3 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x12 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x1f ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x177 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x49 ./FreeRTOS_portable/port.o - .debug_macro 0x00000000 0x57 ./FreeRTOS_portable/port.o - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0xd6 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .bss.str 0x00000000 0x30c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.LCD_SetPosR - 0x00000000 0x90 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.read_pixels - 0x00000000 0xf8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.read_cmd - 0x00000000 0x64 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.setup_scroll - 0x00000000 0x68 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_scroll - 0x00000000 0x60 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_set_fenetre_pixel - 0x00000000 0x24 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.Ecran_Croix - 0x00000000 0x78 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_lineH - 0x00000000 0x64 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_lineV - 0x00000000 0x60 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_line - 0x00000000 0x158 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_circle - 0x00000000 0x1ac /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_filled_circle - 0x00000000 0xd8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_filled_circle_on_square - 0x00000000 0xcc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_empty_rectangle - 0x00000000 0x80 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_print_char - 0x00000000 0x10c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_print - 0x00000000 0xe0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.lcd_printf - 0x00000000 0x20c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.read_bmp_file - 0x00000000 0x1d0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.display_bitmap16 - 0x00000000 0x70 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .bss.is_scroll_setup.5885 - 0x00000000 0x1 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .bss.x.5882 0x00000000 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .data.offset.5884 - 0x00000000 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .data.y.5883 0x00000000 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0xc2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .text.ssp_receive_buf - 0x00000000 0x70 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .text.send_traces_to_uart0 - 0x00000000 0x74 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x00000000 0x9a /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text.NVIC_DisableIRQ - 0x00000000 0x34 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text.taskYIELD - 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text.uart0_stop_interrupt - 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text.uart0_send_ref - 0x00000000 0x40 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .text.I2C_slave_read - 0x00000000 0x1c8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .text.I2C_slave_write - 0x00000000 0x168 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x58 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .group 0x00000000 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .rodata.SmallFont - 0x00000000 0x478 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .rodata.BigFont - 0x00000000 0xbe4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .rodata.SevenSegNumFont - 0x00000000 0x7d4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_info 0x00000000 0xaa /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_abbrev 0x00000000 0x48 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_aranges - 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1a /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_line 0x00000000 0x7b /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .debug_str 0x00000000 0x257f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .comment 0x00000000 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .ARM.attributes - 0x00000000 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(fonts.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0xc /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .bss 0x00000000 0x0 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text.SystemCoreClockUpdate - 0x00000000 0xb8 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x12e /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x5b3 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2e /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x7af /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2c7 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .text.memcpy 0x00000000 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_info 0x00000000 0x12b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_abbrev 0x00000000 0xb6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_loc 0x00000000 0x81 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_line 0x00000000 0x9b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_str 0x00000000 0x1b7 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .debug_frame 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memcpy.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .text.calloc 0x00000000 0x50 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .text.realloc 0x00000000 0x24 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .text.ceil 0x00000000 0x8c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_info 0x00000000 0x15d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_abbrev 0x00000000 0xfb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_loc 0x00000000 0xaf /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_line 0x00000000 0x137 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_str 0x00000000 0x17d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .debug_frame 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ceil.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .text.floor 0x00000000 0x90 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_info 0x00000000 0x15d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_abbrev 0x00000000 0xfb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_loc 0x00000000 0xaf /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_line 0x00000000 0x13c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_str 0x00000000 0x17f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .debug_frame 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(floor.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .text.fopen 0x00000000 0x38 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_info 0x00000000 0x227 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_abbrev 0x00000000 0x122 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_loc 0x00000000 0xc3 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_ranges 0x00000000 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_line 0x00000000 0xd3 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_str 0x00000000 0x23f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .debug_frame 0x00000000 0x3c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fopen.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.fprintf 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.printf_char - 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.snprintf - 0x00000000 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.vfprintf - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.vprintf 0x00000000 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.vsprintf - 0x00000000 0x5c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .text.fread 0x00000000 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_info 0x00000000 0x230 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_abbrev 0x00000000 0xf8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_loc 0x00000000 0xb0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_line 0x00000000 0xac /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_str 0x00000000 0x230 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .debug_frame 0x00000000 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fread.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .text.freopen 0x00000000 0x84 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_info 0x00000000 0x2df /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_abbrev 0x00000000 0x12b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_loc 0x00000000 0x17b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_line 0x00000000 0x14f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_str 0x00000000 0x255 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .debug_frame 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(freopen.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text.no_fp_display - 0x00000000 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._fprintf - 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._printf_char - 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._sprintf - 0x00000000 0x6c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._snprintf - 0x00000000 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._vfprintf - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._vprintf - 0x00000000 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._vsprintf - 0x00000000 0x5c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._vsnprintf - 0x00000000 0x68 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text._printf 0x00000000 0x54 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .text.rename 0x00000000 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .text.sqrt 0x00000000 0x10c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_info 0x00000000 0x203 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_abbrev 0x00000000 0x10f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_loc 0x00000000 0xd6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_ranges 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_line 0x00000000 0x158 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_str 0x00000000 0x198 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .debug_frame 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(sqrt.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.__rand 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.__srand 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.rand 0x00000000 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.srand 0x00000000 0x40 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text._exit_init - 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.atexit 0x00000000 0x24 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.abort 0x00000000 0x12 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.abs 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.labs 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.llabs 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.div 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.ldiv 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text.lldiv 0x00000000 0x1c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .data._random_k - 0x00000000 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .data._random_j - 0x00000000 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .data._random_number_seed - 0x00000000 0xdc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .data.next 0x00000000 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .text.strncpy 0x00000000 0x58 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_info 0x00000000 0xfa /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_abbrev 0x00000000 0xb6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_loc 0x00000000 0x16d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_ranges 0x00000000 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_line 0x00000000 0xfa /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_str 0x00000000 0x165 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .debug_frame 0x00000000 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strncpy.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .text._init_alloc - 0x00000000 0x14 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .text._Cread 0x00000000 0x7c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_info 0x00000000 0x2b6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_abbrev 0x00000000 0x13a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_loc 0x00000000 0x138 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_line 0x00000000 0x162 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_str 0x00000000 0x24c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .debug_frame 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_read.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .text.raise 0x00000000 0x6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_info 0x00000000 0x82 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_abbrev 0x00000000 0x5a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_loc 0x00000000 0x2b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_aranges - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_ranges 0x00000000 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_line 0x00000000 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_str 0x00000000 0x164 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .debug_frame 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(raise.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .text._Csys_read_ - 0x00000000 0x22 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .text.__filbuf - 0x00000000 0x178 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .text._fillb2 0x00000000 0x1c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_info 0x00000000 0x46d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_abbrev 0x00000000 0x228 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_loc 0x00000000 0x2ce /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_aranges - 0x00000000 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_ranges 0x00000000 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_line 0x00000000 0x39a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_str 0x00000000 0x29e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .comment 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .debug_frame 0x00000000 0x70 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .ARM.attributes - 0x00000000 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__fillbuf.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_ldivmod - 0x00000000 0x26 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_uldivmod - 0x00000000 0x174 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_64.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - .text.__aeabi_division_idiv0 - 0x00000000 0x2 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(division_idiv0.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_drsub - 0x00000000 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_dneg - 0x00000000 0xe /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_d2f - 0x00000000 0x58 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_d2uiz - 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_d2lz - 0x00000000 0x74 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_d2ulz - 0x00000000 0x54 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__bhs_ul2d - 0x00000000 0x8a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_ui2d - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_l2d - 0x00000000 0x1c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_ul2d - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpgt - 0x00000000 0x56 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpun - 0x00000000 0x1a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_cdcmple - 0x00000000 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text.__aeabi_cdrcmple - 0x00000000 0x14 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fmul - 0x00000000 0xac /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fsub - 0x00000000 0xe4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fadd - 0x00000000 0xb8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_frsub - 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fneg - 0x00000000 0x6 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_f2iz - 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_f2uiz - 0x00000000 0x26 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_f2lz - 0x00000000 0x5c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_f2ulz - 0x00000000 0x3e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__bhs_ul2f - 0x00000000 0x46 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_ui2f - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_l2f - 0x00000000 0x1c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_ul2f - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_f2d - 0x00000000 0x38 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpeq - 0x00000000 0x1e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmplt - 0x00000000 0x3a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpgt - 0x00000000 0x3a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmple - 0x00000000 0x3e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpge - 0x00000000 0x3e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpun - 0x00000000 0x1a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_cfcmple - 0x00000000 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text.__aeabi_cfrcmple - 0x00000000 0xa /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memcpy - 0x00000000 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memmove - 0x00000000 0x1c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memclr - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memset - 0x00000000 0xa /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - .text.__sys_open - 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_open.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - .text.__sys_read - 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_read.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - .text.__sys_readc - 0x00000000 0x8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_readc.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - .text.__sys_rename - 0x00000000 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - .ARM.attributes - 0x00000000 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_rename.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - .text 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - .data 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - .bss 0x00000000 0x0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - -Memory Configuration - -Name Origin Length Attributes -MFlash512 0x00000000 0x00080000 xr -RamLoc32 0x10000000 0x00008000 xrw -RamAHB32 0x2007c000 0x00008000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./src/cr_startup_lpc17.o -LOAD ./src/labyrinth.o -LOAD ./src/tools.o -LOAD ./src/trace_mgt.o -LOAD ./FreeRTOS_src/croutine.o -LOAD ./FreeRTOS_src/list.o -LOAD ./FreeRTOS_src/queue.o -LOAD ./FreeRTOS_src/tasks.o -LOAD ./FreeRTOS_src/timers.o -LOAD ./FreeRTOS_portable/MemMang/heap_2.o -LOAD ./FreeRTOS_portable/port.o -LOAD /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a -LOAD /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a -START GROUP -LOAD /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a -LOAD /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a -LOAD /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a -LOAD /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libgcc.a -END GROUP - 0x00000000 __base_MFlash512 = 0x0 - 0x00000000 __base_Flash = 0x0 - 0x00080000 __top_MFlash512 = 0x80000 - 0x00080000 __top_Flash = 0x80000 - 0x10000000 __base_RamLoc32 = 0x10000000 - 0x10000000 __base_RAM = 0x10000000 - 0x10008000 __top_RamLoc32 = 0x10008000 - 0x10008000 __top_RAM = 0x10008000 - 0x2007c000 __base_RamAHB32 = 0x2007c000 - 0x2007c000 __base_RAM2 = 0x2007c000 - 0x20084000 __top_RamAHB32 = 0x20084000 - 0x20084000 __top_RAM2 = 0x20084000 - -.text 0x00000000 0x44d8 - FILL mask 0xff - 0x00000000 __vectors_start__ = ABSOLUTE (.) - *(.isr_vector) - .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc17.o - 0x00000000 g_pfnVectors - 0x000000cc . = ALIGN (0x4) - 0x000000cc __section_table_start = . - 0x000000cc __data_section_table = . - 0x000000cc 0x4 LONG 0x44d8 LOADADDR (.data) - 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) - 0x000000d4 0x4 LONG 0x210 SIZEOF (.data) - 0x000000d8 0x4 LONG 0x44d8 LOADADDR (.data_RAM2) - 0x000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) - 0x000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) - 0x000000e4 __data_section_table_end = . - 0x000000e4 __bss_section_table = . - 0x000000e4 0x4 LONG 0x10000210 ADDR (.bss) - 0x000000e8 0x4 LONG 0xb28 SIZEOF (.bss) - 0x000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) - 0x000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) - 0x000000f4 __bss_section_table_end = . - 0x000000f4 __section_table_end = . - *(.after_vectors*) - .after_vectors - 0x000000f4 0x130 ./src/cr_startup_lpc17.o - 0x000000f4 data_init - 0x00000138 bss_init - 0x00000170 ResetISR - 0x000001ec NMI_Handler - 0x000001f4 HardFault_Handler - 0x000001fc MemManage_Handler - 0x00000204 BusFault_Handler - 0x0000020c UsageFault_Handler - 0x00000214 DebugMon_Handler - 0x0000021c TIMER2_IRQHandler - 0x0000021c RIT_IRQHandler - 0x0000021c I2C0_IRQHandler - 0x0000021c USBActivity_IRQHandler - 0x0000021c PWM1_IRQHandler - 0x0000021c I2C1_IRQHandler - 0x0000021c EINT2_IRQHandler - 0x0000021c UART1_IRQHandler - 0x0000021c EINT3_IRQHandler - 0x0000021c CANActivity_IRQHandler - 0x0000021c TIMER3_IRQHandler - 0x0000021c IntDefaultHandler - 0x0000021c PLL0_IRQHandler - 0x0000021c CAN_IRQHandler - 0x0000021c PLL1_IRQHandler - 0x0000021c SSP0_IRQHandler - 0x0000021c I2S_IRQHandler - 0x0000021c I2C2_IRQHandler - 0x0000021c RTC_IRQHandler - 0x0000021c TIMER0_IRQHandler - 0x0000021c SPI_IRQHandler - 0x0000021c EINT1_IRQHandler - 0x0000021c TIMER1_IRQHandler - 0x0000021c UART2_IRQHandler - 0x0000021c ADC_IRQHandler - 0x0000021c SSP1_IRQHandler - 0x0000021c USB_IRQHandler - 0x0000021c BOD_IRQHandler - 0x0000021c WDT_IRQHandler - 0x0000021c QEI_IRQHandler - 0x0000021c EINT0_IRQHandler - 0x0000021c DMA_IRQHandler - 0x0000021c UART3_IRQHandler - 0x0000021c MCPWM_IRQHandler - 0x0000021c ENET_IRQHandler - *(.text*) - .text.main 0x00000224 0x54 ./src/labyrinth.o - 0x00000224 main - .text.draw_labyrinth - 0x00000278 0x152 ./src/tools.o - 0x00000278 draw_labyrinth - .text.write_trace - 0x000003ca 0x26 ./src/trace_mgt.o - 0x000003ca write_trace - .text.vListInsertEnd - 0x000003f0 0x4e ./FreeRTOS_src/list.o - 0x000003f0 vListInsertEnd - .text.vListRemove - 0x0000043e 0x4e ./FreeRTOS_src/list.o - 0x0000043e vListRemove - .text.vTaskIncrementTick - 0x0000048c 0x12c ./FreeRTOS_src/tasks.o - 0x0000048c vTaskIncrementTick - .text.vTaskSwitchContext - 0x000005b8 0x100 ./FreeRTOS_src/tasks.o - 0x000005b8 vTaskSwitchContext - .text.vPortSVCHandler - 0x000006b8 0x24 ./FreeRTOS_portable/port.o - 0x000006b8 vPortSVCHandler - .text.xPortPendSVHandler - 0x000006dc 0x40 ./FreeRTOS_portable/port.o - 0x000006dc xPortPendSVHandler - .text.xPortSysTickHandler - 0x0000071c 0x26 ./FreeRTOS_portable/port.o - 0x0000071c xPortSysTickHandler - *fill* 0x00000742 0x2 ff - .text.accel_write_byte - 0x00000744 0x44 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - 0x00000744 accel_write_byte - .text.accel_read_byte - 0x00000788 0x54 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - 0x00000788 accel_read_byte - .text.accel_init - 0x000007dc 0xb8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - 0x000007dc accel_init - .text.accel_read - 0x00000894 0xcc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - 0x00000894 accel_read - .text.rnd32 0x00000960 0x78 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - 0x00000960 rnd32 - .text.init_rnd32 - 0x000009d8 0x6c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - 0x000009d8 init_rnd32 - .text.LCD_RS_ENA - 0x00000a44 0x38 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.LCD_RS_DIS - 0x00000a7c 0x38 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .text.Write_Cmd_Data - 0x00000ab4 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000ab4 Write_Cmd_Data - .text.Write_Cmd - 0x00000adc 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000adc Write_Cmd - .text.Write_Data - 0x00000b04 0x30 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000b04 Write_Data - .text.Write_Data_U16 - 0x00000b34 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000b34 Write_Data_U16 - .text.Delay 0x00000b5c 0x30 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000b5c Delay - .text.ILI9341_Initial - 0x00000b8c 0x220 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000b8c ILI9341_Initial - .text.init_lcd - 0x00000dac 0x54 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000dac init_lcd - .text.LCD_SetPos - 0x00000e00 0xb8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000e00 LCD_SetPos - .text.clear_screen - 0x00000eb8 0x4c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000eb8 clear_screen - .text.lcd_filled_rectangle - 0x00000f04 0xa4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - 0x00000f04 lcd_filled_rectangle - .text.ssp_init_custom - 0x00000fa8 0x84 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - 0x00000fa8 ssp_init_custom - .text.ssp_send_buf - 0x0000102c 0x48 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - 0x0000102c ssp_send_buf - .text.start_timer - 0x00001074 0xa8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - 0x00001074 start_timer - .text.write_trace_ref - 0x0000111c 0x174 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - 0x0000111c write_trace_ref - .text.tx_handler - 0x00001290 0x7c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - 0x00001290 tx_handler - .text.init_traces - 0x0000130c 0x4c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - 0x0000130c init_traces - .text.NVIC_EnableIRQ - 0x00001358 0x30 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .text.UART0_IRQHandler - 0x00001388 0x70 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - 0x00001388 UART0_IRQHandler - .text.uart0_init_ref - 0x000013f8 0xf8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - 0x000013f8 uart0_init_ref - .text.init_i2c - 0x000014f0 0x180 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - 0x000014f0 init_i2c - .text.wait_SI 0x00001670 0x44 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - 0x00001670 wait_SI - .text.I2C_master_write - 0x000016b4 0xec /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - 0x000016b4 I2C_master_write - .text.I2C_master_read - 0x000017a0 0x120 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - 0x000017a0 I2C_master_read - .text.SystemInit - 0x000018c0 0xd8 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x000018c0 SystemInit - .text.__main 0x00001998 0xe /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - 0x00001998 __main - 0x00001998 __CR_SEMIHOST - *fill* 0x000019a6 0x2 ff - .text.__assertion_failed - 0x000019a8 0x4c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - 0x000019a8 __assertion_failed - .text.__sys_appexit - 0x000019f4 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - 0x000019f4 __exit - 0x000019f4 __sys_appexit - .text.memset 0x00001a00 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - 0x00001a00 memset - .text._deferredlazyseek - 0x00001a04 0x40 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - 0x00001a04 _deferredlazyseek - .text.__flsbuf - 0x00001a44 0x126 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - 0x00001a44 __flsbuf - .text._fflush 0x00001b6a 0x52 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - 0x00001b6a _fflush - .text._Cwritebuf - 0x00001bbc 0x6c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - 0x00001bbc _Cwritebuf - .text.malloc 0x00001c28 0xc8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - 0x00001c28 malloc - .text.free 0x00001cf0 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - 0x00001cf0 free - .text._Csys_alloc - 0x00001d20 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - 0x00001d20 _Csys_alloc - .text.fclose 0x00001d40 0x58 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - 0x00001d40 fclose - .text.fflush 0x00001d98 0x3c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - 0x00001d98 fflush - .text.fp_round - 0x00001dd4 0x4c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.pr_dec.constprop.0 - 0x00001e20 0x24 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.sprintf 0x00001e44 0x6c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - 0x00001e44 sprintf - .text.fp_display - 0x00001eb0 0x9ac /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .text.vsnprintf - 0x0000285c 0x68 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - 0x0000285c vsnprintf - .text.printf 0x000028c4 0x54 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - 0x000028c4 printf - .text.fputs 0x00002918 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - 0x00002918 fputs - .text.fseek 0x00002944 0xf8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - 0x00002944 fseek - .text.ftell 0x00002a3c 0x44 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - 0x00002a3c ftell - .text._initio 0x00002a80 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - 0x00002a80 _initio - .text._terminateio - 0x00002af8 0x50 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - 0x00002af8 _terminateio - .text.__vfprintf - 0x00002b48 0xb70 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - 0x00002b48 __vfprintf - .text.remove 0x000036b8 0x14 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - 0x000036b8 remove - .text.setvbuf 0x000036cc 0x3e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - 0x000036cc setvbuf - *fill* 0x0000370a 0x2 ff - .text.exit 0x0000370c 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - 0x0000370c exit - .text.strlen 0x00003738 0x4e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - 0x00003738 strlen - *fill* 0x00003786 0x2 ff - .text._sbrk 0x00003788 0x3c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - 0x00003788 _sbrk - .text._do_fflush - 0x000037c4 0x40 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - 0x000037c4 _do_fflush - .text._fdopen 0x00003804 0x68 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - 0x00003804 _fdopen - .text._frexpl 0x0000386c 0x5a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - 0x0000386c _frexpl - *fill* 0x000038c6 0x2 ff - .text._ldexpl 0x000038c8 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - 0x000038c8 _ldexpl - .text.__check_heap_overflow - 0x00003910 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - 0x00003910 __check_heap_overflow - .text.__aeabi_dmul - 0x00003928 0xfc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003928 __aeabi_dmul - .text.__aeabi_ddiv - 0x00003a24 0x134 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003a24 __aeabi_ddiv - .text.__aeabi_dsub - 0x00003b58 0x1b4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003b58 __aeabi_dsub - .text.__aeabi_dadd - 0x00003d0c 0x118 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003d0c __aeabi_dadd - .text.__aeabi_d2iz - 0x00003e24 0x42 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003e24 __aeabi_d2iz - .text.__bhs_ui2d - 0x00003e66 0x46 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003e66 __bhs_ui2d - .text.__aeabi_i2d - 0x00003eac 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003eac __aeabi_i2d - .text.__aeabi_dcmpeq - 0x00003ebc 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003ebc __aeabi_dcmpeq - .text.__aeabi_dcmplt - 0x00003eec 0x56 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003eec __aeabi_dcmplt - .text.__aeabi_dcmple - 0x00003f42 0x54 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003f42 __aeabi_dcmple - .text.__aeabi_dcmpge - 0x00003f96 0x5a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - 0x00003f96 __aeabi_dcmpge - .text.__aeabi_fdiv - 0x00003ff0 0xbc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - 0x00003ff0 __aeabi_fdiv - .text.__bhs_ui2f - 0x000040ac 0x26 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - 0x000040ac __bhs_ui2f - .text.__aeabi_i2f - 0x000040d2 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - 0x000040d2 __aeabi_i2f - .text.__aeabi_memset_lowlevel - 0x000040e2 0x32 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - 0x000040e2 __aeabi_lowlevel_memset - .text.__sys_close - 0x00004114 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - 0x00004114 __sys_close - .text.__sys_flen - 0x00004120 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - 0x00004120 __sys_flen - .text.__sys_istty - 0x0000412c 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - 0x0000412c __sys_istty - .text.__sys_remove - 0x00004138 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - 0x00004138 __sys_remove - .text.__sys_seek - 0x00004144 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - 0x00004144 __sys_seek - .text.__sys_tmpnam - 0x00004150 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - 0x00004150 __sys_tmpnam - .text.__sys_write - 0x0000415c 0xc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - 0x0000415c __sys_write - *(.rodata .rodata.* .constdata .constdata.*) - .rodata.main.str1.4 - 0x00004168 0x26 ./src/labyrinth.o - *fill* 0x0000418e 0x2 ff - .rodata 0x00004190 0x19b /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - *fill* 0x0000432b 0x1 ff - .rodata 0x0000432c 0xcc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .rodata 0x000043f8 0x48 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .rodata.__assertion_failed.str1.1 - 0x00004440 0x94 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - 0x15 (size before relaxing) - .rodata.__num_Ciob_streams - 0x000044d4 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - 0x000044d4 __num_Ciob_streams - .rodata._Csys_alloc.str1.1 - 0x000044d8 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .rodata.fp_display.str1.1 - 0x000044d8 0x35 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .rodata._initio.str1.1 - 0x000044d8 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .rodata.__vfprintf.str1.1 - 0x000044d8 0x38 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - 0x00004510 . = ALIGN (0x4) - -.glue_7 0x000044d8 0x0 - .glue_7 0x000044d8 0x0 linker stubs - -.glue_7t 0x000044d8 0x0 - .glue_7t 0x000044d8 0x0 linker stubs - -.vfp11_veneer 0x000044d8 0x0 - .vfp11_veneer 0x000044d8 0x0 linker stubs - -.v4_bx 0x000044d8 0x0 - .v4_bx 0x000044d8 0x0 linker stubs - -.iplt 0x000044d8 0x0 - .iplt 0x000044d8 0x0 ./src/cr_startup_lpc17.o - -.rel.dyn 0x000044d8 0x0 - .rel.iplt 0x000044d8 0x0 ./src/cr_startup_lpc17.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - -.ARM.exidx 0x000044d8 0x0 - 0x000044d8 __exidx_start = . - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x000044d8 __exidx_end = . - 0x000044d8 _etext = . - -.data_RAM2 0x2007c000 0x0 load address 0x000044d8 - FILL mask 0xff - [!provide] PROVIDE (__start_data_RAM2 = .) - [!provide] PROVIDE (__start_data_RamAHB32 = .) - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2) - *(.data.$RamAHB32) - *(.data.$RAM2.*) - *(.data.$RamAHB32.*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_data_RAM2 = .) - [!provide] PROVIDE (__end_data_RamAHB32 = .) - -.uninit_RESERVED - 0x10000000 0x0 - 0x10000000 _start_uninit_RESERVED = . - *(.bss.$RESERVED*) - 0x10000000 . = ALIGN (0x4) - 0x10000000 _end_uninit_RESERVED = . - -.data 0x10000000 0x210 load address 0x000044d8 - FILL mask 0xff - 0x10000000 _data = . - [!provide] PROVIDE (__start_data_RAM = .) - [!provide] PROVIDE (__start_data_RamLoc32 = .) - *(vtable) - *(.ramfunc*) - *(CodeQuickAccess) - *(DataQuickAccess) - *(RamFunction) - *(.data*) - .data.labyrinth_points - 0x10000000 0x128 ./src/labyrinth.o - .data.previous_id_in - 0x10000128 0x4 ./FreeRTOS_src/tasks.o - .data.xNextTaskUnblockTime - 0x1000012c 0x4 ./FreeRTOS_src/tasks.o - .data.olds 0x10000130 0xdc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - 0x10000130 olds - .data.SystemCoreClock - 0x1000020c 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x1000020c SystemCoreClock - 0x10000210 . = ALIGN (0x4) - 0x10000210 _edata = . - [!provide] PROVIDE (__end_data_RAM = .) - [!provide] PROVIDE (__end_data_RamLoc32 = .) - -.igot.plt 0x10000210 0x0 load address 0x000046e8 - .igot.plt 0x10000210 0x0 ./src/cr_startup_lpc17.o - -.bss_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_bss_RAM2 = .) - [!provide] PROVIDE (__start_bss_RamAHB32 = .) - *(.bss.$RAM2) - *(.bss.$RamAHB32) - *(.bss.$RAM2.*) - *(.bss.$RamAHB32.*) - 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) - [!provide] PROVIDE (__end_bss_RAM2 = .) - [!provide] PROVIDE (__end_bss_RamAHB32 = .) - -.bss 0x10000210 0xb28 - 0x10000210 _bss = . - [!provide] PROVIDE (__start_bss_RAM = .) - [!provide] PROVIDE (__start_bss_RamLoc32 = .) - *(.bss*) - .bss.pxCurrentTCB - 0x10000210 0x4 ./FreeRTOS_src/tasks.o - 0x10000210 pxCurrentTCB - .bss.pxReadyTasksLists - 0x10000214 0x64 ./FreeRTOS_src/tasks.o - .bss.pxDelayedTaskList - 0x10000278 0x4 ./FreeRTOS_src/tasks.o - .bss.pxOverflowDelayedTaskList - 0x1000027c 0x4 ./FreeRTOS_src/tasks.o - .bss.xTickCount - 0x10000280 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTopReadyPriority - 0x10000284 0x4 ./FreeRTOS_src/tasks.o - .bss.uxSchedulerSuspended - 0x10000288 0x4 ./FreeRTOS_src/tasks.o - .bss.uxMissedTicks - 0x1000028c 0x4 ./FreeRTOS_src/tasks.o - .bss.xMissedYield - 0x10000290 0x4 ./FreeRTOS_src/tasks.o - .bss.xNumOfOverflows - 0x10000294 0x4 ./FreeRTOS_src/tasks.o - .bss.uxTaskNumber - 0x10000298 0x4 ./FreeRTOS_src/tasks.o - .bss.i2c_h 0x1000029c 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .bss.trace_buffer - 0x100002a0 0x800 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.write_idx - 0x10000aa0 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.read_idx 0x10000aa4 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.w_byte_idx - 0x10000aa8 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.timer_counter - 0x10000aac 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.int_enabled - 0x10000ab0 0x1 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .bss.trace_init_done - 0x10000ab1 0x1 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - *fill* 0x10000ab2 0x2 - .bss.tx_callbck - 0x10000ab4 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .bss.rx_callbck - 0x10000ab8 0x4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .bss.__Ciob 0x10000abc 0x1e0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - 0x10000abc __Ciob - .bss._number_of_exit_functions - 0x10000c9c 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - 0x10000c9c _number_of_exit_functions - .bss._exitvector - 0x10000ca0 0x84 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - 0x10000ca0 _exitvector - .bss.__end_of_heap - 0x10000d24 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - 0x10000d24 __end_of_heap - .bss.__heaps 0x10000d28 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - 0x10000d28 __heaps - .bss.errno 0x10000d2c 0x4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - 0x10000d2c errno - *(COMMON) - COMMON 0x10000d30 0x8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - 0x10000d30 _j - 0x10000d34 _k - 0x10000d38 . = ALIGN (0x4) - 0x10000d38 _ebss = . - [!provide] PROVIDE (__end_bss_RAM = .) - [!provide] PROVIDE (__end_bss_RamLoc32 = .) - [!provide] PROVIDE (end = .) - -.noinit_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_noinit_RAM2 = .) - [!provide] PROVIDE (__start_noinit_RamAHB32 = .) - *(.noinit.$RAM2) - *(.noinit.$RamAHB32) - *(.noinit.$RAM2.*) - *(.noinit.$RamAHB32.*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_noinit_RAM2 = .) - [!provide] PROVIDE (__end_noinit_RamAHB32 = .) - -.noinit 0x10000d38 0x0 - 0x10000d38 _noinit = . - [!provide] PROVIDE (__start_noinit_RAM = .) - [!provide] PROVIDE (__start_noinit_RamLoc32 = .) - *(.noinit*) - 0x10000d38 . = ALIGN (0x4) - 0x10000d38 _end_noinit = . - [!provide] PROVIDE (__end_noinit_RAM = .) - [!provide] PROVIDE (__end_noinit_RamLoc32 = .) - 0x10000d38 PROVIDE (_pvHeapStart = DEFINED (__user_heap_base)?__user_heap_base:.) - 0x10008000 PROVIDE (_vStackTop = DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) - [!provide] PROVIDE (__valid_user_code_checksum = (0x0 - ((((((_vStackTop + (ResetISR + 0x1)) + (NMI_Handler + 0x1)) + (HardFault_Handler + 0x1)) + (DEFINED (MemManage_Handler)?MemManage_Handler:0x0 + 0x1)) + (DEFINED (BusFault_Handler)?BusFault_Handler:0x0 + 0x1)) + (DEFINED (UsageFault_Handler)?UsageFault_Handler:0x0 + 0x1)))) - 0x00000000 _image_start = LOADADDR (.text) - 0x000046e8 _image_end = (LOADADDR (.data) + SIZEOF (.data)) - 0x000046e8 _image_size = (_image_end - _image_start) -OUTPUT(TP1_labyrinth_etu.axf elf32-littlearm) -LOAD linker stubs - -.debug_info 0x00000000 0xee33 - .debug_info 0x00000000 0x2bc ./src/cr_startup_lpc17.o - .debug_info 0x000002bc 0x37d ./src/labyrinth.o - .debug_info 0x00000639 0x32d ./src/tools.o - .debug_info 0x00000966 0xcb ./src/trace_mgt.o - .debug_info 0x00000a31 0x286 ./FreeRTOS_src/list.o - .debug_info 0x00000cb7 0xeca ./FreeRTOS_src/tasks.o - .debug_info 0x00001b81 0x1d7 ./FreeRTOS_portable/port.o - .debug_info 0x00001d58 0x362 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_info 0x000020ba 0x126 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_info 0x000021e0 0x127b /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_info 0x0000345b 0x5ab /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_info 0x00003a06 0x786 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_info 0x0000418c 0x993 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_info 0x00004b1f 0x836 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_info 0x00005355 0x347 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_info 0x0000569c 0x85 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_info 0x00005721 0x235 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_info 0x00005956 0x18b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .debug_info 0x00005ae1 0xfc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_info 0x00005bdd 0x369 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_info 0x00005f46 0x1e3 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_info 0x00006129 0x289 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_info 0x000063b2 0x520 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_info 0x000068d2 0x318 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_info 0x00006bea 0x209 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_info 0x00006df3 0x1569 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_info 0x0000835c 0x1e0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_info 0x0000853c 0x276 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_info 0x000087b2 0x197 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_info 0x00008949 0x339 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_info 0x00008c82 0x1280 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_info 0x00009f02 0x1d7 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_info 0x0000a0d9 0x1fd /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_info 0x0000a2d6 0x4bb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_info 0x0000a791 0xe1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_info 0x0000a872 0xd4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_info 0x0000a946 0x107 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_info 0x0000aa4d 0x23a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_info 0x0000ac87 0x24b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_info 0x0000aed2 0x15e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_info 0x0000b030 0x146 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_info 0x0000b176 0x44 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .debug_info 0x0000b1ba 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_info 0x0000b232 0x2131 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_info 0x0000d363 0x1ad0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_abbrev 0x00000000 0x4017 - .debug_abbrev 0x00000000 0x140 ./src/cr_startup_lpc17.o - .debug_abbrev 0x00000140 0x18d ./src/labyrinth.o - .debug_abbrev 0x000002cd 0x171 ./src/tools.o - .debug_abbrev 0x0000043e 0x94 ./src/trace_mgt.o - .debug_abbrev 0x000004d2 0xcd ./FreeRTOS_src/list.o - .debug_abbrev 0x0000059f 0x2b9 ./FreeRTOS_src/tasks.o - .debug_abbrev 0x00000858 0x142 ./FreeRTOS_portable/port.o - .debug_abbrev 0x0000099a 0x111 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_abbrev 0x00000aab 0xc2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_abbrev 0x00000b6d 0x274 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_abbrev 0x00000de1 0x13a /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_abbrev 0x00000f1b 0x1a2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_abbrev 0x000010bd 0x202 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_abbrev 0x000012bf 0x1b0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_abbrev 0x0000146f 0x10e /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_abbrev 0x0000157d 0x70 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_abbrev 0x000015ed 0x12f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_abbrev 0x0000171c 0xb5 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .debug_abbrev 0x000017d1 0xa8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_abbrev 0x00001879 0x152 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_abbrev 0x000019cb 0xf1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_abbrev 0x00001abc 0x126 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_abbrev 0x00001be2 0x284 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_abbrev 0x00001e66 0x155 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_abbrev 0x00001fbb 0x125 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_abbrev 0x000020e0 0x46c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_abbrev 0x0000254c 0x10c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_abbrev 0x00002658 0x11b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_abbrev 0x00002773 0xc2 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_abbrev 0x00002835 0x169 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_abbrev 0x0000299e 0x3ba /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_abbrev 0x00002d58 0xfb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_abbrev 0x00002e53 0xe1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_abbrev 0x00002f34 0x2b7 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_abbrev 0x000031eb 0xa7 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_abbrev 0x00003292 0xaf /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_abbrev 0x00003341 0xd3 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_abbrev 0x00003414 0x12c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_abbrev 0x00003540 0x119 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_abbrev 0x00003659 0x123 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_abbrev 0x0000377c 0x115 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_abbrev 0x00003891 0x44 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .debug_abbrev 0x000038d5 0x6b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_abbrev 0x00003940 0x378 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_abbrev 0x00003cb8 0x35f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_aranges 0x00000000 0xbc8 - .debug_aranges - 0x00000000 0x68 ./src/cr_startup_lpc17.o - .debug_aranges - 0x00000068 0x28 ./src/labyrinth.o - .debug_aranges - 0x00000090 0x30 ./src/tools.o - .debug_aranges - 0x000000c0 0x20 ./src/trace_mgt.o - .debug_aranges - 0x000000e0 0x40 ./FreeRTOS_src/list.o - .debug_aranges - 0x00000120 0x120 ./FreeRTOS_src/tasks.o - .debug_aranges - 0x00000240 0x70 ./FreeRTOS_portable/port.o - .debug_aranges - 0x000002b0 0x38 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_aranges - 0x000002e8 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_aranges - 0x00000310 0x110 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_aranges - 0x00000420 0x30 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_aranges - 0x00000450 0x40 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_aranges - 0x00000490 0x50 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_aranges - 0x000004e0 0x48 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_aranges - 0x00000528 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_aranges - 0x00000550 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_aranges - 0x00000570 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_aranges - 0x00000590 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .debug_aranges - 0x000005a8 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_aranges - 0x000005c8 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_aranges - 0x000005f0 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_aranges - 0x00000610 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_aranges - 0x00000630 0x40 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_aranges - 0x00000670 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_aranges - 0x00000690 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_aranges - 0x000006b0 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_aranges - 0x00000728 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_aranges - 0x00000748 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_aranges - 0x00000768 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_aranges - 0x00000788 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_aranges - 0x000007b0 0x70 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_aranges - 0x00000820 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_aranges - 0x00000848 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_aranges - 0x00000868 0x88 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_aranges - 0x000008f0 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_aranges - 0x00000910 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_aranges - 0x00000930 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_aranges - 0x00000950 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_aranges - 0x00000970 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_aranges - 0x00000990 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_aranges - 0x000009b0 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_aranges - 0x000009d0 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .debug_aranges - 0x000009e8 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_aranges - 0x00000a08 0xe0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_aranges - 0x00000ae8 0xe0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_ranges 0x00000000 0xed8 - .debug_ranges 0x00000000 0x58 ./src/cr_startup_lpc17.o - .debug_ranges 0x00000058 0x18 ./src/labyrinth.o - .debug_ranges 0x00000070 0x20 ./src/tools.o - .debug_ranges 0x00000090 0x10 ./src/trace_mgt.o - .debug_ranges 0x000000a0 0x30 ./FreeRTOS_src/list.o - .debug_ranges 0x000000d0 0x110 ./FreeRTOS_src/tasks.o - .debug_ranges 0x000001e0 0x60 ./FreeRTOS_portable/port.o - .debug_ranges 0x00000240 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_ranges 0x00000268 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_ranges 0x00000280 0x130 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_ranges 0x000003b0 0x20 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_ranges 0x000003d0 0x30 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_ranges 0x00000400 0x40 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_ranges 0x00000440 0x38 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_ranges 0x00000478 0x18 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_ranges 0x00000490 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_ranges 0x000004a0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_ranges 0x000004b0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_ranges 0x000004c0 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_ranges 0x000004f0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_ranges 0x00000500 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_ranges 0x00000510 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_ranges 0x00000558 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_ranges 0x00000568 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_ranges 0x00000590 0x120 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_ranges 0x000006b0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_ranges 0x000006c0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_ranges 0x000006d0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_ranges 0x000006e0 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_ranges 0x000006f8 0x248 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_ranges 0x00000940 0x18 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_ranges 0x00000958 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_ranges 0x00000968 0x78 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_ranges 0x000009e0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_ranges 0x000009f0 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_ranges 0x00000a00 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_ranges 0x00000a10 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_ranges 0x00000a38 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_ranges 0x00000a48 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_ranges 0x00000a58 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_ranges 0x00000a68 0x10 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_ranges 0x00000a78 0x270 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_ranges 0x00000ce8 0x1f0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_macro 0x00000000 0x5228 - .debug_macro 0x00000000 0x52 ./src/cr_startup_lpc17.o - .debug_macro 0x00000052 0xae4 ./src/cr_startup_lpc17.o - .debug_macro 0x00000b36 0x10 ./src/cr_startup_lpc17.o - .debug_macro 0x00000b46 0x12e ./src/cr_startup_lpc17.o - .debug_macro 0x00000c74 0x5b3 ./src/cr_startup_lpc17.o - .debug_macro 0x00001227 0x1fa ./src/labyrinth.o - .debug_macro 0x00001421 0xa0 ./src/labyrinth.o - .debug_macro 0x000014c1 0x22 ./src/labyrinth.o - .debug_macro 0x000014e3 0x22 ./src/labyrinth.o - .debug_macro 0x00001505 0xc4 ./src/labyrinth.o - .debug_macro 0x000015c9 0x46 ./src/labyrinth.o - .debug_macro 0x0000160f 0x150 ./src/labyrinth.o - .debug_macro 0x0000175f 0xa3 ./src/labyrinth.o - .debug_macro 0x00001802 0x12 ./src/labyrinth.o - .debug_macro 0x00001814 0x1f ./src/labyrinth.o - .debug_macro 0x00001833 0x177 ./src/labyrinth.o - .debug_macro 0x000019aa 0x49 ./src/labyrinth.o - .debug_macro 0x000019f3 0x57 ./src/labyrinth.o - .debug_macro 0x00001a4a 0x6a ./src/labyrinth.o - .debug_macro 0x00001ab4 0x62 ./src/labyrinth.o - .debug_macro 0x00001b16 0x1c ./src/labyrinth.o - .debug_macro 0x00001b32 0x2e ./src/labyrinth.o - .debug_macro 0x00001b60 0x18 ./src/labyrinth.o - .debug_macro 0x00001b78 0x7af ./src/labyrinth.o - .debug_macro 0x00002327 0x2c7 ./src/labyrinth.o - .debug_macro 0x000025ee 0x1c ./src/labyrinth.o - .debug_macro 0x0000260a 0x28 ./src/labyrinth.o - .debug_macro 0x00002632 0x1c ./src/labyrinth.o - .debug_macro 0x0000264e 0xc2 ./src/labyrinth.o - .debug_macro 0x00002710 0xd6 ./src/labyrinth.o - .debug_macro 0x000027e6 0x22 ./src/labyrinth.o - .debug_macro 0x00002808 0x10 ./src/labyrinth.o - .debug_macro 0x00002818 0xc0 ./src/tools.o - .debug_macro 0x000028d8 0xc4 ./src/tools.o - .debug_macro 0x0000299c 0x1c ./src/tools.o - .debug_macro 0x000029b8 0x135 ./src/trace_mgt.o - .debug_macro 0x00002aed 0x10 ./src/trace_mgt.o - .debug_macro 0x00002afd 0x150 ./src/trace_mgt.o - .debug_macro 0x00002c4d 0x2e ./src/trace_mgt.o - .debug_macro 0x00002c7b 0x9d ./FreeRTOS_src/list.o - .debug_macro 0x00002d18 0x28 ./FreeRTOS_src/list.o - .debug_macro 0x00002d40 0x130 ./FreeRTOS_src/tasks.o - .debug_macro 0x00002e70 0x61 ./FreeRTOS_src/tasks.o - .debug_macro 0x00002ed1 0x16 ./FreeRTOS_src/tasks.o - .debug_macro 0x00002ee7 0xda ./FreeRTOS_portable/port.o - .debug_macro 0x00002fc1 0xaf /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00003070 0x898 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00003908 0x10 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00003918 0x12d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00003a45 0x28 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00003a6d 0x5b2 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x0000401f 0x58 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00004077 0x46 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_macro 0x000040bd 0x108 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x000041c5 0x9a /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x0000425f 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00004281 0xc4 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00004345 0x1c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_macro 0x00004361 0x90 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x000043f1 0x22 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_macro 0x00004413 0xcf /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_macro 0x000044e2 0xa0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00004582 0x16 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_macro 0x00004598 0x8d /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_macro 0x00004625 0x12b /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00004750 0xad8 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_line 0x00000000 0xac00 - .debug_line 0x00000000 0x29a ./src/cr_startup_lpc17.o - .debug_line 0x0000029a 0x3bd ./src/labyrinth.o - .debug_line 0x00000657 0x67c ./src/tools.o - .debug_line 0x00000cd3 0x30c ./src/trace_mgt.o - .debug_line 0x00000fdf 0x332 ./FreeRTOS_src/list.o - .debug_line 0x00001311 0xb27 ./FreeRTOS_src/tasks.o - .debug_line 0x00001e38 0x367 ./FreeRTOS_portable/port.o - .debug_line 0x0000219f 0x289 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_line 0x00002428 0x196 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_line 0x000025be 0x7fc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_line 0x00002dba 0x24a /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_line 0x00003004 0x2f9 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_line 0x000032fd 0x2b7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_line 0x000035b4 0x358 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_line 0x0000390c 0x41e /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_line 0x00003d2a 0xc4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_line 0x00003dee 0x122 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_line 0x00003f10 0xea /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .debug_line 0x00003ffa 0x7b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_line 0x00004075 0x2e9 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_line 0x0000435e 0x11f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_line 0x0000447d 0x12d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_line 0x000045aa 0x37d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_line 0x00004927 0x10f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_line 0x00004a36 0xe1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_line 0x00004b17 0x109b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_line 0x00005bb2 0xbc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_line 0x00005c6e 0x232 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_line 0x00005ea0 0x10a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_line 0x00005faa 0x149 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_line 0x000060f3 0x108d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_line 0x00007180 0xec /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_line 0x0000726c 0xec /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_line 0x00007358 0x337 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_line 0x0000768f 0x109 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_line 0x00007798 0x59 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_line 0x000077f1 0xfb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_line 0x000078ec 0xfc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_line 0x000079e8 0x11c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_line 0x00007b04 0x113 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_line 0x00007c17 0xfb /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_line 0x00007d12 0x4e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .debug_line 0x00007d60 0x61 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_line 0x00007dc1 0x1b3e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_line 0x000098ff 0x1301 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_str 0x00000000 0x10c81 - .debug_str 0x00000000 0x10c81 ./src/cr_startup_lpc17.o - 0x4761 (size before relaxing) - .debug_str 0x00010c81 0xc30a ./src/labyrinth.o - .debug_str 0x00010c81 0x920c ./src/tools.o - .debug_str 0x00010c81 0xb23a ./src/trace_mgt.o - .debug_str 0x00010c81 0x4ed2 ./FreeRTOS_src/list.o - .debug_str 0x00010c81 0x668c ./FreeRTOS_src/tasks.o - .debug_str 0x00010c81 0x5404 ./FreeRTOS_portable/port.o - .debug_str 0x00010c81 0x83a7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_str 0x00010c81 0x3ca7 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_str 0x00010c81 0x8ffe /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_str 0x00010c81 0x80da /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_str 0x00010c81 0x83b3 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_str 0x00010c81 0x8474 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_str 0x00010c81 0x8278 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_str 0x00010c81 0x8a3b /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_str 0x00010c81 0x168 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_str 0x00010c81 0x242 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_str 0x00010c81 0x200 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .debug_str 0x00010c81 0x180 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_str 0x00010c81 0x277 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_str 0x00010c81 0x212 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_str 0x00010c81 0x243 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_str 0x00010c81 0x233 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_str 0x00010c81 0x247 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_str 0x00010c81 0x235 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_str 0x00010c81 0x4b0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_str 0x00010c81 0x205 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_str 0x00010c81 0x237 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_str 0x00010c81 0x214 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_str 0x00010c81 0x23d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_str 0x00010c81 0x407 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_str 0x00010c81 0x1d3 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_str 0x00010c81 0x233 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_str 0x00010c81 0x277 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_str 0x00010c81 0x17a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_str 0x00010c81 0x17f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_str 0x00010c81 0x1c1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_str 0x00010c81 0x228 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_str 0x00010c81 0x230 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_str 0x00010c81 0x167 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_str 0x00010c81 0x168 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_str 0x00010c81 0x114 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .debug_str 0x00010c81 0x173 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_str 0x00010c81 0x374 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_str 0x00010c81 0x361 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.comment 0x00000000 0xb2 - .comment 0x00000000 0xb2 ./src/cr_startup_lpc17.o - 0x45 (size before relaxing) - .comment 0x000000b2 0x45 ./src/labyrinth.o - .comment 0x000000b2 0x45 ./src/tools.o - .comment 0x000000b2 0x45 ./src/trace_mgt.o - .comment 0x000000b2 0x45 ./FreeRTOS_src/list.o - .comment 0x000000b2 0x45 ./FreeRTOS_src/tasks.o - .comment 0x000000b2 0x45 ./FreeRTOS_portable/port.o - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .comment 0x000000b2 0x6f /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .comment 0x000000b2 0x45 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .comment 0x000000b2 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.ARM.attributes - 0x00000000 0x2b - .ARM.attributes - 0x00000000 0x2d ./src/cr_startup_lpc17.o - .ARM.attributes - 0x0000002d 0x2d ./src/labyrinth.o - .ARM.attributes - 0x0000005a 0x2d ./src/tools.o - .ARM.attributes - 0x00000087 0x2d ./src/trace_mgt.o - .ARM.attributes - 0x000000b4 0x2d ./FreeRTOS_src/list.o - .ARM.attributes - 0x000000e1 0x2d ./FreeRTOS_src/tasks.o - .ARM.attributes - 0x0000010e 0x2d ./FreeRTOS_portable/port.o - .ARM.attributes - 0x0000013b 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .ARM.attributes - 0x0000016e 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .ARM.attributes - 0x000001a1 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .ARM.attributes - 0x000001d4 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .ARM.attributes - 0x00000207 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .ARM.attributes - 0x0000023a 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .ARM.attributes - 0x0000026d 0x33 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .ARM.attributes - 0x000002a0 0x2d /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .ARM.attributes - 0x000002cd 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .ARM.attributes - 0x000002fa 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .ARM.attributes - 0x00000327 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__ciob.o) - .ARM.attributes - 0x00000354 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_appexit.o) - .ARM.attributes - 0x0000036f 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .ARM.attributes - 0x0000039c 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .ARM.attributes - 0x000003c9 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .ARM.attributes - 0x000003f6 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .ARM.attributes - 0x00000423 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .ARM.attributes - 0x00000450 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .ARM.attributes - 0x0000047d 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .ARM.attributes - 0x000004aa 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .ARM.attributes - 0x000004d7 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .ARM.attributes - 0x00000504 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .ARM.attributes - 0x00000531 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .ARM.attributes - 0x0000055e 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .ARM.attributes - 0x0000058b 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .ARM.attributes - 0x000005b8 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .ARM.attributes - 0x000005e5 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .ARM.attributes - 0x00000612 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .ARM.attributes - 0x0000063f 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .ARM.attributes - 0x0000066c 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .ARM.attributes - 0x00000699 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .ARM.attributes - 0x000006c6 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .ARM.attributes - 0x000006f3 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .ARM.attributes - 0x00000720 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .ARM.attributes - 0x0000074d 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .ARM.attributes - 0x0000077a 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(errno.o) - .ARM.attributes - 0x000007a7 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .ARM.attributes - 0x000007d4 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .ARM.attributes - 0x00000801 0x2d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - .ARM.attributes - 0x0000082e 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) - .ARM.attributes - 0x00000849 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_close.o) - .ARM.attributes - 0x00000864 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_flen.o) - .ARM.attributes - 0x0000087f 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_istty.o) - .ARM.attributes - 0x0000089a 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_remove.o) - .ARM.attributes - 0x000008b5 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_seek.o) - .ARM.attributes - 0x000008d0 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_tmpnam.o) - .ARM.attributes - 0x000008eb 0x1b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(__sys_write.o) - -.debug_frame 0x00000000 0x2084 - .debug_frame 0x00000000 0x128 ./src/cr_startup_lpc17.o - .debug_frame 0x00000128 0x5c ./src/labyrinth.o - .debug_frame 0x00000184 0x8c ./src/tools.o - .debug_frame 0x00000210 0x34 ./src/trace_mgt.o - .debug_frame 0x00000244 0xd8 ./FreeRTOS_src/list.o - .debug_frame 0x0000031c 0x4b4 ./FreeRTOS_src/tasks.o - .debug_frame 0x000007d0 0x148 ./FreeRTOS_portable/port.o - .debug_frame 0x00000918 0xa0 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(accelerometer.o) - .debug_frame 0x000009b8 0x5c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(custom_rand.o) - .debug_frame 0x00000a14 0x48c /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(lcd.o) - .debug_frame 0x00000ea0 0x88 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(ssp.o) - .debug_frame 0x00000f28 0xcc /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(traces.o) - .debug_frame 0x00000ff4 0x108 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(uart.o) - .debug_frame 0x000010fc 0xf8 /home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug/libMyLab_lib.a(I2C.o) - .debug_frame 0x000011f4 0x38 /home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_frame 0x0000122c 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr__main.o) - .debug_frame 0x00001258 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_frame 0x00001288 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_frame 0x000012a8 0x44 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_frame 0x000012ec 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_frame 0x00001318 0x30 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_frame 0x00001348 0x90 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_frame 0x000013d8 0x38 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_frame 0x00001410 0x3c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_frame 0x0000144c 0x1f4 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_frame 0x00001640 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_frame 0x0000166c 0x34 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_frame 0x000016a0 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_frame 0x000016c0 0x58 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_frame 0x00001718 0x1cc /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_frame 0x000018e4 0x48 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_frame 0x0000192c 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_frame 0x00001958 0x144 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_frame 0x00001a9c 0x28 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_frame 0x00001ac4 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__init_alloc.o) - .debug_frame 0x00001ae4 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_frame 0x00001b10 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_frame 0x00001b3c 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_frame 0x00001b68 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_frame 0x00001b94 0x2c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_frame 0x00001bc0 0x20 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_frame 0x00001be0 0x298 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_frame 0x00001e78 0x20c /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) - -.debug_loc 0x00000000 0x9da9 - .debug_loc 0x00000000 0x45 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_semihost.a(_cr_assert.o) - .debug_loc 0x00000045 0x81 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) - .debug_loc 0x000000c6 0x18f /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_deferredlazyseek.o) - .debug_loc 0x00000255 0xfa /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fflush.o) - .debug_loc 0x0000034f 0x12b /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_writebuf.o) - .debug_loc 0x0000047a 0x8a8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(alloc.o) - .debug_loc 0x00000d22 0x73 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fclose.o) - .debug_loc 0x00000d95 0xae /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fflush.o) - .debug_loc 0x00000e43 0x1359 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fpprintf.o) - .debug_loc 0x0000219c 0x75 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fputs.o) - .debug_loc 0x00002211 0xee /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(fseek.o) - .debug_loc 0x000022ff 0xb7 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(ftell.o) - .debug_loc 0x000023b6 0x68 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(initio.o) - .debug_loc 0x0000241e 0x1b0d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(printf.o) - .debug_loc 0x00003f2b 0xcd /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(remove.o) - .debug_loc 0x00003ff8 0x11e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(setvbuf.o) - .debug_loc 0x00004116 0x2cf /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(stdlib.o) - .debug_loc 0x000043e5 0xe1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(strlen.o) - .debug_loc 0x000044c6 0x62 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_sbrk.o) - .debug_loc 0x00004528 0x73 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_do_fflush.o) - .debug_loc 0x0000459b 0x12d /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_fdopen.o) - .debug_loc 0x000046c8 0xa1 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_frexpl.o) - .debug_loc 0x00004769 0xa0 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_ldexpl.o) - .debug_loc 0x00004809 0x4e /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(_cr_check_heap.o) - .debug_loc 0x00004857 0x2bf8 /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(double.o) - .debug_loc 0x0000744f 0x295a /usr/local/mcuxpressoide-11.10.0_3148/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.10.0.202311280810/tools/bin/../lib/gcc/arm-none-eabi/13.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(float.o) diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug.ld deleted file mode 100644 index 1618dd7..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug.ld +++ /dev/null @@ -1,193 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * Copyright 2008-2013 Code Red Technologies Ltd, - * Copyright 2013-2025 NXP - * Generated linker script file for LPC1769 - * Created from linkscript.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.30 - * MCUXpresso IDE v11.10.0 [Build 3148] [2024-07-03] on Mar 19, 2025, 10:46:33 AM - */ - -INCLUDE "TP1_labyrinth_etu_Debug_library.ld" -INCLUDE "TP1_labyrinth_etu_Debug_memory.ld" - -ENTRY(ResetISR) - -SECTIONS -{ - /* MAIN TEXT SECTION */ - .text : ALIGN(4) - { - FILL(0xff) - __vectors_start__ = ABSOLUTE(.) ; - KEEP(*(.isr_vector)) - /* Global Section Table */ - . = ALIGN(4) ; - __section_table_start = .; - __data_section_table = .; - LONG(LOADADDR(.data)); - LONG( ADDR(.data)); - LONG( SIZEOF(.data)); - LONG(LOADADDR(.data_RAM2)); - LONG( ADDR(.data_RAM2)); - LONG( SIZEOF(.data_RAM2)); - __data_section_table_end = .; - __bss_section_table = .; - LONG( ADDR(.bss)); - LONG( SIZEOF(.bss)); - LONG( ADDR(.bss_RAM2)); - LONG( SIZEOF(.bss_RAM2)); - __bss_section_table_end = .; - __section_table_end = . ; - /* End of Global Section Table */ - - *(.after_vectors*) - - *(.text*) - *(.rodata .rodata.* .constdata .constdata.*) - . = ALIGN(4); - } > MFlash512 - /* - * for exception handling/unwind - some Newlib functions (in common - * with C++ and STDC++) use this. - */ - .ARM.extab : ALIGN(4) - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > MFlash512 - - .ARM.exidx : ALIGN(4) - { - __exidx_start = .; - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - __exidx_end = .; - } > MFlash512 - - _etext = .; - - /* DATA section for RamAHB32 */ - - .data_RAM2 : ALIGN(4) - { - FILL(0xff) - PROVIDE(__start_data_RAM2 = .) ; - PROVIDE(__start_data_RamAHB32 = .) ; - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2) - *(.data.$RamAHB32) - *(.data.$RAM2.*) - *(.data.$RamAHB32.*) - . = ALIGN(4) ; - PROVIDE(__end_data_RAM2 = .) ; - PROVIDE(__end_data_RamAHB32 = .) ; - } > RamAHB32 AT>MFlash512 - - /* MAIN DATA SECTION */ - .uninit_RESERVED (NOLOAD) : ALIGN(4) - { - _start_uninit_RESERVED = .; - KEEP(*(.bss.$RESERVED*)) - . = ALIGN(4) ; - _end_uninit_RESERVED = .; - } > RamLoc32 AT> RamLoc32 - - /* Main DATA section (RamLoc32) */ - .data : ALIGN(4) - { - FILL(0xff) - _data = . ; - PROVIDE(__start_data_RAM = .) ; - PROVIDE(__start_data_RamLoc32 = .) ; - *(vtable) - *(.ramfunc*) - KEEP(*(CodeQuickAccess)) - KEEP(*(DataQuickAccess)) - *(RamFunction) - *(.data*) - . = ALIGN(4) ; - _edata = . ; - PROVIDE(__end_data_RAM = .) ; - PROVIDE(__end_data_RamLoc32 = .) ; - } > RamLoc32 AT>MFlash512 - - /* BSS section for RamAHB32 */ - .bss_RAM2 (NOLOAD) : ALIGN(4) - { - PROVIDE(__start_bss_RAM2 = .) ; - PROVIDE(__start_bss_RamAHB32 = .) ; - *(.bss.$RAM2) - *(.bss.$RamAHB32) - *(.bss.$RAM2.*) - *(.bss.$RamAHB32.*) - . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */ - PROVIDE(__end_bss_RAM2 = .) ; - PROVIDE(__end_bss_RamAHB32 = .) ; - } > RamAHB32 AT> RamAHB32 - - /* MAIN BSS SECTION */ - .bss (NOLOAD) : ALIGN(4) - { - _bss = .; - PROVIDE(__start_bss_RAM = .) ; - PROVIDE(__start_bss_RamLoc32 = .) ; - *(.bss*) - *(COMMON) - . = ALIGN(4) ; - _ebss = .; - PROVIDE(__end_bss_RAM = .) ; - PROVIDE(__end_bss_RamLoc32 = .) ; - PROVIDE(end = .); - } > RamLoc32 AT> RamLoc32 - - /* NOINIT section for RamAHB32 */ - .noinit_RAM2 (NOLOAD) : ALIGN(4) - { - PROVIDE(__start_noinit_RAM2 = .) ; - PROVIDE(__start_noinit_RamAHB32 = .) ; - *(.noinit.$RAM2) - *(.noinit.$RamAHB32) - *(.noinit.$RAM2.*) - *(.noinit.$RamAHB32.*) - . = ALIGN(4) ; - PROVIDE(__end_noinit_RAM2 = .) ; - PROVIDE(__end_noinit_RamAHB32 = .) ; - } > RamAHB32 AT> RamAHB32 - - /* DEFAULT NOINIT SECTION */ - .noinit (NOLOAD): ALIGN(4) - { - _noinit = .; - PROVIDE(__start_noinit_RAM = .) ; - PROVIDE(__start_noinit_RamLoc32 = .) ; - *(.noinit*) - . = ALIGN(4) ; - _end_noinit = .; - PROVIDE(__end_noinit_RAM = .) ; - PROVIDE(__end_noinit_RamLoc32 = .) ; - } > RamLoc32 AT> RamLoc32 - - PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .); - - PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc32 - 0); - - /* ## Create checksum value (used in startup) ## */ - PROVIDE(__valid_user_code_checksum = 0 - - (_vStackTop - + (ResetISR + 1) - + (NMI_Handler + 1) - + (HardFault_Handler + 1) - + (( DEFINED(MemManage_Handler) ? MemManage_Handler : 0 ) + 1) /* MemManage_Handler may not be defined */ - + (( DEFINED(BusFault_Handler) ? BusFault_Handler : 0 ) + 1) /* BusFault_Handler may not be defined */ - + (( DEFINED(UsageFault_Handler) ? UsageFault_Handler : 0 ) + 1) /* UsageFault_Handler may not be defined */ - ) ); - - /* Provide basic symbols giving location and size of main text - * block, including initial values of RW data sections. Note that - * these will need extending to give a complete picture with - * complex images (e.g multiple Flash banks). - */ - _image_start = LOADADDR(.text); - _image_end = LOADADDR(.data) + SIZEOF(.data); - _image_size = _image_end - _image_start; -} \ No newline at end of file diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_library.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_library.ld deleted file mode 100644 index fb882f0..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_library.ld +++ /dev/null @@ -1,16 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * Copyright 2008-2013 Code Red Technologies Ltd, - * Copyright 2013-2025 NXP - * Generated linker script file for LPC1769 - * Created from library.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.30 - * MCUXpresso IDE v11.10.0 [Build 3148] [2024-07-03] on Mar 19, 2025, 10:46:33 AM - */ - -GROUP ( - "libcr_semihost.a" - "libcr_c.a" - "libcr_eabihelpers.a" - "libgcc.a" -) diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_memory.ld b/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_memory.ld deleted file mode 100644 index 6220ba1..0000000 --- a/TP1_labyrinth_etu/Debug/TP1_labyrinth_etu_Debug_memory.ld +++ /dev/null @@ -1,31 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * Copyright 2008-2013 Code Red Technologies Ltd, - * Copyright 2013-2025 NXP - * Generated linker script file for LPC1769 - * Created from memory.ldt by FMCreateLinkMemory - * Using Freemarker v2.3.30 - * MCUXpresso IDE v11.10.0 [Build 3148] [2024-07-03] on Mar 19, 2025, 10:46:33 AM - */ - -MEMORY -{ - /* Define each memory region */ - MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512K bytes (alias Flash) */ - RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32K bytes (alias RAM) */ - RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32K bytes (alias RAM2) */ -} - - /* Define a symbol for the top of each memory region */ - __base_MFlash512 = 0x0 ; /* MFlash512 */ - __base_Flash = 0x0 ; /* Flash */ - __top_MFlash512 = 0x0 + 0x80000 ; /* 512K bytes */ - __top_Flash = 0x0 + 0x80000 ; /* 512K bytes */ - __base_RamLoc32 = 0x10000000 ; /* RamLoc32 */ - __base_RAM = 0x10000000 ; /* RAM */ - __top_RamLoc32 = 0x10000000 + 0x8000 ; /* 32K bytes */ - __top_RAM = 0x10000000 + 0x8000 ; /* 32K bytes */ - __base_RamAHB32 = 0x2007c000 ; /* RamAHB32 */ - __base_RAM2 = 0x2007c000 ; /* RAM2 */ - __top_RamAHB32 = 0x2007c000 + 0x8000 ; /* 32K bytes */ - __top_RAM2 = 0x2007c000 + 0x8000 ; /* 32K bytes */ diff --git a/TP1_labyrinth_etu/Debug/TP1_labyrinth_ref.axf b/TP1_labyrinth_etu/Debug/TP1_labyrinth_ref.axf deleted file mode 100644 index 85e71fb402db0cf5f141bf8acfab334b3717f81b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319412 zcmeFadwf$>x<0=4PST|Jv;iz>fwbXLD3?M(f#49*vgt)F7jZnTGo~$<glnYe6rwhO zGlM#F4#(<@wmPDY4kM02g&CnTL2)i;)Hw;@e4vGyAWEPekGmIa+O*B@dG}6AQO}w0 zAHP3$KkU8NUYB>h>sjx5*Sp@ecBo%^hrn?hi~aE|m(km1+~(q0bV1D+&opzHiK&q` zhK-ieS@cfjF6@#o4ZR?q%CnQWpVXQtZ7*Kwilg{gI*8&=zh*aMZy-q5$n--z&kpfS zPZwqMRoqCYcjZq(KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3 zKtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtVu3KtbUDX9PS< zznNp~b6g#`I&t;l8pQSWzZGW2RJ<HJV<KalamC~P>(}}D-;Dcup8xAT?OSNZ@?V?s zztdi`TjEXs2FhR9h44wOX)hj!c&7JNFt!)(l*4o6@k8vbko}l_r@h4yt_nL^s+ieb zl@K`YG>mJh3OmP+>#It480~JSy1-qv)9H3J+Qc)=JMp#?g6Cb=GS878f<m2rf!*y0 z+nKq=t__48#&P|2mSY4>bwP{$xWj@{-6%CGR_f?uC^fb$Y&S%6XF6K!a=A>0dpKmV zFLdm1yyJ-Uz8(oXQc4?a!86IjB}V33;HX2ccaTeiTwk0~iHnC+;=!Sz;74fZXSjN# z_OiEzf}SJ)`p&%19%XMOm1R0uUV<;7EX$ElcCRD8>^X<7tYU+<tZBpkWm=?`e-+tg zv}?+AIj2I_Y?L~21Q>ffyp^zKCsVDSBYTDss&HByIsK|`mB^`B-Y73;X6Cl$3?XS4 zm)+64nz9TBGqao>4o<8LF|UqtoOlN`4;^hhqz2+{hh?p0bEYG_M%$UCBD5>)jrLZ% z5k2_h(0B8Xmu1%NK|O8FEKl&U?B5kfdXGg^0?S+AV<wgOz0i>|t^sv4pbfPwhh<aj zyM1rn6q_K$9_~AMQ|u@y_O-s(Zi*c*#WwZ5T*ex5%`cUjvR^9Z#io8<*k5L}?=NQJ zv*BmTxE!O46W<7{gckeH!6(Zz`+gTH%73o(<*>@!q-$z63ffMcDow}`IPuwjxit-? zl-J-&4p82I|JJ;_`yWS}S>6|Z%Vuq7zIxoa)Q?j?c;>2#J%-D&F+*Tt7U~V#-BNfA z!j>wQ{Q!`eE+I47_YnG2U7+nu;-5m9J-8k~O#ddMeJh>|H=ll@ao1)kl>SI#?FNJ* zIjyx^w%){xrD*9owA7UIdUj2*N_=@Ryou$heBn)8UYsu_K>d^<@Zw)XcLeO{U%YeF z$4vYpQW)UH+&-0XsyhXF;>35soBS*n8Na$rBaQ`!Nr=l9C}t&M4h_e|i9E`Nt9UVP z1dYZhjm9vQC_;(ep^-F}Am-mk&<KQpM|I1_ekWlcC+bkXrKV*gN^|u76y8~0vae+$ zmorM3Q$lfjr8v&d%vr+a=A?j}HeE{l`AumoF9{`Mv^L3UzU(p<$S!NC32$7uL9X@V zezXMdv7FzPa?bXJrCLWzl<&NWa(>`lj0@|@cvH`2#`Ieln~2Mb>xa;PCen4dPSSWp z^2Z;2^w9?h(^z6GV8ykVvHd4;S>-xjmFk#(Qys+p4W5#t+&6*y=gPu0kT&!h6Mg;f ztZCV#%iDO4dwFHZEbfS7>=LdfTvN1in4YnV;w>AGZ<JfU94)uhxHtAk-;43?u5kcU zLi%_8?pMxSV`lW(V5}G8#5nXBp+`Ah>)#&D@yKuvjd&eB9Ija!rSf$D#%P|6Bl28E zo*0!q{Z-K%6(e$-mZ;=JsXWkM5zSLPBG1VYRP6mLqB(9Gk>f3i3iHZi@gB&kyGkC5 z%Mos=>UX%EjW)G^p|b@~CjQA2ax8HEJY>x`3e3!lQ-|uD$D;4Q3)%8{(KLjys?v6j z8Xm81XE5*Ki!IK#uRm8`*T%97FuHFC4=itrZ?-g+S2nlS&O(UB`HgbZq%@;F7f*Sd zPnJS7&gJo45#ojH==e5ad^d-~oA`$D!#Xff%jN9PPJkvD8!?WEWjVi>VpAfcCGE$& zhU`(`s%wC_3i;Ea858?BF^4d)bCUKh36PwA^wB>TN1tAjPm)uTb4ivV(|16|@54p% zY(hMPe6#Ev(EdQ8J=tgaMmsYRLpp0Lo}|}qky=T5ZL}1MwU-k=jqrj#+TK*OcVU=x zZ}PY3UM7AJ(T$jI>U(zoCh2qL9m#8K+<A`v2=f;+apFIRc+nT;#CEB7l6*PCn8oHJ zUfe#!ndbyXW%DK`?ik<&BlscCSsv%-%##AJR_s}UoeqQ0#+r;x%us49VrCWQH69n& zfEl*IAoS;?l%xRVQ_z209_QoCx`5lk6}T~rs`LJFkwKSo<_tleWtsP3U`qNSmt*>8 z5&kvw$iAcUJYFt7yrRw#C$2$nu{^zx!q+egW!<b2R|9!DtP$@=ePaXV;^HNgYx;;1 zz7Zw<I--Pt5)7@9ZGwF#4goD5vpqA1?KDrf*cs%je!vYYNY%+!ah5iQ))yHaVMiO= z;YcjXgsl~S@#fS_$Fo^vmyIluff6I%D~2glehY<4$8+DH@NZwEAoK9B!z}R-=O>Pc zH*l1tM(sB^jnzwe@003%#F1B2>3H5Im!kMe2VWqUlHcBSu%~(P>47l%Eo_fbBT4Xn zwd1YWd!=MYR%G?tV|5!k`P9$+%&Uh5bqIL=B8q3rI=92<a66hDV+FmS5&sjqDMN_# zCX$YVTvQ;fEt<9`nl^~uu~ZEpCDTE9ujBo)(OtC&c5$T?^G_)Tma}80BmLn9o2s>C zOQEP%wXB0~b7Vezs`E=#qfK>@VmZWGoFnt`h*=0)$anq4TCO0LQ-}DLEs%L%%a->p zwK(^*U*7g|$K`EqC(C=sTWM>sz2h~2dyV*WaOz&inST}9l;3p8?Z`r{FF1aOH%g^8 zjumnd>cW`Yv4!H6g5$A*2_b#7l}{js5V#LzFAkTj9WHxzxa^eSvRw!fBAf6WiO?Fn z-;7YD6w^{gyvHnH%es~kZ{fA{RtgzzZ6++v7+aeyTiTipMdz9=&PFM&32)Ce$8s2o z<Q!*=7jDYY*euz`&;U8GyBx43e-+x2Z-5QCCBKqsJ6*h?s33IrB9^BHvV|hyoFb)i z1(Xx{OvJ%h!LsE;V<l^}UBb))-dbZde>-nyjQ@(aGsc^FGyY57NH+czZ-nU$+-}B; zY7B4wI&NRbi*kIOw~zY%6>cQS-_Bcja|}0$w-LCF?8|TC?VEl1ZM;4DFL|S}_pf-P zv1RbnD4~AegnpODiwH>{E7Wb#h?^m`EU&)jo;RVLy)76yE=iw6BA%nPW>X0XLihoL z(Bc_eYAnliJmnZ$(#8^tD(qwMHl}oSHXka`8xS^>wlPD|@x2uuJ>Dv^Qc4o+DN<bj zjtW;I;@X<yOAU5inGx$v(&ie!4zur$2xn4@6_MClka?K(&k0QbXUtO{;rSWnDVY~q z%a!+Bf_1cDzyOP*!k$*favJSp0&<P1s4=x<A!f|Pq6VyRcH>Hr>eZoMi=fM<Rm#r? zwBSH3aqy|16Ib+o6{I?;E~=C2j;(Fom`QXzbSAV$xfq$#h^HLWIvg@qxgE4hW!~Y{ zZggcV#aE4t|Kae8xe{K5Fm$m+qD{|6yjMCFO3#H-EZr^8w^Rcm3cZe6hJ6jg9tsOm zTi}y;yEC#_<wss;*q#({J9L;&c+5|7U6sgn9H@VFI##bGTA#(yKV0j-u8(Gfosa{< zq6wju60cMz)wB~e5D$%*{RlN6gE<4-kB1jzB=?yAW&aBKWsooLF5exnh3<&Vud-mY zFY~#91s_&*)2tYBFmW-gHjC3}w>UGAd#(>*hug8h!6A>a$l?T6PDn!y#Y3CojnX;G zjU26r+v#XUj)e~68jF*9v?BU!#8Y2Dnx2bToD-$cz>vl1uHpmpolJZ=;&x^T8Irfc zb966wm%U3CvS6w>abYOzXxtcfv~6s(jXAy0am+zHC-wo84J<F-7j_U$CicK4f~5wz z8y(`r*&)t+4|)o#X~awmF>`q!jMm5bVZlo)ujzxFL_aIU#85wnbrC3TqMqhqhp?QA zHDO27i1)@dlxN{MDo?8~CT2@k=r}*|^Q>g4rGXoL!A^&q?jE3&X?;xm8`fnk?^!?A zCy{4@6gvU2ANK!;6dsH4AE3=M1k?Y50uz4+KULF4mNy4Aw87^lqwu$o1uZmy-=>Wu z2aPq52(&U&;)8f}N~jo6^Aiz0B=)$om89t=<i3kMWGOJQF2cm8Vb^{)iX0Pv8e!(; z!^r6+<o;uTkYi#!a#!}F4)FGWBS(1%Ieiql$D|s^OUPY;UCZ*)rGAVd_xCVi^i%ZA z0tvbLo=4we;?&4a39ns<pV7Zv3cC@WauassCzK@!SiqaI5c1CQ#sZ^fF>*3D8HHmG zUhIHXNFxdFMF;^CdaJ}3%Q=Jbgm9yM9Pm0fqKqG9TBY|&8<ip?rFWFlN@Jhs-AF^9 zWPwhNY)N`f$hubcd}e~D3~<(pk(3D@5VFf}#DnS#G!jxM?!25sm=CV^4a9VLj207L zA4(6nr5-hao;((|M7<46Gz>tOY^oUVb~LV`5X-xIf###A)?LHI=ZBcMSE50ZLo{f# zLSGEi=nR9tM56*UD!)df0yK6G-QbJx$Ld4;{t)Ve#3n_3mhkn8>xROxdC9IOG-5eR zkh5{4TN>dbbC=(g`w3X#)UOu1K?r-odlyI^xfciCscHe=5BXZ0#*N{<s!mTKXThqj z2)fT{7PTsORd_FJaBn=m;h5tc=$n_q3mtuqI)q*v<OP(nhcOy>UwFfDgqg?>%`MBs zilG2ATLD7QG5*=5Elz`dCdKEaVk|X>lL9lOG@YNk0BswNZ)mjfXQoK`TAZyL$P<8m zJm2DM+h7JIGu~U9VTXsTCR$;01rrcUImeI4nHh~U2-JcmmVvct3;gJ`-iY-6Bs%U+ z4f0qaMhe34wsU!jewv9{p4La+WtkK1JQJT93`4KV8ijceB*Kr6`S%?>58?U<*AZN2 zX->Xr#$e(DA;=`=2t$zt^M}!qDRG!|UW$d6#c*2k03eidp2HlI2>C;P^23}Vdx1in zl;TF%h@AkIr}L4WqL#G(j|WKa|0K-B(ohIvh*suITsX+Q@+|NM_#$4T>;4gIbMiei zbAL`!NfJC3*N4cbO$d~Wxy;j@wpT~q61x_*3-#pn;nBjpA=o;fkH;Dvw23}>^vP1; z3RJ+HdF8zc=6x4w^17Y;1WXJM<WnxoOyrV#e7S!*Vp!fCK4!Mqrv#>zwK*<0)SVg7 zjgj851Lkq`96j*qhKa}rsW^XmLk>!Rx*^u9==q|YaWqFndS4EIx*-es+8{sN84eW5 z`eS)#{29_S(H9qBqBS%MZ=A&dI_Xk;kKclpt9+>xk68`<U{8v+`<VeI9>%zjc?76U z)c+1#u|6k!PvZRpTu~cP{NaEG)Tq@@Nu^`H4GAx4v|6RQxA_-Stp&G(n?+Jgw%>wh z*iQEah+R+`b{OpQrChh+okkS3O6{LpMz(>`t_zSqt&Qd~*jJSf!gp$!(LvZY+LoP} zGF&1zTH^LV&P^rU_HlTZtfKQ1O5Lb$dY~mLVfTbv98DP2Sfe>IB$>MtF|8X2TWM4R zZ^Dw|V!fiLv4-;USo>T5i6HIea0Q9T7YW96IAKY6*m14F^=Dk~z~>Xgl`xg@ybYyE z?r)W3vMMl-s98v>%t1Tnl*H;K{|n3e(l-OKvA8@)h#Rt9DftvC5UOyH)k&Vtk+GG) zFB=p|qcli9Pg$Ex^N~zN;CZL9TQQ#eUyZgnAB|h=?!a1)^uF6ik|dX+5NE+G=1Y#o zaZ;Yw`)EBO=fUa%<0K{%gagS=tlcC}M}WgeQu}4izCe=I3?NE7ZFl#lfR?NQe$;P~ zY-+8a=o98TjOVO=ZGdzbX&%`!-Psqzo#;Oe+Bam8#(qqG<UX$Kr&hDPasHSbtn8;A zrdG##ebm=_J?*AmZ|l=QhKOU*FK7Fxw6wmGv^%UGI|ol2+2gTUjBtoyK;ui&ThUcY z9C{S`6MKF1tN?nkbqw>8+>C6?0*typ0F_J$7aqGKVf)koX<wOp9p>c<2l-o}QO*%3 z#z2}xx6*OiNaY%Bsi%{pF=vbm9qCfM(N5U^7FHbbPUV>RO8*W1hxvd$R7sM0Ll@rA z4K$zE!P0W{M|!V>LP2@%j@jv9$J~OXoMXU5E#4mr!*<>iT5NK|Ps*KFLobCLSQ}J_ zqkTUPmb=_v83^@DYp_$D8b0i3#CoRRQBfW1^Qc}T%_jM4<vB4OV}s<k6|+>#AN%F` zWb~ImMEAdjsP8_M?tcy?BK(I?VwtAYXit#tH)NRRzWL~fJ8)6oJ&cQFEH<{~`ei+w z>x=Y$J|OGnn2qALM|!V8Q<8Pb#4CNNWi%cwSXs(aZs?OVh$R6s7l)qXEE<HEc)4#r ztlQe*J=%TIx*x;y04}-SIy<fXcS3GxbdsKnKTSO@k0M!1y&lpBsLx}gh^&PDA$p_y z{AsPE7h^3Z*(8}Gy+v&#y(RagN?2eIdx}i3x1%%ic%KFBf^T&%tPog(GssF0SkONP zT4TVj(@56)DXgr*cJdTw!1`)pM&Z?LPW%p51hEkkYmFPFh|=q!I<)>*!>uQO$P=>7 zh*d?Tch0~v@DJ<QFO)4quPw!_R)KqY&$G4)d!aPPEh!`GPL6Rqzk^&0CE2CENb%{- zMgjAIq(N1%0BIg@JIEH)N&b75cMsm*zW!|a%F{E-EY&pUxU1Cx_XbO~djo~t8!9CP zRp;rQ<#qbq8z$kDz(St|@A@3*rz-abtcEwhy4gUw`HWGYvywH~a?bDEKy|}%lHxHo zv3_=MpnkMC$zPCG)`FF9ixZv&Sgx7S@%`wlug<k#Rc(Q_)Z!$YDFMAoT%0kIhb7W` zG)&f9u4Fj}z6(7=7y9rVp6^QiD6jh64zk&3=Spv`v@LWJCl+`RBE3Hfhf!CHT@UQ| zfEzUvhE)G?seU)=4@>7ZFeWi(D;y-Vh9Z*LNbiH;n03ayRJT;8<R^)(wbT~Ui{+vR zryDTV@pfFICx^q5CnxL}h4`J(c#~8jLx}lZ;>yN4bdEz;#Z*ss{9f$lN;chHVseUW z8Obj5GOxOrIhe!Kt=n7uTlNo%VNCZ03wUt$g6!b<(!!oPl>s(jrX#MjP^>GY5w|_0 zmgFYV`wwWs46Hs(D07l<lk^_AUP-f?Yz3-`9^zwG<+s_1v9j31!noE(M>u&KVtmJ_ zF)!u)vOC_Bgg!N06I1o}8P{~y81+bRkapXpww}1EvyQ~zM!Rq5!W-r04VR0JaEv9% zt|e`!Dbq^6Gr3Kp0xU4$B`wqA85{Fa|KkHR!(j#F-ztt$B?ZDeEVV5=+_iDid4nXL zH!sA9K8V#|Y(#&C{*Tds-gtm){#g0Z&_@}L{&AdCY9C6GRKO1MYY~rF2T|*f#>Xf! zuS}EtqGWeZEoC?v!ioQm^AS^EchG7|u3@xlaUh&ER!B8PdQU{^?BTi+aPFp5-&S$7 zDnG!oCm`*o@M+09fMsXn{fEQv-_17R{gL7K&$1`t{lVdPQ}!ghZytVU*^}|UcKF>5 z%_dtx9%CGn`Ig5Xok5|MN27;4Zw8F9w&vV|bJ$UUrxPP_EVOe?)C<SK%T|OOn87d# zHF;MrT6P+n-8(b+%w|JjCQkUM#lOJ!Q7-;;35B18e~GkOg}nv&!Z+pnE%NOVSz#>i zgVDT3yTuKf?vXV2kDyr<&DRJ|+pq^tvR%kt%qUHFWR$E3<>+rgXms)NP>v~~$WXE* zWHzOj;;cfx8@i07KNZqXvl9BCHL2`YAV4$F$Wg(!s-<|s?uHHY@b_RtVr<mmDa%tG z_OipfFq=Hy|9HAoQ}}UsDR+e*pO@EjKDjKV^i=4aDX|nii`C98s3}pRYwOb2hIe7^ ziy*&+^0U0&=nkIe1l952_y56BJyfUcgN9^2pey-#pEkcTzJCWVPT)Bc>*u?ueIqQj zOEg|cF3ZLJg=a#6#WcUG#FLm+w7v;6>$oW8Bu;Z(okgKkDMWc74SBgfxm?C<w|$hv zH?8DYUaBu0+918e?N|{iV0t{sw_fQu)t#W?V1Mpg=8jr7Jgtr~CP2sLcDx_Tm>nDK zzl2YHKd!47kHy&Amobc4Wr?yc!cnQGy#Wj6GudbOW++RNe_HF^7=J|LpST=EC+h!B z6v8gDsL7V#E;93sKp1DGbUqfy_rfY2J}cG>ok!T@&JM#S=PZSy)ut~AOD(Fv=$Ch2 z<#u3C8tn+99l5jPNGH4EuvT0dD!^`IY#ty!sBI&8SrBc1VUMS_p_*t|9A~P@_J|Kq z?Uftl6LMPk5#{>czP^7}=Na;K-SF%)uiQ53dx?)7!}JQV>+%0ckLrU>LR=JPZfwF> zjd2e8M}GoYiS+?aH&*|q^o_DJp%3y4MNi@Tc)nitdTFEmK<NSa4a{Pys!-IZ&QR+L z%X`XgMk!PW8DiOMphak=<}9QmSYDrmGY_d>=x9NoXf9G4Ea>4?Rcb=P)*^+8R$*7_ zHe(fq(sNoRn#Em<cw_aq(_EBelv-2XlfR8>F7IJW7^K9C+0tE=6rgZ5c5}nk;SH)D zR!FiR(_L?0_e}U731=R;$|+Zs3ZYVju&eDfs*gF#zY=Q`t%kzQu%USW#<G^`MEI0P zrmRN_=U<1E7OdNizVaUH3aT|SBy+$aoE_spG|}kuf0F~f*<B4E3TUhXJ$U}{uEsmj zNP&GvCnqDlv?m{~?%!b9V6c9T&f<ScEkP@>1JClt(CD=hij@x9eP2aLO7CYvY&K-4 z=6yUVeKdB<RMZE+yAd8mmB^#KS{nV>JCXYbJ?z=mDD_Ht&#rC8HI%=+XUVn-DP--6 zTiLjVc%6h^U+7q=PZM@J`7qbD!;w&Af<7!T$?@Dmo5*aL(fvZVb8IPJz_M-FFLXP{ zAlwG;Az95agt)xFou|4|p+9xm6iP-YNeXe0HN6yK2xVkb{kZ`;hssX!Rt-0L`M&#@ zNj#}#q+{;I<#rw)!CN1An-b-1lC&!+*PJtgCwZ3R@-9hSWTNgYsYWA0reQ874s($! zg>q;V<Pf)e5&BHhu5@}fs%dZZgQ!wP`$3A!l==#GpEqB!mr0M*;Ue28p{&xW!bqeu zy3nH-gDO#vp6c_f;b-#LTCuAb^94%hqdYpC$Gxc>=9O=jYy7rylFy8EO{Di?gzPFh zc}AWUCZ2(BQuc$B&LDq@obNYZ%jf-;d@;K%(%UTMCToo-^AhFPhD*feRII!b!nJNk zOYL!Y*e&}V&qqeoAJzAyO=(w?^e6TQdUkHZE@2ne<+h%4H|bE=+B6<tiOj)05J|)R zg-9Llt&#u6{pS%Hxt_=#+#iYL<GwTU1@2Eq*5JN9LfYYhNILFYBD-+k7`cl3!;v52 zz7~7dq-%EIet+ac++C3cxc^&ZI_~#KlvhROBD_38`sU6^FYe!um~dYfX~+FuDbEt= z{+-Bsh$)vioFDlE!X;AKIg#5Do)!5M?$*dj+^0rv#eHE!hr2nl5cj!})wqv~9L9a7 zMD3QyID|(<evA90NCNIDk(Y5#j7-5@C*{#Zeuwawh!*$AP#5lciDusrS&<1+>$-;m z2&*Gxr+zVH#Jzne1NYz%(fn+PY}-piak&3|XesV(LqEp-+z_GtiInH`5YhkdAwu9I zDg0kU8ifBiM97~Sx`g{#DSTpR62ixah{NAWd5#R}5k5Q=kNcZL)Y5}P)OQDl?!^67 zDbLFiKQ9g?Bj)*``M5tP<^0(Y@!T*(J^o9n)TN=R2>(Ljtqr?Co)aX`?5(s?vJIgj z3k>$uQu0#M{0FP8lzbwHHyiBnrSTYz6kb)O!TR1a2cs`r2QLI4rgllxa7K~FA?*zF zZymF{?HDJu2BD?4#r<Vo;yGH!@2}UM?svDi;p01Z+~J12CZ6weA9rI_fO9;@9pj2Q zv3rQaDY&ykEi@J$Y;m+aNTb4yyXC=YXu<6gT9b#uZki!-q_+t}Ez(=&P#$tj9|}K0 zX`_Z(q^Ew!Ej^QlEYedqL=rj{T+6!{usgP5RVVGO+{E|)!ok2G_1))#G6$EWx4#d{ z9JCG+2OWbl2WJLl4*q*k=HSCYnS(zKV%;-1(`?yJJFT*wc@ZAF7l(INn0MdNA4Auu z1)Y$F^@JI^3A3~(QE0(Q6t|~;N6QY_73ZO=s#<o0AFw!E9yq?&y_e!z_ChP{ZSjO1 zZqG5q9p4e!5$XMp2(5bLx_*j%Sem;iMkVQ@$NJsQN_KpMvB<KssX3F!)okvG)Q~S` zELJ;B%{YUJxWvM-%`H3IbZt^Nvl(ZOJo4Oid`Ec486#J)WAE|3PZ+s5q><d%U;606 z&0084k{`^oF*)*PLHF-F!JxmHBtNoG+S;|)@TK(S0*xiocq#Dcw%9cR@{_I`Y=QP` zv9~zB%=_y62urdacEPZ|-gorIH!v1x%1T>H744Ysq*E1LEjVvXCnwGrGX#}*9BVB3 zY$q?K;=DlY%;!eL%U0baSgbg;hPC1u<GJSJ4(v1*WeKr3L(%zYTmsJVM|#~uK-3nl z(gfy%-xTceL0eb#I|-BP7t^4<N7A^t?DvMKOwT|I%CuA+chX3C<)Zv$4v@mQ9eMg9 zj8zKPN(f;bNg+3IkwYz5PskyQy<Zw}8l1grf#)d<|CKxX{f_2h3w%r#_?+BMi=8+- zhP*g;2QF?Q?5pAeEgNV|y*?nfgFHjj+Y8{6iuHCFE$cvU%R8Ae_Vo3UMbZTBjU4u8 zEm)1XA6igWS!a1@epypp_`&$VZBpDkDQ>P5hf`SKVFzqy;QgqfsI8f^TxeeSDESFE zOAh$>Xt3WMe&md?sd?w4r*)^BpK4z4=;O^?nD2V3nNG|!HRGG6J&>0@GXhjIc4MB* zDm`;w%MVlm_mf5`gm(R4bl`Y>xc*e9R%ILhc1I15Dz$a)fGR+z*)jhNgzM3JKM2=r z^RAqCKM5;oPYdoXdyYTpew0Q7P7yw;3Ul3!wm-Gq=%@Q0#P>-q(k(xU?uio`v*F3q zcFtGPH&;70&VbIlWnenKrg7n{1@#PhNWigA8^GRLUHAvu0K6)Assh-X#*=x&4jWbt z4RoTm{y6MTRrje*Q58nd*}75?AAeJPYpS8BQjh%v*w~{2mJJnI3#&8g!u2~h&?pEy z{26Ws*I?Pm8Z78d=+uaN16o+Ub3+Sy^h#T}zNz`RGlpx-w<%)nM{T1v#@6XEduMDZ z`6UYB=`h&Gl#VH@L|6x#96NbZ*n}|6JJM>ahZ$(Km0X&P_cx-p`Wv$oN?LXp`S1?x zr4}W^OPGLDRGKm#w(^KIKkQz~{*`RM*vT>)38`33CP_9US@(Uuc&ytivUb`t>z)Kk zWH<FYEErWCBfeb2Ja7{oK5$D}6UNCHi4LtYzVaJ}?NCwL`7s1i%D#hjM65Q-)kix( zs7qJ+l;d=>(KWKZ;J4IAXV1x|{D1Uuz{ZVPzOuiAxO7K%qf>o^u)L;;2OqK34bAI2 z9eUx}WwdWdUJcCXNaet<oR2tH`^b|l=ZpC+*hyv`sDMwml6*fu8eTKck?73!({~pv zZ-zg=l=k1vqNu|DdnxU}7mCXf&MVDBzaE$kUjuCa1G96>_T(6A;kDLHDKixHJKhd= zb-Sy~rSNbkv^5(ZFqQ3e5^CeiRLD1ue52cFOr%SDqBJ&)#Y{ZXZzv_-(&*ArXotMw zBfIL}NQ;y=>M8Z<k@pw<+R_%}O&}`<d3i`5<+Z`GmMwr-`)C~{ucw$*|NZ;f^N{b8 z()cC65}gN12}F9o6M_Hwk+x=)w7UJuryZ89M3)77xC`y{o!UtJJV$6Q57`rio%ZlH z$U|P9kIyUhu{`G65?BF0|BBM(G2a7F`XK+V(mTPcS#;H|vX_;XN__7}cv-0+p=s{1 z7806;r8XJe9`acnm|YyOg4*q+x69Oen3<?8EL}(xdWhPsrMDvOjoD^+#@@$sPU#%! zUGASZW={#s289`=(`5=Gt(-r|pH@1Rdbh`g9-UH3Uf#kU6T;@w9GO~=6{Gl#*%L~~ z%hY;2(mM+b1>Md~SXcM&#J)uh-CHqFRp@B9&RFDjG>5yp-MigSR7zh5B2U%MCm;*X z(?++m0^SrWc`4CzvaawH5H|_<CKFPDeHOAEJor`>WA`K%?K|p2jg_$k>jC(t7)!*u zP}U8k5yCjpkWkht&0q24%Q(->aj*$8F&fAZDB=r}k$xhnyx7mjWPhjKD8S#g%^+BI zg&jJy4CflbV+fk_L-;-RU`)|>nY=Gzc0af%5O!d%u~|Cb^q~6@9qn*EqQ@CN_aj1} ze<#*#&_}tT0<E=sc7UiH_y(1+U!#(N^0|2_{{AN{k2l)VPs@DBS|_v42%DtQPCI?m zCGPa#&ix2!#PAc)e7mU>eSh%hwvjn*c$Ue&_>m;9Bijo8wuc=_por4gFP@mg0;ZfW zcA$voyS~PAcze|do>B5)YI*o!YI*qKia>ZLjoCJQ4>}S7chzDEfhpghw(w?ZGVTvA z2hDro`?2Ot@X;PTY2ALD%O(9`c^qfyFn_6F@2G)5Dk!MIJ)MCXnNN<DPTIlRf)(^Q zP8p-z@e6W`Z(taHIOcmd<rI{i3hmE6gKK46_!AYp9_nnC!<kNn4rHGSy^%egyf)nH z2tQ_8jntp$aUs>iVqu>AKq>Wev)&wfAT(Z7!SPxPy$`<c*QQ@Uua@AsMU#p$Wg zFHM|8=MB(#19bL-jvUrYbPniCG%}t25}h|BI&bKqc}?j(L`MgXJ}{Bz=+D_kM^2B+ zX6y0TjCOhKq*`m3hW-7=xoX`}oXhQ_{jGuCTTVnG`lD(gr6d(r%JNWBi3#8B-hrn- z<jLnOEbl!$b!|^>t;l*}J!WXviK}`m&iuYpH#-5V!`Y#)f)8Wfu;M#)HJ%wJuH@kF zUCSmjp5gnj-}B<t-=A{mkD8%LPuX`n_iRuLIID*9tw%zap>3?I%<%aX;<{{qWy32~ zX6NN<vz<~rg=Wkrm+kr!A39t|%{?q9N%)KXxj2o$e`12gb~bYM8h>j=mcI3nCgtp@ z&WKrcy<Rm`@QU5+5PJ3@<%&JWKF)Qu*>z$`*Ax64D?d%^V`f40#Jys_0`FlYzcX0c zrB@YL-@eYu6Z|aO1aHu1k;{(f;^aDBj$9#H1!H<#TQA#F{B|cVzB<I--liG<iMn&5 z%3Ni}F3II8q35ZB%XUMLervX4vU9TU@`mSZ)4hM};J80_sJLUtYO|zPIV;A$Y&X}; za~%m{h3#TuN*|uJpE`)b(*?#tQ<cg7sl7FrBjkgVJ3}n@lJE6kY1S9bIre1NryH^z z|2a&T=RS2-YI15+XA@>{z9($)kmf7ZlkKnA<<c`z`X~Nep*}bt{i|_uj#C>>I!wUv zQ#%uP^ZYa(9??kt{1f^fPkz|<oNc~$tngEt&d*Gj9iLaD2MQ+H_uDVqzW_fanYrLd z4Vqv2E(ar#8P~)mpEx{12cII0629xyd@>(j9i$B{74@3^Rq17U)+Z0Y<fJ&P!gJ$V zFVmL=<abAprUfSTuz8b^^K<(gVTnMw(uYj2CBHJh;v8S}S{2K^;y-a!+=X=><S2AB zzkHE{<*oo{p%Z4D%JJO4z<>4{H)rMHG{<4Q#ran_R0WAeHTDL_EB4OdL7TR%cB$rq ziN3a8Wep`+J`L6^O*=2WuUKnGOeX92A@>rbz;kzHrpjUsO|rfRihm7OAKTxthtc<q zT>c+{5L>10Oky8gWAjc1CkwxHu<0lKN%@?3VW=?cw^I6J_LE4x=h%FEQvRF4Q&}(Q z*kny-LXxIal@bgdvUlUenhSef2M(h);%3qEkb3&I!v?7(3I63F-6ENPD?$wpYe>E5 zi=b<n{%E9kS41u39=jz+Rl<uN_!P>AOoATk!}~DaLPznfh*>Qp1HaY%)?<I@PFV3$ zSL8M}D^F0jvKhIp%*3)oCkkdwzF?STxcE|+!HQm({hpO;SI13k=XgE7k6|;v@Ua;k zZ7e6T4BwpeT?r<X@WPUQZSNnt4IJ05jmvJ=a+3?Ix(%u;L43bh@=4GnOchQC8GWu0 zNoC^E4;+sldP%Dha(p@3jI+LL>h(-Cg{WWoL9>ScBp>6|6ZvKGFEyh&UoF@AO*vCH zIFOn)=zz8vH@FC1fL!Fc3QtS?A@KysN`J5ya{KII)gefNl@o2h*M`-0oM(YNWq6Te z9ygb3dd1d#Ay-hLjH*l{WI7g2!B?Yqbp`JQKBSLEVsxrce^^H3>qvD2snI1}!Gc-l z{}ZW8K<Xc@gcK+GBCY=?QiRce5k@!_A>*V!YP+v6W9~HW0yF7P%$pYHA1kDVxLNtr z!ag>w$7dAsC#HwEaSNt${!y;JAU8YB#n<Ie3;K*kHjQiLOqYX(5I42a^;IzcXu_nQ zOnAx0{P`#Lg|By?>L^S<)v=q;&u1Mr#)Y`}4B<<R)089mN1r})%fVGRb)gXmXUze1 zL!`H0Fu|;A*orZyZO}`nI{5~5ljgw3*H|INYMx=@`XOzTTA(>V+n|GdXqt>JlQ0VX zk#AKUaxK&Rn!IHBgFTS%$Cok|!5{QOx&Inl`@*5PhGp1kDrg^FsM$A4xEOkVf6~vi z&*WlFb=d{UQWap2e2dEHcjnZ%)|uIi9M>x@ZR^1@)uhRd279hBj{5yS;+me<#-06D zsX<hyzE-Bgcar}Te6{SK!KxfH@>jd|mt6^JnrL=ek_SQDO(P;7$n)YQ=qj5})5!{x z8pjEod5jR>a3l2uQmx|8cTW|pT{A|fzMc;`TssIqdu?jt$Jg}S>cUsAAFMpsnU&ZS z?hZ54!496^Tf&L;gG;)eHoRc__?nR$ePO5cmHfxo#+X0sWSTDyU)83ay?AX5hs(@~ z&kb(YBaQ10#_xMCh+hLK`<_5~+k<i*Bl7%skeflYF8eQ{){EDS=G3m|$DY5&9_Pf! zAe;R0wRCP%`9<7qLK#~1ki_>>p46^~rCe<C+7YS8q|~2zC_l<aG{TeZ9ks7?bkrs{ zq&DUXXhj?^-Wr;N)*1&1jh0T9N_BjEZIs#5^_pktOXxkkjlq>+2A_`;uh4?Ji`O#N z6AzrYYG{sN!P6W;9?C1_VL3}MDkk6@f1<!lw*#xiLo8<z;+h62UviVKLDzI%%Q~L` ze`7#91LZQ-lMdp<!6BJ;UzB!ufXc`?5tiL}mvH?SeiDZ)0=1}ZNY_NADhc(+{{)oN zIhoV5D4kB|M&DNsCU!<Fg!_sSxt4*?k-3fyBzAI%l<Ur5<8$=)UyB+2Z3tQE;dyN4 zl3zm4)Z$u&YdbC)>x_-E;#Vx7YZ>n?121L@;ZlJ+bA8Xww}><JH`?{P2+J+<bGOeT zJ|s*&zLr3^BRvD@4-8$rHfp`xiU$U4LY$B)T)dXRQ9n5GMSUVHg#`$IZwNgY#VZ}< zDx)n<2VUvX{u>qTzuG|=uR;m0Q5=_tc0XR<Gxx3LC>MH2j~!@`M2-SC^nP#j-57m8 zH1MOS^iwX%k&QZI;rGC|e!T~rMTTy0dF$W~sSGD3j>vm(C=RpG$*$);50?GH#=2kh zyaTB`+4ZvLfwE_pvhH7cT&2$-{x#3mvV`n+!rfiJ#fow>%xcXf7UuV|uxcF_*3G}G zka{&+$e)rcaG^LizGoi9+|5}rv#dubouhfEdXSmT55_koc4`uX+Y8&DOvD;pZ1hx= zO>VS^T%y6QX)5+6cB&Gq^2*x}Cbovyawg8(#kzmvS&E!TJj<{qA#IblYrR?15ZA<J z6!x&1xP}Y(y5=t-mX8v8laMy`fHy6hn;q#@4I(CgPf_JkYj=28W~Ul$>)i#};+u?= zKdzBRA?4wF*g8+w_Fd2>+KQ~>Hc!`WyYkIu*Gw}%sm4V)rb0JPZ6be+wfnJM-!a#$ z=H}I3io3pja@=+OL%Pn${C^9+hPT(GH%@m?P<MTMuI{?Nj=OzT@BqRGC_Hav@C93a zuk)>hoULNK>X~p?Cw!Z$jm0GKEUft<VnV90ZWUpxx%Fq^uCJ1X6+t$6tEf&qB+L`a zf{^FLxTZ#E=VVDcCrjG-KAhCAz<fX>fyM`og~hg1_TrB?wjY;$$54dEj1_Ss$Bm|G zUEX4hjP<zR^VV8?tGnVYYHwPe=Hk@GG>gHWCSe=bgxKW<;H2r~HERD<eES~hT{*C) zsHV>Bl2T3Po*`*hBU6)^Y$(j~&NSD!rZ(xk+$6&7eXoq#Lx<y<GPQ|ktH+Mc#H@RJ zeqO)tJ9#1B%sib}(;1mZeR9M*BRel!)AWuPJ(9Q~tL6I6`kK|KS@qK032n41+Y;{T z;yd%XOLsq6rV8^d9a$}%HK_>~*W@$}r)(8#IQXqwxPk;J_H?sc;)SfNqW3#&hQ!YN z#P>V)@QEEZzS_0xGi_7Svp9Qn&nehnUmbp}D^d{G$cs9DTH!eVw&L0n%?oU1k~cqR zc23m{v`RuCabQd7mNM;g8lj*)Ta}A>l4jA$&z84yDkpk|nJ)w}w{v{M`r<rc{kPJ% z7QPUyEP5d;ea3rU8FRy=hmOezzZ5P$T;HCk)pT+|ov<cUk6qzrsXH{PB)>6}P2(?c z^YYD|Q5)sD^lWueO5X)pifdep%&)j|o4CdNyb1QkD~TN{?FrPk>f$e23|M{PtY6sm z_NYlDg&W6LE}eF<X1uy1k$<jE72+l|+WP%7&8wp0pt6Xhg1+j0_|3Q`$+I(aDg15q zJ(muCvrp@L{&tYNJ<@xo#W2YqtjVe#3ri{!zJm~-)#qPiKG>m2<U`z|+{Q%oF1|0z zsa_39Gi}WJ%i*cd@$(Yw-^uy(?!N@T6UAd}Sbvzf9L%a2|4LCK@i(h!De?DYh|B+N zaGY=?NaYQM^*zrWd@smZXrybJc#EdtsVneG4n!gkVH`Y)D>jF4i2D)VpTXsV)s_Tp zKU!efi*hsvBE1!%8x~ti8GHKUYuqYW!E?5fwRS-BGba8=-wk_BGs0eTosccH%202R z>@@Lcvhd8IF~S5vE$ENUZs8`W-;gcCNbi*4S~O3yiQ0zbvJK-=Q!V?MS<oC{;`dO8 z1~%a<Hf@8tP1BU+$`wY#`quoKdT$zPAj`Z*sweeG?a?^0JU4RLa|BrWush$2sK*;F zuFWEA-_XbQISzA8b6~GUdXGf3WjO+SE@LxhhX{KXI=jy#@UQ}1RyC|moHvF&KmVu( z`*!%MIMH?Z6`XHld9T>jZD#m;a_kwdu3)w>)EkTxW_{tGe`3b9P~jgPx0k7f0&B9c zPslvRPnj>AxEk8y3ys=WjJe4>q!n0hxBs0^E_J%^9sJhFOx#&&yPwUt+IC2-{>1F~ z6yKZ7_g=1k$@yzr$_09Fz&n1E!g+6o$9TY|ZZmD<I#|*hOXp$*{=qe_KoCuFuU1d) zQB9sKTH~(RKfrp4iSt96qBB9N_0ge2oh<27hq~1!diYQ6+?2P2m$CQuigT=BcI?3l z|GzTgGZKYt=TmX7bZ{!wCoiK;`i+p9rEhq@$XHwSR&cZNu(rsXYus<|#IwoRVH{ml z?5(j+vQI|sCxa@uMNc^zwHkkRP72xg`Q!(JKby}~C47>8*t3C~k9WszC&M0Rrt#kK zu4M^`y%CpTB+R#C-Ksx&OX)2o%*4d~k#hJea8<Kx`rV__A$$Q+!Xc$$L`pJJZXcpk zsC-_^#pF_~Cy`@!ggi$#%4?Bp+V5#COa1y9WZsJB0X%8#Mm{CiQPrfBveY}qJKnS< zU7+tt{vv%z@~03#GxZ|LMFQeZzH>HoGQWve!6S2o;a3Dh+`L6|KM%T2#MXdBm*~;j z<i$f|U*UJSup;^8p`?b3q5Yl=NK?kKq-Q5cD~?IIMjtG!^+`=*h1Of{%Q6UuZ7oZ5 ztp_D(J80Lo<w4q}LE4g@{ure%2B$*iegm;%6B7b6W~qJov(o%UJ#0G{C=xmK#ZZ=~ zP=K~^=grbKjPiYP&NOS3&pd0iZ`!Oe@JA(N|Ee>e_ch1ojys3FYO}Txvyof-RClmQ z<kkPcU9G-=yH0&R_<iA?klLbcd>dbB-%_XR<oS2;`!SE97VT3rXPMhC@3`HsZJJOw zZI+%q6S{;Pu0Y!W`l|EI@l#XI@vxG#O~i|~p<AZ*q_*j8;r==v`AG7|wH1ka^`==V z5}i%6MtikQ_t$X+NcR?rcD1%a+fXE$)OXC{d=JcuM=pw$DW(Ug&Op#Ht6D1Un5FjL zUsu%Q+0GYy8Kj&ZHSx247VAFfSv$+qm9S^oEGBCAeD}f<JO_6##hvY8xLbCO61lke z&d9=4e^S$^9#%ifn?KPs@mZl9txRe<-pM7XIysfK^Pip@J(VEY#=C7#E{PxRFW6ch zxyL5B*i0r~dTg@bgI~xLAG`(QUPlzn!f~|yfOl0<Qp5L!w}qtVsn=418)j+zMWR(L zWA@YF&RKoF?X!O2|0-Ao9$(#^ec|3&uluXwteq=i&uQZ(i`uxauJY!Ouc^(WL=VTr zyLK`2iI85eX;A;?fs#?8F7-gM&Z`qH$8n!bgp9me@}o;Np!Jw%&8#2#*MZWy-6JWP z5L3N7z4^>7Y+7w6<2+sV-79T19fep+sLekw9wq8g%i3K;i)Gs{xj<|6uDA<Z@O;6; zy8pS$IqP)rLA>dA*Wo^PSM4mat-dcjUItk@NbS~n8-?Z2P}zffgaACBr<NY@o)Un+ z>en5KT6KfLpVS!b0kg@xPgsOL_;d%i$lCdsC#i8td$876#4S#GDq>7(V$mMDZ|TXd zedrmoq7HZ~fvdWS!M0oRR#MX<0lg@i5~wGMN+a^ISqHprW0M-JvQ)a?7KW~16sGT8 zx&te3UF+)(ZXuiYx;?&anqx)QRQo7b2Kug~lf@@B^j;wwMcpve+diOf>cV)Oj}iIV zfEKHn1oO{qKj=`YZpec!I)3+r*go#oWw5lvRNgey`{BS>kW!qLZy2~@k4x-S$F*V3 zPHI$tq8I$PoPzb#dF3Vao6-ISoDO)pu3ecJ*ZYal^ZB>(s*Cb!80K|NFavX)4xBzS zplj-u_}hmTs#FQX@|qOo&lpmhj8aK;C#R;C-i?+amJRhjG|)Ao?2Wd?-)P(Z7(RER z6t(WYf$K81c`REGKZKh5&6Q6z_1BNQsfP6wVR8)F<cDz`!$o$<>$s}oGCvt9lQHSe zfcA>X_HQKF{>@FY{d!48K+;&lHC_&Ws=4;bjruNsjiX<bJYS48B>V#j2Wieq?z}e% zYg2Xw9))sowGQLHLzS?x<FfnXYr2D6z9}~)#68*XAJwyatJ=$%^!rG+WbY!~a&Q;v z7R)EzUwBBnyt0e5%l=(#$|#%_PHw>0Zy1~UhIGi~2VPZYq(I+bKv;EA-$*AC^bPu^ zv}d)b55L0^{&hz}!s{JOrEXATT%<HuyEt<ee&eut7j#|%^htaBj<lwVthA>ZLhKMp zy;Xd3S4vaEu^S`DC#avNd?fSl?ou~ZjEBaqJ#AD!)mW5_nwj{~uKbDjW5xS-l&n1L z6HHTXl-RVJM$iFoV^LDmsv_r=b#Y_9wO0%ydZi5dL6<6&kjA<8`OSTCH5kzR&xpRb z8mx}H<y$F^8bOit4ew*wq;K+zbHCPq!Qf@h7b9o}qv>aEY5e>WWbK9DtZaVnbCREz zwW_nD;L|e~zZEnWH+_CN?mqZ*lXW!vjFdH&O`a+8RH0^Qs&X+-hZ$uJ(a;H3uaF-8 zEp#Un-}2mxQ^`zQ-;)aeirQ=_T-=lJmb!_%O(mu>-F-<k%g1Y)tnDgSdAk8ttvUs& z3-Wyg*I#h`4p+>N<C<miWnOTC?jFz9DBa6%#_0YXV}|Hzx%}Cnn|WTRX<E`=_`o?G zsOmeQZ`b?kX8kV6rW^~Zo79c}hV=Y7<?X9dmb9OGfXbG)Hz2OKeNSClhmOM=yQ_n- z^7gch;&v8|(~q}yq)=Qg;v8~5{mf|GU3ay!yV5#R$hVVH-mWjUcIa4qhMek8xvSm! zXnDI&_hvYeQ#U1sb!mpqxCBj8VJA}^?_dcv_>t`LcB7%Noz)sTQiwv@k`A3NrQ_de zX1V%uM<I`v<;g96-oNGwn^G<&Bz_e%98@)=ALJYK2f2o{gREgbPA*P+am?$Ze*Mle zt+4!xzA3q}EwdQb>i3`(b!J(=-Oy2nZ_!Z)J7`}%*s5;Ah}e0sBLU;=?x<E~{T;xN zEDK!m7^fDRJ3fd0i_uPiEpUVW2pxDRrUPe#*1eb$TKle3xo^xW-_+F8uaKrrg{D5) zmkLeogKwV3t{(FPemAmVOREn)P>O-Z=#0!|-Mc(AhaE4<zB1;ZA(Y5`!lGPCpY8ij z?h?O2Drabz)pj%AH|)x3QCzZyXN%9i*2WuoQ@@cnU80}f@Odk(N-umqRmg|VukQOF zXnzWQukXy)sI?EzIO-_13|9cThkBRwUHDqw8#Tvf&l_Am7_DKtjBT{PX+9hCI$?Ft zuK!-FPcnwvW)`ZYy3%ec_04)F43~HqZK8QB6ry=7>FG#sUJLdIu}6g8FAb3wMBbTh z^SZDf^{Q6qYrf9v({T4}Rnxsb(Z`u|0nW@iCvu|-xhl?ns_FwfGr3OicYc5To3@_w z{}UXFM56l`A$(UP@2+7_c%beuz0sZyJb(kH!`V4(;;m)3-D$K_9IYv>T|))fSNd*E z_xRO_ll+{N`)7T*QkaQPhCRaL0(nDaI;s8S^TuyCg;~y|GA8coyE#45C#P>k`Z%ON z@U`?Wqv`h}eKgXm`hL|lbZeKEb_C-;NsiWfPv6#_`dW$`$^d_>;yV8Jkg8){+&b{N zKbR4}dBM*={d95fM^CYNM_U(vY^h)Oi~Uy?)4C6yf(XO!E6+cwyF+)U*^zfF(mN05 z2IgCbdK2H_EN1&^e0linvQGH>9LWFKeY94zW$gh6WBg{}?vOh3rB2M!?fB?V^en#a zOA{lhX}+|c`tl^Yr;hTP1y#YbMs+|RB3ZfQ_Zamj_=4*}uAn<;h40FB^aX8>KSfXp zs%f(Y-Feuom9KVkb0@ZI)UdD@C;PaC+=9EabUy5)m9HKTKTO%0W5%Ke{5ps0L?Lpk z7hVcd?De2ZxEh>>%XKvI&OArrv4pZb`v+Mw9TP>BdTtS|(T{}m$EMr!1=oqB9Qp<& za;wqa8{CApd2kUXr*Ia*AgbcjLYl8BF71;aZWzS5>&p(4KxY{)+lP9K@tsT@WWt1z z^!o_W+T+wX#ucfYUl`j_cQU*>dhD4G_15&|)oshW#rFgJ`cze(*{?Gfckw)Y8x!)T zru(X=j`n40Keex`Qh&l@-;U`0EMfvZ{4#D1bfTHhxf-;IDxS`}T}DWa5U2V()}bB2 z(9tpY&1IHD{mw)oY&wiL>;@OuLnlZINCIE!8k*zAuCYNCOjY%;Nz2*`Rq#2g*0AJb z+`=AsEo$I_B)Ohrhg7e)g#AR<QHGtg7+oX0U_{k*0=a5IcjcU-MjO%AT+9K2%w)8y zOTG-UX&o1<L7_bum8*JnnfdUuwz*z>S!{AG!|yS|*8rC>!y0|ru6C9BJ@`MZU6CKC zMOJj{;osZTK6pe|Cm%jx)A~zT+I2SJ-ZPaxW|~_f1l|Le<?Zk1F6r^4%`18-tXp5+ zzVg1`3JZk;VYZ%Tjdz4Q+E1BrTJ;Y6_8jcBKsf2~e}-`i4D)9REW7lM1RZ9^_+$8f zZb|#kxbdemI&^U*9r0|JAhi4IUcK&FTf+XFn$f{{SmLU~ovhs2HTb|7LFdiEIu)lT z&gBbPh46*0z^>(wU+s#_3kKN?6;{)cqN1LFnwheN&R_*g2j`(Py3$JgKEaFU((sKG zW6%2xwniUvE?LqO;Lv|8RF82-d#Q!MVKs1g7?{M(JG^$Ogu~rQhu18P^DiweX8UZF z=b5Rf<etE*9qOc_<f8WXvX_W#>561n8WbwIb7^_|Nz7gE=jyygOS8Q-y2AE9)Nasa z3Ax_UbUs2=F3#i2+wWy_y-8hzi;}vA7FpZ>3pUcfacGzKF<Uw0LVaeUacu{uAqkr} zcJq?#X*%x&fm`^6U(Umy;R@i3zKu}%$<jD{5vM-KcO<R!kHr_-fp=jK|I%v{BRG*1 z;F&268dKbJ9~%WUUOYFpFui?=iu0$JTn*~mc@0Vz^4J^C6*_`BR*k<fii}>k9HbH& zAH^^eq177HBZg31-1G2TW9d`^<R}2W6{>$)_|J9~FCNhdDMH*Qs!p~vPY~a&#(4PS zJI~>F-Rw(s=bpm}Yrd1&?y;`2P7~G&Ph&qg^1yA$Q+il+M)DK3Uv)4wRt=t~Ve3EV z`D3?%rx7w?I!;!l72*VB`8jjHy6bTx>ooDFGaIba`_(;Jh0`<Vd%4cY?5uvidy=5? zRod2$S0CdRr1hMfaJRobwJp`wzJxDqU#eOOS>Nn?cl?UPiM|y{oOf*Ml6F2llT$D9 z<Lx=T?dF>pzbGx4_nya_jaS3kC~yDU13GUdJKS-WY*QBJ%@Ftw^$H-jM8sLiv9L4w zoJ?M~=yY)2^vrXnMa1Rn#t%A8Ox4f2W$uXA``eT3qlLnDwJMHKRaM$nk2iu-{I(8$ z+x#zl{8?`CPED$>ojB%NabK#bWGpYc$CF;(uDx5+mNqt5_#n7IqZi=io(CD2^EO6@ z&O1ruG-B|+W7*JzM}h^AGR8Qcs^raJ(lNfICpcU9RO+ixJ$fls?j_A|FX2-%FP%sl zPyO-mcf5)4g!4jvGR`lpADg^>>HZE*eV^}L+iD;BL@W2nvL4SZ)F)HUnP$fu(c*y| zwD3u*x$ujO^+mamPQIV(KF;TTBJp`!;;~60uemk(R!v;TcjIcA0g{yGwPnr5YBQpp z>s{8qnx$z7&w0}?%NTZU&H#p-3Ur7z(KHvP$7Og4JAV*sxX#ENZL3WG1`gT|enqZu zK6uA5>LHVGb{G$?<gY+Nl*W8EMos=vzH`}9&2^XNXy>C_IcUGs(|l)fp)K`2W@|si z^Bw+L(mpz`86z>P&?MxaU^BvPvQB&&KDtN|y8|bV*va}2Az{mxTf4>=zS5Dl$|^Ez zB+t~Z64TBbdIDQHzt!eimL__v@xC&t?do$|k%x8oUC_qR%BEu~U{3q<@Cqj-d6}B) z^gN(SL5SzBGftI?5XW8jaC;E)FvO*?+&8>dggj|nN5E{;{38gD-V&CJl1tw4T5UMD z=gmKAZ7<Z^!A2KODvZauvv~hLXmuLdKau8x{1cpMAjnMpIOU=dR<x^F;@Nu{jq`CB zuVc>`{m;NhPBTaTiDD@}?VPMjlFv;q993v4>;hHIxj5u|TFTcR<V;sV@d_w{o;vZY zoIeZnvd)Y}{jr+wWTR1!K1weM=}G4}q{p8&73vF@w_~r%%bA$z8mI+9_46pj^7bW~ zgtJt3Jj#qemx(g+?3RCmVhvG>sYp#dqaLpD%izs)F>8P(o%D%BPImukW&Y7!?MyZ2 zaAca=_g?p(p!p-y)BIL;sI$I&;TbFD!ovtHI;R)w%NM}DsxQCQr$R4I4dfKX^J*S5 zz>*?J(J#Z?Qdpxi4tSl6(yi@j=JIx~>WH^~p=TjUl&a(XRchbhH2$0l5`aD^NIFI` zHaLwtmm%QSgQxYhS;dGIXC_%Q>U{4s(E+l>Ko&apWPScoaJ<?Bt8L!l$P9_!l?mWn z<F`pA=A55YoE}i~@jP)voc+Z1Y6q{G<9%e_qx07224|?xW6lKCnXUOJ;uDU9JG;1W zdeOPmiIDq~`LXwjJVM=E*igiG;D5cr#XA15{H2Z}j%4>z@D6qa{QdcyuFwj*v%dV4 zFCBNHd&Wm8ypP)PagbVZ)JJEuPS)?kX}J6&Dnb28{<~Z!Bvy31v)8uBOLN02YkB*b z<@3EOtnW8}lpLA1zeBCL)Ax*RnJ=C<N(j>z;Mx6}>nk%2pHK<UoKqTAN4hyZPUknx zH5t?TSyz%YV#&{xA>>1+tYmCjMr&KLXHFaP<{&Q<hcp~cnElVUlwmV2`_Y2JKyZw& zxqo*jKi_IRscC3usoiHutFaD)8FL@@gPHlS!3v(k4%T1%eA%Ca%>2h_|DcVjE~$+! zsg04|$Gm%O-|^ClBu%)O+%B~ab_84C+h?2ewbn5)JtG0Sh+215!=%<__+0Oj?dHhh zuY0!r5qfl``LyO_Gv|xscA^z)Gt>GtU9zr<!2T!@t^{MTm;5AMuy%4UNG&@Lt~0!> z>=UU!>JA_3_jKVmK)T=WoWMK<T*t}ftix=|j8pkdBFAJ6^>y9y8T><@CHM~7drEH* z>#Guc7#&;7+pXIQ#XzCXr|K+Tq9<(zB$<iy8s^_QTxkZp6_9Y)476XaJ6p!yhHMzl z?TzXg*D_gx6VA!9ABPn6c|#|&W<VRryiiHh#B0xzT%{w2tb1I`=>4XWr@vWpWSz1u z`nEdbPQ!{Ryw`T`61h&Q`<wO3dgq(<#-0CWX<B2oY4I)OS;+pv9Pf&d`a`UmK5Xt( z^S!6lb97$UGH&5SFIHC{Vioma=p4`!umVa=!EZT7xFzjeHm)UV<UzSiD%S@oQS(#^ zB{KVQl2vuYDe$I)zvr=!OW~vu;rJ2Zlo8>CXgC%5lM$vpU<zxZ;YeiZcE{RnTh?wj zIkz~sJF7N1Ypb?9w{9`5+q#Xdd9Z4esd{VGwl${pRh!q&q_xE=WL@>$eAD)=rrD;d zEo)5M*483wJ3b9&u1!@tOjVn<Zb8=N2(R5{nzY9B1Lv07Y_=TvYE2uq?x@}Ftl3D# z5wX2$+xD3=CAv#$YSwOAyKU>{wcAmQn3-u>SLNKac1<>`uG+MT911_E#`&;qRW)mC zXI4A$`=>X;rkbr=wpXDd(>mw2+U=(52iL75GN2_lhtk(>*`C1e-n!Ma`N0~8NiLk7 z4Z<ZwcPu6PwyHIzI|_?HZ0oi)&Mj5j*VdZ0t^=br+pD&$-?Y}0J88}I*uSZaZ3926 zw^UUl1?}1DTD!$$yK^~M*t9k~0eA=!|8iSFn$k*&kZ`wSt(3{+tTk=fx}EBvwCy`w za=9Bcx2;7vqGxg-w04_BRx0n@T(y2JT7t$psvcTvntiLO+PS@UmdjbUc9RJmh+Z(E zL$=5yzqL#i`ew~`hv^3nCjbF6RUo)&yVHgGz|&k)^$vm{*HyI!aIBYj-CVT=6|b2} zoZJQ8*KXPR;ChE?^V-c@x9y;&)^6Xr4S1l55{s0NaNY9Y=4$i^$fBD!qbq9B$ud*~ zt7&bW3ox%;Go3_6YIfCj(<UbxF=@@z1QwY&b5`xPnpqE$#MCUDmv35V+E#ae4J4zw zX5;O*-?jRVJJ{Fq+=e{czn({zWV)Z^_{N_}`osLkSnl%WH{x@12XdDWNHM0m1N-gy zxd%kbRD9sj^4z(17gJ8t^5u004(!{6pw;T380k-~(@TFkHR4Tj*kq+7(*c+3fQdp3 z)rN3M;pi<!BQ!D+VJj{oX);;mEUvxMpNsOD?4V*YNnyn6O;(Ro-nCbkuhZ?7;`RB< zm+!07XHfo-$0Nq#UHd#DC`oxj`#>Lmlm~REiWtqkb-H3HjM^w!x<#K<0PQuQozz_V zL-leCq&P~WScx~2T-LSs*#igO@zhbg$pq%=is?ToWMXl#tGKvWq;TC{5B_8x5Kn(n ze5iQ2Yq=F3BK*l=Yk<P@i#?v__ZH_<_@m<DI^>sV63F<I@;@y1#l8UY{Ihtuefjd@ ze^UMcaJ5>C1}J<Ee+TeK;S0qM$G!I!U!^bs62pY}M1jC?{MBdwKla`POseAg8?Nem z`}R70yL*=I9-5gRW<XHHQ4!G?ML~s#5fv4c=!k=&jykfVD1#C~#VGE}B%(njh9sJp zsBy`tBr$ObQ4^QAj1l*ZxI|Q<@9%f&-d;vc^8VlN`=0mto^I&d=Tx0@>eQ)IRj2CS zThpBd!t^N<jZEm@kqoaeI<FNSx=9b+`0@3eGNqj+R0>6QPr--q(^IAt;9E}@VXu9q zjZEFgibPz-()Y#{=w@Nicbh6ElPIhp!YHKtv!&R6ero%~u@iSA(l>5gH*^E5e8x^3 zHxA;J%7(*ZkuEeq+b1qG>G?uoAyil>)Jp9(v3=aa3E=SLh;0i>b$~`>Cc!KE^$X4P zDczp^L4eO@PtGRa{=i{ULj$<ox0{#VZCU_LKXKyNa9+5d?(o_L*urt`VWS($hy1Ki zz`SL3fg7|JymV;+pJqzI*dMsi6#67*A$kdAW>F96+F5MamOfHfkQ53XYTO#XKn0qC z<BmxC(j}za9{*oRg(RQ921<-I|D5(OF-k(bo&T16zT|TQmBS<mj0=o&H#cu?9M?Fm zd6T<2FfA~xd2{n7rYrB0NG947-Kt;rSv?_@=#F=XrR_|%t8zX3=i-qE_p03H?51pg zZj*bJ&uw%~_~@5^H+gbZLjHx6)ua0mgL)s=;QgxG``1r;*U!eo8>tnMi*c@U{~lZR z*uvk)#i<p#r$_)m_wb*)$=zh2^1Ls@U#BtbviZx@UrsUn#q@x3P_euk3;jiR*bu1y zaX011<`?ES=Qj_&bMT$bW1Gh|jm?jBi}k0*R!=kjS!Ms4i}`MUzB@m*LOS?MnwIjd zKC2HpAUEIb_WR{Sr+%y7>5unk`=y5c3jeHPO`A98p)LP4_oLK>1Np6fQy=7S0xhNE zUrGPwEqVDsK+yuMiC@0d9~{kN*><qQ0DeE8b#gaDhDZtZ`TYDfmZ^mPUB2l%LQ&Bs zd9+Lj(%^sex3Uj?i>UwWXAR(}kVYD-&)w9tFk5UNNXAF^@gE^~v#}1YTfBe9)|*0J z3s`-j{sdas{3}_Q-260e^2Y%Bw-1;6BZM^Yid654F(Xv;pJqt+xr)Et&HW;r@;4{4 zi7@(RyU1?`6i#GI{`D34uwt{%uDtSn4WxZhe$l_+z1~0g&n6$v7p?F1o7Szomi$+5 z@x}!iAI5f@f2I5;j*#7nez#9X(Y}P#w`r`eU^BF>_=nmh%KA?}-?Urv;^r;QTLwRu z?=7}gu>&)uDc_uL?nVBV{Nns>hQ^nV{=pU~`_TGUzn?##{XAVt_Otrkg=PGU^IKfg z55yn8)c#&umg-mRKgxwB(tF_#<^41FNNT<D$kMgsAEg#4hf4M>Pc<<9s&Ajw<JYgO z;=Qn6FSQSKhl=f6&V%^{?PF4k{6+sTa*ZF9%4d(rjzw_OuTd(-qHsQ2KK_L^nelkQ zwdnszl||pE==Woh5c121CH$GE?ANys#^yfLKYjZD_IJq_`0GOWuuoFA|MWqPQ9fEz z?BPD`(>Hk@Q|kNd#e<6V^XX(B=#~)x5=!<%WG?mcB@dKe$&VhYNKxX4f1@>71I!Qo zzLlH%d_MozecDI{?<U&Rm*MN5*yN6N*;nOX$$yPcVx;UVd8h8fOyGY^t8o9-KyuA@ z$2W!gNm7*WjRFJvf2CZ%j57HYf)D&m{MWyl)Y7%t^IN}`r5po!_LtW4>t0SX2&07m z4{eE7EsX)BYrb`CzyGhfU*R9_W0ZZG5WT^EUm8Dr5|rPbZ+CmFempNy)_$0cl%>#m zrGA3;ER9b-zh5u&Tk^jz=U4XsV!jy&WCSSh|Hb_NJjUoyPpHT3%LDe){a@cU-sst{ z`<i?FJpMK#eo6INJs1HB`3_jf`{>PP#0Ysk&0yN|AHTi7>emQp?lF0=IA?K`%YUV^ zoAcl3-Q~HlC4ck_#_!f!Z(TTM&YYRE=XzUL*nr@^QrOEodi<P4bB@NA#i_@71X0}V zYF~)g(uQ`b_Gv?pox)$>qlS*!x~prUpKQ=+%-vSaRtwbdQ|5JbjQ|U%Rl926euo`L z?=)uTvAgWK*Z2v0?^Bj=%#33@XC9|y>?u>V3RW#pwLsMZRSQ%tP_;nS0#yrCEl{;U z)dE!uR4q`oK-B_O3sfyowLsMZRSQ%tP_;nS0#yrCEl{;U)dE!uR4q`oK-B_O3sfyo zwLsMZRSQ%tP_;nS0#yrCEl{;U)dE!uR4q`oK-B_O3sfyowLsMZRSQ%tP_;nS0#yrC zEl{;U)dE!uR4q`oK-B_O3sfyowLsMZRSQ%tP_;nS0#yrCEl{;U)dE!uR4q`oK-B_O z3sfyowLsMZRSQ%tP_;nS0#yrCEl{;U)dE!uR4q`oK-B_O3sfyowLsMZRSQ%tP_;nS z0#yrCEl{;U)dE!uR4q`oK-B_O3sfyowLsMZRSQ%tP_;nS0#yrCEl{;U)dE!u{2L2Q zL0(oXHN5QiKEU`B_V}3ePT*JI>;J9>ybr$o_2~c#PC2Xb_0vg5dAFDSvP?h!aln-O zuJ`Mwlm0m`oxgrMK+%;vEXz+{>EZ7TNM8t?{QMn>dXm0Bq}0>Ew+H^7_v@$s5%@Qe z&R^z#jtqW*;#1hud<_;<{a@4p1Q|Y?2IhsB7m&P(<IDL%Dzv!?>6YZJ+)F8b%_pqf z%{u_J1ts4~e9b4Unl^6>kjhYBHCd@!@NvET|3CiFwwiT)>7yVGX6$0?K@Cd9AI>WE z=%_DOJD|hcZv*?<!4poIs{(egc_*}l9olv~2-wsP_?9@XDiF5!$SD;(eFWgiTGE_u zWbhkOVfzgHMu<d%e@%mCf9=i$7SK*36bS@^@5)c;p&gZqJ--K}U)r!c3BtjhhVdt~ z>#j&Vycx>0rhb4NXFe`}!Z)NM>+xeROQC{SH!vywBreywLGcSavNJM1Z1@CeQ2nJE z(C*Bnk0i;CL;?TPz~5y0#|93x0N!liA8!x%(|T%T-<1ITnSuA70C<am-+>|ZzXYza z8UbIRoiM!C0h8{nnGwg&nc4}Il2&{ZN%OR`1#RO|W#FUw6z%-8lyoL6qmS3lrc%;P zXcOI`oi|HKze6+VY1-LXOiE1N6G>sMyO6|Qt9!qRvfbK|03+HJ^RDW4pGCs~&l$YS z-F>X!LkvF4U5=ijqdH0Ez^b`uOy(rxXcqm7GX}!Pi0~_rpW1L0Q}dpzbl1#NfVO+0 zYEMA(=~sP8wFl6uulb6ox(3?gIp;%&+e<{I_Q3$7pBrrWJB{?`MjN!lNPljkL8lw( z&ljbi3@_3zcxbmN>_xAzE~P#}v)gI{)c5+p=_i>!FbzfX^C#5jE%;R6#0%lsdUsN` zCHP~#Hdm?H)=RULnrr<4vgTRqk5Fp9HQ`jH&afWoQEIVu==n;WWi?DyYKi?4L@WEV z*-*&7|75!1o8M-y`gk#t?d#5heEX<QIDx&>QE+H`#(4^6{@yw0GxkiB9<`UxL%*=k zKNP-g@4G~)8v7qpluFpy{n4WKJEx#Q>`zvr0qlbgRw`}3u~eyA`>)Wj&aRuNRK0!E znMyU-(Q}o`*y|xDYk!7X<m}-{X|(s-PpLung`mmXFQOKM?GsUAlfA=yrJ8Lu38Sw4 z$^lBX*n5C$2<#yp*ZJ@S)L^QGZjU4xD?(<h2%51XXvT^##|rC~_%v8AXvT^N#|jH$ z1=FHe;lghW_4@&SYa$#bEDRGD0(1TZGX|S72Lev4!zE}23}-itE5RePe_{H1NtY4C zc>!%7yrhPr6VKt|a7YPW+Hf2b-oeHF1ec&0T!LnBN!khhQshzb;tSAHFQ=XdtWq;z zEWI)HcOZq-pJ5^Wisba9{<IH}S0!h4I)nDsuNfYl?jqCchDoRIL;LGD43|!y3187~ z8aACy9tP|!!xu>3%DlHz@3XK#?W8G6zmrOH7_-v9X4bo@46sdBdi4xo@1<A`l~7Us zQr$Y%Fr*T!MwAt$BuUH|JOFmVcUI9mkx$`*zo!z+6Q<z+>M7}*fO5v1j*>RnDPQ6Q zpCh3n^`{~4d^`6#Xu}+woz@gfO+KRS?#O{bnC~H2%${u&6<gYKQp~VZHDI>qN={Ge z9vIA?C&;o?4g1CX)aQ`2BK5^`APXdCW$M1efh<fN0|6JO7VisWk>spS#n6lF(*;?R zI&cn<Gep4J)IF1dES8*gDK?CKrU<w-6^D=8XGu<9Y6#U?BFOp_+sN)ojYeG`N<VoV zkfoAi>-1+V=xo8lI^BcrZ=WMrT&IsY5!f=pl5hgJg#BH?>a;YieQxSBsGim7@iURP zT=K?gX<K`Rm~MhjpLI6!&Xc@}Iz8z-z|I$JvQE#Z{uiW{Ldq1KesDgpm6F$^(>Iaw z!qh6{Ez`9Jk3U%1-;=!6Iz5k7y-2V%I{h4Lbg^J-b@~-zs{~tz8nJ{+jD>XiG8+6+ z$?MbUQ5a(E%LH2wN2bin1$#&v&tb!eJ2e@cwH4elIQ14hVsPpzc+B9}`?#Z=W{g|* z74~<~1`W1-U+~Y!OWlRx)Ba8U2DpYwy@4^%?h_<Hng@cegXA6zRQ7}QbZ?cqf(^7@ z5S?1VoZku(NUdYe?*y?hDBAZ}+krc~fwj7~mOU!>6BL<axs?7$@L)=xf&tKe)YD)L zk;h6JYzVF*&0PB5pFIuEB=WeY!MQ}9@HDuH$de@v{%GAs4OU>dupc%WP^BEpr3TLg z|3c}v&;y_KG`JaKy#2S52G0j;F=?j$ems(2@HBXn$cvr^?-S|wH29RrOC=4SvUUtX zgJm<3{It=4D&<%%HF!0681hq_k4FA$o(7wUyk64a&EVyvISo^p{g$V}A|h{l8Z0I9 zj;FzSMBXiFu+jP@HMkB_n*EB=fGXu!E;aZd_zb1LNW*{VX|SHiM<oqD4raojX=3tb zPlJmN2J(rg!7%20>S-{F$Y&)D{$cG5?(8-Tko>;UfGXu!u4*XQzm9YvzmcwHW(WHZ zai-XfZ2M#*?O)eO8)O@)N8Y&hVu0f67*pT<7RW!Bat4jH5q^Cm0=ieuMQT9Humz00 z*)o`&?;&OzES#TDKMrc?dhz^a-v#CvESdj&8L*JS>hheu?66Kz!EF9~x_rb)Y0K|+ z7O<$nhUY(F&x#qok@<fhSh3><YtPT%NLFL8(Q5FGBu!{*1%x(*G^gcIJaGc*VDAjg zl)XJ_qV2=aL#U&iS24qdlGa3IJFOV7Lbb`IfaCUZT$``QrNFsnz(uv(iD58MGw2r} z2wJxW5OUh=lr2x8g9Z|rd6IrR(uaHuX9?`%*iogXVVW8V6?8AL*3TrTB?cI=Yuk(y zu!`Ad8^#5JRow_#0)Lr7P1rU=f3g&*yR%i*t|H-(qJ-TmCG74?XgvdQQ(*VeMqrm3 z_H6{(ffkYRq{#SPQAW!UqeWNi`503JEh7!ntk!#nXrSY1zQC&ETQ9C7I*ru}tm<g_ z$+z*_nxYj@gO)VWHV^GqTm2md4Kz4ORC}TnIQ+^pQTx?a12BcC3zitc2o_1(?Jf0& zUr&WJTdl>&>IJ_yecuGXE69ZpN1SW9P}}iOO6?X{9{v=G)(cl7<-9t=%G&mFAm>No zkZD^J?*ejxAYtp+M}VvpByOG43*=(qNm?U_T$UtHoptG@KrWBg0?Aqr{T9d-!jrfD zcs-CS1u0nX{}9MkwT&Qavljjl$Th+<+*<boAlHiMk=B9-f%FPbyY-jHfP7z&(bhu` z0r`O-W6_5c1bMNlL%1?v4KrzLd?UPQ1m?2Xje3h+YVHNFF@LekwD5FX_>H548ThS< z`RiN>T5b2WZD6xP(+HRjGPw#3&j#Ja!V|p%Eo7b8@LgbjRBGGrUWY(+>l<L-L-J=a z#{}KMfCRbjup5yyCE1M}cf(Y4uEF)cBFtdfY09u7Nd~{}HxVT}N0^Y;1kNr4XXnW5 zy`(`ORW2iD=aL%MCCO0FWyI`U+CVELhaka=l4A_{LJ0W=BQ461FWj19e#(yA7hC|q z;uIbEO?@1&vN%OY`UDA(=7HcZNy8~R@?bsVMrCn|j;t31V+wPAD@efN6dn1UAQo0N zk$bGafV-AcbmZRJQGn|X=7r@_`Xj+l09l-(BaeC-aEgvRR?=WYaA)|v#VI=SXHNr8 z(UHeJ4LC(dp71o_6dif8q`@Dp!@yn3DLV47(SRz|v0Q5KOz;d!=M)`z*3*DfbmVU( z4W19)MH)`gkrzA-I7LTZ^fcfU9qIQp;1nHssieVE)-%+AQ*`8MqXAW_W4YAe)!@G< zol|t=HBSRh(UI3n8oU|&26h!JPSKIKJPkNSN8a`{;1nHs$J2mQbmZNV1{<v-!ClKK zI`WFqfGX9oTx#$^a0#VzijI8fX}~Eu@=-~HkAwG;hEsH8v!?;4=*TCY2ArZJpL!Z_ zijI6%(%>J~^VEP-bmV=b0adDFxhhqN{5p~jVhKZ6Qx>Pd$RFZNvFq9P$$HwquAVl? z)>DtX3e$&&fJFLzK)IZvBcDq-;Sk((7v#m2GYUV^jTi@`@p>jjgE!(*BXFuNHX(91 z60O<SVkx^%_=n=&rxV#%5ZgMN$V5THR`^~ZlVr&ix8`G{jeSdygq3E_eu5;ekA4Sa zvLI>Yc2L6p)}bh;0g9oBc&+mxuuKbbROa$WQP0eBNYk0wzrfI!S+xeeRHef4L6JI) z>)C}WKG^7%U8LeoMl<E^wGN`1Es6qdOJtl!+v;#sP^4`W&{poopMrL%RRBpU8y^w5 zlC<5Y&QbAgqAWvMulIpsq#$9d2inB9jdC<fTFF+e;-g|5cG6bcPmr^nAa%+O+zG7R znoP0D_zsbG0azE`fy5n+5?0M`fsC%9ZnlxMlQ73k8Dpf3gmn+*iTKVDE)!hk_EPLF z)(^qd5Y!wb^;l=y5MsLBAH@Dl=GFUXxU1LFWGio=$$k!gEAz`gpcIwL>pdd}g4$a9 zdr<7<Y4SrN<72Ej406E(z$RD}8m4k50}xkgQ;mPU3VHj~eg{diC7BGfUKjZkS~Xt( zFes+BEHM;)p+cB$bXyt4{ct&b$l&XRq5z7<OQ51YtX{S~tUD0~4cZqiuRjm6wPs<0 zN2M|Or^0aW6W}IV^hOLZ_!jts);h<mpfy}$3J9})Ex<)*TQy1TI-Rv>q&_ICdut)F z`3rJ(ra0wTt9q9-ilpOenHN|!tC20GkN3*yY!n%@#6p2p6C20>8o4KUxg7=QbV4n4 zZFFu%#)(nsIje48(s(L;_atd!Yt_0Xjdf@SeNz26=wYo|v!w9^G@9;mZxJn4FKK*? z_B}b26D>|{JRd=ZJ|#gkXx#(DG`@U2Qci6sNJ<}59=if5-5$+)q+r^n3A~69b1w>O zX=g#-ahAadZDP#ku{$%Rkp_SzhsgfsciLDB#*>Qs1-7~rZRf>R8&DN)ti!eB^PL){ zZpeY!%<kU4xxdX0;n3qN_S%D9_%R*?jvsdr31O#1@f*fg;o10&I)2=NdD`D!k1-^$ znlhB{?X|}k0a!<7e<ev~-<>glbx957#xeewjd<(Qh671cu@PSr(xPjvQ;(`AWZ+52 zz>|=HCm{n*!VEla*d7$w33SPY${rjZ0ck3^NZCyS+A79@$8NSL3bZYeV?5echpGr| zn}DF@z+(@!_9SiA9ueUpKgof|-X_X2REh(SJyMWxiUW_mZS+ctNpaw@N5yUdl1_2p zv9}YXPQ^Iz*zMNIkl--F2_nMz1L%U@rq*MCL%ZW5J6+0p9)v+o1EILgN<mHop&EhH zKd1kW3R3x3W7wy$f%bAPs=ZWlnh0B~mMy89+pTna>~2AOm(-z4v^P_|z^YT~P69H- zAYJv>ka2r40u}}JKNK{{5(2BH*GtdZ!ONXhPYdWBYiLGm)n!ZSXdb;|oxxWwseh5& zqs97xRh@7g8ZpG89)>2;+)XNTKdBm=E27+K0@zz)p$0ORHM9^0FE!43<#yH6zB(H- zTFru7mY7{fIdQQ@0kY<!7~Pv&h_n=4A+QQD-Yzf^23mALuiyM+gXuR9fr6i49qtJX z0<{T&Eq_^}QG)F)O9-Q}&9WrH4BK0l5DDAfvV=(7_Le2&N!s4BggJG#w=AJIW^Hd- z!koPAElY?L?Du~NZLX@#18K9pWeItP+upK-qDR`^vV=VCwzn)HGTQc*B}B$@Nq}E( z9B?XzfDm&=;v41#YeTaliFiW-`MqHz>W>Ue3mt_EzcC2!#BV(6j|>L`tMP^eDYoMF zTa7miP)K4WNx2ljFu>vy-^a!M5iXSjLX@4xMyI(7SrK-cU~7uBAzt3ZSG13*<Xk7E zBQL_wQj-o+POVN+m`Y6@53J5$HZXKUgM?F4kkeq0cxnoAG6qSe_9s);V0Eee4{BFV z&R|(!+bgHhV0mCWC})tt3cz+$PTpW`sqvID*kHp`<0+*{r+x~xMgoJBW`nh-8A&<? zouc}qQ+w|Zz81r`Tbeu5&Jdk?7JTE<AHeCIR+HCljPM?qye6#egL^w|+M;1<xH1eC zn%ZFo@BU<H3uqhB#bPSLm0{?_1{YXeSZ5=h0PH=$uX9l@AeFs=NTVRSe*Q6CN)HNi zxfrk)3`2*^$Jhk6swt3eur&+<LX^^juPF3|Y8cME=43aLg4RQr4;vboQjqpUN)#zI zk}`}f9JC%mN@g>=_8!jqq`A?nd!GY;!y8Q9Gs+@3DQ3R$XW-j9V?nhN`XVGjZ_kR> z+cvTafmI7~qW88VL~q<=Y#dIeR!qYFzQ!0Z4eCBl>7ikQn0?{bw3GTZF1A{O;Kds} zjsh<y-Pg&D&-EFlmJbHc|5JCfIfg|lZ)BV4F>1%W^*W{ozcu58YtDpHb=HjVhd>g? zJ&qpL>7r?Ye1sfpX7eY2?ZhvM94AOPaTLjpk6eJ9cp^$<mLN$L$8>`sjlyDEGvmZT zOo@MiOHChS#I3F{w|h)cr<50UYExNJ-GYQwYzn2!E+oMdCu7Z1qVR&`1(b3P)mk)U zHN>mLJR+xOm|-X0CUQoOyBuL?6vJ<9Hf7-!C}8&><m+3ViD{+24QAc@I8u`fL7{JL zB8&+jbsEv1N1hgxx0qRvu)T@`CNOV-^K{C0vhC5{N#R(~XgIo(TUg41ZH>HHsauFH zs;7o<l++5MrzdD`dZhb2@eb$wl&{mgqR5WH6(T#@eUYrRp3&fmRBi*+I^3BJ8Cj{< zwUn`eREG~UOmkIwG^zG>MuUpcgYGqo@7?5ARsD;8tJWbj^}P447mW92p*%moZ^R7K z1kL|T?+vD(1o7S8;}h~+Mlob;hrIt3G8#{g*>MI<LAtYbNM7O)vu#yFI3ezA&j<(E zM097n)BOQ5luLKEXEsNXVY_r^`#3?uF5THaK0>*1m+oxO5+tc=7=}i$qs<bTapEAR z)X*Cf;?8zgSlmg9I;Fg*Q=7_)>J}u7eKAUzU1))T8Zsuto$Uq5ULY>r*<Li{Hk6@U zwyb@6h8ea?cec;SaSM+jHK+F=-PvAj9S=BhDvTQrb|n7_#GU>ua%UuW7BRz~0&;AU zMzB@zt>=MtTAW3S54lK`op=!vChJ+r3*j&BDoD^Lx`dUx9z6OaL2NhoHy|eq5_bEU zgH8;xxSK{nx;uOWL?_*=Np_kbZSMP&Hb<&8)?L7yxjDAhZtjcE0GTJqIQJ7G3uHAg z!CeJ+(+dTehzkE5QiK0^4r!-bn+S84QJ<a0{=14_hfBo1lpyiM@~2@8{j=1|K-?Wr zFMXR-OSxB5lb<Ka0As{h#xHEfxgpYifp2nmC>BwvR;qbtJ!ePryiWS3tl#6o1oG7c ze0A?cOeM8@Q2yh=9VioHM%_GwkWU7sN}LSp?_!a62N6ReU=_BDifnfWM|f<tqUPPf z-Dyj#Sw+mfB{2=ZVlmI!4brF(Gh9SHOi{a=tnoiK8f2Cef6kCnh3tDwc+4J5-rX}w zVGe@!Axu|>_c4211@DFuZ^KDc|G`qZZNfXg$orr@p@R3fCEo0xSneIB+&YxIweWH? z%#?eFy=MjQT_xV!uC)IGyJm3%p1=^kn~Qu4?5&O2=HfvS(w$(}w1aN4(7jlsJHg)J zS7MX7wFgp_6YPDN$+0$KzX>Q#v@y4tZam(uxvX9(EYe|{9fQ7(<LwdjDcG@gIr<yO zcK2k|{*0y>Zy!msa=9>Q%u`4hYfE%6OynF{lrz?D@pW!El72kW&aw~i(}=I`y|PF< z(*BljmvgE2C_~D&%-_oTHkEh_!uv##x5+O0f$$c}c#oj4*Q}xsoh`h3Kwr}yuUWhJ z?kM(p%{t&}kiZ>lpJ3m7%{rCDSYR0+d&7u=UYSQ}i#IK)lCdwXlE0cg>_9^{tqwgN zU03)1xme<Xeu<r?g%0#f?5Mr`@4|ZA4@86MwTr0yf!5i^+S4-Ev&4f-8f=ZQN>8;C z908$m<`*>bAy&e4sBV>ii<ZllYTpCFx_5tcOjG-;^-aI_($ZP$@K?lJX4NjItgLmG zSNqzHEIVu6Y;@@`)@Us0BGwpGvPS+}WOzc0<qxVwkS%ujL$T~9^cYiir}45U^g*U< z&kj%MQ+zu}*-z;6E9~$WBbqHCcKECI?9iq1e`Xuptz8ztkLiW=nBQxIbo{&Z-gHEG zaP6CH<-7HX2A`F=ifZ3$SjGE#Xv0gjnOeYP2DD=+YX_6HvtN&W*j|_F{f*w9jV?E= z>@E54lVC<k)<nqDz27g&nxTDJ#=e~;-ocyMAX^eF>x#5e_Xum#MU=Q@N27gblT0pK z4mW5=^G|7q&m*QccQ;>85nqH4G*vf6C@mscRrOO0^tQSS8zo)<wBJi60O~{A@v~|O z*8W&g{@-&ivKgBFe{nC8w?-pa@~iFejq*~wAsH*XAsP1~J`#90Cu{tzfH=}3+}7eZ zfi00a_;qXitpLV3Njv@(HzzMbPUIY1Zo)UAV%{CfYk_%pDC0}tM4OFE{uW8L{V=X6 zjtS|dxTrV-$KWA(iV4e5ArYf9BRmGaWHF3$I$dTcixHzUv-umyuq{T6&T)c-Ek=ya z@exXlTZ|Z;S%P50`Zc84Hig9*F*+v>VoG>VBm^X4bh^UJi$$GMUeu{gWkq!h5>|0W zjLz)BLEsU_fJBVWg5;x=!idpXG~^0Vm=U9MdWIRc#fZ^4Bgd#H42|~3Z=4aMv)H<d zX;0wd@DlHT1M$z1N!BJHab&0?IT(S3#W*rFBgy7g7URg!u@Yd~D$Y0(tM!k-AJ`N8 z@z4p$qsVh1g`E@@V_O@DbR}tQ+j{g}ASVlgYQ2Zv7&^ro0Un2pw!M_#skrzLah^^% zAknF9Q%2zZw-9>iLz7#OW37D|em89pVXP1#Tp#7q%(k`hMIc8DlC`dR4@gIj{3ESc zKagYUE(A}z^%|t<8L0pU`O(%CsH(fu^y+a?h6asLfi!Z(#qkK}u`hw<EbCGvJ4~-F zyp4pjQ`><!Xx)w*7IkY#^1asmksGu&U^BwDNg3W3mk6yr1Axf0Rqfj>^OB~6g!oAi z*ZzprxU`9cL2E3wrE2eH%4J^4WTrgu4pJ^3ajS53AjP&xAHD?%4llJ&lHv-FqLV!9 zUPa24o|IWkX`$R}hrcK#EoO@KI#POfVa<cq#Z39p-;r`dv(e@<rld)8^H@W(mMI_5 z)@w&ed~U5{%GosdkG7-1@q7$Z_N6|zcwDzL<;j<k^5Zdlcp_-s$&?Tcx6Y%vhbf(; z`H7d($CSgU^G~-kT<e*VV#?3Fl!ut|IrX{KEBz6se1~<vZRlT3S!ksC3o$_G10#uH zElL&OJ-Ro5h@{~%Dt=(3jcvs#AafV#c8ZAafDHSgq&<qX8>sG1k-gr4{SXgjg?Hyj z)Z@**O6A8!QlEka@laM`v0aQP&VIT3s8vfOdoG-bA1;A)@70w3OPZ@CGKmQE$o`VD zS|g1l)l=b|AylRDUZ!3hPO`-H1vr)nc#8tkw87QkoymYL`-aEprdNj#q1z)g%6{Gt z{MvBDuW0>sBv=xznFcvsB8Lx)HEhjFE(z~S)6pRHb<}KnxTe3^e{}z7&<%PO=n-Jc z&Xc|tPI1Hl!=O0ijb?_Jrz>1zO6*2b{UvO=-NH2;VD3SJ?p+R9S?R93hqKb(S?0G` z&sRe=pEfCVoY1{T-9+N6p?0qh4L8tNUkx2NPwLp+AaY&}bsITd4Nt!+`B!}eX4t^k z=+)3|#zq`}P6Vez+4W1=FK-NmH=;-^E1=p=h)Np1MU9ax10`zrA+lk7m6!d-M?*<G zpS}k>$mJpD5#*Wum&_Pi@%WHSqf9{Z3XymjC5|BV@u6L>0RpdRxQvxJK6J#5g3rpz zO6~;1$_B7)j>`^tZJVv)TnDfzMSYJBIax>_DbgQDvXOptXnP|a{`>*`d1R=8nk*b_ z-s94}O%c%U__}0GXafRGvbT_QRLFCYZllR|<(h1S=R4$WK8eLY>o{46?2zJ5D~f#9 z+1?Y`AOZce&VI(5W@W{@o^!lFb*^fDiB0r<$jMU({`dY6at3`H=x#{KhF?S4!;bY! zuYaoMzrKW&-vynw8_lf<-D^dCZ+j@{b;j;Oe2`hOzYcNPYw5#}2V)#5Y12Vdkb5!Z zbMn_81TCW=`aw%=KT<+LaYj(6I(&8SkT=*}KD9-2CY!!{D2tXB+hVfV?`0+MFT3c@ znR}`7TZZ5vsNE(a&nEAQ)a)If7wxr?jc}PQ?e%m{sZB!rRI!Rz*lD`Io|-*^tXCRJ zG~XaDDX#%__FA^hEq1Nxk+a~T*HGw6+qnk<#n8R20dg-j>(+vl(flFXVn5sI0M&F! z8j48RRBwM<e3{0}%qHCs+r$W<TP?Jwfwtisc9$V`yBQ+8j4Ex06uf3k7;5{iq?(_n zSwFJS15JbI-X9g^d}I}TInwh#w)~-14f)p#;CsT#u#Wspz*qNvL|z%DpRjiEd8K*& zVu`v%9sX)%J_9kAt+w3+gF57Ge)cVhxzwoBD<a3nA@Zu1CAq~HDe7EaQm2`(I_j+q zA9@v3Sxvq_vEjF}h8n)khP=Tim;tK8m}7)5r#pKI^S8ES@?npZmfWVOy2@Nc{ZfVi z#V8K6y7%p3St)C5g^snp?73z(s`F)ctLA!|{^fv}eyYeBT?3t)Igz{^D0n@>blFz| z61390#qC}Vh~?=H&G%8x4T#w=_L*IqUdkCw2fHD#tr^!k8yrLSZ6mkC$Xzo)?u`Mj znYyyqv#K`+T8tN?oZD!e4x_Ir=Si0H7y5Qbpwd-l1d6Vbxq*t@p`}N4Wz3_Iy7$Kk z@P5E{y+e<=OVbrP&4hA?o^B?T4l`lgq34(h<0vy5+@Y77*<hNPaPH9SOna(^PP)Mz z`nMDwSY?|@_zu0%Ov2$dnUL<#No{7NxanJW8QticpZ7z+ueIMl27M3u!fq-nf$wj1 zt&!BlxquBVFWT5@Fv{~*tX=P$73&7(;*%Yv)Efn;V{Zq{G8^~agB^I6k}pwO<}R-P zV8<BHIo>jk-O4gANrjFD9QN08B#JD@h2JQoUx?pW*k8*n24<Pv`?wAHe8$xB?w6bB zzUJp3No>X8ZL*%6cm==iOz5r;$ec)cuMYtqoMgI+Q1yS}o1{Kp?59#G@L}WUKA;G> z5%HyW0B=}NOSYpaYbTNUhzwy>JCn$fk;4GnP&AB0X9x06w+N>)gpY2zOJw1qQr~3C zv9)863+ad9ag9Bw*|CF6%F|5w9%+tuDHTula2c?WDYe?6h&aBwxBf>=s?lLm@l%Jd z?rnJE1N?mGtQ?}$TuEs`V`aMMBQbLW5*S=|&pQ^cf+j}@+MT+Al0L2>AqIxrtzaFA ztVX%J6x6oKnA<3o1<n!?^03{h^q`Z-e@%$eC$=bg*HHK752tCa$s6LSsr^~YUaye3 zsY3+K7}4FS2^7&g!k`_ggNc5h?@7V{{WQr0(*HopfR2MZP!4sx13ITZV3lw3)a+Eb zcCP~F_So}|kvc0S`aka&jW`Jfz-_B1-J*jp{Mb17W@PYl()M@}9Yy`O_oV*g`@!=e zwDOK>l)DSoxa7si3ENlT8oM5sI4^kpG3woC{TVRtu6aUW<M09F@L`*2?riw6KD7Q< zfXzLI<YlOkKBAeqL8}j*l)CpLq||BWvNk_fNMFySFPtu<3<II=-B!c3f5}v>T`3J? zaov8D{+u%sWV;JlT{oNfafdMn8$<WjZDh*B&U3B4@Vfh$vff#b6cfMJ-9(-4EqCP& zq*?3k3>hmyH`d5HisfDD%tcDtq^zP!%bY1lK@+3Ah9{XaJM{-(3aL{hH6sJs?6FM6 zz?Z2PqJx$R+MSWGdv*s63|GR#BNn}2_Y}Qg=glyEx5k5;0j;JXgP;3GEA>4T`0u>H zf5Odse9W|t&4*6{gW1n)KAavnyc=NUTi`YyLkX;ECk-D!30y+sdM|>b#h-??g6AR0 zxdE5ZIP3TNTr^L3@W0?Tf6z=+;ifG>{-|#TY==J}^04HD!@v6i$RmQp!^eLH<WWJA z;Zuk_CP-a)7^VG5kZkxMA{zwBhaaVYKMPU_KS|_qLE6H9Bl3hG!^6)Yz_y+g4Mv9F zg7K`sNKSkB10sJFWOVp5B2Ni2Hf&iyo)%;`6`A}w#66?ep$^eHd%}CDWQ@-j+xrky zF+N^w?@QQ@@#$iFBH?h14;R~$W`ZOh<Fm!~w+JU<e6-l!k8m=^CyVXLgwyCn^1^}5 z=Zo$AFM*8swNPF+unF#jD^I|$?%g|p?zh)x02_`#LSWUYHSc~>!cIxZBa&H?F;a0! zbO?|n#6n!$Ms@TM%G?5(@B_%ax+rsqCo?6_gA8E?M%2V2SVXsxi89kRsp5yQ*ln3O zWvKtOE4NT;=PJFOku#@u_Do>yJ||vUhoEUh!|2kF;8*vy!kue=e>K2q1ThiR&X|V> zO^)E68A`9kLvBZU5{xDu)(uVm2|Gz0cLA}~F{lzpprh!zZy_aUZNw;@w&|L6-h+kH znSK_ERzr|#s{_!By&kqR?pLsf@zET9_C?p9up_kiH~0Si9_9~xa+HG2$2$W@uw}iW zu%Z){AF2>M6ou*#I=p%kHd%;Y-TM<<o!K+-++c(mw0h`3(xoSF<!@a)kBsnSNi;NF z4lGq?EI(gGjy_Ron|2FY3%{e1k)!cMqlYgB9wk!^ED+;m3`cSH>G%$m7(`bCA0BQ_ zs`tXQQVMr-JS$z0Ggi9Fv(obz7|*Ab{$sf1g;idZ6!fDcCv3N!g91Y<vE^kC<+!9m z2jEc_dl;SGR^fY5q`lP)AfO$=p+9sF)V8-~z6y=a0N%!<{Roc%+9SV5+JZgmZ_Gc8 z`P&hMTs*E|w`1By)gmkvF}I5Hf?jWI5RthBR`HU<M^fbWzXnaXYcTEsr1@}2z;2@T zM&S}a99i)(xTqR=*=tYq1E-DGgdA3oki!ZRa#%q^4l78=VFigtdhq;kLJliPG@v&w zapkZA_p{m1$CbkhTsf@3mBR{LIjq1vsuSW}Ijq2y!wOtEtiYX#h&1ZTVFj)nR^ZBE z1+E-c;L2eIt{hh2%3%er99H1Iu@s%wmBR{LIjq2y!wTH!xroqQIjq2y!wOtEtiYAS z3S2p?z?H)aTsf@3mBR{LIjq2y!wOt;Sb-M=hd(?4T2H0D!kmCYgSUgdEc5WA<pm6! zbwaCX$uMV~&?RhCtL%gTzCaS%Z~?6I@?`p7hz|wojRyiQgv{{(#{ljLnbQH7zB*+N z2RM%OcomZjuM2}tnWF(tB8Qf@&h?wZqEqHz06vkY0x5GY0GCLGKzb671-OP8R?3_T za2=3MR%$gIRKK?`bMSILfB6+B3aMJYBvniGBZR1=<YY{u<diN#^Ie~2XBD{|Fu%g{ zo~k{V(nuhbw*si651$iIVRK@@c_64~`9iS4XN?%V-^T+6-{j*OJAp~(5bHSyjlUeX zubjgysZnMnk!gb1nal8KkaM^o;mkQiju0fCIT8KRIZ}{h<{RiO&U8WQGPUS6&UXaK zX0AXt#0?RO&Sy@c=%WQGWbVWO<a7wqmZ?Y2bB+;Yc;-5i%@AZ{W)S+cbF6hY1hi)| z%;^+lbcP<`%(Pg=vDt(7#Pg)b3C}nnc%1ZjK_&pfGpVx#nV6BsM^BJiPtN@guYfuy zN)8_Ld^ZK`B#~|F+*&-6<a9}1Sm(YS0d}%rah<!JDxD%&Qs;t$fSoFQbvkz>&C)G- zS)IdkvdTG4u)NNVqy1(JR?xY>V%yu9BUqcxwXyWMf(_TX)6>A_iOi8YM^AR<TYWTv z&OJcB1(G*S=YCIYp<vT><3R@>s+>iFb?6*VS8z_Z=o6hf*GLneAtiL{-1k}c#X>n( z=jiv&nbzBIhJ`wJCrdv|C{-Z$GBsNwm>tM9uzo#)g#$Tu3umcCM~??`D_Fm?B`+Ds zEg*J|V0D2U4^(iLSzAy-Hjv{h*v@yQ^nN$z(tFMo%8hQWh9xW)>~%NS-T-WcU~juQ z9=+h4C*^H&bH8L8oiBMGx;Y-G;9MYio88>~l(JItwz$UkSv%=gBMnYn1aC2TO~~t9 zr&(&yxh(fWi~S`(9qo+}(i-f&^Lr=eW=^<xVhSux-fO=TVFWy4i;cDfo*qxX4x+U} zbUKI%6X8LDx-m$=BwyGMy~4-3Rm;ohF@dc)A6`5hi&)`$7F<Iv#YAZ`z%}GAXo<kq zMn?CLNzl;G>l#v^{B2C$tRc_B?*iMv1SkzFlPKlyO8HMi{z{R*Z5Z<3g---_HC$ao zu11Rmc4bCj)k#L<-8_xka!}_}Fr$(xuqQS=<dyE$P3Xjd17#*h#x#-4x4ezy0|~Oe zds4fDDa$MjMI10A?oiCJ%qv{Tce3MDJ7~R*fUfX!)+1r~-ey8KTr=QO#h|qY&rc6! zu!o~j?ng>(7nB?J6gEBrQ3Q8t*xhUh0k_(l3e>zKe5=7%OPT7~2&0Z&>x&`J3_Nnc z!0;h7J3k+P1I>Z&e;@Lg{h(kt&~`fb9Y#6<6X`gNbOK(a6Jn$j*oyH4Xh+;cT1Gkn z6X`gNbOK(a6Jn$j82Me&76PLlCoLnLz;*<c!$>F4{sutYuV<-$$2Y=DG13XM0L1Zr za)^;mVEfyUQrx<dfYzIzL-KNh%+DctEy0_gC7|`D>1Z2l9Q!6NVM2%DD}^RhoX64( zg9#mTDh+8cpdSh|&tbCdm@{dZ-s6}fX$UWK%!xF60bb#l18JDP(lO`Ji~;Y(jyaBo z>8l-c8V%t!jya5mylWkE77f$aIp!!D^4{v0lW3UU=a_?N2(Nd{IW+qMeyGMAL&J1i z*O*gih=g^GIfRBtT-TU0Xow_rjX8pbNS&_XU}~Sc4+_lcn(<g0*vpwSPS<d_v{%qt z6LgI^eug;{b&WZFhR9@HV-BA=6auE`ng{2DXC-rbbd5QBh5^npoiHcQFlV){F$d2O zS)*&7I}SV-6IrWk%&{{>)}ab)giFL2y2czj!<;@{W6qo*vR>DiBWH*_q)qdZMVhzC z;H;kDmcgm5;1PpUN5NwTpYP+23YimU=rF+^`|4+HI?7-~-q*4~<!m6_OW1avCj5QE zVW*$)4+zJd*9l)oIO%L6yqa*GvzhSqgtLx9+-~1MIPZiB|B!IONfKT|xXt-K;Ts7L zHx7Ce)fwsB#Ppk)KF;|W;kAS(I57+m_Kyfpbm|D-LU^)sCux36c#3mB;dO+kI)h2` z6T;J+VT6B5c)IgP()^5Yhw}vCTM2hMI}^T*@GNIM;hz)kat<K;3&P#bk%Vt2Jl8p% z@Gl83bpA>BSA-WEoAZ%SX#-n@<}mY)rDz4|t-+v|g*cM_SnuN+FY+esL$H|+(=sl! z53?vzB^ejm(*&`Tj0^3<1qmk^7urV%5>GNNw2u@dnPgmOPZy*v$+!^53{hG($+*xy zN|1b#aiM**AcZ93Lc2qdwj|?1`xrrnCm9#oGXxo#WL#(;Yq7t#Cm9#ooq~)`%0M&I zVim`x7#G^d3C}nn+vCZ2K_&p%0Z+yYGBGIw%n4HK$!W%gxP30w)@jCt_DLce$5Jsa zw7Vn^$5Jsav`-cc$5Jsav`-NX$5Jsav`-a2981Nx(C(Hz981Nx&^}GDyiPMNv}X%e z&}qhn_8h_5beeIYJy)>dI?cGyo+mO#n$yqh`4+okyG}DMv=>O;G@WK#XfG6Ox~^qh zXfG11!<>v}pKg5w_vqAV#)bA7QbM;*GcLqK_%!QW?=Y=1Exy6LP^TFe+GhzR0vyJL z_7cJDK$>x(-6L2yU=G?^YSFXefi&Yn`)tWe2GWcR?Q;aH3z&npmRT(*Asa|DF0{WZ zrT4pO#)bB|Lb=gRGcL533--F3W?X2m5bSN&9LaT_l()%EGcL5xm%I;MbI{fWlDFAS zGcL4ON*>}u@qN}#y2(g`Qy0No488;KI!>pE3+ovd+80{vFAXEnr*vB<qMvUgSNEO; z!p!WM$0L#91@Cg6D<lS+l{;X2kVyo<ou0<+Fd*n1U{rNGWE>?jZZFE%fy-v>`x&m$ z69mKk{cn(KFJNjtzPk5ma2T2i1SvU6;z7@`>@(`N#zWxn5Z!wrqMa-wN__^31L4#x zBT9XSQEy6?5v89uIm?JrFE)7-bF%q(mZwDSB8v8~&fFDcScg$%iBV;GPEp$)!`GcV zfY?%lb>*_;JKJEhRQ?U3$7((#!Ot*!@c@JgGzWW|dcQ(u6rD#kG0xKk#xy}|Vjo`Y zW3=Zd%tC@%kcKm<Ee*JujrCl?M0dk&aN%<eb{>AT8!W-sT!#nF{VCGS;X5k`Ds%SE zd3OW!j@~(+uy^v#1%$nWcP=8mcka%mO!to6x$FVJ-l;p6Gu=CM=L*6F>lK(IaOGow z+i=tKcKrG$=2V>S7+TN@r?daSeD8jyxo;U5)`AR6BD-)qV44HYYe)H{sol(G_D;d^ zkGnD3mr-ua1P4orW@9GGoy_17V_{nF8O11Lz~Cxs8f6R^yyQuWGkY|U%3Z|Rw?H4m zK!=A332lo@jqTib6@KM_8s|5&0h;q^oIb(<5<Ku{67X~y=fPP*z{6>r^@PpYG|q1c zo1<x*-x0QO4ySVuH{D$xOyk_k5|ayfVR01uNHPFA9!ujqYRcuQG|pqiayLvO0nemy z{%p$Sku=WZrd*y#<2+%?<$*NLlf`oXcsv+g9!KLmEag&<B#UFY&#a(W9!BFlYs%$W zG|u0O<vxEu33w8X^MWat2hlh$nsVPK+;7U|F*MFg#d4qG1C1^Zp>dv;a;Zm>#j)I1 zVH71t&^WJ|a(M!c^Lnw|H@RId=g&BAnR0pjjPtfBm#5D-@0fCV_>A*zvD}S^fzjpB zGtMhgF7-&VIF|dtLW<?VGtP&mT%J4Qd{iv=<J(BUQ)isbrd%F6<9uSu<(V_ir>5Ld zgg+~m`;R}dTpl>%yf5Wak0gu3i?z<L1L(Oa`i`<>_va5xuv2W+WQsPfOR>h;6wA-6 zG~H94Y@H4uprSl&#`&COr0KNVg1gpa)eU#<#JfF+gyhZSUt=IbDL}B3bhjXO{RF&- ze2>84`hx-At4{_|yy1Z%*ekeCGLj8rFvvK+5u~pEph*WSr%#Y<{r*Jm7bIUliEl$c zAV{I%X!1NLNSn%BOKiQSa?#=F)S<?|LzTMG`l-P8IPLVJIQ?|sNhGR<QLR9p5yWmt zgHt~%NVws0lKoAPc*7Hrqn`_~GbbB5N=RM9^(1>fz>c47_=q_#2-4Uvfzn<S0r`ej zlJyHxX!sR#UJ_|-4GT-i@P>Ce!2eyyMm9W6o|gq_SDBlcwK4D*s+Db^){VDr>)&k6 zp38!VzFtho{fpG23Zwja;9b<baS8>Fx*e6kyf{eifNjqV&Uw<Hp97Hw#gupmiN{PV zN@#cB665!ufW!(3yZ91vw^E5cy1`*~cTOS4go#M=81fS)7m-s;`FoM5SpHc+q<pP% zvsr_0tuB^-C#5Yy5*v;W5uB{_WFvUNV4UCV!ShwqTI}%ZgB}7W{$mb&m7JhBi0(|z zWAK28f${9nQkHYXW{@_a1L)r7RjkHiS;QJsg*|r+t^HgV67H0Q^FxrgupMcBy%rHM zdd<o&+`gD|N`4U$lhZl)@PlED7Yx$^V6cXV%^!UD-le>Gz)E>|tL+);xVdcy+{hLU z1|d)p4K|l+u(@0VFUM%$<#-x=TA_i5c^Y__r-6sfEr_oqv}tPWxP3yWt<$$dqs^kx z@1fBU*1S%0WC*M}dI+mtr#YqJ@Q)!2cPQl@HDr-sChv$Lr_RIO&pJ&R*l%ma?YRcc zu7<X1m3y2SJs56}BSqStMTv1_{S36N;A->;XQ`p@dRa`)d&!*`-fR}rvMn{<8W4hZ zeDQieLZM+^s!@5tuvLbLS$Lk!oSU<?R|P(9OS+b2B-%+N%@RpRQqq3(nw>n_`NLZ1 zGd?<Z*xlv1vsKHFDPvEO(IGOHQihB_dwQzRRV{C@3+}Ji?Whz6Ug&&3sfLkve{CAO zi`F{8L*};PUZ#(rl~##sODS!_|4;J&o>GtSnrXqXzfjx}#Y(m$sp?U}G+&suio(=* zi?zeATq}B^k3h>`u#_%gm|^Myh9O|+@*8mo7<^>bkggKaIZO^?>GJgNU}ff%>VGdK zFDkRr-#p2S{N|-(AL*cEADM0>FY+W$qvRf6AJwvuHdro_55-mY{x;_M?{bf5s`#&u zO%ea~vB~1UJ~q)5wcIO84TTXDf@#&-2_szSC3hA+W^KNwhao4hYDQ}(RKLi}oL)GM z{&KOGc|_~6r=l*ad`q;>K6OC}?cQoLCSbftAsyiIVx@*B(MRa~H+xC+&XzOSoWGHp zu9KR66WwRnsciJ$cyyh^#<O%E?HDq<gm`xRP0^01QeROoRN;OP>2B>*`T-B=QZ2t{ zZQs<J;k$noueiTh?wcOfbW^U6PGh+~GSwLMO|RT3bilWL>2yFJnKd*qTB%!5L_sF$ zO&$?Cc}s|`{Dsv0kD|lW8o%yeRO;ZPqJxikI(*^lFf2$jDVdNtPC=!BOyV4;ppuWw z5)b%6Q6<MCqDn8&@EJ@rN}VMtZG=iPaAtf_;&?tbOB~O~I>qsPti#yIN9EaZ85|#h zOc@+Kk#mhta@=Hclb75LeI~O?TLm`2hHFHhr3p`;t$eLTA0O)weSB=X=;LG4j6Oap z1NjJFg|@^_X5>Br1yGC8MJ<L7@v@ja#!K#ka{pxe?H-uRZ1LSGE|kN=kGls5agsqB z?Cx<)<6z(;UfcQTlwn63S!P;M!z2jwb8U_edw4QWZ9R5Y2|I;D>bQWJsk#bXG}oRU zdSYQ)3f(JUrjHW}pR%v{=&VAVZSAASb8VWwN2w7rnS7SW=)v|tznDFhq}iEnG=ybK z$TXv_pXb%hN4>iFs2VZ{W;`oEiFnX>>()7QF_!dra%agv=pl0p`%vShfd?^i;DMsT z<E+ow9&5L$-Z@_NPR0C3tB?32^<N|ULv?IWar}H6rJ3em;|ZT?OzxvoM6ETR?1ftw z9%Ior`Dzu8EJr(y(l>j#GB5Z@mr;7Hr}T7o!ygHuxi`k1SdJHDR;@@`%WB>dpw5N| zZ6o*NMx4l;*8+@0_}L&{cSQ<y`vz<MnyAmy{)Wk5V<@dvYnKd@MS+j6S<=cgfZhm@ z6_G?C&)U5y>kkWO2ezJo;PovjhGPf3?=8=#<`?dy3U3E`!D+3!bxGj?7W|HHCp5xm zP%O=sSO*d>T5j2i1q{W!;2%GeNki#pOsWa2I_Y0SE#t~F=wCk4VQS-}N14j_sPyBl zEH5B4MGuGcZMgD_S!(c{xfr<XSzyrGgu9F*x!Dvx-`*Q3u{}VPJ_HcI+p0KY&rut% z#x6^ICQ{<x!evzOM&LE`d|cg(b%?FHbGVwVr_0dqcw=!mGWfY-U!{JrJ8bJcPWGQ4 zJo6srYzOmKKEa7c*!(9r_a=?^B&gZ0@gL;Gx>`9`;u0cs8@}O-alun8k7%pA2R$Lm zTXxoL(x@oc*w!2-+fm-Kv*t3rC(2uP);z+?qP%5i&F=-gBFbBK)&i!ljB-caT6i&d zFOKq-owbPRtE0SSXPr)XO_aCntTV{FHp*Le)?%iwi}IG8btZXljq;YAbr#e6qP%5i zEg`%<%3F3;&-H*Git(16wUp_$j`5bAbvBW(j`5bAbq<lZj`5bAwTwto$9T)m`Yw?= z9pf!K>)h2SFsozZX98KyoN+qFTXxop1wba~7;o8G=P_rZj`5bAbv}{FI>uXe)&;jh zz!V+hEjw!^b9!`)x9qG7`;fCt$9c=n`W|yu>lkm@Sr-vmqhq{fXI)HWt&Z`QowbU{ zI#hw8FA-zt7;o8GmoleM$9T)mx{Szr9pf!K>vAFwVas3ve#s)u+hlN7PjJiN)K>6_ z!KtI*F@taLaYxy_WoKPMhpFkYt{#oyHp*Le*0n59MS084>LqMPdCSiFKH+ebx9qGR z5RONA%g(xva5BnUcGhabby423v#uwcjq;YAbpzpil(+1x9}+G^dCSgPL%1!<TXxos zgohgky@~3KjPjP9bu-h)MS084T1$9Bl(+1x9}%7y<t;nw7Q&OGyk%$onDCS+Z`oPv z2v3djmYwwz!qcL>WoP}A@boBe*;zj$+!5t1JL^`$ol)Mhvu-0iE6Q7T*3SudMS084 z`UT<cC~w(Ww-cTl<t;nwmxLEadCSiF72(Ck<`YmAX#*SgfS7s5-_Qz);ntn{8DzQK zoU(qc$w6d$W!)`^?P7BZ?`kk3>|%4ux>vJb#gp8evhI_NWRjax)^7x<bGbQX^$C)7 zxjALsFG$|y=9Kk-AcZ71r>qABX;Ud~PT_gc1E5U$PYfp9j-BD!C`$KcFu2v8BZ=7U z!@RMeZqBh7T3v(9SLqj-*|HHF@F#E_0**RaA-533TvE$NQgq7#;h$BHnPrH9=i;wY zP)@oLca`)`Bk?e5x5&7<C}XDz89SB97~{*xaA?N?iZ_BOh_OMbi?F1$)h&%2JLK{E zV<DeI^+b^H(?3b6nb`l9KTxH2!*pP^$@R6ls`}@t8sP}?=c%lzBVa7={zc_s|CKi_ z<gZNGgTD<!dVgQayWt>zPRd?&2r}dkN!gbiOByqgdG{T{{OeKE(Iq10+0camRfO}D z-gqY9Lc}~9dLiJRh<P@Y>8qpW+0aW!uVsSKuM2~YnrB0=B!`x1MZYO5I%=K`?Ilkj zYMu?f9!Mb&lV?MJ#|$fKo(+8%$R;alo(-MD96SiaUp|#o!%IkccTEzPqh1NtB2I|9 z3PHvsN>1q_G`IOQJF7VNx%m|y{5`4DD2)U{`5XY3#o-ZA?~h9T6a-1CA_Q9i2x~%x zIqN@+7L1r#U(^<BT636eN6f6x^qz>B^$9PFm|6cdz$+qV)@S<4h?({O2HuM!X4Yr= z>WG>339pHmS)aUXBWBiT`nrgj^~rl{#LW6k?~9mOpYZyKnf2cW{7}@)`b@WV)Xe%s z!a8bZeIjukHM2gEBpP03eIj*QTGTrCEfkp5(eX3UmdlwlPD_(oE7&*_bkxlH%$ca8 zX4WS%Sx3#R{}}{K(NQz&GY4*DX8jn3kYze%W_{+Y)=@L-6Ir99X4WUNR!7aOPh=gc zAhW(0Lr2Z5&zwFTHM2gE^>A02^@(8Cm*yplG;fo^Sv|omgHv0<BL=6Ag5y9CR(Oz) zdw&|rx`Gaq!mPgp+t3j+>$5;~LC)O0gzbo#^$CX~X4WShkC<7Xa57?MeZqASGwT!1 zM$D{FI3F>yKH);d%=(1eB4*YnJlr_wO;l%O#LW6k9~UvRKH&)wGwTzc7%{Ux;mHv* z>l2<5F|$75sSz{l6P^|^vp(VJ5i{!(?ueLKpKxcy%=(09Ma-;ExGQ32eZt)lGwTzc z8!@v!;e`=1>l0pVY<>}{B5h#fiC~%ahoKdc?BsFw?w|Sjj=_K9;{k*J$;XG`ZkIJv zM?#p0584Zp_;LCg<ke1{2>5tSfwdDRPgd3}f$Jo|KS8tI$$66AhMW^7@2{*bLp^D4 zaGtEGEGbUaa=_Rm94c&eV>t=xeHbj9Ce*5ax^=8>#^SSqDyar4VmDA|I5U}abA&FQ zm2qOOzK)7#CNo}{Cz{q}WfYh%IrW)?$+JLs@>%Ko3pI@~II|~n7KvVkjKnLa3t3xM zV)-+KY-na5hDD1dXLwd(`7=fIh|E-0>@3M?&q_yLqG{LdvwI@|uzE!FG?jas*ixys z^E1G~^cd8y(cTT$LHpv8KZMrvpAGIsT*5V)?mZcK{<Fd3LBeN)2VVyX`X{o?#f}xI zE-h01#PX?{w+2-p`3OYCg{W}eP$bknU5t4i0$0oaq-x+C$@@=3P9xehaTouNMgszy z)>FvX#P;PneHS6w2F!Ths#P8mZZcSB%V_2m4CP$ac0SQPQ97nE>N(^$Oqe`wS9CN< zIGo~pB#|IgXuaY|{7yC^x?v)^Zp*RMAk9*O)|MkwvSk{1yaaV*=@DK&o{~5pEQ$}@ z;H=g>2X+a`9)}EuWGm1s__=a2Y(EZ#{U5BJy;rvwL;A07nO7lqMvC_q*WS$h%7ygV z$O$qWb#A~VMD%`q!`I^Ct){vB@>bKN@mJGK_E*zP_gB+|{nhk3!2W8Q>HcbZHF*8i zG}HanG+}==O<sRB&2)b?O<sRB&2)b?P1s*ebA9KprkQU0t7#&|)ijafYMMxKHBF?r zn&$GdxSD28aW#E5kO}^3nmNVQG?C(Jx-Y<a)mu$7r?{Ht%CxweW=?T6O=OL~nkG_Q zO%o}uro|ZkYMMF4)ijay{%V>CSJP+Xmn_n}SWOdW^#sRinmDx;9II*K)KPG(riu6a zcyTpNhv90PYd&u^eFKvG)ihy$HBH!GO%wK4(}exiG+}==P1s*e6ZTirg#FbtVShDE z*k4Uk9e*{=bbmEX*k4T(_E*z{{na#Ke>F|mUriJCSJQ<3)ihy$HBH!GO%wK4(}exi zG+}==P1s*e6ZTirgt3}F8$VM~6={RwYWl4JdMo?wseV>KCHPYFBn&NX`Af~N_fj+a zlkJwj)a;hO)a;hO)a;hO)a;hO)a;hO)a;hO)a;hO)a;hO)a*W^F!eksuOyFj%U^1C z%U^1C%U^1CD_&|&dM`DzvWcYio?gvbzKGG(`iH#tj3b(fyf29Do``#U)(7$yb=Z~I z;6r^hcq48*b3PKXxJuqdrhjTKw^MHb*0piWoIRKudN6+LUSjF%C4-|Wrk=C~0r+F7 zf}ND!N-#DNUjsgvSUs6Ai`4E*tYN0)&Bh;!V9TUdGI7#GknrrJ3HZUwH!MYXCmG(Z z+S5q3pOK3{L1;F`>))p)hqCMmV184We^+Ea)MHNXgN<oJhSy)x^2ETQB!i0SKZppU z)T{>VN=!5G{91Wu`fyXRd6}cAz~X<R7--JK`X7;VIl=aCqVtJ;#v>pynlG;?T*!)r zFRv(kd0FA-8LQ4Ug`aN<pOeY6@Vj=!wz5jq5Pphu{9q7+!G2aO_9?$uspV6qpjqi% zg~=3joT>9uWWs|Btn)J!#Xjp5i;B|V*~MgzXurtgq{tkm@|?6$M0;iCq|Au+3eAaW zBibvq5#_{02z+6X7&or{lJef}%}_=Y3sC4_^CvJ^zPbrtTTO4`v?Wo)8Ysl5;k^Se z4U9uA@KrnDYw@xGV}f~z(Keg!K}1f<;m*Epz~T$x%0>hS!4`mlakzBhE1WOKloPxW zWM^Tk9Awk61`8euFfb06OYs%5Cql}(j5c{|4U)`#nxJU92=O2Ol7eVDegu?UhUYpy z7_L=c5R~|wI7O)k#zEk}xh-IOCzCSR{2!eA;fGEYf0INW`NW?lqRbc!VIKU%-z1?+ z$=~pa|4NE0f3e-U1xYX9TSKaZ3VMx{gNg8tKr`yznj%f&5$$wGI0C!eZorxT6sBaL zapt6$VY}RLaOO%*kINkgXPzL-Ty8ly^HaQyv%=+`gR?+#R=QkFI15vsLBPc>cO9HX zlC#?7wu5uJAZuLiJ2+>EfVD0+9-PIJv(Dw3!#Ps~-0E`c!8uEE`dsckI7<Xs?{Wd+ z^rRkx1`j2<``|2<99t*3{otG}SXd{y|KOY>SX?K$0pTnYEUA;+fpESnSe;ICvErPY z!d)oDO3Cr)1kQ5F8>f?8t~e{ibQ5%vyAaNKk~dK&xeb9otUv=!*2($Q|AN#YNSUIO z+=y^iN?wmn$}5u>rnW)eGM(a9g!4VgTdkAai*POyY>iGn#~NKM*jk-@h1e>=)}cl$ z;SysZo#cLmbE)L@=_EHKoXZ4Tuan%7a4r`NqmDQS8%CU?$>6N5;FiIux8M<jQ&+*! z(dane@Nq{)c_YHP!u}Y^X*?!}W4LrQXszWdePQ$<{WtAQfge7{tlqjq(6RJd?EsUr zrm!cjQ+jBkHfALTB@W4?bTV`GUK#YDHWiEQj#PAB59A_bw6YSr#=a5TB{r#ckKArK z__CK2EG0QwPpZ|m2rM{Ogk4CQ1S~R4@h4iZwgO+Qp-dD4xY26gTFMP%QP)vwkDL?) zsaxezct2!Z_R77$l^CVJoO8uqIhN*@YeF%}A~EEai6L<+SXMlV@n;&XuwOMM)Rxzk z33Xp1j+Xsu8`|1R>>gw7jbIjR4M)LwJkMbZfQNp9B~v?<MhTTHA1>F%SUyr-Uy~H| zEgz%h<G$r<jLGr91{=UN?SRAAV!@JLshTo_;AC2ru1LT@T#JOFg~lSGt_AY&HxyO9 z07${PYq3~KW+qdCX3HgF8mtj@8u`Nl2YJkBa~cXZ@?F5>5B7{Bo`$UiTMx8tbG_b5 zT%iyY(JkdhV-pUkY{E&kMb~19tpk0cZJ<vKt>mxZ9`;pvo@;JZbm%fqL>?9yqu?X3 z*g!`g;prlkrRrbjW3}Kfx4BhrWSZ6Xy`bFBj0=?em+v_dzfq&*#xw2}`?ANy>1e)x zu_X9cr4uKO*Wt|Aay8SHu0h`_4lM92;~Mq8Yczbhtuuc2p;wjM66NRo9@bc11KMy< zWfS?$?=?~$<P=mi`QY;ElE0~v-!#9+-8|5F3Z6I_E3xnMHN0@jfnN4?O<fu%EYp5= zX?*a9VJXeDmQ$|2NecO`9A>jce9!orA=xxs&6jPT@NJKCLdzR9Ij||dJg8J!VL%Ji z4zyuixeeI@^<JH%noMZ$-8EAwxuR{dm3d{Q!dw0a)*smC>~imAp9}hybxJK%ZhJFq z`U7}boB5qie9-H3GL)MUyr!~ieR)9V;0s=v;k?EWQRM@AF`>3{K&`86Omx1=e$_D0 z_W#!81Do<oc5W<hl#1pWG_ckGiw;q;^Z!|lV(c6>BiX<h#p@6Qn?EtI`Q7rW4G27v z0}YcJXx8-CaDV+AP&P39dplIR&;R}aVa$Tl%os=17;_{Bn!_Dvj-=m5E2_Fjj{O&v z{fhaI{_770;;tn12ZLflebG=z8eryz$~?czBZ#EzjA!$rD2xy#HGE=kWY3l7RXA$n zFtkZ&QYq8IpHjYB3omzYF&87iR=KibG1UxoljebL@^zhJU~~LW0|L{!5r4*r`i<xZ z0cE3Bywa~~%B^b#u>=P(*L1F=@uHL;tReEIJAFCcF0Zli7PNS&nJSv1!LwJfMN5N| zG)tLr=>XYs73o|RjqDS9-hz>;RH~onwc(%`V*fPOQ~6?uC*^TzG`KR!=qt;ZQXo<0 zGhS)UMXxB!^GYk2(pZC*O5wg*BEA&nR@B`qptX{-Xh!UQ7mXO4R7<OTosap`o4+)~ zD)B$WB9$HzGS1~MYM`aRoGkY@EE0{!$U+7Kjv03n88k=v(xqa+!Lm<06|0eo;YJ3V zfqkPQ?BpC-_f@tLo7Pw6RM@*T*hoh%T2zJ_*t8g)QVF_VMMBPZAwOOfbC9$&w0wDh z$PXMK2A6!}>zeJqo+rwChZjux<G_G5y*FQ0HgC-D+HuphYfO(%nD+D6>D~asiYCju zIulZ(ii^LpfnBBxZ~gyeOZx*z(R`)GEF&J!m|r&RfX1w7Xgts-BY~(+J^%MC?OTb% zUC?v^$Jiv~uYKt<VQ&IOC!|kCJT{=%J@JDy62|<Q))2;vBS+<ILed&vbJMZ$ijAp= zL0!LfOH;M)wuT_>_jnpvyw{|2PL}1X-+%uP4DwaldqWl@m9kPp<)jt8EnHbmM%W&o znLx@nNK6opjVIp{hUDvN;9KBp#ysQV_`}j>K}4H}Dw`)<-u&g`oKfUUorb$d{@xMA znN=5dj$D8FRoud1c5$r*XTadc?HjM^L~D(^nJpXO^~UeGVZ%+JASGlf{mx%ldv1vB z8o#M25Zg8)pSeH>l{+csLPNS$t^fx{oa3X#IgsV~F%CqqFO?>~SVfz1AuW3YhOBHM zT@f=;BA3!-q^;$CQr3}4+BR5iFWW!UVuwS=p<W@-#SD1EN~M~Ft;!SrUElu?j#BO+ zj%QO$f9&a@at{gneX_J8W7;rgnlA1&oh<fh$^@Y`xFRWQd@j?At;|Kb*JW8I-G-!I zEBm{CUbFgpejZwKpYrA|8!^iUYw@VcQ6yX0Jh_rZY0t6+VX0xg0ibLq^ouBl*u}l# z3NE<az$R@fmG|$vdMQj`C5i#GX{4{*Pb)3ELbWh2qdytN$ub&<Y_(wYE^pwNX-<DN zRqhuEaZ1BTF}&gUkJjT4TFq#a_PwOmkI(&OymV=Q5%0BbLuK1%%3BeCJi_#yVjq>L z*q?3(n7y&GDY;}X>v#-KJpW_MvL(vUQuI4;)z(}LvWhuqX51w%H6`VhhJfGzwfwy_ z)R%;<UcnyPRtk}Z`au^SEcCkrIkt-FLo#gj;RNt<TyY3NQT`C(x!%^GSKIi}=E#zc zX295%Yo1YFYB9k5y6NSsW3zI984xk}4UernZ#$`cK!|!R?TswukpjktxYy~K3$&)f z_dG=WhrU-fIt&~;%KfKo+rn=Yuk-pVd6Y&I*Ht<PxAe-Kqro3Oi)(a$ME*L<4V)+c zyE`oGMdkb7<;IIt8n4`zuoi9UDNN(V{f4OV8^Yg~^F1SJ2JGSvINi(N{}wBkjk2=$ z?K>o<>GH-v?=_vC6Lndu`1e)3PM#}ol}6v3gZ!8reUo+nuP0@Hc=aY_iJuF_UQsz! z7jL+jmM*PB%eynHU%b^~2-`~izBu)N#hm<g9`Ju}-zl4DljY5lDjBdeta#mpcOuKi zQh!<F_a47NOS@lRj`q1#Th^yC(c;jK^=Gl@vJuTInwzwq%Iv9Jka~Vb)F0%%(UkW~ zJYqB8`4cWQH3{YI<=<EKdyD1w4u9hSdk8_(QT%;Lk;8(^<@~>VkNT_Evz0S-v7h^6 zhS_j0&ePn@U})u!ma<ypP~pc~#e_8PdYdhK*0Z+Q4P@V@Y$7f#Wy^A8YLvrI@H_!N zcrXp05Aod#-!U3r{C44YA$~XFm-qeO^nN#azyI`pw|Kw&BRr%Fd%pnX!$-IRJY3By zhlzYHCJ8z`gCHL~?<^lY_@<^IeWZu;hj2h?ZWT%DGUT@b`d{pQ31A&n+4em%IX7$5 zecx`<g%q0QW-sKXO|vv<ZkA@DNh#cJX&Pvg+9qvLRG{pjADak>Y_iFYpdg!Uira@M zDhT3+h$3z%ih%k*&wJ+FJ2z<o{ruJM|4Dn#%$zyPd*1VI=RNPtAXEV_pAF!#0rNT@ zxrxM-?}ZLF<wF^P00KDz7vb0rSbqi#x0_p1#gsp9mMzar!c{o|@xnMhhT~3VdVgj- zPt3FBODCG|=<LFgG<Oz`tvEh|BkMKdVP;<2zq@ea1kTB^_3d}6dEerr-79=3jvWwt zLBP$w6Y;a3OXu~;Oz;<y6pZH`7vpF@T3<8`p)I&R0mqARoC3_SUH%b|)wnK@D;O`{ z(e_{GUGp#pFgSsapsGQh{Y)C~v0eLVH(qx!!C$F41b*%vFY}JJ-E+O`D{<Tadu_dU z9m4T`T+hMLe&Eo46p=-WnBZ>;e)b!W_Un-LYm@dvmNPI@oMZcm&9CE{^JG8bX}=$8 zzc*^XVcHWip=yuexC!O?XZx+h`C`mqh?(9W$La)@FSGb*#Qi$p%znX(#RxC|vdlr! z?MR(K2xMjO8dw1OL|!|Nxj5SICfP44u@dV)hWi|c{YDcfljF4Cb=r<=p#vQ8KmKRn zT#VSB6v?xn%CVofu^*?gADpoj*@hE1qsG>=A78N_Sh3|W5R|)hr7dS)@^0VbZr{vq z-=NNVJ+?BArv6pUw!VEWsC~63i#~>*eIF;UIZpe>7lb&04|m)8x96LequF<&g+S~q zZ(nF;UsHCamv3JeW?uwm-~VM_`(<CgWnX#4ez$m?Z}W~DaI`OLVis}7KguEgS$f(a zSAhUuJ;cA8akMYW;q_OU;O|5D**CM;m!Q~JhVXut!_>T{g2$aqyg$-}6X5F*QzXYe zW^5lGwhsW?@=+;&?G9VsK8VBnq#gS-jeUs5J}ATc+4$KfTX@aCI{chK<zCyKjc&H_ z$2OGMM)k4|0^a0rt9RrDdB+J1e%Q7n1&|Q8PGH7~{`^;vXQS6}Dt~`KD!L7AQn&F( z-Nqkv8-LVo{86{@N8QFBbsK-wZTw~9Xa8_Jz#sJ)b(g)iN9Ivy**~6BckxHv#UFK) z{o^@x6@S!K{FP6zcN6VXKT$XFM;&DUcurl!A9WFb)J6PJ7x71(WB+(g9b@4gedImr z9GlN`>K1!_up`S*_wYyE!yk1If7Cg)9?z*u?DgoQg_C8dW9)sNQ)k%gzxT+x)G@Xm zzpqpsnPy2akNN9Ix2$Zsx=_)*vJM_t1obq#;iHT+T6@JC(4A9W3X)HVF|gv^h+ zhCk{S+n+r$uK_>%NBu(G!XI^pEoYCmoahtk6#RDKM}2Y{e$*$_A+|ivsZ011rUGM8 zm+*Hie$*%D<HrvUQfJsdo>O=5N8Q06bq9ac5%!Pg)D`?uC)hupQ#bHO-M}Ap1AmnL z7Cu{^d7r_L`e4$biTl(Cl=Y*_+iQEY?bvI3wE1j<x`IFI3jP}KqrMo#kNSeTg1;}} zM}6@}{HQOcg)#s5QCILsUBTaH@T0z<PO$xrKJwll-{$`4^7fkg;)&9+?NVP*SMWz& z!5?M6tvC8;$Imj<4g66z@JAhB|9DOvVC(aox`03G0{*B2?0ue7=G#9xr;^8yvY)?# z2;>BQl-ahPJ=%Kqnq`(Qx4D%15Tx+QbRcm9N*}f_6)VD}AFIV>*wwSw2XT^<qO+a> zqqx~R^$iHt6g}}d;LV*9bmus!84$5}hJl}PPD#Pz45%Nt6y&4>M?tviz_&qaIxu}A z(`Pl)Inb&)&;Xcp;6=QFNe3<mc_Zftrc)*{J#r4ybvaCLB20nz0aDG4T%@O92s#kW zX8LW(*OPg^M0(jJ`E`;r4ah@l(tZYrOb13lTBw`G^m3Q!8ZeIz{8V6m48zcYdnA7m zh)xHNmv$!0T~4bGtd#T~pg;${IgaTYGOjEc`wt~W04DMmOTW2?@%#daE**FZ6QBc! z3RK^dzPf9e^Q|JLKd5IKlk(lt{#nx3#UbW5OZn#ns_VhvI*^O$0cIcsb)a<x(;0<K zpB0!lf|xK~Nq;5y)YF;6_d@BwjWRD2rM1VU-;b?i{)K|2iv_EfLY(P9i9q<ev_CAf zmM<k&Nx%09v^RkebzqT{zZSww2X@yoy-!+uL$LiFY2oYA!sjGCT>8CP#&v?={0^ak z5m1>9{8ifg9#n%4bjbO4q{r2{%y|f^R0n#5TJE0B^YbNrO41F2hc`f*phJQ7G=XRR zEaq$ys>>6o&KG+4jkJ8M%*#d6<HIvq@=2M^2L)qk0^3x%TOpX7EOk!`vE(wD*#`ux zg+isn>CFG5(B$QE_h^CVHW~F2x%;%FGlXKlB6zz=a^@^z-9v@)R|)NH5&F4s3G;s` zcSmF_E2Y+{In2LHIPMEV8{ZY!Dy8K?fgviRu8=vJDcBp4QTzbLh7SBm@PC_(Zs$_w zY!En~6#6+=@Y!F-{Ceq&Ps->(zEIl7Yj}QzjIKgj*dQ?EOUsuE-Y$iR(}5cVpI;P8 z_%As>MEZJ4;AxavXc8s=5@Grqf%XxZmmw)LS7v{)@XOz3u*|SvV1~@XujFn_@OCkj zkPa*q4&^(Mb)Zjryg^2^SkCte?{`SuBV~@Bm9e}iEq_BGPm`P{g<8HPEx%vzzhCHf zk>DX+v;Es8KO~SJEu#p_e7z>;-<8p=7dm{Ygyk=n*||#~{El#FgHYY6g2_ijhO|kW zD+NncGLJh1|5po-JRv2&DI?t>@c&KdgkQb^=SrDIp(vW>;2NQd0->m<q)diz)~f=^ zOd07TLRYUG#_~ln#_!AAt&v$cPhbFOxO<*(-*@DEsbF%p^!|p7I!iD%QTTDa%-zM3 z{#xeZ_tMLN+^rU<9D(O+(*AYAkBbCjhYRhs$yi<$iTc3>?7ddb2j%X7P~Fu6;dO$m z2W6&)>sj(88Dojy{D(68Uy_l2Y&q}VFX?AwjCr-p`E(uAYlW7&<nA7sqkd^;N(1li z70EeK+H8<E-;`P>3FV9v473W3HOaV6koHq$zJ4xn?h+clK+>~Uu+5`nTr;Iii}2<v zGS^2-YxhXY8`D{Gs?7Dd()(JOSuTyhHG;`!q@7QfGUqyJc|irw&ljxXbz(SQD473} z$b=b_nbRn}oGLBP6`21ZbNW3Q^&m_j9mrhCv{y!Yw#@IjQnFF7;RwZ^BvirIv+95r zm~Rqz9+L9cOG&=CLI*w|P*ut-Um_#@vyA8(X(uAoLep3W?v$KmLS3Jp%AB9nGR+fy zX)fS7$N}lKA_HBafse_!b_)$J7GAEB@kWJ1FOXULfZ*XW$uE~Ow@N!F3rAloEmX-I z{aM;MLt17mzYe@9wLT){7s*H`$}Hb2<1G@-y-@Q1EWP|vsPt%Qvrnk^69UP8@FN~8 zlk&6Xu;m?~y<p%D>Gu(o2?ho*Mtrsk7zhSllR1hO@_Zxk6Ab)J=I-}0JB4T=82Aiu z8w{)xECoeAJSh3!6TbeiP+%GIgMqW8)>Ogs;W9hFuOSSXLiv1qN-*$<P~!&$&wrD< zKajaN2h<o0{9a%<L14R6+WaU+7YwWgHgI<w)3d?v!N7+wzd;7QAU!Rc>8FIoHXug_ z<_U&(%bc#0zFw6X`G&}=&tcTTK(FM~1zG<4g1ro(%-;#s<q4gfCz$-3NQ_p&{G~!~ zACpnDjM%9YzQp;Mytu);p4`uVW>tld=GAfji|!zF;m>ibr3IYZieijIAKpQ1McRNH zy`q8mtNj@9+7RT7HGPD4qh}G8wh^WsA0pJ<4|6tp4kZ_Ex|$>Idy_3}oz4;O_!;s2 zfv=*S;0fOXZuE)jd4Li;NnOo8Pf_#>>Qfb-9Km-`6upW1ZgoZ#4qsEx5zz0dKM=;J z)p7YaJfof=27aJ^O9uO~LQGpg|4dCF)4ieYVJmN{r4%-AsbO->U(^RdBKohYk{CVF zIjIhZlbw|;d6rW_ARlt%V>~H1o&Pz~O6arXgaui-NEhD8B8zf4`o;5BAU$LcLC%}P z5f`lIY!&8mUW*Q8t<qwaEPI0(DxXRqEB*+Y)|JD=#Im)Vjl*B&%pLI{L8-co^bvWI zZC0Pj-d8@t^V$|ly1L~YbbT4=pdp=@UNy+`#tPPLI+^pcdJo6a9HeB4u3=8gbk0EQ z49;8IAbGX@r{v5v)kJ8=`5aN_l}x*SL)qFri#;BB3433g%O2OSagZK;Eur0TdOgyO zmvT-vJp!`Qn^TB~Ess)a^wn}6kG-FFk2{&NV|ybhYp|K{3~eL~J1-(0-uDt~?Rq>H z>Fy$y9}ZG4j+7Bsdk{#5N6%kRLAvjE9O(ysLI_W|K8W;#d?TFx&?a*1hkxNBJyF$h zU?-`g$O|W{O&rL6^-ErzqJGP&r>ZVyo~C{i!r^qq4}9t~R2REDQ!V5CorQNR;&3)T zh=Id7YB!Po5!FPB`>6UbTlp{5&kE<_1=2WNsD4i@eN6p@!?;uxEW_awY66M!GPRZ< zeNwd$g_o<H9PbtC2b`)a)gz?FtJHX^x~tXwtnewdh{(G}UBb+3)fQ%6r_LjvT(7>! z%o|h<G4*NH9>C#7wVd;NlL{@t;bwLJLL6>U#boPS)osN1ZR%G9_jdIsR=-0{AxNK5 zH;^{(RNq^K!(EE+px2*Ozb2V{PMyS|+^sGmqVG{JlB++jE@0-pYCOkxpSqa9->;tK zj6a}$k%_~DY9cB33+i6hdq};=xqMjNF$af7)a!)hQ8kg^ep&sD2>FV7nz(*KeVrA) zp_a1EC)Gv*|4qdey#AKjO3ru+ufNCP+v<lb@*OpUWc6Kj_&6M%R?l-N&!`^|OW#uu zkYJuwmvZ8sQ#07g_tlS9;_$rs30dU_YJed9P~FK^exw}E?T^(BEcp}F%HCg4bIBM# zRiCKG;YIaAAr3!Nr&E%?q>f=nKUZ`Q>R+h21nFgU8vFaD+Q7prYH$G#zf!*>;s09Q zMw##%mBWeqts1Vu;dja*6}+ml+0pOS!z8{xsN0B;*VHeFtUs#vFUH|d7nIb|zw zI9a}BtM@x!BS@z@uMphRoCZ$u>CR3f@(kxCRyfl+grhyn!INJgXeY#pJI7f>lKP1A zdCulXoi`50;lG?2oZ^d}8`$Qh&U6m?6V6)F^<~af!g;xK%2XV#aGqjgS2}Zfb(O=% z6ZF;2K928G&J!$ojnhnoT<iRS_`J@cGg)8nOeJ04;GD=FKJ9#!#=(uwAiKTUspWLs z;=Dpyy4AUmG<dsnL;((WINzwi;V$QkAsjyI{FP(4+X;}1?{QQE4);38vdDeTXB><g zuAXn;=(&0vH<*@sJOD^>Q&Z3^+&P<-IUb{}yC*%_-IL+Yag*FVZY)!(q_`Wh^vt(L z(3*F>C1`v{_Bt(9r`9&(zRujcp0K0<u<_p=KsxEkO-LuFpthbek?Hh@&NT3L0*BT$ z<&JlC#syaZ&a81BSmVVDH7VQYh2lU`+zI1###;}e=%nnFRQd^0+=&x(=Btk*YjSo< ziaTkdH}=VsQhy@%r%X=04ilH+PMxA7`Z5%(ovJeyecm*p=l6YyHyfsT<7=9png?x~ z;znoan)w%?)cwjEtCVn`ab}vL76a2}>FPIcM#1{o=7!hObnTtYn4=?a-N%mcf=)Az znR5-++zc9FxV1Ue9FGZlQ#1tw6wjL*o99*9Fn`okq$N#7iaRT$$Dd6^PR&W(2c}AK zXXK_{C?_*BQt#(U>N9dVJ2UlCh{P0k&H|lz^SwNqo0Tdr6nEz>)G2l6F>C&!RBFi- zoipbvn7!Q7Z$-MG^%|rL_uh?k(KS~iUA*cJq=#I_{Je{qzhw9Zq=)XmAL(JUzKV3| z7kM}T$y<;XxJ-*CJ%%*=@B>Io!$6NNJLA8RmVfsubSY#s?K7Bay{LelFJ6BS(!ARN zn9kpF9dMR{vy5MS1nJT<&qW%3@_MA@_k9%U5no`P6`42>)*ptu!G^zJl)+U$WGhXl z6TH>Wvt)ERYqdPXc3PLPzs_~%Bkg+rL8RTSmm@t=J&ttkO&r>Wzp(C>HqejWb|J_~ zZ~ww)knVhy?F`=zih=Yx{x%$5SKt0J4u4iFiHA4TV#5BWdWg-urJe&+GKQRME<{Gb z%FiJ!Jf6K4y+8<xYgn-4kL;-|cq!8ImQNx*{E&-~9+Cb9q}8W=4C(USY+>chn~>J- z;AAx1NN84lp5+@~Vfp5x?m`+}!^vn}!;!bGN1FmcMGAYW|1`1K5S5w_vGvA$j=SkF zPS@&v#6<IvEEBC@+LFrAwSJTEwcSIkv_E$v(lyucyyIBj?Hpm>y&q%W0~v(oxNRKU z_9O2^x?>aZH@J>14_(R0-+3I!SC6bC!uCAMx!U_Q&-dN&S)|8Td=2UQfBXp24`luq z(i2|09qE4c9a7gR>SZ2IRkI$(;WYJ0&gSXL;o%JRJCGGkoKN6zj_Lu!!o>OSOK|w8 zI*hY+o_dzZIbWT{A{VF<BJx7@Y2xZq^(~_Kay7zUuT)oX5Z9|_lI;zuiudkNCt}2c z&nbD|K*sC`IHEa^v&`IMzwX^jA0#%%eTTE1ox$$Mf0*4)m`J=&45K$`BmLJ8;X3on zkFi7>@i*ZXj9c!_nJ;Y~Lj25omC(-5XG@_vj&VT-?=BqT+#T|3ww+h|DAFa@eG%!Q zIp7_A*bef?(jBCj{O@wE3%(3Fs0%wdzM_7zb@-+ykQV=$y_D={Yo(_X7iIgHQ*k)w zz4E8*ec1@-XnBZrS3JPFKUN#a*FRBba?W2+XI_cJPu1lpEhCuuA+|mD6P(F;k8-5* zr!x&rB}L>$iMa(8Y-!Q2IkLr%avX;|#D4N#<oK3c!Z|ziRr1SWXK*@}e&SZ7`D=;a zf=z6{Fq4oL&EUAhe<i0BKSatcSx8)$4idJq3vWYOKJ*c!6%7Qs@&?vgmd^ac@4Oi4 z5x-);Rp+wJ$fd;G^0P_TD`t~KY6>v@GOF}##KyRb2zPc1VH&@Ic$?6La#AAoE%uW= z6HwsVIeMH=4W^|Tapq=u+BtR8ER=H7Q?xYfX1Z24Kwl?s&!jG%&7v8Zo&uPZm5Lsq zR*VjEW8>sH#odrSN{5V6=Tpafnq%4oPm#`;XjMq6Uxj#zo{IW^x%@r&d^viGZ+=pP z9!`xCcaO2tk)4)oO{I^X9XFO?(VsaA{W?j7yXjfhzDZ9>{rDWtY34Ycy6Q>HWqPV- zCQZV<FUY-&Y%@tIZq|5f+)S{>4d})iHxs??n<jZD(aCY+W{Sy@6voX|b7>8ganr1E z!__q4F{zt9!#f#2(;7E3?7a!IQhVp3sGjs2z^x~5U^;~~?^o-yU%wXFZ>QXgOUbe& z$C2I3?xAQeuc4}_sAkTx7bwCH-y$sd78S#)lPMBf_b}~VN%lMPvs7$rf6J1+n?Hke z!^;#~I|`{GhNfMK^nFE_A-!5XN4~yR{gkr&7WI3|hTByU4-c!mDW@J)Z+?mxz-ek3 zhm^kRn@BTG;(1m#({Xc|lbykI{4>ZQlV3I6M??|rO>kB)+15?<5sjJn>NGp0>2^x- z-g`TxmZF+6t-YERpHgokWQH)M9`D=fS?-#t<77CGL&U@l@v5K&E;Sjrv@yU%(yi5< zmXe}ZmVX}vT9;t~&a?ohB>*-ODaCCXX93QR1MER$0UqxGXbx_@wlwG;7;N?lra-Xq z@#lc>wkD?SpLhmo$E4?xc2DQ@ANeL{ulIAzS$FEQNRRp&&)3iVHqs3nSbpPIF#x?O zh3U`LH<2aSIWO0Tok)C{V)@-$rug|CQx2Z3&hW9ZS*9${v<OQF!s-NJ4Otdp<1E5_ zOl#+>Dcd4!d>mok(!wIlLxiodD%B#)h%B4mI5Blsi10xUJjIh>vtX|M)?Z@W533*l z2!}7JV}Fdp<Lbs=;P7Sj?5}b7ihAF#aCl4og7?mFro4p1#m-+}z~L#!`HjIB?9oHn zL~9SLw*8t_+86VD&0l_w^hqa+9lhaPiwgQHZr~?4{KhSO1&5bY{>p+6>UNfVOW)6X zj|KC8h{GkRrD#?-FLF4+>Da}NJ5T+Y<T`lPDnZ26n5MTL0y$=-Bonb7O~krZW}!Z4 zX8{7%tP6F5Y|}g<Y)ZGYkP)8+Z;fnc!J}}C?S^r77P3tnCiSRwL&_g8gq;um7U`+# z{8tSIo#Vp3p&X$tWME8zEbDC;6S%<CHh8?`9tdC$Gz+i?zXiA|%L4343<I!k*#AcW zx$5QDkTyQX^QMyt{OZGa-uyo1N4x)owB=9CZ&f^Ro5TE$dvGqi^k6AQ7FmFa2`JdV z8n1XAAJpkGRhg-&-#HBBbha$~C#JbG(^Fq$PD<*ed=6`Z8CKk&ImXeM61g%tEhY7E zDROWno0Y6&C#HCd-$~<i+9`;vajhOreWjRv3Z;3WF3-M&Q5+!DrS~t){}SH+X+vGM zNX~nqF8`WPmowia{{QEpE(Z%*@rSGYPXbl^Au9gh6n|LCKNgT;LQzZ*iU~h?`@oZf zg`E7q9c=RM!%W@_wRkVo;=NFd#jqm&_l8>NKqAOO2N+&~fY3swi2w>6NCZvjKq6cM zp*IUza%`Z4KRAN^dW3V%W6BT-1k;UU`py9k2M=oShcnFn8(Ui>R>$PmdHxbC6okW+ z(Y(WTwuClJ%!K}v>q!#YFtaLzdxuD9L!pE=6iH}9iG((kOK8I~32ms7(1zs_+OSeW z8|o#rp;1B`nkBTMRYDuqNN7Wsgf^^|(1wi?+OS1J8~P-)VY`Gjyk9~aJ|LkDAATN? z1Wz=P4f{=G!zm`R;XD)BaJz|Yc+5mLe8WUGJZT~uzG)&Go;HyU&zi`FADYO9-<!yW zKbXjd*Gy!?A5CP#pG;)KpOr*5ys0FzVZVuN_<SO=Vd`fd0-9!t>tUhnD=d<Ig+pXt zVQG9{VV*=l%$Ep=T#0~KAQ2D?B?4m6ycK9=u|z-|A`uYz5&=;l5fFtE0a0?Yi)kxO zQAo?~<#d*p{~2k;aeqZx`6BNw`z+1J!`nE)N4!jfrfMq7M;uOkO)qP$ETmakdk)Lg z{e;9(|3kLZ@HorkV+P1?>|<+9ud(Fn^WH$({2cE_)0xxqGp4Plz~a_zkFtFGeQa&b zV=UQmKkIfLLrA(VV$0pvvdodMGd)ToAl6F+L`)(eHb?}-Ml7khUM3zkO9aFgiGUc8 z2#8}P0^&G{fY>pG;~iYgbm;dfXmjWBOyBn@_PDE_Biele?+$B1II@fBo|%MX??;*c z{;v@aAK1X06J8_aAH0Due`qP;|L~g}>51wtf_swsBk!DyPuJtHUrlFQr>OC4;8gW3 z;^8#)02?}8y}^5Ds9I*8smfU4EVY@LXREb@@Eo<C-G4;wXZ4S&&$7G!QkBfSzyv^C zXaXQEF#!;lngEDTm;i{&OaR0uO#sB@CII3J6993g34plD1VCJ^dO3zqsVCU&HEIVj zbFErS)Lf@JIHK#-hnabUI*vs?t-j7N+^BxctDDpaA-h?nvBE9t27-I5+Rx0}l;+`f zbsnqVq23_ypHW9J^G=n)>UXKLdHAe)otd9gbJ*YA>JKErd(@5W=<}+8nfIz@!g-&1 ziLKnP)(}|_s4%DGK~>0BzMy`~wckT(12Z31bC~&vTEXg%n*fL}n*fOaHUSV%m;i`x zm;i_;O#s9<O#sBVOaR1FCII5wCII3)CII5Q>RN*PwE8@Ict#ZvvhS&%66$Bwi-hbs zbqf#QSFJ4hyt<fIKTtDx^+T15hldddaTqgytRCj!C#sJad_ldyB0p6lZ1Y9+6t8}! z>WJ2t)LAU@b9E=l<`?Q)B%7Dj)5I>~Ab9nP8ex%NsVj-4U#mxX_>EdgIDf0M+3oMt za-!!|^(67~d-W8H{6YPhJ-ntaVCEmu6b>hv0Em-J0K~~A0OAzqE><|zX=AsiITx|p z)14m^^Jh4Bv-dNdM+x9r&JDae+gZfJInFlr@Db-m!tzn)X7=!L6993E34plN1VDVk z1VDV!1VCJF0wAt%USdaAI>V%itDIALxZ3$R+x(QXf*8EUxso`$)@fqN>zqHZ$n{Pp zM|6WzN+3S%T*BUOG64`bn*fMgOaR1fCII4g6993i34plE1VDVw1VG$v0w6wb0wC_S z0T6J#?j;=Ae`Fuy4`aU*zQOTLyc{`daz_YcI%RFB2;YyG%KRCtSZ3xioZQ)W5b8OD z%%AHpKg6eHpkAF-6$!6}>$qlT+)cIKhjA&M<6?q1E+%VtX3#n=#491r1n2q6cq@*p z(yZ4bJ=yD#;m*vom5tZK$<pZ(88I;<CAA+8loZ#6t5CunCS@SpAtgIi!7xa1_4w2e z%1JOqPk$i`K8=~)22SeVBtKQ#js7&dk71)iQmrcmop`Pk>qOcxanydrq$F30@sxzc zPhTv4`cm=Jmx-UgT>SKv=K&hMO#JjK#82NKe)<;i(|3uVzFYkCM~a`mNBs0L@zZY? zKmDNi>352s{wm|AzsC6KZ#I7V+l-(7A>*fiB;lu@x^XJ{4&^h=8JCJQ_vs9z3mzd% z3rq2VNxf)iI?~1EnMe;An1=MQRkM+Xd*&dm7?_B(`i2=u>n>nBt7GGlwr5X4y0&~0 z(xXRMesj@eqysmjeX+|zvaO#l+xi8vtzRhH`eE7DFP3fnQrXrolWqNFvaNr(Z0kp4 zTfbVi^=o8Xf2C~e*UPqkgKX=sl5PFfvaR1N+xjiCt=}5o)}Q@#j(AQp$2zx(<Cu3Q zM=<}YSx7_IFhBQ)9C4ZE=*xe|(NsLakyW0_^JVLp9=>D((j&e=d{h;&Ze%^hSoPC9 zUp}4b$|jbnJ(lg%T{#YE{nwZ_q!YWVRuI#T*AbqkN7>`*dkIhT&t@Wxrt`ezZ!F(B zlO@;O#5OzrM7(z2N;rFpi1nk&(vTiAi7muF#F86!F=z8L>}AUXgsQKLGraY8%-MDx z(}8^Ud+gEdYsbs1J9r**c23}k-uEHS+wf(CeB=zmux}H`a{R|x^8L?GNBV(v#L0)g zNbG$$lQ=n1mGI&u^)c2yS<NPR`_($Odx|=Q4WFvMOvq1D&l8~2)z?WwXQ>g^J6r7~ zG#^#Z5aj<-b*z4_!uyFBhwvJ&&R3IJ<N{U4zAse0M9Ifggz#LXX0Wl3t6PbKi&Y5` zc!@fM&|j*qW}BZ-m$2kz>PEKtNwtTNU9R58L0zRTV-HuW*Ld$*)y2bg>V6LUdNrHi z-k=JI{7<VPws|9>Dsi|;%^{X<R<Ch<x2VV2!>#IfgylB1k40`*@8{JWYA-SW8TBMv zxl>JM?{}$_S?_LjE$8eWwVNZlPi<m_2i5Zg;tMLoHXl+YMBT&cA!a_JPGIJvh`7Yz zF?AOYUsPe%`?C5i!TpNb&cj#LqwMx;>Se@s>aVM-IimkobJ*Au>Ku0a4fOyI-%^{{ z=2Pl1BKh0uBgEi$R4H5euDXO!Kdm~M`HWJ8^Ly%MqV8Gs2%CORokk#jpw_a#AFGQw z4?j_jZ0tp~oBjPv?d3fDLS4%WFRK@b$X}}8u(4OvFNly|srjU(U#m~Cqu;3C65QXa zZdU)D`T^m5RXt0b{a&T;>JMr^C+;=%CUN~owSsN_NnJop{8`OqM}NWhQE~XI`UU~~ zn|h1ncB0e5A}2XV^B&^9+2(%dd%Sm=^EA6X-8q}!p5gqB!#vZuizqnD`3n0x+xa5l zJja>B%#S#0Ioflb-w@6VoMyIpp|eWp)47OEU*uG<m5)0wu=>T$O9b~4=S5b()Nxtw zlg=lI>&u-c0&#`&C$@5>^B7yX%83y8tDSTf`IK`N(Rz)uia5L0DIm(Pb57#D>z&sL z^$pHi_IIOmHQ~I;>0<SpopXthTb$Q~Or6gXmfM}1Sp5zsg;#eu+eu)bb25m6dz>Zg z=w9b_w(_v^8fJwyz@LtYYj1@|V?CApc6%1-Rn*B-Gd!I<&9OQ;)9lxKI(eqqc}Z+) zxK<M<HZ|<F>4tHmG;wy4Cf2)UBqK7Ay)usDISiwrm&$_oKUGgVmoE1qI1PKJV&G(D zdghV0&6?%TbUgD&&*OkhXpFIsu-Rwqql|H$bu|%LcSKk!GduMuIYE$wiI1FQO(3(o z=OQrH+f70x&jj-JRNZ$lf!wL7sUNRqH`6BDh?yxiVkX@mG2@QI=I+E-L!hlmItS_G ziUmlo)<439nJ43(css{Lx&%B<Jt-G8XI;ux<{!@Uh5bBV(vH@H1rqRBC;^W}67X0o z0gojT@K`1RkL42ZSh3_G7`s&x@EDPR$7%_9TrL5RD<t5tNdg{QB;aw)g_ogxw*)-) zO2FgM67cwx33&Xr33&XD33&Xj33z<k1Ux>I2zZ<-;c;^w_;0i|SHk1wdEs%+MXUUj zptVHHA@E6dBHhg%zr;8H#s!nj?^JhYnzf+4X*BV*Dei`hQT&sc#6PLEpurTK@d~FT z^D3lfM&2n<&-qbP9AZRXTR^R8ji_kZrTpgs>ZWF;>J_B7v^b?B&fBaP(zO?Plg0Im z8Ns3_7Gg+?_bx(u$X{`ee1~5+wwtkTwuSniiQZ9xP2)4|R%@0g0^?h)4nLq62WGru zc!t0`{7_-)uWDq^*qs%Rx3Zhy-pdO7(J3ZmdbZ_nZ$z<!Qb979cmUwVJmBdv=e9#| z_@r~^VjM1aHuCBU=VIQw(s_heS2=?`T<yHT!>1gVhijZ%7P;0rk%#M?ue18~&T)t0 z@HyuV7P;G*!^1<)Y8H9e`7w+9&3TGfC%T98aFV-{6;5_9<KZ;-HfEmg&g9h@ZYisu z>E6MskGiMg%FOfs#aA<YgIxwD6O8v>(-3&?H4UqCA-UgsO+(=S?Va=YUeoa2YZ~5r zO~WfWly&dDrr}@nnuc2g#P)kHX!zgzf(CyqgTyR+&7t}J2-Y2rdJ|vLQ24_v<EIJ= z3U}|?9N2vL`oVoW*YDUovTx_EzTLZr2DbFY!r_9Vf^e+3th{7BuGjC}KGHuhxO@HP zp&bP%U63eUFg!H0eRsj$fx(huuUbKIQFvKVMM*eZTvoYW?yuj~w`Kdlru74Zo41dk zz1_#}4%8mLzI%7yuHEbRAh&OQ-O%Qd9esntyVpnCYkLeRv9f~Vg7R2#xTIqJ&f#6L z!M?rgYg;;-I`<UsEGmkjV7Ox6KDPRA8Ac$mc~@-r@Wx%kBRgZ;cWw?>6l^AHG1ARL zgIfps^Ed9=QLrt5IlzF2`*v7}k>?_Bc+0@xFwPNJV(=5&1AGh&4VpUfX3Qm=^a1T4 z#5dqRr<9)1U#PQ+v{QhWk2xuBj?UzvN>4C{Y#u^7mxuY<!9i7N71d=&=?T4FMX8aa zrD&BYn(r$*!JXHmC)en-u%4fzv#RvGLY-Nqa|(5Km39ktT33gjhkpH8tF+_JU+rcU z=rnd&uJN^;VV%MALah#opDljdvqU*}T*#Cx#%`-pCjxD5AQK23L(czPa{6~O$G?Ls zLC!<F`eK`Rlz`ws#{D}7hCt9jcAOGDg2pU(yk|=KDR~T~+m;L;3~$*4fq`lVB6_qN z?+Qh5=|R*qxO;e)>C4M$7#ZAbG6LND29ThPD^nE$cl6RKom!>Ghjgew9}?24&`AaD zq&QNLuf%nyDIF}-x`1Rn7imaWgqTjx(cqS_q)u3m2N_57L^Kg`G7?QlUpY$G?I&Fa zS0e=*PQ)Q47}9k-<{an_xiBR+SfwWhm+NIU{vzXf3zc0S3x$bO3iMQ7MRbUV0zJ<h zq-aQwlafsOO|5>ONA&ny?e^=bxg7kw0%AcGInzb~U#+z6*Ar2?N2{=&IA2Z*9i1rG zLp*&6PYY!C>gfe~KBUKp+^2WPWt{$49{m53YcS}BU44BWU2UDQokP2ZH*VVA7w~6# zO7DNA!rR)nad-q~fz{k#(2bjp-vzz3?cll&dTq$CFY&Qs<K|tw1i`#-q;I4Tr`o6d z5=>696Fh*bL|#JL;9~0#tOS&WVA;5NbKmy9T|+zihWkAEVC)gO`!19!Bo`zO8Uq** zF$07B_T0)T+}N=Zqc!3P`o3@TFjRC*hD9*I4tD-=Wrnt;Z>y=WbJx(ZxL`TlvE^#T zIzS$VU`fW5*s*gYws+UYojYL&n4IB_yN@$x+Xr^jT3`=-J9cj4cyTULT3Q+<D}kwG zS&5A8o424Add0Xm?y_Uuz0+j&4R7n)HP|;C+tJUCP;B$a?%|;wv0WPny?VpDHg4|Q z9or@2LjfavPob=M9<sve)oPCugcK23%h!p!KSloJX3E=)<vR6L9jwv1N2eC)V2@5I zirjL`Ejs5GJ@H)a7U?WV+ZsKgN(XavUQ|QqO}kHztI}yvotMkY^m}w#fle*f<F3$I zJ$fAM610`ewk8%)lusPdvyc|*r3HEhPI7d9fu1QRNMXB7M6ZQMYrVHO_Y|FztMjUO zJ3OqHovWwct8>tCa?XT>dQM1B2<fzbJrgO!tU6iG<iT7yUzRH;gy#Ywg74LH3iV-> z*(!K4QlDy=kn>JWIpIm~x-lT6Uyo1Qt7nHG=KIY-<obfN$y(z#F@BQk<&0a9KpQj# z#*-S-iwSFiF5)4i=a_@8*5LxE$Yx#0gRTlO%_`L6Pt$23U1I7SY6@pm>+~KyrAW^y z&{LqWkdAORrWCUFY@Foiq5|Gsn4_m)#tL<C-B)z>EjlxzvrHSbMpX~#1T9Ri;@oDW z{oHHUw8+*)VZTkgdFx3hS@&tTM^A9i`f!z#Wyz6mwRist+H~BEDm)8Zs8e9b7U_&z z^z0Hnvq$UIIs<lXA+74v934#S(V1b*sdNtY4C9qLy-2GZXFM9c1{~!ER)EOISfl@6 zYQlf62_7(#{Gcl;yLy6v_Q`xt<dr~vLE(%sMv>=J9|^(!E>uNab|#b&S{o&F6FHuN zN+A5QHg5k?;aI_Iq$oeKfanaZoAvnpI^$-tvN=ibC&{H)I_6gx#Ds0unFZPb?^Ww* z3-s(^T@cdY)jDOq7@=5kHIb)=H8%57)O<ZaLI%<Euv<^VAthJO<^eT%Ky4n-0uS?~ z6<s8)AV8d%dY-frERw6>E@>qVedAu*urA~wq>Fhlt)$J>^|(q8>qZ_-X8K%>)j&!{ zSX#+gC9PyFlvc7#D_N$MEK?zCj<hnaSXvopGRMu4R<etwmFxzzH~}VfdazN?uF`lN z6KvM>ke=zLLxHT;a|@Xrs?reDu;=60<hLx`0xSqx^vn{y1SUV2|6DyYCvgr@1o=OH zE1UD3=jur!6tfF;db19Nbe>2`bLqd86JlGsO5+x0Hv=-SNN3)w(|WZ7NOSd}1yoZ@ zx9YMU3cR#)^{ku&WM=1ZF*0GR&IoD$Ikeo=kj{h-v?p1RULifVNY96O2PO(A6dQrJ zkX{p_*qdC)Do|`waVuX}H<M~s<>-_nbjJBCkeQ>?PNq@~LIVJ`&K%8^2PE_?9ty-? z0H4Anb0s7e(phEy=6*3ij2DAlUZ872x-q0{s(1+t1OuFd0p{znLN52JvFO9Ce4TOY zKViK8;(mi=!Yqy(g`zamB0iq2I>jwJSEuK~{=zI7p>Z)}jT?CFJw0W-kN@O_*nyUM z{yb~oLru|m7UTNeD7AOiWJ!vMJ{WJ+^)8gzyHi{7rBMQMyL#}vIG`-MsDZ})A1;3U zt3{Yr?`|#RUsL*)MI-Ranl+43uHv&<plEM8y(5tbRY2S@<Y$ZAe5DULg%<H4aGXGG zH0vC!9GYpy&gj((U<&r?@x8PW-6B+9;bdEV%}%VAb7*BMaR@L0k{3Pn_`7cAD} zdUV!)opQ9E><&Y?qqdukb&R{Kz)42~xx$;yL3q>RHui7z)cdK~Iy3xvaSH#pcr5`5 zu>;Q`md6KUEN|@$Wc!KC7-xpcLA&pQZ|sDCw9poK&aCuN*|*Zi9a}EG(g!_TG?}`i zs2g<*q4HB%?iaCUUf8N9!RKDAm$u^F*}AAu&x5Ui#YaTkaI(PW_q5#aq42b5Qa-=0 z<^Bly88Mwx&4uv7Lax5j(MW-wR2b27L95lIZGUt89GCkiRGV@%^a#wR>?p`~3TU=U zp8$OV4=JrIX#G|m;5g+Wq!-q*i}8heA=Y>>EYSRl12oSUv%0r)@1jMQ72xet8Vh1` zlD<%9EvKGdP^~9}|H3qq63~4~e2$0wui+9q)d%zg{#&`kh|7bqiJv(@ksjB8O*}8u z-_I~{ry5wqG6fjGG;|>5!5v%fAk2djqnHOd@G*`I4-C?~h%3WN{ED3W7U(VeD4i14 zbE|25m#om!R_nux^z_wW1RVrx6w_GDU#(|^^nyZtNQ4fHyh2@Hp!?w&s-l%V3+xlo zGb7DfxAf|9M`>N7(`)0aGRN*f{KP?TZsuz04%qwS+;pMy@ypqfF4kECH9Dh2JKkz8 zUJs8QqFzRitye_ufHy3Ag%0l1+0}Y+fzGHKTkk&B12pS&s9I;htr0K6O%Z-3&wUC- zrj0=DV68YF(xgB@3G4LrIu(P5`vXg!)jG9Q;49YCis=&y!o^m?WlC^`p3<w`;u0<b zRB#xnTZJU02MP8v=<^B&!&>urvQ9&d)p`!D3t~E>mK!lxEb5gyJEBuo>TwaBSt7Qn zyCAUy6XkqyP+_e$ZkX7I+&N6vQYpoH{CWb6C9WUZ++sbULmX1eYczIh(jotRD`b8T z(ETPFl!1?vfuj+Eg?6HJGU77BrE3urgvA(oSWVz(5r-KoB)iyVqgp9lUkTK}Rr!yi z#+}HK^-{nQIUq`doEkw6<U0^K201TbXKUu5pr(bxCSI_j!N6oBqp&k2ft?lFDISd- zLHFfpFj(3+DktLkwBk!*DR46iWVR9Uz^t~mj@-J3bzAADa|*<gir2hwDiHrDZjb9H zbm=Z|558-Gs(>#Si)5sj-Uu}Xh7kfAqCkyql>*bn=0Z+(vsYk25fy~-<zn>@znp*R z&d)fyzhG~@>}`4x*@x95WFNGjQ$)p7T%^0CeHBg696$Z&;<*>?ticZVLej$mU<zyh z)g=B2q+mVKeV<T>cHxkmvQRtGFo*>1W)v>6g^S{a_j-jvR#KQ-k8#xS8<Xzc>FBUU zPb=i=9t(CS=YY7!gH(EIE1d=q30%ziW`N(Obf1W~Q(Ex$O+9OxDk&J-T3q_vmx-x9 zno~3fV_U5khjlJ2-F{K?j(fb>mxS7<<J3tbEyU}7i*?&<-5$Moxz@d2#rG#y<Sy)f zdRqcD|IwQK-=(0f-iy7hk!|f=s^r}VHF$l?L7!y`)#z98(8&i<@$bS8M)UE-VO+)g z?A}o--goEkQR>43JIp>9;O-pWxcRsi?j>?#EUx4E1y=WNs5q$FlXc2AJ=>j8MefHw z&(cEO64DU2t~&+JFgNRDJ$tLh^R@_TacgKxPwgcuPb#MNgn9{<=-G8VnO3CJz{Ayg zLM^ROlz}9HV3|oJIvqhauvOPVPOIQnO6%3Khv5dF5rfzb>&z88Wrdyz*^V8HVhuG3 zy^{{bm*Y%M;+`L+DDAfB=_rGe)jEr=Qx&9wg=dg)GmHulckE(4mzPKBAP*34@WCE+ zoSv{=yX*B#5m(f-)li3KX-XF52Wj1_wbD83v|FMlh4lo46^M<E4ri8euq)6Wcw6*4 z9A(vdrr=;q_KXs0t8gs_)vTw2%`r&yRy0Z=ynx=ON417?w_4BRViz+I#-<-?O#?=1 zyjooSCd9~jP}XkiLB=n!4mpBcv?*9Y<P*`5V>TP((&&0LGXeGxhFYyL5#ynyVMtZW zcGYOKGH?p7ZHBSKlNCC(l^c!IR&psab%mbcVkLq>rXNFpaImD8c(N0o8vGuy;X)@B zN^D4CC>KCiV@_wtoC4QxGpCCVG^g6##>t&kP0)cx$Aym;4ug=cgm%IVm1?I>2j@Vu zJB;W{^!yZhp3tnP7vdecB)v2-JJVOPRyGVhF+7v;{u-*J!;&i23pqS&eewVU1N2%X zy0A29-1Gsv82e#7q6Z#e1i}XoOcag6#MMx*fCq$+?Or%e<_b#Sm0kv=1^&X0TaLf= z;4gK?v9w_0u9XclLBC%^Gg%-uH}j`pW!Ps^qg3&!T%jsh7zPXRD4>(58;kXnW?DAT zz;WA!UsHC^;oY!Sy%H28t7v{**}V|?AWw%Jjy=IS>xjVlLOzp$x?(*$S0k(~nA6)# z3<YWaV&n!N4;p-!{b1xmeq^~L(B6<1?j)JDOkgt?TM*qeDpOssVI|wCvb(RS0-t;k zCRK@N5=`OTa#Z~4v-?ZJja4-WU#144g!)tph*9<i3d~$V6EQ<ZZcO6jGN)%?wlVm^ z#2!6A9qoPzN__T8+E5t!B&dEECtSKri|BdHdU8akt)mc|RknfQepupTkKH9tWeGnx zf(#}pUq+%C5fwZaNgDIgDI+si2Y-&qn%?6~w@~wA)$S+9p=T@&;0q|m{Ze@3-643; zy15DBmZPQ$rcoTa(nrupUAFD8mlUo?WKoiOInJO0RM5>BHd2<j<Cn1AXVJ+jm*!T1 zE;yR0Zqr?D>{YpwdY~GHv8@842fetNRfdXLo8QlNZ_ZXa<W5{oIp!4U+3O6Rk_h)@ zJ!OD9+}t=Rg~$MoeN@cPZ@WK4GjpPPZnIX+i5}{B>m}TBj?rnQ<oI#bdQlBy5-<sS zFeWf##2hNkA*+-=onEkXfqoxQ1^;ANw-?|;YI-ts1)@76D`ZV18`Wa1aV-4ixBId2 zihddx(Q(4~Df6#IzBqH%h_X?Fco*A7lIivqNcg1?8^0Cq{tV@(A5W{V7i;TQu282y zQq}gZUycwEcV1P(?&UYdUA)~uPg+jQvq3jkZ{XoF5#p+<2L4!g#Y#P8C0E%14lju@ zl+6#3yWdCUX;eFi7hwRvB<w}z$g&dT4o(AC7WRT@*I~dl39oKX2zCF4x=vJ2l3)^d zxjqsQaMls{=DK@A-oj%t0z#k;vD8_fkUfvF{v{KYo^_l~iR$S!dMPKMN&;@3VH2H) zZ9!xLF0Ow;Pw+EfjXMQO4l?^#Qh_W0;tJ}jNocQGr{(I2xpYQnEaOr$vs4({v-0DG zKa0YdZS2&lu5|VSi$H=67wRRvtP|@4ySAbjbFE^O31(A^b1;r?qA3@y3&-qyw!tEE z1GC@B47Yx)!j`@rEgJ{>|1DwG5-t9pWRug~d_ezqU|ZkDow4G#Gs@#u^Sdyz?RsFW zF`aDE+j4Q!8g{*%IaAkf^pD+Hfia!%?<E!l#);NQ>bVr`nA$?=H^129!#UWz)-`$p z7#}7nVp?H=u9r<oaL5!`a@Z7)Fb;Jb0(zEltt?WkN<s`E)3AfNvXw#?J0*q1^l!m9 zg}@1mwwzj`4{g;Iu)7QBdkZcHp}V4MlsKQZ>Y2g4dI5MAG8yug5$Ar1drmH({sW+f z`2m(ph2lJlx-EqP4#^GW2uqFV89W;Kl(LRNvtlSwa*BHW2t0dmpZis(<X_;RD0$ql z)Nc_Kcc5q>J4cBS(SHX;3oH3a*RC}G9l(%>Waoy|c~GA5kve3SpOArRi&aoLZpOD` zK+t~&dmV&r(BLRHGjcpW!C7KQ$=hID0E&ARdnefgdIB7`&3aOVQ6mWXz~%UecM0V? z%A?lKil=~7oypKk*{>!v?J)0r+}=q)IiXX};hh_BXIfFec8(R@yWF!n;?b8vo)0J$ zPSksh^&Vr3Sk8v1Y2&58&s$&PtwIJ%`0eAsLfpd3_GqADE0jzEO&d*^5KCF$`>Z<^ zLzt8H<-{1a^VZ*R3*Kw+s2gS1Fo5E2u?tz?LNFIis}Orf3NB;3{i)PXfxjGtrF?s$ zc=*P9dMQ?kM}~@H<z+?d6PX8m2<aaP131{jN40<VqfF~tj*o8K6oWSKKfRQI_}vdf zSb9_-v~2It10;_Z0f~u70e5WBbV@vmjZt$b5O?mN<`_PLZUNMrZ3MIb(tA1tS);-W z(59EuU>@6GCkJ>Us;Rg(uIs!20};O3xrbCTO`X~tDJ+DX#v3(BxRA|n@kXv1XpY=> zo>>tgvwaaV^Hp`xebsy_0@hP7vi!8uPCxCmQ+Syx9t)I9Ta0qg1XS};kr#2p5&I5> zSENPKdeiDy*4S_7lLP}t{O1tjKbd^|ao%Hy$A44kV+>7zg8Ve$zw~GVS=f|wz72%W zT%IPDK=9n4Jyz$4)s6zuLog$gR0~k=@~*p<lYl9yj#e{dP*pQ2?3eP>Kt@hrghFEU z!;Sv{M;_$CLQhHk0}cMu=Ez#z|FC%QwEMfOKlYIiUnCMZAn7TA&6oho+rEdiPzKLO z7-^DJUg#$wjnG_NOo2q=f(Pegh|Di((6awBA$ZuD_pnLaEse%D4<EnN+ZyI0o1-7$ zfJuysi3ih?g%yDuEv%47dcKF`il@$c?-OO1!sXV_4GAyrT^CumZr%Ro-}e`;6LOWi z=jNftVQM7OJP;{#G9kny`x#~*t_FGwBPm=VJMPEb5bl83-Cvv#8tFZ+zp%HaIZ=WA zyWb3`C|*i>3X8gLoe(<qzUE#ja)ofl;RoW3{{(ve2bk#~-1&D=wjn9|D3gC#`Hymj zN9Q6k<1`Pf$B7#Akf3%FV&Vx)L+=NT+4Ix)LCO6ci5dNSU0Uu;0O9Fk!ZDh>kw^00 zvIIo7P#v``N?GjeCOJYDx6I2Grz%R^#S+D1O7!MNn{5%H)JFnp#i@}~*B^x@TybWo zs^Icy+qxFI(c(Fg)&WDnXnM+_X!@;y+FLTVVtezpbz`d@6=7q}ksg@q7xk{YqWX&P zigly&3yYcyiz6e+h1c!B;^?+@>yPQ}T~Cli``pK~E11xZaCagh0_wonGLp2(%$8D8 z0OC*z)Uv=)M-5!D-<leNg%=!Ectw#hDPB*d@+y2A7X6pfb~11LC)vjG(AvQQmZ~<5 z3~V3H9~i7Ag01ui)gP1taU=fZTQWD=2SdPlaovHI#wa38ncvzm?2a6x?h?<Gm<LAC z+CRvFfHV<hYn~NBW8}-*@yRWBmMRpBC>RR%N5xrzJ3r^0MF+YQ!e`p>m_u(7j3+L> zP`Hs<<w;pPnYCQ)FDgtFyOMcdg{p}p^1jTxZy}HLZ~1w@W%<{6_t}6dj8x-aM1F}A zlewH3ye&mo3TMn*&Qsr?+!}q2fLR&Bj4*n7Lct=$UvsnB*TB%WGaoC`3k*XdmF)s| zbufBfb)*RYBF+4VKjR8VorU=Pn2QfDT#$4>3WS*`4iveIMX*@?d2@gBwtiuG8l)~K z!cF^}=`8q!979MQZhbgG?ie}ENuuCJN9`}{Eo?Ts2xH6A`GgKR-!48>ab9Gkm;db4 zN&dr*YR+k@{z~M$Ub`H+xdi3^+fmUG@tBDaJ3_#bE#=@ca~^C@YUq0aCQcR7^bZ^b zyvHj_#Fu6hsZ3-;2CrGgBRp7HaZAQ&KmyUo)1cR3up_CHUpi`}IugB)>o+4^ZMmb8 z%DryN-SST5PIJ{r^LfqZOUK*`G8;k!Atgwso_#W(8S;3OKUX%7-l=R#G}^L1676lS z?u{;tpSfE@*wb^fLXPX3qz3^`VPSRdi;<*%)$97Bd-_}VN8DJIyRgTO^mWeD%dXlR zO*^kTO$doZ;#!m(E$dNtm=IFqxZ_vbsxm((rm*VyY5lSu3T}l6KuM><6z6HM(^j3B zT=k+9H4@zx9oUaQ+vbyayS;lo+Kd#Mf28mIXuwRAJVpj6zG}-4<E{4Y11aisGG{J+ z3)7~g<y2QU=eAT|A@or1gQS-5xI^)=<XvvX)rsY3=db8D964&;Hnfx*SpX`(GTw9A zeA7;_WkftemL;yys(;6x{^h7vy)Dw4mV<xi_qV**e~P(~9*<2s*{ki&>M3+)_-5-R zt#+IeDY`Nu54~b&5DG~b&CTl~;rk=uZOv)h#85a?n(7H2gQF{RmG-!ob*eB*j_hn& z0Iv<IuceU+4F*q=qE*2?g24uA{lMc`M2uOudgl56K==PA>F)o*FpOV|YHy4~B4JS{ z%v<Zal1D0GzK+q_@6Mh!=DD?%6V1Q9--<eU1HM(^W~)>B`?u}ij|WU-9ftg$GC!o& zQy#0J2>KxT-Pz=k1fqqlW>|_ZRk)?<sNBQl-qzr;5yRiUYSspAmr8dECH?q7lvMlo zJ0%aY$olut<Uh@QVkpUH>j7Kxco3|0|MCpkeyh=Yg6N+`OK9B#!J{R1H+tQLyp6l@ zQY=2YWQ^FjT}c|djP#LkH&|J73mgz%5pob;!q-`9yebe;W4sH@nW8*m5?#49*lSFW z_?5_4Dc-mY#pfwLE({$SjP`FkC9=P_IZ|ziadj{f>Gz*6cNnT7RgGOj%TFvc$y;$a zn)`Y{^)AfcvoR)?N*4y_1ip>o{$~ro|Ec`?2Y4`<>;rU(|6KxbG)V!|V`L#{+P{MF zUncyuqgE{kl7+@!FY6_{R1u3+J126^C#!v@7D6EIKP4B3{rj2XK(fkR2s8h@{{G1R zNRChsX&LYBcfS%)Es@-j!;Z_b`o50Y-wmj%Ba!n9b16D$5Wz;TuIBanXk^cVNMs43 zhP+$u%$^8Z^%glrc=^1GFOpq}6RC>SF;BbWEG1Z&)aZybx-H^P97asgNbmCb04Cy& zhyZqX$Ge!<gB3))525;}l{yV;7*Aja`?on~t7(zQf{}I0BMT$N0GK_y$FOfP=@xA@ z@gA0q&vewjr24&6Q9T+df;L%TfEQ*h2zpIzi8nRhYichbaRTpSI@%-t&+_|u?@th# zv@2##dLF3A4cz_CES-3F;J@lkgB}<EOFQP~Ha6GC$auk9ocTO%1OEJ)$ET`*)G<l| zc?k;$7h~8P&Bc3wBEjV-UPh&4U4#s87aJ!oKJcgADTt(-z_*Fz;CTo{mgO)wBbcud z0jbjm^wQvD-4xPG@$g?EpPFh~%4h1!3w2FC^07G5`BB|8U(amB3mFzNDi48F=|Q&- zbx;+RD)LzzRcn^ArSxFiLGI|_G3+rPp}h;xEFRl0;KTcPwidx3=>SIsr?KgMxXCgF z-qZc*cq++eu!g*|MMBux;Vp8XGozf!z+=4QKu^|r<V@^x3xgu^ibrf&qZw1En#Tom zk%MO(r5Ym0gHxHoB9rHPcj6~(nMHWCRT9TZ$d@jGUU`cGt{LAYecEaWp^@r|W2u31 zOpO&RnPXv?I?tZ{OM$5Iz!g+s)GPEnfWJgSml4J6ZN0`~owcp|8frSb%1cAJ+qdt_ z4a8z~^|ehcHPKjI)2di36s|y4cVkVgVP#Vnt}9K6aB*d<zP+<4+SbZK_4y?wby3`E z?`Rq-DGuchv89G6+C_V<Z5=JKmL`@gEm&4sR9;qIT2@&aE-o!EEA7iKDK2d&FGcxP zwY9ODuC|t@+SuCK#+r^;S1j6A+Z=1?sILzdqkv>~w{|wIYOSwhzk%+i)~;}Qtfi(W zRJ3m^{<=}Dv!SD=w#!1y0RXI#_O6al?nnZz#+uGpQ)@$0Yg1RRv?axQhz*XQhb5!Y zn%dfK3w&OFQBSzNBpi)4C(f3j*s9j<S`M(S0}T;SuUY~_Mf<|-`KZ}UV7fZ$ni?7i zG>RAPt03I?lflHI^)em4A(^`-?T!-57&I%_=51aQ+8kQ2Amq;--K?!HWiYvTKWu0B zO3n!;+005&K@tBjjmygF8qh)4npl&W?;>2;c^pF*q#l7cTpr5Z2I?`hQJc4C<Mxrh zC84~$-P;gTw8Xn6s=WEFZENl9ZmGu%g1S6xc@$Pc1e*D`L$O2X4q)nS6SygJj?$Rk z0Rdrvlh)a^uD-1Sq|>^}Bp%hS#BhPNa8azjryZCtDIzf&S}}OQ1Q(QbNJ3bFY;XF_ zO!YL3`ookKqYx*xyK`*O_Wa83M&2}7H+>|K?9JlZrn;_1fFmr>nS}VZj=K7eSbJT2 ztiH9bsfG+x0=7Ym9Am7jx4j-&BZIpK`Um^Agb-$8Is?~nq~0(q%aBXP6cky`jFJ95 z-XtdpRaM$Hy%slb+qesNKmec`5B`F1MOo>x(vq^G%HrbU%8D{@aAkwcS{w<&>!2z# zd{aGHt}F|fP}Yt8eX&No)(&qEL`Ts&P7-Px(DU-cMa5xGg}G7F+U1F*vJzxsOj{Dd zYYXR|@}SaV3|ty|^zbCK=phM|JHo0&iBBdNf(sW^EUPGARuV2Ltt>At371v$9R^}C zLW-h9Xr4kss&+MY)YsI73_#MVk*2swaLi<Q;>l7nkA{~i^cri9tdDi}w${dK+gjRd zI_hIJt#z@^wKeUruuRRWo}O6E%BI+n^&Oo}ZLOhjQJ4r|^G0A883<x9QV{n#yXw$z zTW6OiDGj<r2nwcroaEuhkPmr@tOa!-+{7*nk}Yj)9~$frNn&c$K)N^7*K~CQ?%KBY zj<(uRm?YQPi_Tl@yOv{(9)^Yl21|ydt0bl*PhxgtVu@k_mNT6YGzNampno1bOgFWL zz{UG2MW7{;XjB;5(+p;si@?vqq8;e6tFgOfWqlMFBrBl59%;N1a&4Qa0^%Bw3$zx^ zGK&Gc_EKIxO~4bPCq#{wV4OHX7ndywtgWwU4#i>{hw-M%O(Vm7=ru2IZ{Nn_mMjVQ zw1Zza#3g4<?V4CeeN>w7jwWe3;Xxy;$wP5LmzQ5sRKf8RuW_8#_duaH)HFpgZ!%~P zIir+TMI+IJ!DFU;3I}=J5LSMfZKTyoNa(n<DlI7vQz?wnYF6V}ZV=VvYb_jTuYun0 z?CR)-9!G0_WaZ`U#1n{pTYxLT&=`jyT#oC+=;H|YB#5Oc%%~wLPYYY|3*-?{qy9O| z$=DZG<ITzgP=J;23DiN#my0I#G>E57Wrl1w;8|bivDlFf?J@k1Q=p;v_<W(7pZ+Wk zF=(=EoE3y=<Is+h3x;5&hEd#XomOApmW{(3i2%co$zuoV283y)ZBLnrN?ca3O#bSZ znbCIpwJGI4X@|^f(CVSyCwh!d$;&6}_%%DQkRKAsFD%p}+A7Ifiw`jlv85)MfXDIu zsoP^CTL$)oi}Lo+60urxNgl436o!kI1nTNncCQlBH@e#+W)WW9Cd->Q(pD`NfCyRY zJ1&;Db=%UNL%WxRVlkVSmj_w61o?90O$^*lw5N{!ww{GmDBl}mvVsiLZnf%=@?p!+ z2;OMC1W~ocWq7N9WmzQ-c*Q?0=%PxIZ$4bD>29j;inWT(K#7Jq9I}%jvX{Ua5f`UI zPxOwEC`7YSve$IfHpVJiJhB9gH2wW5x;$K3>>q91hM;z+>)SNa--6flCUksvU3@X& z7g$M3KrAy0GB{Qs=8RKvC!~<kpq|ieZ^M0<OIT!hxc7!<)xR;4Jd?(^)>zrr79F+F z;J{n!xwb)5f>q&qBU69?W2zIM@1Wg9t&kAvJJz;!G<#SC+#aI{7f}%<|F!3rm!c54 zXLU<^Y-M+YsFqN1v4y8c=3uOd=Mo7V;f-0ew55E{^zp0fhIR;uBkOCsuyU#CXzFTg zsqbp4MIWQM3ve65!U_=JWE4h{l%F>VaW!fTBGIGXY}K`OuZ+@qCDB=Q<CL<D^e3Xm zqh~+0S%Z-BDjq;6@A{7Q4Q>gn?Cq-WtnZ1n)zz8Cj1V>bi`)kV$NABUFC)Z|)|XV4 zq9%DGX>zTwO=8>bt~eo!?M|E|^YAjjz_vW$9M>GSxoEs6Bd3$auB<A>jB9F*HnkF2 zo^2wWY{n#<Vb>`M{bSdgvNn;1+H1OM8>96{#%&xQ2UwyR#RXKEam-;Haay<VC!qr~ zw~uPm`Vj<j&tL`UkW>}nBCK9Tj&9xFH%K{ZWhk$$4D~FPgdc(K2Tu^oij8;{=R|oN ze^dgaOur@Zn}mDRO=}q%yO0Crd~-Emj7u8N-CYeav}>^Lk!?e?t%h!pxN+BG*H9$V zgZnp1iuZvQEZ4-@wxlx9AKSTg@JK|$4(-~FB38gAsn<Atjy<V|_$?LJOR_|%fIw-_ z50_DdV0f}DiOY3M-$r!;Y@ZV%ZfJJauZh)mc7?pv<36zfXe%V_4Y7`eQ;9)u@&$pE zAERs!Q*p=$Wt!DOy6`kuwOcG2&nTFKcqr_&9pFfdD_kmGsJ?vz!+QjyUY|Zz>F%tj z+o!3Ej-TYY?QCr8;M`KiLii@x1fr>^jguK%l(f(2k0pt<_KuoWEj6&#>*~>4Jr=cH ztu>z0!*g&Qa0QQLw54}3YTsdrSZu6!OtLovqPyb~9MtdE1_x3JWZlHP$Q%o)3Q30# zyx<3t5?(>i$Ck`Q-QI%2=Sh-fd_qdmmMJPNEiWov2Ac-!?QmayxSSp?Ti0-vcoIm- z05qABIZD4pjxwIBz`8%6FvzSR(0zssWO%&vq_P;mTqx6P*W4MaiNfh<C2bN>bN)wr zO+=av?S%9i+_<A}>5ic-eM=$BtXw<59W#u5!aINk129HS+-DYFU;F)LKBEarKzhY{ z7Ke}b3sK4NOHredeD2q9L1|IAcv)p>IaX$+m5|7N`K4vz@oQ><LkZ+fN`*56IwORy zI)(TcSD3=PGK|kZh4OacI}aOo!?$--|K`p4mHC_SO@htaLc99*4DgFdq2lt2qKeX^ zL-{*4?;MF>cVoD3U;d5~Tn}#>*|7=7t=oq-4(D&&G!WT6v~?I68+UEq7Qq*q_EhBW z2<7*qY+F$%f9no>1Pk7wd|<PGcw2;7gG2ceXF4#5i>-KsiC=)o_Z}nIjXYWf{%fqu zHy@Wj!ghf6O}lBpo6klhOomu&+s57YRX_N&)xP08EIc`Zqw`}ixr3HSb`YL^OO&~u z3sBgGG%Ma-yEvnA*=Efezw^8xysWrrS#jmEG8ptgGaPCaoD$HeS=J?LA}iU!WNas~ z(VHMO#N4!AC!ZTOZUP>Vwz}8Eg)sFirGZ^42($Ps1tTMqz49n;q`JTfsqSHi(kR(# z1o*}t6XG|D!t<MYN`U?Qx`Q#-Wqe^+%)lE^e`HNmSaXzg4tvkA79QY3VAg;q=Z;<# ziL5xlMu7N6I=gFY>pMF`bb<R!y^??!0T3o;MTWcJvyx(1<YU(`z>VxE7}3*1?MY*| zy|yzhv_%XF>O^h>M?-=hQIEVzNM>YNc_%6xt%;a7CF15Kwi4?1_0??IvI_+O!4_#< z(9O9`bV%_tI9%7ab>qnP;lv6JohG>e*#vC|V;UJ3mk<I}WupJM32WB~05$HMw2ltZ zXV9TB&SVU$jm9=^<WS{~S(h}lL<4PIjabrQ=~Ndp?xhB-RNy3OrMIr56V=cdG~7Gc z3$PAKDobQhU{y;(4T-S~S3Nb1z3Zb#YYK3BVJh{|wDSMS#*P@;wQY6vRQFbUj3lNt z$x&xK44oKRw1!T{_6~?$HckM5He+bBGuhL!X0{+!JO&94ODfduZ4TLmy$3ONn9wk% zUf>zc({|yU%+>zsScAPF8IwP=HoDHxuptP~Zz-0sx5)!nWp@*ti=18bZU{MHi$Qzs z-8C@Wm$zwTD|P15z47IM$uBbA6y9GVN)_#ZHusShWe^0%v%Wlg%5Ru+^xlfy*Z@9x zejpK_B;CiX+3X|;j%f)b=qJfHa{zmW3mUuN7u_KHOi|frigxfWu+!rc5pm7|Az03d zFEPi6D-c|?X{Fs8h&2isSveu}A@d)%BJ0-HbTmMDH8jO)I$OrhYX`OniD|ztPatj- zh#LjsBokGHfLTCM2>HkszBrNRO<?)5vSqTr5v@lF<O?y;0Rf(F!K$jMzP=vWYz&#! zYr_r1(OX>b2*+ySu4t--5b3C2g)Nc1B@oA<4}37RciX`BzEB?Adl*7nLs#6RN~tEI z&mek~FVhgpvI?I-6T4Ez!clm1##NAKPx`kUWoOz>Rb`-4qQ7bp#ag?4X!CJ_og>@p z`gRX{qZ8jk+)WnO&1N^nN*lk&*vv$N;6z|0)^@&8i3$M%53sUJk_|oybHK&CXf(_v zM7UXMTO&HYiHMJpVfSM5a43eaP?=Mow=8MX{~%VUP?;z0{Fap1|9%#D`{j$bRg49G zeA}2z7Vws0oY*MV_EskMB-9_(aUYCAOpDLv;8c?SlAIxN3QrJ)5eOs=@zRbKHl7T` zRt+}v>qFeG^UQ?NO9;;`kc{f?x}=?83J8ilfJ{)h#Tj2O#0iM5P5+t!l@k6NFqUVY zdTPw7Fn9^dVW~>12{(zzEVJPCtsf2&zTuJ9I}w#%dvw;A839+0+UJP#DaR{Z8h4la zR+1>?+epMn#bl*^6U_kU6Dg<>Oa0ntcO6$W)(*6;BjQnP__2tjFW(olAdv)?xvkII zv$jgGqAIQ|E-5W9hfBV=va%d|#g#PQJ#<^|26v}8G@tbGc1uR{b-C=C#L1cxoK!|D z-G=}l#d?tr{zw@cQ;}Fdi-8hf8^ft};7x8$CFhAtija|p36dumBr1w}*r;L;a*f$h zQzzz&s10Kd0J+8#KwI(6;g(Jc__)zM+8Q70NC`=>Ln4yHPJ$>yK$6(1h%=~<2(8Mt zN6?Wsx`uX~BzqP8#97zL`xpYGeOv*{#QU*63hngG+J%5<`Gf4#AXLKh1$v++*(mT& z#U%VcH1;6?(*bL}ZTl8EM$&mwLtsm?y1P1K;mY#zaIAzB7U1G|U~qssio9jrp|T1A zCeZ5`G3+U<B-6HpXb^3fh!;yX(a@W9$oLdj+@6yyiJFd8wCxk#<J^DH55WZ&xlUG8 zMwobJjZX@S1f=ngk|TycMUPUdm`fv5OidpTvSk@VqIqsWcuSR7DCV6-o4UHN*<rWE z(UZ}y3C@R;?Ep>yAvqGJ>_rLDc6QakN%<~}A38zv;(jQ8$&wiq>v7*^qI<JlU}Kpu zZkd0KN~YhFQ+`QC_2gX(xy1!b!nG}Xcw;n3+*UrAD)G$WF$8FL<~=Gjv`67XW-u&- za3Mxl2zEiQV;B6bZLN)ntcliRJGG%HT5m3vpq>dP@O%;8412y1frMNnxIm9y(@C*Y zah!T}jcsET?kF^iwv7$K8P>NeHncUyd5KwP7Hts@DtUQKYq?XHDrrRrw)9L%D;K3( z*?8gR1*{medEu9B(YlWM9=4av2Nl>YFrgl6*{p}<xM^X~ZPwa;gqKvx-Y><XXX1-# z4+;{u2Pg;@3p(rVjA4y}sJ{km+$3w|gkddFk#=`QMnUi?*)fs>89Za73w_$Asjlfr zG5XA&jn9Yhc8m#@PIi77b89p{yj^5+iU@!>eQ@L=4P@M+m5hWKgVID3CXPvJ85fXI zp#nE#W#h(OTN>!0@ol1aHbM&6S%*`_?t5Z?57A-3xYgm%*KH(qWMTGX?>=GFmrxLM zw;{pW(V>l7JkODA8=4JT!`@)DID5xqibRrOp&btfKCn|iq4f^Hmt*YjB-=Z_cuw?T zw>LXvk53Q`5;03pu4hPc)^p}fjpv^jvlB>pL1cMk2;!FL=X!XU1d$|&gp3zO0AIDo zSeWg&Y9ZTrv~ZwKypWXL2uaD?xAb_1q#VDbFmE3uPp9!ockzqW9_|IJBHH{Immn@- zX5X^8CW_#K)|#%SBfUwMwI6^nhHeE>1d-+Ap94C95x2EUysc40SGUxoKBu085^K+g zT$)ovu;&QGK@>V%q@M5-jX*H#8M8Q61g+_)YoQ2=(`ejvEv}-3xtEZ3)`T-hvExKe zSr&lc`}?2qg0p|``mXkHEdDL+^%AcF(BkGKkU5(7jV$z(qR$%Oa7v14_CQH@nV34@ z&lisBIe~n2NTnoOY?_ODk)@<xq1ouQxK+*4apcEQB~p^ss^I~PF3(^WiRQCpK(?}t z0FmPtIA+Bx5gCAMiwGpK@#7YIlFp;hf1AkFQehu*h_xlf{_^jUz^jCS`f!;Er^iv4 zu~s7PJ^Rc$Te+9b?G&MY8*JLq+uqd{Xl-foNk%^#dNU{VF0+QDZ`ZDoox{7KdAA0H zguwA3R3g_jwc4o{Mh4ed3bY8dN3)a|We{#38rq2lr~<^%Dk^}u_5>96e+1pelRe5P z#8OAZu^)aPb;n|3BVN##r;!sPT^#JRAgHCs$PP^FNJ7upMWWwk5yfIh?TJz=Iz4n6 z`mezrMj|}IXAYK7Xs`uCiU)KrjWx6=X1!&l$XH$rq;kbD&p6kh`6T~`FIL^ZY9}HM z<yj6U;K)s0^dr+>%ZBj-dkDG{`mAU)^ob+s(+1soNQ%d9nTG+mj7VsG`jN~QzX?7c zWl#BuxuK;7RlR*J+qR|tgs;YXhQvCl-llPGMzl1+@r7nRC2cf<*?sT_UU-&n4<_0( z*yOR8dQ2f6O=xS4@&Oqdp+1~?ASRw(F|L7xsx-SrkRzM~BYbRD@^+!<>M?Oz6db0O z=L0&h_sWMEEMJ;M4iYq<x{D+IfO;?4&t}MDjNIU+4t?xKmw`5uWg1}>+zF_-ZAK$P zz>e9s_u^^JxHDXM*30w)jQAV?{p6gP?&PO&eCAqNVrtEF9K@;P8D9W1v3Ek4J%$sg z>!S@aJYXQ9M=bNAAC4+MAc;SaO&SS?wHr8$ez1`bW(x-qvEEIxPLc;}>(1EV(5@XD zw-3C(FK^pG|F)&uhxRTBeIUdevN{S4<3plHc-yRU5k5i=1zSRq5UY5X0|h&_4<W0_ zT!+282q9(*1zV25;|hC2hed1~tco)B<_F;hMwkL!AGNXx=8J;>OODxV7Ev5vI00&q z*@=8V%?P2z$&O;jAKeUnLtbL|d|amag+{{U7~4*=0)&lP-+`y)&_8t-NywABaXp2O z4hEo+<Ddh-&%@{7LcLLTxJRQDK2YwS*&6K|L?<8*-)?7;V56<tiJcle(3c!z>dD$s zX1#r8$_us`?Iau>Iy+WGmY0~w+4y?LZUZ7d3>@P##1R|5kB0a@6Avz<5T@XoA<oOf z*<fSf!x#xkPneLdt<vz>EL=^~UO^?YQ<CZ=$@nsp2qh-_S$J>;&wcrJg}wEFbZ`)t zv#kBa-y*S*M#_5@=O`5OskM%P=V2CmGJY<5INm%9J=yg*frdf!_GF$|WQzXu#pDqY zvI<FhWRY|t!7JV>HB?a%5DM&Qsck6{1JZ7s`fy8`FPrXEw(+GYq6iKW8jn&&d3fw* z<ShtRW>!oxj!v8m1dlTc^F!_$^8?XWej};14a4z;<R<odYI?BMK<@T)fO#m&YZbhj z2$3~by$u?)LSNwHOpe*=1z@8elSm5P1eu7@3eGjUUY?V~U=lIaag-w(F-9MWr_>U@ z9Vod(v;^u788s~H6G#hj>`)U}^ER1d3?hv>GO%IbFqe(3Jc<zGQSKh8#lz3ytw@}U ztT&Mr_jrKTdFh#VwBTW?#UJ|eRE_7<U~FRCW)rexXqLp*`;h4~wZ+i(T;T?x38)X^ z+>jM7<H0>D!L@}CyC(+#4|w#g`??vRHpazch{L$!FiD=%T(IpkjQoVw-CD!dyBC1M zhX%>6cx<LER==hj_wb~%AzYzRVI9o-=*PXS5$dynX?BV+%oF0*H$20cenZemt1<hW z=*kGtxW9H;Dcg!WPq}7+p~>ly?JC;|YWe2JFc(4>_{d}zdhc#+YG{f-=15k4_bRlm ztqZb;4+}_qq7C<^b>yu9y(b|FOMF#0YDR51viFpsC3gRCIv4}ci4T^DnVh`TiLdRw zS+@264|VSXCRtM5ciw&oMhM0O25YdfoHVbhp?j#Re$ErBvZ}gLU9ZW^>h6I-In`C! z-Nn?4tg4=Bn6btfS$Ksd?3Jt+vhf<(SV9)Ekr#Q<8cU-!vauFv!2%1frSBWtSSx$c zepo`bEbZ@qPQ<-&Z)Wujf?e-k=&3w6;>P2|iSvpR5s7vnDV?;(cvj5j)mVfEf=|1b z`7@mDA>YA+Yc&@-?fM0_jfypC4hJs86wdo42U^lE51)5+K1s0G5?*Ou_1^|E4p?FL zl!RMem&gD<SmIrSo#kfqM?<xkhxvkqWUSM1A@z)zln6%Xb7m3T_|ftgxyec5^E|PS zoE;Vw!V*VMTl|=R8i>BovzpzV?rx(ck(76{KtpBkaU~S0Sc`~zxMBXzLi6>K15|t4 z_Z2B2uE^xU27@Gs(K-DNUgCT|NV1bsc7+r=AAQB@=We3VtRgT?*bDkX?u|0DCB;HX z9OMacVcEiyqFkalD<}O#Sf0&z(_*926l61U(h*N)hBon3snx-%u_lvxD~4%{AuMxS zF?rbK#NJMo8Al8k1Yr~yRn3$Mw;FSkri&RDlpCZhja}6$ktY}_ln>bScx&jY?5O?? z!pCdaOUpa8p;uiUwl%91^;JE>Vs<L33kWjiBLQx@jRd?fmJ50DPa&Uw7W@=R-2cLv z9b1VXsV}aY9I3-5M99G0Q-_poNj5`rWqoU>n+CGm3lC)19-$y3T!V--o{B>pMW(H5 znycA(QyG1Ar0~d>dSgU8kl{#cj|fP(VdU`o8@PPTRpA5?U5+U8=T-<HDkC|2r=&jS z>tZ5d`8HVUkq=fb5KZ;adyN^~ES1B09g65z+-3enUREQg^JIoDSTl+G6uci~nrcpu z*Qb(&`IEv3AF+zm9%9*k^f><+!>D>^EefETY?{__{wN*0+wu+Hrx(N@4jm&tf4BCU zk>j=3jPh^nSnb~0u?Kp`YD4znu)qe86@0vQ%u`g>aLr1g^!sX04rfgwYA;SrVwu(_ zI^&IIT{cwXd~;!Gv9q|f16NW+p1JsOoX(MakrNkYE=)BMXFHG8hDMiWYxmz@J2)4m z4C~OR&Rl)*5=|e<e|Os4Y(OM+?XKZk@p3|;U&Gnl;u0}3EzCf+CaNW)_hgH+v!kqs zT3hQhg|%tr<}eAI?BkYe#1b!Rb7p&Dc0otRsFfr8C(Y~Sja6UMEY?K5RG~zZfRy&! zq9P{KE)L9KpQ0|dPj(v3hc>OFt$OU4f$aunnRlC?F)4Ohsh!YgAz^a7?x5jmd~ssb z!Pkq0*C8C%zVIU37j$ciH~P1PP;0a~IRcE0udJ{S#F1v`n3?7+5u<e!zG{!sH0#X# z#YUax>W{Tm4K+Yja@GQ4;9W)NEVA8Yf1kx^;%5y#i%X5k4ySRnG4}%E!Fz%AdYZwi zYi#a{46ruavrR0p7WT{~ZQe~AdSE6iLTEd`*jUJsGBz@Dk5DC~5LVh=TY0QgZ#QRg zRb6N;EP;no=?7%7vP)?M&t4FJNSih=L*A_V`26@ZbR6kEhpS{zBsiLLVsrC^jU0>R zY9qBK>E2)x8g<57^xJAf$$j5dlI=51H}g{v>Y&)*F!^)ThN&9q+sRL<WePp(6k2eD z5}i&?+mP5;akNQejBSOQH2GX_mD-xTwl=aeX}4>1*53m*QCZuTS`+E?nF&xbdy2L> zKbxboQ}d;Y56F_^w>2XKPq6P{d}+3=bF)em!3gx{@Q()*BWbMS8aCNOTf*&#gKGcD zQ#SjnjcY^Bf%&1lh;E#XYm54YDbAB2Ok5S<A<^8Oo|>90aHveQpLOtrd$!<$t=Xxm z#f5p>)YI3wO1gKg#iDS|0?#i_&W+b+&IZ00z$($lT;4~Q5+aVsE{#wsLc-F^A9z(M z-b%xMYIF*w>6C0)Pd}$tosN|x2)A)>$=%qTd^lqD+V<KOVSu~SeWFsN)h9-h;!K|A znGB8M;aJxa!WZYpTNjdHao%|mf3TDz8<dg#KHeJBt+d#*rj7Wd#K7dGcDu<TN!39u zCECYGrm5zbk7>^3(6piM3saY@VJAnNAuKjh>@Q9vR0}Vb%(9`hwPNWnsOdW!>5!aB zzpsp5ozEK!BglaIdM}%9EKD|<BjN8@(Xkl?bs&5obyorgXb9C#56EI&hl`A}=kdlG zn?;SLBRg)jFPOWi4}B^rPqZ?UaW=Bi!oSv-2P;i!7W-WEdTFv9NR?mJ$)i`sDiU4E ztaxEywBV_i%e*aTs=T*~)HNG?oSO=YVQUoyoC*k@$y%+&kpc;(E{JQOU0KG_fmDw( z-u1`PfeIvxA)M0otQus@mbcScW3K-gSD!4DpEiR4SN54X#-h3=6Yuyd7MY^Hl4Lam z1{_d64lAzk9=!@E&#@NBE-ky7W`*Z?mp*H`&$?PvO7NZrDZ#l3lkgh*V_z`cQ!REt zHv7Jx@@zQLCLWL_M?;~N4p2i!T@XbSqGKF@Tu<>n<wDW)l8X|WB;a1lq&)`;%b9e_ zp{t`{QX`H7?4Ul|bo0fug634ay`Vwz;zy0kJT%n^CGx9Uo?ayr$rMGgUlh@5$23;e zbnjjmi=0{HGISC-TB1BrM>#b|P<a}r<CT+CI!TAqsaJ2p+!0JIoKt~VMuTuj20P7V z)ym*Jhr_cN%tf{)tt_v1y_Azqqyv)e^Q7pCaY%B_RkA`u#9o1P?3_7M%_AnJE-uXX z$;li~dFnwmGUcBGGYPq@5S4AzlITA<(h`wc&69szm6kz$<52O@Kxq7|5}HyYrR4%u zW=XUwgtO5M)7)(Gk^I+K{_9Nsi#WrvdXUbVHbvoa#wJ4ew5#Rle<Stj^O=-nqts;h z%BoFDdk1DRY&6CvnyDloOQ$Z!U{zRXQ2E9p9&+wi_xUQnBFmV*pCkHAD00ACyf=88 z@I8#48LmBnPSN+Bwm7?VG}ERvg=I>Vq19wM0tJf{)JB=P`Ylc{oSEXZE4y^pI=6&L z8?{pXu6E1POMRNR*%&P;*GL9h1&p|nx(z_V9McgPly1n+`DK0Pl-KTqU(uk>p+P01 z7-#DILVfW$Oq`f4ud&%a*hm>0Y^2~cvH(wHzKHy6+MGaniXy@3l=eGmb2*bW<;of% zi5ts1kBOeq4qLl@r7Fy$C6m2n)t<~}Pm1%U)_Jqzg!=&w5+AfmCToC(C9y=2L#5Ua zNX|d=LUr0FE`@^)$RvY(8d<~1Fyk5vVItYEn~rUg%oL-MkyDI&{Nz;r>vWc^ohBAr zW8qXjcX6ilO<d9=g^TV`5hAbSXEnQ0)7(>-gQ0Z&tY)`&K?wJc`m-v|E!V9LN1cv& ztB~M0gc|J@hcWpy0a?$|znm+<OIS29hBDJRKQ*t2p;}%H^pq4NhtL3A>2>Iks%OrG zZ!~)<`SS^tFe?rL$o(*w?#O*ggawV>fB#9j0E5zgv92@90(BdokRg(aOjLPE@5Ut@ zgKbWbXiRdJ26NC&w?#I4ayYKLCmpD^F1!t$$*G!kJI$B|Cq}C{j@eT`@nc1*;Agcc zrADmKqs0XRoUAYAcrClK*#28+9nr(V$*5)twr~YamwkI=(dl^JwMg}6owo`na%h+` zX01(lZk*bA9f;Pvl4c)InVdL}TP5mP(#Kszs*-KUM{UEI#6u#h4GcIxNSfrdh=z+3 z&kSDvj><0M?^yWjoPgODr2PQl4;zpL4u=%k6^_>Fh1s$@cyJEuK+?G=Js?L34`K5j zAH#}o7sAVlg?MulZ3lTHlk{qRQDwcfS!S<ElhQ2J&vU&-o={H4QG3UnB|wcb7!mlj z0caD}K%1j`Cj8~}!C+IGotX-&Qi8QYy%%9CU})q(4{niaA88Vy%N;zNqhS%C<Vsvv znr~0fj{8)EUF7Pe`D@x!^K&i%NBYQ_6$c&Zdawu75Lo2Od*)t7ae(o8j{Gsi5<q92 zmZK?7D}D;+G|F_n357IHPKL2$=`A&B%Q<p<*g%E(;)7OUpvg!&Z_E|<$f9hdSbvVQ zHK$Bj05MbEHy6)yQ*)*mRINaL+n*!<xUSwq9`-FiL)B@`)hza{I`70-ad6yYUh`a2 zo+xP<$!l*xyHV1|ON3O>3q{|$rnT0Y;J*n=j6D}(4pfOMnezS@?q@Wj#JQXp>Bb8# zYDV%^jk94*M2^pe{xeRRd_2)i^fFP0#Ms+Sj#;!1F%}kTH@4Q7cR9dhkmVo?K&yZ1 zsfNw$wjeXp$y-gc&ZtqX7T&KCi%8ewWXkrd*7E4aCbDX&V$e_{zsL5fP_N9fAYCO5 z5;wZQk@%s0_kC(F!^e?zgb&~%)$9dhaZST~88g#x-(2|Ra-u<^!g3U|*&=G%Fh0nR zxh0Xrc@Q!gUR{?7>XdopqiJ>Pb%K1I6rPMyQn)x<9CcNhW%;yFn$@ZyuJWuZ2~^Yb z4~=dnE-aS)w>i~Vie=90#q>x#y~*pm%wnDxQJ3-;jTL|Lbo)?a47Ur~!632aG#T>w z;$xYB13lZ4QXpW~MdcS*)cWYu>`46K&a*<5A5finbA0Jpp4Qf-g-A&jZ1OckIB=5T z*CoP1n2==@)l##PDl^d1;~aGAGKC8&Glh%4rf~81r124RgS+6o*iRGX)O^5AC?#rh zN+25WYI^>mQ%W9}Vc!MsaX~0~vVG>An6XJ#7*{@kB`E+0gN4Zl8x&OT7}@IGoLk-` zzILO#xm)=DeF3VWT{hb6O1QnXL|*CY3V)g@??&D~?k1WWFqNw5_Mxd&>4I3SGjU9& z$@Y<^oAEY?QAR<E>1vucuRUo;n)^Xu7=PxaH_3suB_r8bY0exGYvpJKN+~&VBHxR% zVbm>=>M{|kbEl&gv2g)6y3Y4ucAKq&@N~mXK{ryi&*Qr){7J@9q)eGf*Vn^lkz^gr z`9YyZ!5b>mfU0>Jq)DP*2OZj)RjTQrJdV>sO<Lga;03#2N_fJ)8fc3s%@_0v)+kd; z?@=H97Qi>iHOIA*5V(9hg+5Eiisq<e^5_+B)GJ1^zUWwOUM9w58WI*IKFsR+>GAQ? z`j=^4&AcLgjhw4LTxTFk7&tJKp`hePn4FRjWbIbF3mduGQd`;D<e0OdvD1sFyT?96 z*n1!r-K@i<F;d5<U6ycD*kDz3G|R&<tq1-#I*WYmJCy|`MsR9$JSa&%&zn;h8@f0r z$o&G7lffd$U2Ey=x<xj_i1<}mcRtwr6%|b7u#ZK=rV^!{D6KY!2&u^PHClnj1Bzxd z#Mx9c(XluaFU$#k#oRGEORvIwaCB=4IvtQ24&)Gx<xaOz(^=I3qTQm*;b*mErN*NB zk=B|YU&LWL>uaoq2P@S@``mqE<P13qaxp84puOmSJz%t=Ss$|*!nI)Fli^x-x1*V7 z0;Sbjj9Mu_t36X{?3uW?LeeH~?sf@FGg@MbU#u^$uZLMC-xPj?akQNA$%p&ZOtk69 zJkq8ogj8g(Mkm;`PDvfdyd_Os<W>_FpO^;R=1wk<D+Z#D*Q(ZlcRN|C)|#gJZFCbt z^hS7Mh@SK$qA(;G(hf!cK}fQ$L`pMRR?m(6^s@u9*ynK?#KAg9^(lrc?)5j`Gc*LU zeDA+t8)si8af-KKz!3#xs_o7FiM^{=xsq&=H;eX4Bd_H|X%T6gBUQvSYb*kdc_^`_ z%HZAl8F=1+5LEoL{c7`ofsrG(qCe-8I_k5DNoTRS9xWs_J8%YmR;gU6k;)4tOvEzK zJJ_EkA0fivLNyAA3+yT~AiW9<D008h+SvF+oj0qwWRLbcZ-U<!E*Lw<&uXnojnz8e zo7!wT=S*Tj`W7+hQf)Lh8Y0yVE<dL^1*M7Um|krvpm_({T24`cIO~F}H<esc$8>W2 zFr{2SPWH`7&H7t~J>;w*hN|@AO@Ur`Q@Ca>_$f~H)xyk2(~Ex4b80E=wubW8n#W&` zzjke9M%rCDvM8j?mds(t{QzzK)aV%r>EQd*dC>KxW>Y86*!&tCAd+S?s`FOP6b7`% z0?85MNweAf*5({bYdT&BCg3blv%q-c)#de_E`+3+p6&Mbx~Q$Dk1Ae!B63>MYb&mL z6fx0}vUw8-TXUllhRj8inZ=8Hg~X+|n~k{)<!523EmPH&yK_bzC=tib?CdSw5lEgQ zOT-15Q?}N7dxxlp^(!2H-?`Suy+nu#*$>M?(@Wetm`6Pq&H-f`Etj>MDZa#7Y6wx7 zq)P^Y#6~3ZH!z<8Tr63GWj(8!A%uXYEcSpb)@ANPBm{H-4S6r~X!dxzdAXq;#36x} zd*=oiZZ*QMoR*BRMfSn67{Iqqx=Y)5zfR}K7wXd<^`}~A)VQ2U#<CNJKISeC(U?<7 z^h*~WDL*muB6lHe^*RAB^{vgTYu5s^Bql#_Xhr8&ICLJc?^44&cp<lY^D6oMWgvZR znRUG?pFg=?fEUzl+)|QtI_e6#|1!@Xa#z#r19iWm)<=d>HQiIa-@DXWjL}p4s&-$m zLT6&lg$BbKURm(L41-5F9omEPSktS$4`U)-M(X`RbBS?R*h3_9raghHz7P_7J|LE^ zk5!7iSXgPzgo@-!_DAZRQZ=4ISPme+Q76BAH-&vth}S`1sQ8jFimLe>hKtKYUs>yO zGu8Yg(Q5dN2g=9`&cTDiwS6d6MM0d^fhZ-~2qe5DcmfK!n0|e$d{&Tx&Dgc&AvJLD zgV7eEhK+2soDxkz{q+4jC7)9zOHMbX9SxNabAFQScyRQ{Ni#8RZt?SOH{h{A!!-wI zm~m8ruR`{b=`KmvD~pl&!k1)YjJvLee)8Vhto}NeO8rMEjtA$kk421yRT(KO5ifxj z4XLt0@?}YN#!0H*#b+Ho<+@+k<5aZ4#c8n5iRw{`34<aEv)cGdvUfYKW!fa=?Ch!X z_Mh@3_H_G@$c$jF*#w)~G<~J{P^L)TTs!biC4uqW&BKKxOls34>QhbAUd+hK7emr^ zi&V;~R=YG;l_10?9%RFOpK(6MoGv^z#4hAR9R*UAkq^${2-C+5VY*9$1auE^qoATA ze(_h&CN)K(N=4tPy!j!zXK?eyOIfE13kAlLOCH8_vETIfi?Djv-_I7hq0@Oy`&1Ac zHbBYD3C2oP$U{t}qWYZ4`))U}NAcd|!!m<RNAAE(hQ=f{FgA-cGE9b6=gZZ4>8sl% z=cHzT!IDy@)Ss<dXKsRMvG7){P8Jk>sU>x(q#ue)rD;~9=*SkF6DF$OjN~_su5poG zp`t=G==BE+))0RXr@D`})^gL9<eZ>L_QnjD>S_#<OP>@-%WZbrna_U(%Q8)>F8x92 zRvX6)xOSzo<Bm@eQ(s$4iT173;NT`S3^LtHTSL`qw{<n=B8`d{6amk235Ix$=y&Q{ zRyC|CG9fHz1lM?9K5x|J_8e!_6*DR<Z<hDz24Z%9y|t4&6T>d0&Wb#kpd+=J4)(#8 zIJ}F;^uv^soVHe($c@2kp>J_o<RUkwTc3ood^5`cv84$w<{2a~f5j=)Ei6!ZQLB6; zN??V;dp76L<^V5QUlj+qcyyH~6k%MF<keIx+}u-}lK-vpS*KY6NFo=K_LX#^O8XSg znaiRu54?j(eUTYLzRw}JH{`N54Jf4KJp<n!7&o;!?Gz~Pn8Yc%-?LF&uu2i5QS8f5 ztv%3hhzM2>38N6rn(|PN6%*%(t+J&ZY%e2~umYstn(<CRB~No-yDDzzeqsoFxU5Cl z1lMpG=~;EKhw=7=c0a4RXEKP*Q%w`#90#(RsBPf^2=*aA`^>4_KQNr-yRNH?4EXt? z^^t6b@u^cL8JjsKt>^QR8ZarFMXHSj%u4G@dpr583k&;Il$F=~2dU5L7m<&al<V+O zC1fmbWaJ(8Z6%YpHSh(;e)#Te<ff%W%ddhWx7Yaq8n3f9GB_zp+@a)~IptB5()eu) ztp;79Hf**}yID!HS~bIE@r04*XLaNYd&nob9e!XN`a++ggs|b1H4%6FIR;&HrXf;k zo7C(69C_2mBiUdjo`z`jh{STqYMQz2`z)1OlIC$+Xu_nDeN@7;ukH?renWoQJi)tX zDr{nD#IZ85ZH0J9RlaR2ij2hR6C6spzpgRQ^_1?g<4Q|n-8%AGcFd32S?+Z^tKF+> zo846ex)5b-rqE(bJ?>97BsN+sEGKL{I=^on(Ns9WaXz&!26kfWy5g}A<fZWoQwr>C zB{DneaZwDyZPaR)%h8%RSfr;ptnF34FLhJBcUI<eBlP1;px;|}E9~YCbesr@K*?cp z8X+gC)|do`#dZXf+|>ya+7QeZp9GGBh@fbg78+!_rBbwn#KL>uC)VZpmqv@@KOOu8 zQ9(rI*{tow%yiV9lN3O?x7GT<iQ27vgPj_n!)n9va%-FG(4Y~KyT0A(5kkru<w^G` ziOrOv`qQTNC0YXuGKnZk6*za+^^=j>$<`V6Ett6T5n`8qVj}dJyIQ75hB8XLThmRL z!H8-FKzn7axsxL&wGH-s2j<XuGqZROt$JjYg@@&p?n6scOS(U@KBY4Zrke}k1lBk` z&ixIOL)-fg?RED!UstaCwXG}ZH;YqK7m^HiY%>be)aClrVjE6HT#in1PA}eI<2<*U zQrk4IYuWrb8z<l=du!{vYnz?T<;|-@$BuFI(l+NeH)d-?wGj@oX|)z<&_wHD_HJmm z8pro-uj*b_(nm?>qErGRb<y?EmF3OHj_Xcj9c0zQKd0~uCFrEx<26gJS$byFIWx-@ zewTC~WT!z4NpH{Y>4k-_oEy#vE5U;;2Z=3^LFzMvc`ICqmKCkOzIUzL;X1GNAsWub ze~sCN^AqZsoU0sIm!gaar4*;(p0Li1HY-Jw-Sy?0GKlKjGuV=qM%&&QX=UWZgT5N@ zfHts%JQ$k8_dRJ{nb7%NgZr{f0G9WKLx<*3>0M=AB7jVLd|1o{vuJ_B?a(>SFZRqz zv;99Dc$95(A!40Vojj1L+0@6v3RT)s1Vu2;Q0>?^ZfxDC^*CDTRU_Z1=aJ20db!hM z0Cu|Dy|v?{#)NzCz4use<QR3x7eCWnu!~m}PsFn2q8&Wd(J|%TD4jRerrwV3H0PKp z=!eAzKKA7H0wEurnJL^PlI<i8)pj`QxwBj2bSRYI+Fb+}jGY1+&PQ|5U}`MANK976 zmMO{!VuA=}D--H+oKW{<Ydd?KF1_0Abyvf68%$!MPEwrt1oh}rQ?)8TqEN{unPvCU zF8Rl4+}h4MM-X-2zPG#{Z|>mK;QKkp>ZY2ux3jyo(cv2GRgQtNd2Cpz69U5a%rJSG zwd-8ZeI5#)<xF;V@lVZ(e3zz}wzH%(IE-3&8LAa<ZTQ54`%1XDyw18L``@^{h_Nmm zoakI(e0{gsUFojf=nnad<J&hpgyHzUjttsqZ(Ukm+a0du+0S=3yS=rQ_!Sj<Qf>IS z8WFyBC@n&7#1m%iWUCg8huPg`FfJ*=$Bwmw!D{kx*ALMyx*Vh!K8yR%HmeqaoQpGf zM_Za_$vDb4c^cH?S1afYO;Br{gQv^sTg{e&_i!#B!Jb3A*i!vx>xFB<hmPHStoAC) z!q6@fI%)nH2G-lsShW2fCv_ouGS>8hleig4F^~2ZM?vn1?`6cBI8T4LF*Q30T2Gv2 z6lXiT8{2Tc8m9#6<VTx78r8AWx+HLWYo`w(Cxwu)Og9~{Q`8Tw)@0hcS`+ZV12(k; z+3o7X!?icU3_|v+%5raQXz&MqiFNr4ri{MGOMvb{2j}H+N*Q8hp~-N^F-5~P<GjSf z&J<ne;IjG!PNb#t%ys(50a6{UIa7T3e8XZ4ddnNS5DW2x*@|rtqz8K~n+t4@q{euu zqqLMu909}LUlQUl<@^#aC&6C2X$kJAUqd^)t81IX+3wC`4ekL;x$dnP!IHInZG|KA z<m{MQm}Wpujbyuwcko^0SP<_QCmHa*z=}s|x=<}pV)8M{%x6K)-LHmHEiXvgZ*@18 zx49~}Tkmx_Sc+M_*V};`%<Um=X^_utPYmx$L?(6Qa)$*pF}-ufD0K=a=jLx-qs!yd zijdYS+X8r&6o0l>E?*_us&j*zjkbC_rM5=Gnd0<mMqp-PfrDuSalsg284V1y79?|G ztbdZ_YEl1e!|GYvx!zsPauz>ngl58mPRz5$+Hl1r(Mg6jx3qBW8VQ&*C98!AGu_+T zK>dnp6%19ZxV>c=j&JYJaEU;-x7b_TLTS0FnSW{Pu`W06c@crXrX?{4f)W>*Y*J!) zbx^TNe!KKP=`EeM&WGbb-{I^=W#lK;HkW%hhYEtwjSBGgJR5TDff6~~QUr1!<4$)Y zXVx8OXC}R1T<6;}I)QQRs>&!;@yZ8k^PGT5W$#Q9&PzU3vr@p5wI_?Ifk743&4N@| zWoCvC5cv;7wBzEA%NfCWyUV@ZEWgbOR>~snj#0DS%LrYCyRD=!(GW@ak+Zd^*tX}V zgJL`C%7Wi=Z-@7qGI(i50?i|nl1Yd3wXPK?h*Y2y7qlV->$}m9hogX=GTx3G)(q$8 zWdj)V)b8}D!K1&kzI>zGS>}wy^|FK-167EUUEJf`u(3Y91?Nho?4_B7@wtZjud8Y& z*z$Nwo&CzrPFZCy^qfg9IBplR57n8wG|WhmDPU$mI@=2EKhCwNf%vq!wchgeQCgfk zi=)MRG~tjp7R9p_BU)!ZuMt1RWtp7(SYMch8=-HO5j=thI~G&`(I!Pn--BDscOP%B zZFGC!zy^j8f%d|}tmIaFvma7!hQIF!Wk&;N6jk7KHa^jk93ImB6!(t|zwrcr?=?wW z&{>J2m!@^j<*{Ml+0tc#MZ;;X+6*#!_5S-up>u>OOm%9i*_LdLP1IE`T<lHM(Ef<d zF}bQui3m?rn%dB7-2#2f*js&?L^N_wDThFy-Qgl`*C%o<p*}OE%ZWM1lqE)fEpV|b z7u{SkB9$RR$;@1CVY!aBy@u&&{T{5aq#BN8{wnkv%b#mE2DxtIoJJ;1eWAmFvGgKW z4jSmFLp518+k37{tXxOL^LuFJI&*aw6>3+S4b!NP-t(D*-j`^(lD7{>YvqcLwvMI+ zU4Kx9#T#w3WnqN9A~{=Q!$=fnx1P1BWIG;g?bz&X2<ya&p`mSTj810@&1SgvAUEis zI1b$vU&B9!U;lcY*h`OHBfPr4!-YQT_%=;L7n+@rE<}urbbehGK0b@Xq2S!OGnNR_ zgPF}O!4XW~57-V@Ejmr)Mq+M`8QX<Lj-8ej*5RVmU4pL@3EkeBAj0wgA9C8eY{zfN zENm_@L*N^l5FG1)Da$nV4O_ape4(V|ieJe`lB<|z?-!a7mg;?j^T5KC;5Uid#Br7t zjMIK=3`VF~4nY^Qe3V&k{NALIrZ=7(R|G0f6qo}=auUP*Lc4>#w!ncNa%gdf4@^ga zPYX>sI8Mk{WJSseLzVbu68gWtO#ha#;v1{F#9VkFZ5O-U$Nt|jfz9p3tY+XQxH01b zgSc%%WDbG5wKBerv1ZPP?Y(^#pjIApd)$ruA^1o7R$5uEGBE`)z$K5oC{r8Aq5omW z^?$0_A!CnKu3k6$)&;hi!OQDfY2-{HDdM~PrVK<jhZmM(3uI;!;vQXJX1$*8?$-Bu zJtmqo+MuS;Ga4g5g5p1=tIKu8vX4qpA(My_%d^xHeWX?yXmM}Vt=wY7@=Yudp)di_ zh#A_A@=Le|PV2p#vl#!Jr%Y%W$JZ=O*0{(iINo>*1--NO_;n;yu@;GwuGOr)ww8M= zhtV_39z3Sh01uvF!Nuy(ws`~Vh{EIBEA#j=kMHf+P)>HYcj16H7MC$q(RX?~$M^Q5 zDS&O@->(XVXoC6^G?!4Y4X|FT?4bEu1^zp&C8Q=*g*<tEAxB!Nzj6&+?wp{Di%!<p z)?wfon_GHYJ<MV3MLC}0FG+)|>&w?bomsj~ZW7Vp&o3-$qS{;x+{5^J;^4|huryKx zzf1Qp+g<8KiQ3##5;!>ONqb?51ArzMF3o2)<jwKP24rwLyTY96Yzy1m(;~4mZDL0k znzV3!W9YFyf?s0v?jU+}E|aKpL<&swR>YU1qS>*`%F8C!u9<oaLQwb2cZYceg9dLW zB=w!Q_*6KE5eBDyG#150yBiaY`SIq%g{vzt&0sibR_C%#E(&J%s2mN2cGq5htT5$= z_D!WbzCQtXc}yy1G%}RU(sHxkIEKA)N+`Y&6UmGmhK6ozt*x?y0mtYrq}W1Bn_QYj zm8I|VOk>8wXD$JVjQt?r{Bm%rntu!DUwa14Z=4Wok&L~}<_OqYBGMKA7S=rV*lWtm zvmm63E+1e={Xc0$8Ev@@<=mn<9nC=8_5E5~@RBUUs900MA2z>0*CK1>fPXj?o_tpu zlQC9@Q}?obfqG}>Qb!dU#JDBGt?-E<k}G^1<jKU09<kulbVaXlqtpEUMUks=q_6Gx zor}+1!S?)Lm5%M7Bx<(5a7`O7p|BwMd6?Yn(+MjzBl$W_Yj#}LucU$FRj&W2KgQW? z?jtO8DID%##UZD4w3I)&L1s2Llai~Rz7-6bopW`2Wqo;PXYDH95@UeR>Q61c_$ts* ze3T=kc;zUGD+91SX5YdzW|S7u=G)DOX+DM&5=CnS=1kEKmQFwme~~o$Ywys~!`gv- zGWuPlq2zDxH#S$h`%>l)NK&48l<erxIj8`Ykgr+Ll;PTI#cwLvEyvX6su+&BpepHK zO?#fS;$>0FdDT}{D2n#qSa_UO4ID}d*%Sty^lT##WAX^1rk(v@N0tuR8b^I=Plga; z5-+uFjEX*tflHaePhED6XiB?D!_6a?@Q?+4m%S*ujKhTE?D)fs^YlSn^-Pr`OP{7p zPIA!gf(5rk;T7{w+<gPYL*avpt`?e<3N^6Gi^M}1-B7&Eg^dJBvF>AwSmtkMkqr+= zOmUC4&)Kk8GD-y5xungm0vV>)Hm?os?awVkso)(Is(~kVZFxNmgSWAqKX0Xp&-_~# zbL9d=c^M}oU|H6NSX;r%r`0M<4h&Qy0XiTp^5H2=l}ntP#_#iZLgqPvRll)WhO=!} z$+lJlJ?Vr?NCTs0hBEn|20QA-)Q1^NovFysa@JYY4X$)RxR{Bj>F$ewc-?ej1C!jR zw@)LR&CJ-n{dv0vcj2ns#5*z&ZXr!nF@pEx-J_>QPve?$<jL#kW^!Q^B~Isoi-QAY zts}VP0}rZ2vb?A_gPhdDl1^PB6nnaHeyM4TY94E;<-b1do-GYk9G(#lPn*0%<F^8G zb2zTJ^xMd&7Asq#(5w3pX<5r@EulH;NHC}&t<9H0X56cMkJV_zB6i?smNXaI3qv=i zS)tlp+uAId0Z4BtRe9o&!*`{o0t2<SbIsOideQ1d0zK&K$<?O3Ij+jAl!g?Yd6R`e z6Ks{GiFCC#s)%35F(odAV?T!bTl4>MM@(#YG(h&Ey=xYoR&y?~a@Lz$?mY%gYOzzx zMP}yuB0knYbZkXO?U*@g-2#z@d;0E7%QJ{@t%kSwBGX#o&<XskxlHNv5thWrumuW; zl$}Q?P{0&}z$G+$(FaV>iEo#~1%d=LDe3CHG53(4Q8R|6sEtU@UmGDuWahYBVF7M$ zz1st+yV_RG-BYgnv(VyCV5Q?Ng4Nnmy<{rgYK6%-{iggI1T_XjX+(w+%Ixyyb5-6f z^H-s_S^ivQGsv~ILcUv=NN&REz1B<<)kC*<a0`W9Nh7NWbeMs=w3sDs28`fcA~AN| zS(KXb2lx)?vUHv3KY;0KiGWw;Lde0?i;%xe8BzYS@LlK?ikdMecVFa%m;6=vr~A$B zHJIRzWNi!I@9ea=gBG8-Rdt*jac`|aZRxVzvi?+PXe|s%8Kq1_G^Ka0U8QZk?v1sr zy`9e5D%aG!@&Vc!yjAsy6Ay~PlOla{P-d;$)n5DBTD1`81TJiusWrdY-r7;A@OW*+ z);kSJ{T09Rfm;?esIA9qqm)=~(coU)_vDkg^Tfw~y}P`*v<>-e?e(}N4XiVhD(i-D zh(0aFCXaQm@Z#p)<mk{T!VQz0`C?x*s0ve5<E+4$<E6mAgMt`{T~OxQF$)dQC;UtT z8q5Zs?sdD-jY>e0xjnY@GT6xaN$1iOQK7{swx<a>vp71rH;U-WU>g=;S^3hJD<^VM z^{X(h)@p|P9h)_ent{rnoyPkqyfA@Nm*(ja_j0YR7QWDEBcGLx{N}0V0%L4SEG`v< zlt-rZs}iifTWlIpE+NiPriTJB(ZVLCnzdsW&)z+9_vo=~>&n{*(a<jDWN`|SvuFXT zGjg7B@kOo|vut>hWy8}Ylv+eWKxjcV=GAB|;VN#mY8}`BvNV9ft<*X=<dZQg9M|Q> z#Yh!f^k*-#hXQqc;zbuMUTn|<&U9I(VisqyP!<t6Oa`qzc&IbG&l=MYqvnrm5n_;k z3sPf@S&_kMP+F1^N{9?4>Qnn;d;yK&PzcH{=Gb%dC&c_;l~nR762asz(q&9JOW2xD ze50ARGJClyyVY4h-?boZ5pACqQqZYu2~k;}vV|(UbFs2)1=0|9>z&oL9$a@nk8mu4 z8>I;m0y>#HGjcm8xD2ALQ+Nx^RUtP-CH9e<F%>dPtn2x<nNg<6<o4K{hPIE>=@6mX z8)|NkmW(%x502C^Z6vOBhncCy`5D4OPmV!?8srH=G__hj%?ihGzO*t`BQyyw^t^eY z*-aCKzMW2)+a=Kx_%IIa;7n&ioeNHg(ux*BH?mX-u>(z<K?&K7<&J_&ZYa(o25{%^ zN;6y5D4`+yw7$@|;CRAionyaDy^21P3&G{a1c^(y`7AfzGQ;m2D6wLQTh^L&oR%i2 z;;d}htTfBorw(fa#qv(>4ip0XNY2D5suosX_H|8ueQd{4<sOg%H%K{LTz)quas^(4 zZn?YF+0TEy!%!lMK;(^U&C<v%tbn0Y7Z+fc3f6M&Qp;_}v)Rt$%iAs#*N(ppt;9s$ zF3R~DJ~sZm?Y`RE__IskxQZ{wC^1u=ZZ(~WaGY(hnkpXdOBCbhnbzkQh_SwC#)i8u z3K~8!G<H|wW_|tW>x%&0Vc8?9G5X?7+&;Y4UC*Q50*4RcvVWmCstM4556xhcd~l$; zc&f*A7Ak{?_ql5eiVQ8VBfWEhC>C24_J~3cM<De7ByReaVtve;oDzX1!zodWu1haP zINqWurMN~5P+iBJqqy$ed;3Rcc+q+*iP!3Wkc3qf7%<*up_JS~Hg5-gNw+XRqm<`C z!fhEb?j^)^F=2xxR}WiSUR~{V-prekF{Z`t^$rVU*NJjxW6!l(vGkEfTS~6P7<dng zTA1Vd^GQaVb$<L3ghd_SpCg){^LQJR`A>^)xBnc+o?sE1D9TFHPO51HnTtzx+RRFV z%W>VLZPm%Agk{@I(zbXr&n$p-XS+*SC~SckB;B8r2U_SHoiv=-d9wL6wc#Y<MJ#jl zqyi(>HjB83kr)?Y6VmvEBx2!6)mm0`iWG1EsG*}SAf6>~5I*(QMvxYc!v7}jq!7ni zTHr+=O=wWt9gwgSjq_$(j<R;Wbv3S6AG~tCFkKNtwyS4pljHS~1|=QeT|=%Knyp~r zrXi#+;dCBuNqpK?r?*dV;QUmU&$5HP`RI`QvxH$>!c(s)0JmWUetm5txX|#=|54nu zg<HQITKYA4YE7WbR0N7`>bRvmp@+F+{@E8Kf-~~#w;FL3U#QeqldrHeR>pF-j2uP> zYcw#^sLB`xnzwk6M7O~Bvth)ZbCA(NJ&j}JAwh#3>0x7?RxJpoI(P}*T#FDC(UMhy z`YN5oUtfxf{?@IlS2?<b8Ef8wjqb)3;*nOn9<Q`Tm@Kg;wl8dWh_FJ!AnqD|Eitb) zmI_Wd@!)`OPADYN@{XVhR3+ZQbCC^;_)l5W@lYu&L@w0`QHyc2fl02Z%ZrLxgFa#~ zuZv2~U*hI<wzR|*pq$VoX;2L9+){ZuF*AcNShr3P^OhSKzDa6`>*azadVqlL5*8(@ z%yzHiki+4%Y9<!SxSf(|{$UR$p_#d56+FV)JXT#na$~ls5Uo_|C2B;IO`$NndSg~w z5k2l}kPer-i)8Cc;tt9*G<=`Mm<;a+VLmgp*cj*XAj-G!5`8GuDUXIUJriBccg77{ zz!toiV6JvOPGWr5xnmGLULu$1H{#$|6~&5068s_64SPhlx>Ka;3<7z?Y)A8JYkk$W zV7aG62CNiE#UPmrLptVCa|#VH1yc``yF<d}UCNFH_pSdPsF$5BFCofU(N<wIR?Io% z0dXiaw!;qVq_F!CP8R54o1Mx*zS_Q&2l-ZGe6`z)7;pFpA;BWc2~KFv!>UH^zQ?<0 z-bD}m%B@2B7<p*)`t~^&dWoYKDqP>uE;skoVbljt9ps*DXy}-T_G)eITO*yj&a%hX zHd*Q~v1%#wiuW3w4)hk6X+~_BCKuHQBK~SnyiK7C>x1-8j`sFeYY#PY6X$Z-z6`HX zDP#zg*KMjBJdf|2lH0#*lkD=;BCltIf#goGU}T|5n@?ObSbLN9TaT|1lHP>Y*VySg zY+G?EFX2gp%)4oMgKTN$Tr#uV-t!qjyak<2^`W562a6<Uj=3IRRq1VNDw<F(isjz5 zp&Q57D^3c%#dE=X-%KYrVb$y}zcW+}TIz*@xru%7_UG65_UBvefDUQwfnGZ{6z!tR za-1Eo^>jGymfl!i+l)c6Y&18gU=SvQ=1Wv4i)j-hb}#9qSzjWWotkb3Dvpk#^K2Ye zIH7h^V+w)N9qpPJfK-1U(JFpdm?#}?S8Hgmz0qrfFkwt0E}vzY#pCxFe94j!bEM@) z(W?v#y%sFdvVEhD(nZI+Jr7JMtu`trbXVqMxm$Tw3O)N<6h@3sdyf4>I?#k*jKm4; zTrX_yS}`T)IrwXls6iOmX3at?l`U3;M@EL_%vov1!HNv@*Yj8}<N+RUA~Ypxv}G5} z>wtn};)I|-MSHdb%OIWwxe}dUARL}YAVThAx|#KsSJya~$Va>>&tq`NXRb8ikP1J@ zONb2TM6g!a!RHFEVbv{L?JYmv$v1|?og%v&3bVs55i@(aRhCjV*>^8G$m*POl-(HL z-d<;mlfoAotLxpFt*yt{K4&V%e&)+xa_HJ83Y^fVGFo&be#cIU6)tveZmwMKZDn?p zMDCYuG%(O*vyEkqNv?;topzojTvOsYi+oTG20rBV8CUGwtzLbach1_fac!3lDxMql zAReZo{n6%#hN_#FZ4*M+XUjPa2$unkK=RywKL<?kMf-BNKSi%_ji?_@_2X3LJ@4Ql zyu#TSwiPN_BeY&v&e80KD8I?ALpQo=uvVySU)4@;<qeFP8Xcn5unFTq0Gac9;(RuD zx;+g_R?*z_5wQu&Y^LQWhpyNnXtvM3iAE78;JGj>RkAn5OC$`BmsGDG9^_|#9@jg~ zXm&2-(>Z=<kyvXxT}#jBel<11YB=p-{Ua&Uf)uhsxKXK6Lp!xm-VjxaD#}*Ep7|hU zhW6d%0Y5TLYVZa@QWZ<SZZVQ~iCH<w^v!p>HWPz0SIZO~f2+d|;{Mi3nGe+PhB;%7 z8{D<(ywa0kk`s7pL_9OJT}<S@TBV4Z_ox1xnuRr?ZL->FTPY@Ki3h<}+A;d9?eLW` z--YXzn0rUOd&~^e_iPVAw!LD5puG@`qW#W_7(vKr!kL681%wA57%>mp@dRVf_P>== zGh{{MON7?l=f@8#aJIX7jUayq`gwCmXzW<#={<J0`cCa^yLThJo!Z#my_s2tNu7oT zEi<W#bbSS(xz8>VSd5!8Kas0aj9>_FvzLtHgEfYNk!HR$*(HVi8($^D&XT*UqHe=? z`74j7^dY<ziO?iDN{1D{8mP-Xr+rgElQM2ak4@A8AJ1tXM1N6b5+r2~*EBEEf}MnK zO@GgQCgjtzn4FbHMGr~RD7{MOK~cybVGa}@6V<AfVW)r7^>>6xC=;C@g&(rTX}7Rx zdxJ%<Hv(O0qch`_%=kb_t}m@@_3BMRmI;t9F#?(89vy|M-+_Cx)3igbF=lwroZt7= zR@f6;NxV1IyR^x!T*$23vu2bCrLf8iW|<)HIB~XtXrl;Ozgar8fYV0lar9Y>HTo<( zU^M90K_!Y_qLVe8^fKV^0FSGvD7aca_D}uj5HwcP{2JP~%>P0pSlQ3diX0U(!)MtX zW0*k;v%kZ&K?{oaS&Wd1%e%;eb8}yxOQC(c&RSTS_ZHZUADq)O_BAvz>+(nK=UjZu zd5hwo^nO*1Bcos&RQRa|zlC#6Ka<evEOb=VtEh5NB~l%(?U*?!tPIsk^y?Wks0I0& zpb?>t+#8v7anwP!zi^}5W6SB|7R+5{+QyzE*A862t#F|2l^L{9B#Se=Y@bQjyQ%rd z+Htne;cd>zeF_@qRs0#+_)WUlk`svIJ`v4(+wss(D0KT~{vpxkzWNmBxJX7hCUGCD zMLwyvS8Tzoy%pM>R}ySCeYLcyfF#dfrj}a}sqK8-+b@Z@{_R_^99#~uiPDqoXs0M3 zt6fO9TM{ehXX7|8AnMQzmi_^X=(nc3N9VbOjxoueLv^(Sni?xD_GHM8IB>}-v|1G0 z*wnRaoaM2y&|AC4At&oiC?y|P>%}CNtRI<S1S|%T#O8}X>>H~I#d?$@Ej0=?&y2Gj z9dR^2wZJ<5(!9wuinD=>LiwO2*+MsEzC>1AVX$SLsKkK!b<t`u##I9i&fuxU_}*S= zFR!iB3kvo#f9kl5txKc{NkV!MVtc!qW+}}FB_g0C(z*CXD%wV)7XDR;wz6z{y}}&J z;;k<OY{dCqXia(b1Tu+k+CJ0Dh9BF?IsO4VMlet8I#_iQZP4aeV@ESB`0!XGPGe?; zGdnrWlsm^@uYP@b^ICV&HiZOg&KI_2?OOs`*ukd**?L0gT77F{gC%uQfoU1+0X<&Z z-C!5JubZ>lJ<myXzUkRivb>HUk`JoLlqK6uI(381+__O^eR7tZ#;Sr`bdr_Fpd%rK z__?_E#5j>(nPJ=Jyq#EA-Q7z6zh0d-k>vWPH$}r>O^y{JhHS1pYv&1oq%@s9(qO}( z;%mV4$o}$aVaDhQCntSw<zegY<P{~P&Kn<mouT(wm)|t2e!a`l6I(sg4fl5YC~}uP z^1;voRl%R29d|6wDiIO3jx}6+-Nfr?6U@lNilf_zRu&P?nT1n9j?z5iK;_sWt6Jun z8k;LUyYg7c*$o$G<_X+#6HOjKAIp@a2heh1-YFbiAsk;H;?*W(8|7q+nT<-AbyC7% z_hxGD=QC72G#`RDrM0`Y9jU_KeBI_=tG%#@!SUP(O{S$QSa?hr@Qcg6HQnE`!-&qU zaeCyc^~!wQ(~TxUsRx~jqj9M$ISAg`Ubq@&=#EccsvOrr6YR5~!g0=Awh3I&a&vEU zQ})XC3T~hHwHK{p2TTfxii7Pc%<fS8J8eBr%{7&*@ZR{oP_P_kqt1(AlI+__5lfp_ zqz;KbOk2Ln;R3b$?z7*r8rM<M+~E~Bz16n&lbSWAWF~SsZY5Mp1{O~iBzqp4cVF!a zuFJ=yad&l<AMMwkS^PdjHJ^R9M^z0tC`@ZmQ|_x3J*TYrdG53eYn0miYV~0~gn6N^ zNPtRM_u=gRwAfp8v8X)hU*cUHdQKI`mX&0{-HEf$#^<17OJ8|!o~()N@OVHh(o2_D zZ$2bTDImdJ931C{2V>CKIn$DBZX-rU*_0p}aDmmvTg{36MJ!Xu+3FOEk=1I2Gh+O# zM*gjBIl0k=Y*UJ}LSG}3e-l~_ue5NIGyP0zR@g?ZSuv=8hRNs@aso3`DDr6>Lx|2T zc4L5&{G|qXz-y7_fHFkFHWs<p))WJEHg2<)+ky&guIl~HTLu?Zd#gkww3$>ih(2LY zR+h^YNxdL#%Hp5K$_Ij++uqNq!cpnm&0<G`JYgU>awwdh_;qK>n5$nW-Jnpjd|L~l zq9$K4HA8Rd34-<@eT;ph`+lSm5z^;%LfkI&s3?u(3sYtYr0_uKb*K|hQq;&qY+8TO z5Xg6mF%9kYuu!vo!)RRCmHwb@3J)KsJv2>wSa-uR8cQ~|!IbW!oG@CZ$>m}{m&ISD ztUp+1L!v;52MPOCTbQit8X$1tR49GP2f~#xq#R@y1Pp@IG&Z3OE!8G{Y40Xkm1Zv4 zTupM0qk=5a*BwNn#ZWk*8twkK!iLYq$UNvBQFYh1_SRQTPKpNn$P3eGZ5h}X&9n+c z2(;E6P<541!XFBNFk*_71R}r140~JaHrh@HxxVP1dX436X@OvTkiKRd`J6++S~{3I zj1@=qHxBCZP4}}W4Yi<7PUlNc)beB>cpr5Tn(HosJ$WY7qeK?q50X|SH0?x3aJRRC z%fS~B^5wTYp0l6BXZz#pJuzyV#aI)jHSK5!^KIt`PUV)SGE_{QT5Px-)gAm5+j}cU z_40?1%|?n@L32$iveh>@-l{1juC%a7#ELVeaDuIQ*kJn$S7QNip@XpCq(*$S9mtHv znw(FiWk6}XE)$TgV1mu9Dk`hWpnSH5ff7S3^ytth+EMAtXy2Q$Y;V0djZ27j0+Uj~ zzLo*@)}*1icSB@RpAbPfr^FfRKit<L0qQUsQ2C5DO(u8nlP8iXFLXv*l2$4KAC!iv zvExfrMmkF%E6#c$#28%uA~L3}?XP*x1(W9B8Mlx7bvwJxe+V^Ms<V_SX0q=`gL0IA zSnHcz+hiz>SJGZw62?gUtxA|#-kIojH;a+PrE4)rex6-szl&7+nnBiTxq12E&qS7( z?E<z`*P<c?<#FhCRe|}mjaIboY~SPewY{OjE<<SV+FPzknVy}uv36Inntq=hoX(vD z{(;Ix@wcq{jpAP^3N=4Zy{~3gPEi`!U+ZXLORqF|Td^lt#&lupo{Xflj2Z?(Qeg3w zRefL)rnjSv`?s;5eKp;>kXtsgzw4-{*?2gTm{qF_^3H2u!|H8l3j`4tm#kme>g3+W z#?6w0ME0Ak<2T@to5P>>22osROu-So8ya8HhMA(?Khc0jZF;S@V>DnTGf+l?cURC$ z%j2;dpvg%3?maCmZ0BDTD7VZz47J@$F+vVHb$2P<g>1WgpGC;nU$rzHA-3GsTeYd0 zw?rNfunwcGD1FuUf7RcX*QzrbHk)vwKSrnAFq`bAKyW^bxu`tA%o%2WU55rJVF_BU zltGv|UMW?6fSkay{Y%SOTdOur3tW0LrjnD*ESAr%h9k_5*dMMGv$0!8)^eI-Ikx&P z?Yip{S>0V7lQX|Bs?phm(L^E7Etjp`#^cnAN_GBA>mm!d6ddEW>5F?upwZYe+g(NT ztaZs5JR#)UN9f=iUAQdde(s5-$s+txq3ji<ZiS2UjCq&1rqTsYFLcN+CX4U()_p=T zRS?;G+vbwXSG{PycxAy{O;_lzSeHjxcW!Jw3$jN>2ezEsbBmUr@|Ma(Z(WQHHO$*+ z7|EIZ-&?=X?QM3~bLrNH5e4x+*M`}WZ$v4mw2O_O+sCUTrCvEDXv403{zn|+(KEFH zW9%0}6v!GK%nOAHI3N~yIDdSeSU-z5(10?L3z}9|9ZthV37yN_$V8j9_06e>CWxPD z{{*pm^k{Ff&5r-q>>UGa)#vxL>-pqZ@@8Le&hcVjS+w1>KG!1dXOazsjfq+cka99R zKfhF~kB)NM&8fRNs(fVh%*dIMdul^H9MhPv!?m}JH|O4<jUKD3-PIGPPh8=4oR#Y= z|J<;!MWS5Ko*g~?*4l}UmF>L;SZKyGb7JEp@a}bvysDkJ#_xrZ+KH<hzFK=?-C}|s z(5ua@6Je7xfUXIVT7Dv29<swb?F7nUN5R^eQ*@80$$*13>pzeVv9-`Yj{Nk){@K`j zB|#KJYN$hXvRFYjkT_B!&OoaQDK19woolEsx+?_quX0yYt8L|6Use6QTf=)<G>8{l z@x@kX;hue^LAicCj@+8Pi%qw|TrHQoRphXORI--=ctf`cdDr^t-!DEiBG8BGVZd8n zm{%9U%f(lhL(jH~FN79Fd?}JQ+#0ig^=d$0L4Z`XZ&0k*+v3fR?^Z*xhCqmT-y34d zfJG+_y_ZAo*eEYCyo}%YxLD0rD!YBO9n^O3vjc|P#lo2x9Ube&21Fmt1S@>j>t5?D z<FawIZdqv&JFBtm##pO9I|G^UXV#0cDVH|r{N>A?@rg#PRNIK|@vN64Y0w)dS7KWs zSG%7DY7Mj8hdv){$Ag2024N}EY;2)_QyEhStum~<HjT(RLSO~DNVh}m?daM4{m@1u zgbLPIz4ka{Th4~4yD_HA!icivNIqvt_PJMV#12jD#ct;>)Otf{eACyTbT$yOU60r# zz6vfiIyyE>-E30!TK7}@Q=?OJjxun)Fpq8^q%ROu(e$o5*_6As=1qs6%*{!DkrN(S zr&=BSP|(q_ua#p4=1`gqYPqA<#yRguK90^Pk`|L?-@*N3VWX{_6`d>cC=^s~1=#5E z!J4pdZz2!%N#(Urj$*NG#v^x#xuhJ)8c&V`Ru(j*bB|akHByOXv9Bo8%CMTlP+8ry zX4N|!KT4R6SF2*fCswzJzu;Ao{4X0dMXWi;jRa;iK6er)i8sP4jD7DT&dYg6VsW{M zF@%<Ajn+6Tuk^|a3GXOoeB34pf$P?Uw9gtrZxL8(jE!^7wg2HXcR_^S>yHjL(AZhm zeZ=Vjv)T$K#@z}wl!t1qxSVYp<4Y*S^Y29*Ij$>sw&7A;5mz~LcjiTyeZss}Xebv^ zv-iVWnm5v=s7Kicx&&=Sr+ri^9YcA8t8i$u&2ntjrRnJ@&0AwuaM+HGr%>XA8R@C7 z(WWG+F_Colyk(J^9HmJiBId}kAj`F}l@8~WYYrs3N4Uwu`qstaq?6-O`J6($Fb2TD zf?HZ4#eB8YbY7{79Br1_SyUL8IDymFd65b7sI`9YBlw|uJCEF0+g#~BGP$+F8XdPM zJp%47;|Si_+3K9Wd+hErow3oAXCL8ekVocj&Msf!K=~_=Om?sA>7FoQwlY%^ypd`X z-smT`%TRA`;$Rp(+M9?BdsAWxR*s6cVvN~h#B#w*hwBC%2?-A%Q)5gUQ8Y{RSJOm) zHBa<c69qi>X<?P-3e_sMXfAL1n_Jb>=yye(6M3v?4c<^z?u?4Gp(&=MBi3G)Nv==m z^RZWz&PwXPtY!;emjiuyE-x+8xMi}wS+2Yx#aQIU+p9PkycMBFW3J>Iq+68rBb#H^ zg7{6YF*$+8`DA3Es-3iAa|e^TVab{oDa_OadlMPIy(!gf!)kAGDooHF>2M%w_p8mU z)F)gxo?|!rtM5}P7_xq>^3vKFFdbWJcr3=-x7GQkx_Zu7Q;M<=X_nXOZ8K!4smZj7 z=-Mj^C+2WR=BxHIB{!eK#CCMVimaYaZ<BH4)Sdb$>!R!);hZ$v9cAX}ITY#U%y^4i z9<-l%WMp)DTFNySE=@1!SQk#G<F#qrdfmFnz2d}eaflgrmGLO^Tzzhm|4eg@=+Yv0 zg0M7d=QCIhxKZpYBAR7(SS6M)inhLDcT6qL=+w9Ko%*D-HM<RBLQ|0y-6l7eFU?!A z3yXC=4lPlo)Q8uD1H3Pu)N#b2Htx3w#c@k>UG<Hg)2)@-RG^*hoIlqrTF0f4-X|^9 z(QuBW(@m28SjS*Q99tBNr#E17taEX8e4Zk8l3Jb?%2I)&+1$fAt%k$4vo@<GJ1f1l zZFY<KGJeLEf3T~)>xzVPmy^2-LXzE#7tzHS>B-u{j=KXxbIwjrXNDU)@-{Yvl5!kO z%oz&uuNeih<w#^8Ih2lnI`(BT7BDh$D!a76jR2Rec}@b>1`bP`<|N*^Mw1)Xa$lL~ zz&@B8KMzv4Uo`iksV%*I8)fe_n+;>XB2mThnqvz!P2eUFL$MJ|fnB!P`YDecoDVwh zC4R<VALe^99Tq@sYdTp!YswwH%YM#9Zku1Y#MVY#WI_c2pRyo1kIHGxP&>^j^SVxO zBw{?Jv9WVGdPeKn<l?!L=T4ogYl?6hh>^AWDzwejVeWZmaOqP6GEy{nkpPj1hHX+d zIE~gQSXCEYt2;){*gR-np1jC@)<|)NJ~qE|UIWLX5g}cae2$sFtL@0U#Wdlf_&ft0 zP(vrm4IRtt9UYlyw;ZYCnP?<WY3X(>o&2=6v%gB<_wLXN>vEmWiu_w|0eJoB*txfI zTMh5#U*G9m=I{b;VnYjH3O48RZi=H=8<xs#04L6<U>3#LbBvT2foP{bgJajZh|>?n z*K21^<t-!_+^FbuwzAt>x7Rb{v(u9uhDY;WUpaxn2V#*qW|-f?=%w)sQ%i9^gfAxP z08A<jwoM04HfT;W9mdZuayR#E(PZk1^HrDYH5-#QI)Sm+M+6a1bLd*}4G!mG<j3dd zC0(J3v$~CI(r^_%$s0?4t6nHf%Mr;L`{6w7z))Hb&&6q{wyAj{zQFri&ii=_`?nD= z4CSZwpBlLb-@x3ZHf-JsK2tlBH5Sh^rMUkjFryJBE~-7}<T2Ek6}nN-J-{J@<_G6= zv}eQ_*=Ml8MIm-VBio6V*u>r7GKKw<_l%4g!f~P3@n80s$J1-;Xy%u;X8naRY)-=f zuiOe03TNJguFeV@)3Z8|ui)fO3n@c|wp%wi@wD0YIW<*h$Nl8gMK8xDK7D7b#a@cB z9!1bO)!0q<BAt{zPch-HZe?>@I&7Pcc-F~T0)&j=8pcPs$=8`+ncKi_eLy5w#E4xG z=~xr*oZ-X2q|adscU6WwQ43`UIUC_P@)3><IKqXfiEoTzm*%;@02Ju@SIr$0nHoW_ z#ll?z>LrD^&`h^QYVNcartNOL(0H2)Q#$&i(R?VbMQF0v%<o9|2suH*xq`78HK^yO z>-TVHnKplmRpxmievM*6fhW&$d#Vvfg;5yx$8<R6*5lpYK^zO(<)9Ul%mD+`6();m z3EYQ<=2Mk>Mkh<y(DPHGxRX>Cw5M5JOu>DnX)(%eT!gEr)Rj}-;41qzd~t9EOnWR` z(?IUiBcuGEqZ$H_l&4&U=+V%$qr@}$sgdhU=3Gp9jFn)9x9n^_`;M1{2VD0lhEtSD zoxH$7w|KstUC}bR);@CaRvtIxf%x;{1qS&%W*<8PtyzY>fDI54Q8zkeRmaJYD26uw z!bIctFHHvSWeI&WN@}y5%`9696WNCQd}BP<MKqTJlR8;DX#}a01QNv)!dctl?492F z!IV(PXW@dCBYh%@r4~7T6oS(^x=;5-Q+(kIvB5SdiPEwwr6gx&K|4W_Ja=|%#JL}M zIa?o@HhNdHle!}(FSH9y4m!KGv#nK^gFCYb>y}WRU07J;5?H4f+6KMAWG6X{f?tH7 zDGJ!xqh${)JW*KAl{kV+Q_)@QR9ynsEr*0XdowjEYJ{oboZytV1BshZ`$^|+v61P7 zX5FI6F;#gIJa=bro3q0X?)efE8oC@fZR@I)(t=E;d5uP=sk^+Fg7S9S(Cfl1<vhZi z?4ZSQJn@u}cTmE(;A*AOgY)N!>8N5JU@eGC<g;Uh@ekwLLybGAciOIng0;jyDO!vC zn?TvJmKF4=k|21g5NPc>oMN8cHy9oT9%-6z6!oys8)@xpy|;I`czOMbb|OvN-cgHF z43w+SQmf8pJEZHIr~;F6Js=^XLQ@-`pIvk=csk50ru^iTE1o%0C5+R`ZMTJ;d!oB) zBo|Q1(&0gfL@qnma9waTLpX783aX+`AuXM@)-uUb9urq`PNB8x__F2g>(6x%7yy@4 z<?`HegQI|TXK_piUqj^-(`6m_?pdT<Xk<br)4f>;t+Qme_|OtuE?3mV&6&N55{$iV z;AqyzCpC6~?Qm2|o*vENN$|k!e`DvISY*nk?b6DDsb$)4qNM{Po~jir_6Ub42`;Qd zlRV>-Nc)O$Oq#A7!o)g{QYw!DgGS6lKAo8fCVQtY>xlX&*2C<~=9-g}Hie8%OH*qs zyN&?!zVNZWEL*G`ZYZbjrRhdw>V<sQ{NTa9kRES}w0T34@r%>Fq_jD$8}IA4?wJ=@ zA)N(}$cQpcQ*fS(!#IVk=(W#=XrM&D1m2s?Ra2;B-4|UGn~2{U<E7Dy@*tG056zuG zP>cc}<gJ~?`7_9P*HoTtvfMh~m@p9$@$T}@#b-{rYdg0z{a{Eo4XO$VWojNO;A9sY zodtPSo6ED%$dbRryPjw9vC@&sA}~{rP8RBsrJ^rpO&hApbW3e{9B7g5PI8u&nJdYN zBa(toEpM(La1>`+bHYr_vz#5ZZ|(>ryQqwL9MpzX;h;DsWX?!!ip=)u3JhA*R#Ke< zr;^D{)2a(Lr?Che7N1_>&l8SgD<|g6djN5}xI#NC&kf3!H^=0dLIXfbaOrW<Bs?G9 zf?l6+66cGjSw@vwXtqH~!yG-GR}Q5)@5L6C+~;b{giDLO0?!ZZhZja)C=+D`&zM3Y z7y@Ow##tZ79x7ZSmIlvWUf<l?xCPIa(3J3;hhGyLtxZY?<;L~xx**IhQEHsl#2Qkj z<;s4}y+z(pNyw*Q9G!74mlPG6A<Y#E_$bP_gi9i@FF~CB8i_kI-949+GA!1mh%8{< z=9m&fwy!TA)I~H2LkP%Fi^G8AU&jU`UgVmEnwyD7Gh38RHM#ZpW<ic}F&CDJ2;136 z({@jXsS(PzDrK)F>YXP^yiIK?E>$IualmIP7#IL$gRd{?$`73W=C~NE${m!SFhpho z<UEWSDV-qBN=e}83ynkOW32ufKdG9$HmRbGm$PN{);UxBI~rizYtFI4Us%7v%o+Q8 zCj31c{-Va%d+xluev@Ur&BvrFaMu#2P(GH012GsJWy6EQNlueiW%zB?hTm3o_<b_T zf6BrH_@0Q0{M0sE<Rv&s)vm2_fV=+0#zXO;y8K68k#$J5Sda9>x}YET_)>&0zOlTL ztzGS0?Qv#RhZO*p{OU+4Iiu814s_ew>BdU(hUcv|EUCz|nYP|(pMY?XGwN-TBRmUw zte}n9poFc{3|2`Diya*{(piFvIA-^rlcz>IAzU+CUs>(!Agr!(kjiea+u2^*@2+QS z8y(_rIqU(VQ4WTtJCpyqXumj=ZoRwOSy}6?K)<?U15J(NF|_(kXf8Tsw#m7H+!RHi zJ*Nk4ho;mwR;@YNiVo54_;G`=*;GcGuhjXj$KnYgA}br5qd(WGXVll-)G1&qTN}1I ztRofXQS3UM>wDL_9gXKC)2L~!+m>OGA(L29=7##4EGKWRb9xrv(A~Z54(k;hYM3c> zk1^s17%7D<F3gNNp<%`|?I&MvUh(Wowo0yM?0(thY{PY{m_0PRH#O?JgqaI59IMH0 zJnM@gcL!FX8(;3>$);8aRP5AyTWk9T(m^0cZLYJefM1|-75jI6`6fpJ?rtn^Gl(2v z%FdpxZ4L(9X9zSpJDGO%Giux_C=ngb=}mB>1}B5nL;-EIoM=hP%;|^XrpulqKCdR! zlU>=`-QC*guk!J=Ror6UHeJmy-=4<8z1-oD;IT7zjS@^k8qKrOzS&WvXg~dQwl+IE zZ{J&HsMfd}g|oWJ<)7^PC$W9AN&D6_l<dWVt~k4T<uM&r8Hwl0hH%6vsPjTo-p!;G z1*D7AtxgavWUlQ50@38y+cx6sXaOLr6aAW9-|DTs1L|eWISHt<O`{bdO9*<Tc;*Dd z0g<sQr69<T2FY4^%}&=0Z4DRH5Vo5+S%x8n?7BTp7|O8ZIk8kEb1u6XX<B^>lQ1E- zd>-1d<JnD{d0|G1*q!3lSGu+inZ~JylEBmpO@TCOnh@s~8w;Z+9-MA05SR9VVqJ>M zbcXNC_{P-Sj<3ubY>K^%vZ7a&qHt;sE{bk+IT=;we%j7fJ6<rGUR}E(EiDSNY`QVM zFne(}UjbqPENY)v@j<VJmMplLKO^489)_NuM6tNr%alIC0ur+bPT>bQWfmzvi86sm z#+PfE@_ONg;Uk$YDy`#JO0o@-gONFAIDpI|Kw~INY#tuTS;{h-)Hpu3yT5IR(EHyv z*8Irw5q5FuJYi*lO?9qv$PO1YhT~s5wPW`l%WF`D=y!II+i>j|UviV37002*0aKvj z%JLrPwJOA})Uw*E_A_r-;;(M9p|f?t!uC6xS0u6|g+WZg9l2sY?~3tF7;;26`JtX> zgL7mS>A&+8f=<$cOzg%3w~1g?9XsnBq2*OD2AvK6xwEp4`0T#j3S>c>kg8aroi4i~ zZ*7OJt!;VWlWvLWW?q6<LsJwNi9*rC`M_TCq&m;>ILCdUv}dg@yQ5p(Yph&PGpA#Z z#IJOo3JdV9W*s+mhXb2(O%#)35tU*wzC1N{?%Y}S6#Ib!D4CN(2&CguWLQ1qCkuuK zWJ|3Hiqx`bsXPo7l-il{`=I|}!YqgoSX`yBp)uUv?1$-e=Ip=z`VGKZ(3qVa(TTt~ z#cAQ}>}a__TxE(pvRFgyr%<UXe4)i6(d>m`t}Y{$Uy3>4A_&ynw3VouDl@O3!wqj( zRczU_MSF{O)7RBXaoAYz@()|$OB+%`XiZ**g5?(Z9AuA_>P6!WEo9@t<@Pws7y;4J zw;j`Kn_%1S!4tOcud#o2xc0;oj{FBf{yy4&D1EeAy3kf?G@j8j!qgo29!gWWdmbWS zL1=oo_Ij?;%+wsB0OgV3SyI#NwuU$eUwxQcXS4hGBen<P#@P1ANDO=qF>k&X;%x04 zp>ehs;@l|lap_)&Ybz@!&h>ABICFO7?5SI9f!N^eyye{!%U9MO*x9<e%if6P-pcg{ zmU|mF&YsvPwn!{!%fr{aO@cC*n`}+o)74C1ngH!GrXPF|v&Yem!#JY5*)~dr4!AMT z@$JM^-|BVi;tNaL@CpR=>;(+2(x8$bN(usE$4D?Dmx<nBl?E!K<Y2gIEQ{Ho=B2dV z*Ru2VI{R=nJZ&9^t*x51@!m#lDr`%sVfAxq>dsbgr*`fH;o;{_y!{kNew(f&`6G^I zHn38ne+E=K{55Z%$;R)>vTV5viDZXr{QQQqC+4!}z2NzC-+1^XM_+pAWrx1`$eoA& z<e_hQ-mybj_ChlJA<v=g@DsPc@I~3Hf%SZue-r#0zy0WU9vZ)WX#7Rbf6MJh$6xfK z@qco=(qq0elyRoWcPIIl(tNK_W}bEO?elm1_S?Sm@OM+9ast0pi9FAc{yhGAeJ^@` zeE*vVy#LYx?|<ij_rHI@`@@F^*Lz##{UAIIQKp^|{slbUL9Z68{a3y_C~wB{-SOv- zzWa#bKnSSuE|&8dOAq*|QPSbo?YDt);X3BI*Yeny2!of>x?;Y|)OEbb*Vm?MUuxw2 zGHrY}->HmzjP&INYl5{?c|Js*PcTs9x8L#Zqu=5ExP5>8h0nk4-zv}bZ_KifrRCH} zzvJ+%mo%8>b}6^^f-JjX-@Pzk$f)GT?JoogydUD9^8HovEmBXZ4MWsXJN!3qr_E{J zfBQ}3JzB~8o<n4Q>d=u_9k%R)@Nx7AmGStPg)tF6E*1Dto^y9(*?Y-X!r9}VN3^dz zPm^c6ng_UAuW<ha`A@w#%O14+HqNT`;p#XmUypoumh(*y%J<)qZ@$PUx>+8S?{nny zcINce8<cP6CATiG+OHaQw;6-K%6A{PcBC}^upvu*R~|i%^PC1W6FQLw(tL~L9lyPl zZzbldkrvAnKg`ERy<aTGP<fhv93Eiw6xt<jclgg*rnH==(sI<Qcb3b!4AZ*5ubdz3 zE9YI+a-JxcLvmJ2^Qg^X9;W^Ola?nRtMlnt>HFCK*QRBOn&!*(eecV%?EPsT)pxj2 zYWK*W$g<fqkIGptm-7U9exRD?@cB|XFa72$J7_%8zUg=1scOyapuRmwS$C)PDQDB$ zl$IsFk(4!`mX+pnddl(HIVj&`xx6>0`Kq+9@)zOr>$LTelr~0SK|_as$Xn~<t$cb) zI8>jWEby#6pJdXP@|dis=Xj3gv?;4Z_m7s#QC+91d0gZe{l#*=nC7v%*81w|r=K@j zp4flYRl(ck6mK=sV}0-Acd6Z#{*#=2pql3}U%>inyjMAoz8rj~c}xa50zhA0m-5HD zB#&Pa(mu}j`t5Y{qUWCvnosP{=ScsOrRV&|W=&*3wNTC{nWXwA)**rO{BQMfh-H!d ztU5%*4J;;a(`0B<jdx1_E$TX+(wMdA+e>)4Q=Llls6B_*%X$7Z_#<21W|h<RHrIHs zy7tNQfoh&G2C-jveoLPoa$(SzPm=FF)v^L_jpOkt@@U-Rcua-9$Mk1Nhy4_7R=<F2 z{8M}XGwD~;boFVo+^0wXOqM;B=201ME9d!j^6XdhY?bp|t})-Md9Ic7JWZY}X&$x5 zhr#G2j`xV?dG}#y;cAcbxAA}S^zC`y$da8)%hDWem+O1&D=RWZWd)g1<yke#I?Br# zzL`9f;B<s<4*&O7aLn`GW9Veny0^V<jg89DGl*`}bY+WUI}ygV+Ah)6`}OiwjA@?V zbi^wuT`7z5Es~GsnVuzh7Z?@9=t%H;fm6K2`EPZE@2YK5o0a}F-=_39ozSDwzd*X$ z8^6C$Nmt_WBz+<2v%Wu0`h%p`_$PQB_#inR+w{HU;s1G^GfA1Lji)l7K}r4?nI|oO z(0fFKZz<?Td48Wf?P{JY<vfe8sp$Kntzf&vx^AQKpGwOyIkId8(Y-z!^xasQpWz#y zYq=i0m5#H@R=(NSRpy)e;Ua3Fj{WO=^D(~hxs{h)vfEU)@_mtfAL4h;3$1U3PNO{U zL&2Cy^QivIjw6kS@_ddw@3lO+e({d9FEJlkvdcw2)%IwbZxF6N^2f4lb@<jgxyo0* zkCN}(it-&(iCtd{`S_DP&A)QLFIuN!SuaJAd;gIn&pBFq<QEQk&s~11PCZV$>idhH zpVE3tm!jh*?x39~;=J_ytz_;f{fh^r*TVO;yJLL`T_-xP%9wc$dA7;pG?J8)=tnB& z1Ggwgcv7BEl866?d1?IWp>#~eN0jd?WcrrF1wO@(V%nXf<$0*ISpGU`AG7jv`$e{J zkO0m@RQ{{Svh2Ild^QIs@-bDOkCNvrmM7P1%o^GWhE<I;<<qmuzY=|1_mQvhKIXYz z&6CK=nCH=Io-lW7yjPwNpUkpvP4kFq6J0izBYc$FGuPi9_b&uIX?ES{&r_1i!ciiZ zV_lD0T_qenmfD^%-^EmZYJMF4TUKF>?_-`1r+Ez9zifHp_<n`{|BG^cBP!`?s4(Uu zOZHC(<a>0$*!@|{7x17yzN3tXPoK)N52ksnU5?OL-|lH-tF=AHgS87sqB&t=zNgN> z1Jkn3Vf&064jQG~AQ2ZYbozhS;Xf~Z=R1#n_mT12J^OE&uV&(x{s|5J`JcO;@@o8x z-+em8;iJONr%N~_Yw&I4ZB>sVSr3#Gw_z7QdKMYOw=Ty`1G|yVUG-7<o*|#hfSkYg z`Ae1W__^4QJYPws4dU<b<Gc6s-AK6|C3&TGD4!mNE^Tj#*NDd|-=`=~bw&Lo>Rh#u z{<*xJ$z0heXhdbq+!J|4LPv*P(Y-U2!=FrJ73Zb+Rt;F+zX@mNo02rcuDgQ<j>iw6 z;6KGTPuW--{)~hDcrqZugYsqfN8KjJbIDg)3;8C=_nZ8V?YrGdbOko%8F_#<r}Slc zzAL9MtB*21S!vh*KB!&fyIRTj6G^`6_!}Pa9q9Qj{xK=!KmHDU=!T>Bk+z7U_yx;x z@PCeERO*j$?;{x#P0uHuU(=r>{7=tE4rd|#sKM{a)4#!B{u9!lS4n4Jd7gS}Oux<G z_@5&gPT}M^lD!~-R6mZ|<T+x!D_$JQP)3vIh*4GX;z$-0jqvJ-HzUt*B*VFxJV&qu za*Xi)X!hHGC>y1C4rN07m-82g%!c_~{*k9^-NK(k8RmEX#PT9ORl_Su6)emi0#<z= z4fs|%;@{wyuKKlZ;E&folfX)suRo?kruh@==Y@?|#&|b8^$x8iu-@ZqFJXK&0&iA2 zaE(8QfLHlj14eZ<Snd5-(%$U=r|s1mf<NBg4_4qWZxrcjzt$7{@%$gp$?Q<}E)qUY zeL}JD^_Thki3EQi1b#Y6S9wRBEbR-mx1GRB-%ntrzb_|KAJ0!FuzjDCt*2{k!yj+& z3v)6)l>I#t!0jFH<!{8V+VA;&yw&~`R{K*}-#dIb`vw1D|J8V^{aPdO$J?W|kQCN> zM}+@*{K?-)51&lx`#kRrrq7WcKly@K|IzH<DjhhEuki7yB>hVPPSZcI$xC~@eOe!h zu)hCD0;@k-8}Y~S`RaU{9?E_%Ch<4+Uuz@&c==ibNnx#Zq_EaBQdnyj5vJ4m6U)~c zg+E@t)&?Sc8~MKvx%GZt9OmOc1^h-jp?NF#F5oATJwFg&^-pU8{v68gA$^qeSzajr zJn+lNbXS0tU%q&MyngxJQ&>Ls6qY|dh2;~E@V8NZeB$_jG@&oaA;CU=&JRAFjIWyh znFQV=zu;BgM|wH;O$EJtC+ULqT}+=%(tnV2!D;%VN&1hIE;yy9)g=9ANf(@^Ur*A1 zm2|;r`A;P2|DJTgY5Mz;bgcyoPRsw^B>lyt3r@fPP?G*?(gmmAe>h3Mk95Il`bU!V zY0?F!=^stf#p?y9=^sndA0u6Gn*Q-5{YlaVr|F+a(*FwSg46V;lk^XeE;vp9WRm_9 zqzg{dKb55aEa`&N^p7R<_)kd}?CFP1{%YOCpF`QdCjA#`?l;x^`5oZ@@-6Py6?_LO z%yRJI3f4G%SPGOqKA*I965-d8|KXbZj$;1HFE7&d{Z}gdOzR5%gz^)3n)3b)?a>rf zd1|`W5&ZG|pGjb)YaJm?|4^<(g!U$|+VjN(*7x%H`{U(*`A-$F(#_v*uRQ(tUr|ZN zkMEDCuP3m+m!CgPKT7{1Y~?4g+IN2fD_y>Qf4uys6Iki;>!<0zp1?|%Uq7Zd!S8Pb z|9ix*{Q5Cn`Q^ipu-fy91XjBI_x>EpdX)FNS7up_7jgV&1lZ&Fzg!Dopr?-{u*!S7 z0?W_t&!OzwDL+1u|9(1|5APw}U<5+sm!G~=@YC;BI<QodnEtsW{rgB4oTh&~nNL4N zy5Mv^$*1p+j|XR1<?!Dn|F2VCoS*8S{QLfR{;yPE<@fZX*+1j^_{9ExB5BXBkS;iF zk9_(5IKJhxkMJ|(Ur%6-X9}x*+ex}$`S|_u^5o->@b4Z$e!trNW^uefo}}A&Ca~)J zTmmayetmx&AHSc#N;jvRW$^SN>hs6jBfoxxZwC>p39R~3Smj+$(gkZBz#lJ9KK}^o z`wv&(zmT*~>F-J4+R^YSf8uyOlZ@vG>4KF_^r!l@X5dethXhu-)(g_~+1C`X(zRCL zkAH8DVSC~I(K<nz{^i{4dr5Xi4GB+d@6!o=seG*&_~Yfj>2(FHbgdQm<LMu&z~6g& zOn*r>S*cIoYu&(~Ls^UTp8+1>MWm-^l62wwiwQojkYBKhjq@3q8s?AdU%!>)?~ze( z%>N`mK1lvU_PxtTtxx#l{dsDrfYn~DP59&KpGsh*Yh5BuzdT%qzm(wPJJpczMEuWu z;`udyb;RgH>k$6<cxt^Ng|%i7Vd3Ws#|v2P`APyS{X-{;bitp<&HR^S?;FsbFD3Z< ztE3Bl;gN!VwYK2Tq3nl9|0&>eyolrX>q)xWqqPQq4rM<|{(oP|f2Wjxd%VB33aoX8 zG+k>7Dg1#7thItPU26g<taX403m<HZE5X@T0jvF58}P@+pH1&MtaPmj_!Gt}fmQwo z@ja*M^2MjHeA6i`zi|r7M;u|5w|}O9Rlj`0{&@S^XUp(=bNlcm*+(klt?%WZ^~b;e zTmmaye%UmANP}&U_gDVd2&;WRP=W8v?Xj0+|6oA<^2^5W#SeZ2IOPYQOw!dJ`CVgv z)%W{vj`RO$_OpC1Sk*-SkiDfy|D+OtW4g+dpVlAm|NZxr;rDMBu=2}i>rbGEdka|U z^2z$+=}%PP4<z{b-_(%sh#%;C`Dgv{@1MD^fR!%4tUsZ>39NMaV`I8t`CcO|e0?al ze_xV)en9>5g{JvyZ!E+3n{s~pn*+W-p5*_X0qOTA>1xjt34G)mVqJy5;yp>a^1m;E z|M-CX-<zbrVnF&2B<ZgikpBK8UHJP#0{{Mi{I3{~ZN@(_AbmSYSNlJgz*7VAe<4X% z{trwP<*Pj(tiYd1VCDZ(0?!R7|I10b^6%D*^4kOQKar&W*8%CDNzzr`9g{_QZyk{T z&Lmy=e;|Ro1M+_`N#7>@M}edNNBH<sl75r)-v*WnBYE^*;J-M<oc%_JmH$p)e|-Kt zmB31WPXeobkIsbbl&AFXO<<+J??O5K6A7&JkIa|TKb^ozA6h7<A5UN_KY^|O1XlVp z3H<%v5X&m&&li*Qzdj)SrHk<!$HyHH74Y94ls`#V{g)H?CkNzzBuQ8Pk0-GD^O*!z z`b(Sq$DTvkwE^Y5I!RalnM)yi7@tQHSn229Tuxt1;ExR`|0{1T^8e!j=`Z}YBHijw z;D0tC|6-DE?dcTX|H^>;k0j~J|5OEj=8?#M-5-8EtQTp-e{Dc{?@7LYW<dI9lJx&L zApQ8GMSInrM-uq=2IRk<q(AR@@!NtPKa`~3F(Cbp<@gQjK?BmSC+TX>hZ6YJ1M+_) zNmu@-6ZrIi{GUwHmH$&$iuM@2Ca}_9xLQtsX#y+#W8HH4#}ioTpSW61e>#Dce#f<P z`b#Tty8{1E1^#da{udQ^=z6*QcO>wG1Mu^iBwg)$YOVbJyAxRH_rI;2{-y+0dhM}t z`l}OI>7Pnq;s4VW_;)JsZR_Ro?nq#jH<`dHZ>9pjs{((#0{`a(o*saoa~nnd3#31i zz)Qf>39S0p6ZkEp|CIz@1%4`l-v<1y1nvQUcLKiyI6hII{A)@2dj_QcSd#vI1JeIN zlKwXbr2kx!{`Ur?|5B3vj|Qaw%Ow4m2BiPnB>fAObdBdTiGD8lk-dn4L)kL}@*hp? z0p-8^=ZgG-<sa}j?oW7ACH;{Kyjy|)Rt5gC1pW`SXA1rNH>uzl^6C$OhnY_jX<AKJ zY{z#Tb{Cl7KLtGZI%p)MzZUq!8$BLG=_i1{k^JhW%6lX5J+%J4A^!#7BT4!rmHdwZ z{|M#1Ddc|=_#xz#Vv<z;yMXtRFGop#G4ka*fIr1=J$I1)!@z%$@AWAE{{VdG)gG5C z_@lsS`<@2=wJ@Ga|M?f<Peeayhwp!x^j}6ldL+RA68Qh1EwO*U1stC{u$Oj_Kd*d& z?|D;se?WR#-^*@eet*K(<6oQ|$zB1RrXL56@f#}d{t7$;{BM%_+rVE4<Ej2X3j9oH zkl>rZY59M#0{>72{&C=cCHx0`e-v2sybr=(OnLt^u+|eJ{{I=U*3f3CQ~mt{@PC@{ z*nh#l0i4$V72w@u{Qdy=<&y<{97Qiq`}0k}Ys*FXe;oKV@YfHA`f9*LYw16X|8M`{ z2ymoF(cgo>FXsD;q^mvCz-fCf1AiWSTT@o)YrtpeyIdH8d%%C`Rqjs`{2s>k`@oO- zFZeHz{&Ln+9u4sOfj3~H+83nsp9Fpp^!uie{yzdY@c+Cv!2cNd&#z~hOl;-<H1PMo z1f4X%{|flueG@)bDpdM!0dKsz_+Gxv7@u>8@Id?i(lKxxzJCGmKc|0?wav$u0?S@j z`(KPj@@n9JHO?Ae$p80WoMpd<zA3(=`d&}^?}BfdWbj$w|4QE?{eLTP_LTD{;lB-h zg86ej<o`CowD-XPza99ys6!@)%6|&@9_Al^4E`Q|G^i}5|F9C?bX$%8+W7vM;P9xv z{|WeKD1VZ7Dvwx(?8lS&{Hws}c>jBSpOp7y;2qj?XZZd$aGmDA6ZluJ75wmZmGr;% z$Fl6R*qgEbGnMpd;9q{M7_WzbKYN8H1p4^4O8!mYl>S-U&K`i?W<&dG@RQF%Jo^Fu z9@2ktx!{lQ2d>lqyFxl^)7j^Tiuv`^z<=k_VtjrUc!T_7A^&HAPmnH`jqv$vz>QbZ zztG+<0;l---3t7C2<<fZjN|>yz@MTlJ>o~lf$gXL2mS^ud3O|8{AB_77p_9@z^eZ( zz`yt>3;DAF+#-JCd7(Yu4m|!g=XuKiUf{HSKMY*VkE7Y&sHFdW;5)v9%6LRi{|NXs z%`E#B`la&zX(j*Xfe(QkjkoyAZvg+7^`gID0@nJ)7f9Fq`cJ?o68`cHFT%f+@W0!D zv!{yr^Uc6F;U^#9wdx-MmVNbZEAMD_Kk(0@uPbgv=?&ojL>esD;1+N?{wvC#w66#J z*@p`Jemn3_Gx%Q#-+vcyiof?);J+&v`ukMK|1-ed;bOi%UCIAh;FoDILwkP>I6lJn zk1&7!^msA9zDWAiw-oZ@zXC5Y|EBp!{k;u-_fDA0<p6&(aE!;h11fq2@XJ==aiP9p z;GbnZ{uLqrJ;0+6WET6W@oNBIPvr3;@Ly)W%!K^k1{@!?_c7oUKku;g+boOH{{rxz zLwNi;Z`9uR0T=XlTlRkCPsaOi1An$t^yepmU#`Z6_A4klt?yTWzf7_o&8Oc4{*JXm zUi>cbPc0Yx>_y=Bhru5#)!OrN;IzCU!O(|#p!S}wq)!4bpY?cYrMH3q1M^XP5(Qra ze)w>qUu^^byA8F@)1LtTY3KtHX!(DMdG&*d{Cp4TzfD=sBVFS$1b>qZ{#eNWL!_@g z3cn2Sj{?68`i<lB<G^Wu{vq(^;XhHH|1ZFM$nV(ye+m2~{5sOlZvejxW~n_d>d$`! zeu(_XLVbS#EdBi%+AaR{ygT4WcX~XS^8X3oUp|G79`e5)`1@bL{0jKF7x;fo@G%Aa z%DW4B&<1`8W+{H5@;bn2e>Q=iAx)3Q`(41Fhn~L#to(l&_^&7B{|fkf`Bb5w{|M>J z<bNdO|0&?K{GS8nvH#w|DEunFK6{-x74km={Pyvpy#EvU7r+lFu=)>yYaZU}KZmpD z1Izz&6j=KCD}nzx^Eu`p11{#n(d>=DzX(3~zm+!yoYMEhz`sYL_Ry%mYrwC8UwwDT zzX$wxNc#i?r1W<HKaBEnf589u0FR?wy(#4XYrqZYJ?dLO0sQj`{{A8GPcUB~2`ldx zfj=DVFZJ)!z<-1GzydA(UjuI^{rz{q551<K-~S6ZwMTx0@p&ur{doAELi7au{q`Sz zlf%YeMQ?WkZ_t<hkpGpysk}N4{DDNDI}Q9Y+W&tyb~YiBBvl-b?HxZ39@djAURD^` zgV=2M%&_BayL-BK8m6{;x_V|<KS-)8v%1Tvs?4dZs_EW?>mUs7O%T_MhzPm|T@Vr0 zg9i~s{5YxzqacW|3m){edJz5nUqs|b^{kjMRq-++<KxAP7ca7=|Nj?4`Ay_eqksFz zPp{SIo0pNB_HcsyyG`ew3D3`v|HbctzYp?5<iFw%;`;jv@&lCl1^TG<`*q}ZNyqj4 zCh}{H_eOaBhsaN0Kl?%c6>_uvM@#bGknf@I=R)~+k)Ot%qW(TaEU?S(U;hmGA4UE! z^LsVO&mzCGSC{_;@}Fq`V#t31`QHeKLEc9mqn{rI`P0a6Uh;pdB>Or+{_M?qJ__Xd zl{)@<6<O!`KcfTL|3l<=o@GA@^}UY#R>R)Dh5T*w9mn?u^3Sn`B9wQ1zzhYY26E=8 z=&wD$+IJUIcX8&9i(!tSF9GQ#{n6AlQT3B!H|iao36ArGa#cDha&DF2OB=`>@X{U% z&ZsJz>Ezx#gGJf{xdDQ@dgYT>*6PO+cp-Ib9gN1wusq39NteLB8;z2p2L@|m&pdw> z#7tnB=mXfK{Vef#*FFv4-~hmV!-Y$R>8Xe7R6;16JYs#|yO=Jv^5X0oK#GU?P3su9 zc1ug{%mEZdyfqOFRh1hb5RhwiGd!{_v{1u3RL6idT?}*ZZ-*(mbj7LgU(ZBiU*4b} z;HX~900PZY-O`=4b9dHxYN-%+_JAk_-Ru5x&gni-hOnMkJF3u~T5ETJ#^d&3HU&jZ zD0>rF;w^_7;1EsSX?I>0JY4rhJo5AD6uebW0k=1>2dHt_ziX5Rsv|Gp{7m<!Ll86> zx!tkWt6QfP>-@odG7%-qyuMYn%FPbA)-+G;D8>sf53><{qXT<`IObA~pfBGmG6AQR zd~0HyFNcB#WYRW9Od7ahhg+K)le8;nGTjb1xx-Q!w|moJ4`|48DJRT^-QGykpawN^ zm<N@ca#bHVh00J3TPIonu7vV2`X=A&ns$XyS|saO$mw-bC|^s_oo-JU><$p4oA4-? z2idsC5<p>A3eKBNz(?x=q^p<L;Mx*UDK#-$%z$8PU&=~NHf9n#zO^Z?lo_@(T>$Dk zFQlaDZUvKhuB2z|Z4k_QHrh5{V+COBSDs;Qdh}~SZGzz0bQ>)23U|IHaiI#2Y7F)% zV*q=#fifDCg0=NvrU3)Afr#0_3H6AT=TP7hJRKO5!wK~(?EyI@B$Ne?x5!S1v(?;< zvvI#TBZCAWu_}>fc#&zAj(V@0!A^Ns_spl@Ur6JTazQfpv*C!Z0VtMbro<@E#mYM< zJfN^869b542B?*XG#|w@FILwmmIOp#l5@kT9E8>evuvcQF#{GYiD@>@7ixnZE_^S_ zdp7^&EQLo`IZ)bU8ZC*5ACbmg9!;(PX`T!Qqj@Rkoea{PMQ^DoaHDD}8No#8Q#{p| zNeeq#Sh5~gpM(Jm@*Px`1L0hpt=Z@0puV*p3O+gk`rEWw-41H^s>*{jP=}*{*P5MG zQW$W|G`&P&HZA~=u8P{sAVr{0DE@}IG}6F6^+=(>vI_GqN&Djhm{Gq`i4IL9jnZ{s zAoYd=8hdB^V7*BO<~J7GYn(9`cK~>eOksjmZ2+;Jvm&P%bIIp4c<_3K4Lg$;@*6UD zWsq*M&$`|w6_>S!0q0W9NahXLE5R+w0A78)H%)hX^U<v859rf014^N9AV~ySx<SJW zJa)4}4>0fc?{vTuZ?<#PE3@RFH{Q6u3Hc=RYVt;B-M!S=ZL~wjQ$XtRVo757uI=$D zgF&<^-v(d0rCI^mwn`+)U{qr2t~+MI8KP^`Upduqso7sGM+bG~<A%s`o?szbpbj*B zwvK4<blDrlpqHxu0ut`*jNoaxVl07><aD<?yVv)+hpZc0E#5F%ZJ&eTJu2D#1&eyB z`7}RY?T2om&0>E<^s+bE2DEloZ`m(`-##7ox4;<(`!cNd1~PWlTTJ+v+AR<XrP(`( z+dxAfmfGok%V(u_)@Y+<UD|0HxXeqin|N&bw@NR=^?|!3Y|mxulBS>`#RMn82CYSf zBHi0ngBsfIL}19;<zn}}2XPDKvfts`g6fy8t)7a<@Vd*9%ZG@60s0?Ve{9!JB;8y0 zjnv!cE`YTjUbkiI4bL!>6*Vo(uyR|a<>BViOdL=uaO-Y&e`%%qm0>ZjiY|dd*H4e< zqe}3)xm+{r1b1B(AOIYJbvz0_)|roYh0SfpPu}i&w>bb-Uu&_M-fNXm^Z8}V&A9$= z<b7NJlleH=!nfj3u+MQ>^(aLX7M#79&FV1G8)vZSu6GY%t(Eg5Cj{80QZv?!Us`P? z8j!q4b;qR*f~|G;cbiW~5a>7`1FertG`pptnKvQHle=`>thYDzL$khnJ5+REuSxUC z-i_9Sm7_3y*#eI(`f0mb6;lt`WD=maE%?sBxJGNR4TzedH2>9dc(&cN?s${eL*4@% z<|2@guW8MuMGdrT(`By9Plm;%JNZ;m-`-pZ&B1Kzb*P<CsJ&8s97w9kF&7o0^bL+f zjlI<RLo7xRSCd(IRfMUss1~A(<^*|-``!uh-lh>>3<Udx6Qls77Z$B^w1^>0=*9iv ztbalzYi^r0*3uD!!quMNaN=kNT9||cRX~&AZ0rzK4S2YoYHMuw)*Gs=@y)$!&Aer> zd{fo#1d4z$u3YBtj$z`^Nt!0)qkQynz&u70kWM!4^d>mfdKaw%G-uJDyK}7-PJ|^Z zN9tn)+f#Oi)6z~sAqw?T3^QZoCFT*jx3{8G+#DX;K59L-1I?|;j7{^g3<My~-%qMz zei(`3uzEN0{2zY*kT-ERw_A(yF>~WB^B@z0qwLBn$il)f+cKVdtJE&vb_cSUImaWS zHAtqm4{mQ?t7dXwess(9t<b>~V24R59@1`NdvPZuc(NlP@$-Q#@MIubO7_gs_n~<R zO^SuiYNl;sK923`b1Qz6XItiD5orQPF5^+rD~zyH2WNQT2@=ln5X4YKu0!ip#^WR5 zYKU5~0O}{14df1IzpQ43f%1dCmi`#$;}2g+IPOqOjN#mIQVb@yeS`=>4WWkV$1h<G zNhdj@Cyz@hT_3(e4VnNHr<T0AVLoDPX|9oEOI>H&1QHGF3cMv+K^47(&7>FxHs@tK z#PBB?&a(=kWM9J`p-pC9!n|NB1nX=Oz&86(>n2#1_9pX$)If0MNg%9wBY}v@#~avr zEQI1ZEmyI4?U9os&gynl_0#NHOd+Ow)_>*cJYxtb<ZPdw6t21T*+km`$Pr>@Zn04m zBhK`)Nxf;fp67RYsa>9pIWh1(gQG;>CoyHNan(%1J{6cj4JWs*k035Dn^o_5LvC=x zt7&#LKV|^1M2B?m=!iF3l?2rd%q~%EOC0N`)pN$w66&C*j^poGKGLmj9CTKDv)Ocb zG$(3}RT<L~Zz})4OMk}7Yf*bQ?4RKOi#({G{a{FbjBk~D(#yOJUC}%E>e6oux_GTx zm;1>Fp3xs7e#vtDM=ZCFsJd03ek=U`3h(hh<;&<Zw##d6t50nUBjtOPYhJpqYlDAE z2l=V@DtFK*_rL1n^>|gEej9nO`gpA$+a#smC05*5zi3JOi2W;(Vp<s+4_6w0Gh639 zSSt6#cUIir_2NEUv5qez$F#Ek!DRg5eW6ez?;DM@a)0@Q75AE6{D&*n@m=JYR@T9P zR^01)0UxfI_ZG6!&xQMMcb{~B6d*&ml+wSShVNMJXP>{|{u0XQE0+5;X>6c~S#P|0 z!F@amp`64=jkM(7Qtme&QOaM@u2gT+LcaMma_9s<Ke_jlp>j|0kDoK6EtBH+nqORS cKjuAuyi|`aeky8}`^=*Y?rqEQAF<qj0XEUO_W%F@ diff --git a/TP1_labyrinth_etu/Debug/libMyLab_lib.a b/TP1_labyrinth_etu/Debug/libMyLab_lib.a deleted file mode 100644 index a1719c2b85c94b5e654936c41a3f48c616a4ae6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964832 zcmeFa33MFA)i&HcqtV#%z5uq_#x`I%#zv!E7-M8D*4Wz6NM68XEK4IxLAHz*V`Bqm z-xEkk2y58F5+Lk51Vcz50fN~fgy4ki8zz_laRUGI+`84%Gm^-A-u&k~=ljp^WA#(j zU0q#u>)u<pZY?wYh}Pb=&LeXUi=_XH7Uh?gmXsDmqmf9SJn~;7k!VSAp?PC<j^j8T zjuXxu`tQ?M9mn_Q?sOdf1s>To>|gM)LMQVt>#$Fp%)d}wt~1<UcJg`0`+KU}$^Jk5 zH)3LqGt}S6Q9B&}Uyi%Y8T9x0WG6@eM!mhm8R~EJtG76re`B6G)XDhkTHn>5=*n+% zPHaUW9&=*(6^V7Nef`Pa#EHFK{Yn3g-ehaL#QVBiHzpGqQIov2tu5JYUQMjojQ7nA zruE19UEd?8wY@E2?jax<xApmRK`fO;TTgdSZ(nkKUr(=jDf0&I_B;NYef>Qf<R+?@ zmxwhTUDLY0y*t^PmPkIE_==M_-s$OX?{j+Bw-@9)LLn3E-Gn^albf8X`l@DsF3JAR zWbgVUD9LJ}WbFyua(a_(1~&=x8(2=VHup5vtaO?{mFnJ}bqsrXZ0I==#Bc98alQFA z9-u|qoUV>UM{nyo(!I@zuWRk@uI@oK7j>-_j3+lH*T<7<>j&0JTt1ViSl6DYZ0&D# zyr_nJHyKQ{M2nruWOwUkCsrFPD=3U6VyH`3Yqu#xcU!wtTTz*aC;J<F`h3AA)Dlg* zp=(pJ8zf`6ZCyKP&_A#t(bv}7)7|ahWgBekPPX<kl1#2Q_d&IeBxu*0G?_S6ZN07Q z6BWHZU7I9Dch~x4jTc(xg(T3{)r%}8*wNM9oy6CNxs&KwpXfVbptaYePOjU~znP@$ zZ(YAOJ%{w08+yS^iMGzxUipedQ=tx1<u&UzB=G&D)85s$0Ypr!>FQtCx&bupUArdH z-;+48FTXUJ?^M>6`}xN3*4i~BSE6b0q68`+VZMcMUqYC;V2FFpnt_fXvuj`1YMP89 z#mI08<vIC^Du4;4@z!<8Tgu6Olo~v48-N6@bNUb$?q;5hfK<sYr~<|%VSmp+Tc<X! zFRZ%6e}`Xly806ReTfad$-X|+Ty#(egj&*dtzYZ-U+C*^?H}lK0KNT*{;qY9UQs!T z{@&I$N(G8U$&)DZ?Ma}q`|})#U8hRBDI$~iIsL7D$FGc4)mAz!<xS0LN<rQ;6=$v{ zYE?+Gw|8JezrD#1G7a>~ydGaC>GhB37X3YAG%v5XxHu9i&d<{ha&^wBRkhWw>!O=9 z|6C{6NyQxJli$nzP@zDsQ{fyX&u1debO$TWQk<<gM{%y=VTw`30>vW565zJ`&biCE z^OM!1s!v+Ir*}`MJ7><0z?>yJoH@>p^*fJVx~28#C5=m8`Q+)mie1}+PXX(f)Ga-> zbLOrMeeu;xmn=cJV%N0@FJ4lObhkuj?mnvGDPYBtMG~*ry-ngZJC8zc3zjS}x$Sml zGPlE*9L^keGq>U;#dvmmbmp$@_|oms{3ZDkuh?~z#Aoe{B8Rz44mCOK+SbM#zO-ca z(tSH;?%oibw0hQ(LlCam9YJ{Jk{Kqq-A7GgZU-(oz~r`jo5Y=+pZ$JISNDu7TK{>{ zmab`Sy#9Rkmd;~FOhF#gDz|jrv**JPx17G^{9{L4dC#<Jq-j0r{4HJkcD+1pOV=^2 zTe^;#F>Uq8B_mB~c5f?SX>yj1m@%z)OV^a@{YoCM-uBpr#m*DXcK0Y}`#Ags@E1DD zadPm-f1{4tcHdc`|EATWm%iP(XZ47kIZJ=uxu^4$X(N|>W0CuoGc$YVmd<@UgS$oq zojJR9xHG3zPfq2__jmm>u<ib{r43J7J*|3F^`72I)$>o=(>Ve)+tYav%J@m==O2Ie zd9eD7U2gF0dz?9e9iPwKGH}GsJ)OsPzJ1TkUE$!Cfh{MGn3J_*%gN*CxVTpD{O3t~ zI<Hv0r!yD1I5YR09^E-~E>kmdnS%Fo=Zt;npXbj%?}|keUpD0cRrfn-^}d^?RWsKx z-Z@lCHy)+ia`L#H&J%micMJBM&bQoxD;7Qbwm*e~T2EoEA9tP@s;($s|DMj#$PsVP zao;*<hO;v=V^8PMHQ&?U>MJwe+{&8o*~*&l*?P>*JttKNolIFR1-7&<9FhWi`VUXf z&Cq>oBl27^XYU<H%{g$#Y_uWk|If~^cfNejv<>smJLZ5bT~{m$zO$z@3ltcK9I{aQ zQ5osXT?f?J(&ZLxLG6y&kMBM53sd714fkxd6teRC@ap-iCsps+How!s7xr|P3cdL? zXXcjHAClr8UwyhG#R;Ux>iI{_asK|jZSM6=pUm9lJh2i==ejTWyX*^|@xA}{{k8ug z|1T;VpZ&M*UxYkNOBrsSzVlJE=Od~11SOBzZ$9|VpK2^xl`Z7VoTQ;WTkX9)TSx9R zZMx^&E2K>qeq4O#XW(<IHB#-!R?KX_Z+&6=T{}N_&dG0@*83~8%tDlZxW7IB;rVdy z+57+L{n=meZRWw}eySa^^PlIE$FqK+8er=zrMA@`{?wEl(%8J?zU0gtzjM#bp{Q&m zXW_?fcmB&qW#@_f5ss4u8sO^wHS9Q}JEvjv+9r3>E&(_D2Ync(x+5x^94D9+;*cYd z6*_h@Zf1p-)&fRk&0LI(PFjWV{&{#k5C~ni4tEYh*Bv-!gWL&!x*2z}7U0e$?18h6 zIT69HSMlM9(Cw9k@ZXOGWQBhN>V!_mlTaL&?CWs}Gx{X{MqG)@SZCz(Zg9iJ0rV;N ztwFhZna0U^AA|2;A8%*nyikL1KkskLnK&Kc0fx`ax%bNmZ@eAhb8{XZiSUWMe__tV z2*R7L#k&{heED>QH}n3rIUlS+_#}pJ%=vUF!dv+6Ejh1@MtCdl-=4Ey1mTnU?p-<I zqY*xZ_qXSah#`C`!%ye5!hQ*EyBpzWM?GAO@M*lC<&HWAUW4H2jErzc-BXUp8H|i} zN8P^>kuw<??~b};3nFJRGT9w<DKk6!u7KlAaYuauiz#>xpB&|mS{gy*+|v=MbVq&E zjmUX?Qsa(#j|DrQky>|D3zJ>2J>WQv?x_A|L@wl$ZSJU=FClW#4m>&29UZTTJHfB= z$+hmN`<TJk7`f3MbsQQocrhclxT884xrCA1-BAM(M7}P>a7W#F5F+2;lkM)P*T*4p zDI-t2quyd}-(=)j*EBC*k>)+X#92Lw2Th!%mH0>#XBj0v%EWitc(#-E7Q(@AkzvMc z3tnCcUeCEWh+9`)k6TX8w;8^Q;jEl%8NQm~5jnRod=0~+bM9jJI}DG{d5Ga_8J?W8 zo#E>ko|5w{!`CysU(ODOZ(ul*^CrVLGJH_Zw~j*iyA0<V2EB>JIW*@-6}W#h?;n-( zGlp+rxH9Jl0|?*Ba81t78U7x_wK=09Bf;AkZp_(>;oBK*&WVsq?qGOD&ZT1z{yxL2 za*k%2I~iV`a}2|GG2EULnTYV+40q-n%J4l5cjuHcd@sWra^~-Y@O=#T=d9%Y`x)Mp zbJ}u*A7FT^p?Pzbwn3JYwHrDl_~4%dkXFiVk9`zy#vT=X#*Kv>XWVbeDL-+UgEQ`R zD2w1vUCL9|xSV=Ko|7jd#;vGD<avpV9=G@qL|%}{_;Dj=A@VbcOdj_@DIzaQWXibD z$`IKhk^ROcn88aDiHz%D<YkE*G;SRuuSg_!+#@ZByecI)bX;pEBCpAlym4KOye^T# zaVIeHhD1uoZDs`h3`%{3Gyc|vh`r^qvSY^w-*>NNEl(mPK9D5NxGP;m{w|TMac{OG z@}YY(ULG+{)YWb`fp<radvOJxd?d+6JL6};of!Ow+k)ICL@?5ECyma=JNUN^*|}FS zHgPPt%$)>^LZ^05+z4vAlSui%CC5*kP{-Km5^JAyZUV8r_)_4K{z-SOL~QS*JnMBP zXR&1_%-V{Zu^RnKB_6t0F*Z@&jhT15C+*jV2TM)9=n34wdovwpuTL-tbC>bk{P!pP zxmW$zdwH3@JaOj|n~X&q0F~TjOcuDLed5DV4(>8jsLs8+9Cw8YZ=7`LSMX$|so20i zEvpgRdJn%dIg2;<ngA{Co?|~A5&Bf1Q!^z$C+*{s%=`E`X&*nw_wn-#Rr}4y&o>|M z+vlx(eCpvGe8QP9EsF3POvisvVyN?--e=#ipOsp^VLsG3@guad`-b^YhpF=$d?|3r zYS#I!w9o!rKZ}Zz;8SY)@$yL5ezHS8Idz2NOqDho>FPJ9$~Q;4`q8OE+L5k)bsD}i zN-_a2>?_0_?b<Kx_tQQI<M~+!BiGQ0_~`z-<|8zd-*?;z?!jXxjS7z4cWlc(6WsCp zT)t=@6#XD))TkqI7aXfWyqvYS6C8W^sQIH}lkk3#L&!cvAndxaNiO0erXzmXC~*HI zcT|Xpc{gW__hu=cjq*i9(94L9F!`1uItFi!vTu&nNQl{t)AvHLNz7)vmIqO^-8^^U zR8zcJQ)81RxD&IFnsV8qseEr@$oqU?isMXz4_@oR=;U#zEVI~as4Tu^ve+B%Xc_s= zJ~^7j1T@$b@4e8VPfyiPql|oSnr5TXeYGSS-7ghgIQ59BXeqsc;+Y!`g*d>5Q(KQA zst^9-GybEj@*l;9|H#MuN9OYX``^5mWxfvf25UHOaBR>7+p-LPIS?AP3?&ba$(9>g zq4Af{I-3*@P90(Hn3P$;#7GkluFeTf{bv(ur1ADpXy1S2q~ha7g+>(7w8$B4QfNLT zLC9%u;PqOVUm<4^I-HPmNQBp2P$41by2E+>YX`6E58!p-8eVs-=k;?*Sq$k5Ii1k@ zA!pL5yv{_w6LP)*4I6UyfyjiM=TN7R^QnAsIn-mwDV2B6gu)9s*Bs32PmkyIn8mz4 z9_Mv4jNg#+3B)Mm91Eowa#~<MhMb$E%*X7_@POP;!qN^oa}MG41=Ky{e0wdg=bMs) zgdt})7%1dyZ<nyVbt^^MnI$#)l6?0S$$7Wb`nDQAt=ga09{E=DW`@g;;q`B)@%jq* zKIDWX|Ig%G#~sN#H|@o1%W=F;MfVzVZj(}d=?I2j7Mffw<rzPVcbdM!>qIF0kW*XA z>-P`kwNajqmv&hsb$mm<`yxzVP#Ar6$k~ZLFXY54c%2|6e0>wcmx0kkPK~6jk~E*l zof63*EH%2ZhiR5WhliZMl=1r73B2AU<y=(G@ECNqA?L9fyq+n1QYzOc<+@=R?{Ac^ zgic}jH~aDWs<hf@jBY~C$I`Ml$ycrrn!hUC^$~_dA?J-gUY)tTW=o4#3k@&bmv^2L zF8Y;l%j=VQXTR~hUOR!;%ck;rLlv(J<<6<{#hvIELe6>8j=RzChn%89ULTcKepq<* z>;rkHUs@+m%KV_@mXL2<D0lv{h-o%SD_kfg{Q4Z;c~|(SSSWT1WGmzxCsfUonjW~E zcM4DCH7?(pJdfdk(DsJS438HMc|zLyhf8_qYN2zbv<P}6+_^6-_oX$jlyI|rYqq3} z%UfqVOmhH~SIBv>o7e3^y}hLEDpvANO_bNyCh~fwNY)iXpNr=6&Obr?kdu_BNuh0* zaLX^GE#45`yIAV`>;|U1TiWGgDb?pf)uTm<`=v(jH!{sHg$}0*C2x@u{#iKuWtUIK z#&|tST4&?Q3_m2?vbBie{d0M}L9XLRGn^;)7aYLwuZ0f}mok?L1vU$>zOaN(za-pv zn$%@_4eu0-Tr8G$KSiE~q}9$AT0JK8{P`HBJV9D8u!iCHL~<8OEk>WjJGmmW2TWji zKw4+Mlsq7EeT`82{f&J3{64(y>E*TKbY4%9J5NfUB|?X*CAYRbKK)EMuu0nY9jVv9 zI(dJ_WM0Rw<8`8F&TmS|>xA;-rCv3X=0xGlUD8t9>X`mthQp;b*GgMgf0_4B3h-KU z0<ZH{@%oYEv$>VwPRV(r=&_|j)wrbpn$W*N=>L_OOnJO~<r&GjSIXQcT>V$6^%Y5` zc}nPZh)6-6Xtp}xqKoCbQ-#hi&tS?c<>|Rn{s*Kyx5}NzCFLK4H-09i`mMC`2%+AD z1mE2t`uv_*48JM$Jyq^}S-5NGmv}#R3a@906dc&h@a4jjCmzV~!NLPu4`KLu;o+(4 z8NNWuaJFct*QM2_7xVsfq0*6(<{aVY<45xTg_6U{l??xBZ(hG8IqxlPai&m@Hbls| z@i1N=Sj+1hQr`os8Qv!R@RocfB;_9`d3Fi+ekvtd*ua$klr%}<x-rrUM=az0*SGRI zu7ub9n|S@3gvSbZT`PAgMOU0Iv|TN2^xgndcC_$%k=*%6XxJe7VZsF7e_$V8*9d*4 z<THGMeAkiiB~q&EB%fJw|4&nxre_1MUzN5#MOx?KBHp=P$}n46<R?<L_vPzMDR#+z z8?un@%e#-jHL;UaSbZ^SD9<7vGG6r<^;30a0j`Tn$VahDnY!h9erH+rHcdTt1|?|1 zLX=$Io;Z_boqGQQTxW&Za)-S{eU!HkYg_ONTcvnZA+BXTY`-I}qz+oxx&_xou|{00 zE@ioEB2~C9eVuRBA4_^2o!f(J^JH?{@@IIzbrh-4els~Zxtecvw~=>G`YH0s-tyoy zgipQdNQAe!-{dFHaR0#XoawHd4Y<U;lu~t<yRsMXw0jh}|3&vZU4R|#vuw?m+}kGs z-f(|KE%I}B<e`9f-NhY%58bRefZcBUWWYymnC$)!x49nhu{)na`l(yZ*Y~(zp`e@* zxQS(aIB*M|39$~yqtZHX;ZeBGc#zkbXR^T$I*7$QI6fWMLmp*#*4?b|+>hFDo%fG8 zu7{P9@e2mJaV;FX9M__HHh%H9NRE=V%&oMIVpR6G{c$~f7aL}N2bI|oYiHrQpuZH? z@;{NRi#}ku;u2Q6@&Z=2>S`9f`fKbc7H?jGYt1%_X>1(XV9DdmbLl;#V{ME=PzUD( zn(A^gc*FNs;oA6(W?YZHlyqqdu_W<YHe~bSdAPRxgAKgw9Ww8+Tgf7;#)oiCoOv3q ztB+@!v|dkvUUTIFT-*Lac4@~b#0hon;M1>kvkb?tI~><_=cAcJ>%Y%y&u%iohFN{M zp3u&w>J2W&wJ%74?jOmr4QydKH%=dg>xmcg{z>ady)93T!*%Pv6!(+QAZwrURWjMB zC$Q<Zx!>W-r@5D~HmAFfgX_UmcWeTj>7H~L;4C*xINSZ(M8G+25!v-z_v|vjdG4=B z$MfB8e*6M=D{FC~`&TyPMef)00bh0JkX&DL|Hztr!@c1+z@_e8ivX9qFOW5_a4VVh zm2Pbw;41ffO@OQ2Y!>1gclI{Gcif*bmuuYw+vGa;G&be+Zv0@t4em1ofE(R?l7R2J zdyzCZxsNdGo88&Gd5ilLOLnWfp6`9nJ%RMR%}tO%x4U1Xa=F9pX#jlRJ!L<@o$e?5 z0Pb>&NbS4bi$(+Pac52g-0SY$1GvvEV|(21{wxA`!2LQq;RoG6<NzLW$FN2ZyEpRY zBko*wf{(g0sk<L@7g0zbcbD;dKX6xV06gK&AtATBE)~X;?xDQ-l$*~wJmX#-2R!SZ zO)h)Ey_-$^GxrY%0A6&Lj0Eg(lN$jqxnaKdvU^Ve@QV9q((G0DjeP;HxfioWue)>k z-W%>c{eU;!nKJ-yxfozm8~kM};BB{%0{RR056tBq_YSu0FWuM_z`O4Irvi4mPqJ}- z<^GE)f9<|j19;DUn3VX9djw_ix9$!6`tRIQru@Bo{8GRl+=Z0-Ke`W)E`M@+)&l<Q zMvn#j#f`)Oe{~-t^Zw0kC5OE47MuXs<zCLue&C))n*H6aC%1m+zR4uJ-FMhVAGt+j z?ti#D>j2vV53`9+3%pDDJU!609B^h}2eUpaa4VJ0*@0zb{c{2bvzq4yzRd!j7r34U zJU?(AV;2M-A!}S1xSz6eQD6mW_SL{VYJtlFzh$K_54=eJydqFb9=tN}0j1;Wz@t=; z*90zN>^p(iS^?Jvc8&vF7x;j1ePF)=zzu=lkvumBM&|;)8_1_Ma8uwH6vLYXr;$px z1jbbXZVg~b3z#-AvjlK^AV?v(BQS9c;LgA}7U{0Q8KmdEfvZWg`vUVO0Uii^cnsjd zz=YEQ4+oxRRUQfa@HEG0?5Q`AAAT0PYc=4PA>1|hJHK-jZmfTn*9~{Fflm0e2iI=~ zX08T&D-a=Dd^>RE8o=d&?@+^D8Q6O+;Hto>S%7N-C$N1`ed?a;10S)BHw5M~$#(-! z<O6OB{FWSkOJFKXd~4v?Ie^;&p=!YGfdzcw`++F4zB91j!GOC1Kj+PR0(DeB_XYAu zw)+G3GWKBLIZFORf!p>5po$dMM+4g@03Hu~LJ9ss;BYeKlYuW$1fL3g`FOz7fpgdf zKMMTS1w0%0_mO~~1fHXgelG9;-+MlA2l?-3f%6Unya?|n;H5w>Tk_?=V_ycm8gSU4 zuLWKrUET=%y9MxOU==I&^FYT}0B;9+*ml1RoW}aS8+eS|@vA@+dF9uEJ^KQF6IeJK z@Y}$&>3}~3-l4ktW8m`ffIkQ3@k4(Jbd%No7WiHQ@P6PvYK0F1hf#F@9=ItRusd)} zH{hedfuzL8f%{ppPXgbfPTCW=hTr>F;2{dZXMyef!smgd%<Qz_HCq6u2j9s9oEf}s z9pJ2B6Itz?;7Stm+~EC%fb)YdECgH-+{yPY3O2HdzZ!h&Ai%}Jo0kGE3C<zuz7Z^D zJ6sw(btd3j!8|6pEchNd_3~h%6>vpx2|sjIa1N_-b+DBD{+-}_zHn{ul~I7}gU6f< zxFLA;7{E=zAF>^84t`4JyES+u>G{3j?2UligXb&(+!5SO>AoxYEwb+2!K<iS?hP(D z8gO5*l3e#d@M{#a2ZKL!0FMNJFd6V@Ft#7y@!(an06z$x!A9L498c;#8C=K)|6y=U z9Po5-cM;&n!H-FoXM)E~0lX9ZBkS<XU^kV+&fv0bfL{f#fn0^&3*LJm;5Weu?SS6} z=dm4rAH4c2fIkJ#puYNZaPO&rzXdmw%ij-PRuA}la6cybFgS^=@=-8AX81>N@jif0 zg8PyZp9UXW3Ain5E{l76)(UdgomsP(<gTn^S)_Zi?&t;Fo3)GFbAQ(7rve_xI(vV> zLs>h>m=9;|&u5QjwXXm?mbHL&_(9gy<hm!a{!Q+AGV4=H+*4Vn<N%(|n!O(IqpTA0 z(z99HNwc41UBya2pB1PDypVMWKf5EVh~o58*5h*kuV$Ux0(dR!xlX_vSx2n~yqUFk z5b*P?-!uW<&RR7eusdt|;ed~_-XUE+$@(4n<<qPa4h8JVdTIpVUs(@O+kBRF6{Y|4 ztnFlmt3&4=1Gpyi1Uc*4&@_JUy3o4g05^orodLKp6y?pELx0^1a7*Y|%HQ`wOUd51 zg&tuw?+A^hJbXX&H8S7bq4(Kh_k?a>A?^<alYj?8zhnbE6mok24~H6A%|}Bwv;7_m z-9WZ^A~e1Mus!rmGT2k0&E<d}hGtN5eiRx_N&Ru?33AV~p{GUyeiC|+y6(BqXMExL z&~e3ppM@rocV7%mW5r$y{hRN-9Qtt);MGteQ@$1&cNE}_(7t5-H$xXJ2fQD8k8QLo z^wAQ)-$Q?&3-~Zp!uI<pbafrzAE84ijh}?>KLPM*sGB0XCp7;=z`sJFBLSa<_E3O6 z5A{+SPs{!jQ=XpvmFa*pv)?0m&dNTPBseGgA-;ZY_PJ!D^RpLj09=s$<ZQr2*%y-; zzMB0mNpNv?8@ct8>>^U|((Dh(XWz`emj%2myPu{0cJ}p@#w)Wws03V<eL*AOn(S{= zqkJbjYk$CX*+neb_1Ooov$-)lMv{LwJ3bb0bM`6ZiCeM@SnBU(|DLhivO}eSJF<6@ ziN2qG1`Bvs_I6U@?(Dylckj(!$~xSa{SYbmK=$KQGY@7@cL5J)zeeeQB>Rsu0gq)D z1^|y|A3#oiBKuutwmrL^!u8Yaf0Ch}%N|(+cs{!z3-Chrb`tAn*+(#!7qds~19&Mr zK=FM!`&u&QE7@<e8DGslnlHSTokN<vp1oxu;H~VL^?;vePv`3wjNF8jGVuC#_+QN8 z^6+o+0at`M?HRf<{5bjWs_;vs)Yajy?G3mld`}19y6}0c0oR9PB*P8iTS@>ohTAIu z-wj_xxGCJqBsYgENSj;22Qlkg!wcB3-wXc(Uk=?Co<AONdw3Pgb4R#iG~oN;UHyPN z!_)ZQUE%3u>bt`iZ3NsCzWs2(z2Tp*MIQ)1MV@&uyqP-mq42fj?T5n!6vaov3C11` z-$YJ-Ec`r~`tk6y6xttzr;?kW2={FRY!AP@8SrHISJVejhcBlF_)+*<eSjZ_UyA~s z34fRT^lbRsrvZKvewJDPH2e_T@VW4P1%T(nzhhNi2>)#i;Ai3U7Xe-hzfc8uIlO{- zz7js3g86FrV%F%j@Cix4+u`C?z%RnxWbt>xXOX*p89t^F@NT$`ne7b!lJEU0{Etb1 zUx%G90p1JO9|HJIcwaWaZ^H+L0ly2kkuJXvf3+R(hj0lQ@Q>jyQEUDw{2|%n&*1?U z=`Z2W*{FXFKXL%zZ{a6N-S@-SkuJN!pYy#B!pBbq{5@QLEa1cN8?ykr!*@&vd=y?x z^86#b{}jN-;aishJ_(P{27DUsVp;wfzA+E5C)`S1_^<FvX8rGQTOr`HaF}iMdH8PD zVcUpP$b6@bh_I<nA92v>fHOwC%@3V9VjL-P)(Dq;fA)x}6wGr*bWu#t9Wk5aId8<f zXaHg3aR(fM8xzZ#aGmrP8Ex|DqjBBmRd9`@7_*dIIQI2gT*uuu8rSjT$r2MzUFu-E zz9|xQ+{w!$c}{4rDP)c*dy!~U-<gK%zDrq?{oZ1M_RpbCi2MRMIL(mLfb*)0tGj3H z7zb;t5q9wB&YO2wUvHb!cKE9Gn>MWK-q5y5)}Z$!O6TRz%TE*+<@s)|>hJ04?pxKH zZ13(`v#M)-TlYYF(y2InRZCy8w{O)(+)1vg>}eZVmt5c9x2m?WVuj{bgxrb~`O$)s zRU7(yS5?%-WATmo8}jlJNE9vEw28U>H>FtBx4G|sQ<A#PwXN7;V5;ND>h(4frmw#p z>)7UXf^Lo$5fRX_tq1!v+SV1A7{1z{TxTm`?iunVHi9HwJ?n7~Y7QT0>sjB?wKgL< zx3zbjxuyBW*7x=Intb$5^}zZzbAwCkJK-#3;ntuf5JBnC%5n`(ayOlI*qLkBo^j?3 zz!_)o3UC5h?u>&LE?98M+O-SLSTH>>8SQW1`HAD!EtoMd=lJRH+ox{7?zq=4Sn&13 zW~}Ag*+*nA$Xjsak&LgZU9fTHf(5gKJrR8roVsEGa?SF+eva#2o43F`$2Bkymn^2w z%04VD(*en}b3t%If3QC?uyWynD9nQ30MiD7ecmSySdo|cjW=BP>;)(kQo7lZ?6sYN z3*5aIESNcP%)$i+EyzcKC66!j+pIzG;Ew5mkgt&E1>8+(@2}houh%Zf8vvNXFJTt* zvNfxAFRKGJt3;wDUf!Hr-n2M+C@%T4Be`251K^v2{6v2wk!Y%l9}3{}$byKZn?0X5 z;&qYS83TQ-{gH$74vicf#b5r6$l;M03wmcna^=O@jK&a?j1P^>Fi)7*?1<!o+~-G5 zp6w(Ol~on7y7JmYWo&UGfgOjq)lyTQs9qFnM!eLdh~}3jsv6_5+J<^2s+wC+P+5y< z(nX1y>UdLPSye@I^P<{BUElGM+-OT}<cK38gC1hX(`<@EVsT@vAy(g<SX3UbisbT6 zdE=ry6P**u+mv6LSDH85serIlCf5wCMG@;N@R5o{Ma|Nxrlz#d44+EAmq;wGK>p1Q zb+L-X@`{@BrbKh1wxMEaqPnT7Dw2=t$<3Dfcx-WfRV8cZG=U(P5Ntsqqs583@)aml z2mZB4jVn-=`i6RzzPYBUvZ}s3flooHCKB=Lrt*qrOS=-Muj`~_|K<%zd2d;B13tc} zwxPP()F5wDK{fxS=;cqM#cyni4Ky}4MP?j4Fk>i^)YXw9EI=U&P+MDGQPEPDsEe_k za_8o)h&C2PYipOLLTqzQm1@zvP0_}=NVpUa@wLhr%UHewdE{*>Vb$?Z=#i+cDvvi8 z7y77To|<b*ZLKtMydu$zdRHbpm|;__2itUJ9NgXAGXrsum3dd>w#|;TMP|;7;H3>c z*p9S*jT39GOVom+%G<EJs4uOhGae~@G_%aY+Cm{~VQ~mmyk${+LlaruP$zF*9{+)v z%Ze(ioyJ&wyb4ZMgHgqN#RA1b#UjOG#S+C*#WH->u$wKJEfJY0uDqYOsR||FUrR09 zWpLv~i%io2{SskBM_;e3me=c-#VR7Xxdb78<V&+75@BL#b<<lWYS65PlN(!Nm5D}d z+^TP|ESbiS75)T5@Ywo(HY`foT-yYl5wEPOUcRVBIa)=3*hJc9@z^m{4b>3C`o-o# zJ)_cAk-M?AdmssIm^-k(uWRl4WP7Bq6WlRdAFw7y%seKaSJX5&50{jB@#veMmseKd z(HHEgBsRRgLgdePfe_>)(NZVAxv#ma?f67Rb5m`iqIPM#p{1#!Dvck9NuqUxayOFb z`%>fF(v}*E7<4We(v;uwAN62Gd3||xqNyAjUi6|Dx6;HmO-m>hB}w8(Ct^lrQxP>l zFF`9*HYTd-D`VwU2H1>BZAaQCnpZYf;g&~W^g5<gMz9lAD;oJmX_2S!TI$Pdp&%2@ zO^xY9Ko>xT=zp#hsIF~J)Rf0jS&AL<i{cv)*HZg=ZC%+E%8srMe-$-Q7Y)_1+NwxN ziKvq1SY3gV1Hnu}@TqBR62T+7s6Ple$?efAji{=g(g`YJC8AQv-VC`IO61Os=H*9I z56aPdnf|h<Kt5ZQ5UVs%8E>qOEsFRfcv9dju5XD{V3&W<yux|WNPb?lIIlRbERx%s z#7^EmaQm^S{$a^=Ym)8l$@aNLbJt+^Zd+%hH@UHkhF~PWprj;PbX;Way0#4i3t-*# zCpXPqSAckb=fJu(k-2LTZpe$w?N|rB*}674w>!ChZGYzi-df)?cg;XocYoJ<L^@y+ z_9M%=eb}`N?8Ciw>|OTatdKO5QP8H*&<`rph%iRTF<&I+Xl&9Q{eV$bjG&i~nkaku z5{e~BicYkuyfQLqi@dfQm@6#{pP^8Q9FPS|`-MG{F#>AJmsKU=E9)U<4Rug@Rf+O? zY{gz)-k6ALacP+-JBj=;o+>duR*cUz*4E}#S5;Lyb&V~MRdiNy>3^fNl~@+jM;glk zY;SA_Jc~D1RwQZ~;>~JiAa!kRn#EAeJ{;X;mv)z3GlYswFvV<l>a%xhD&*TR<*<)F z-kc_vUy#h`arCpzAZ>G;_KV+cV>g?6qO#0dRhy1q*`T{;{o06JjPh8{Btz?!ctw3z zK|cC_R0mX82?Ct`_;{juMWVSO5wB@zY9`6nFlj~o0KXb79@_k=gEd-JpH_Nb zy~SwMBvK9EGbLS3Idqi2^1~!CBr{wVtEXMHsg%6u`&Ww&oF;EvvR>2@uP$$?ZKgHo z&wuC?N@Tnv=A&8+=$xd(X!7Mt;>9YK4xg<rf#fQ32eundgbFA_ltOUb3TdPj(nzTu z8g^y8xdCSV5l0l7DwfBZz&W(}msX)X<;{luVG7mOMny7~SCub~BoeLt{k>gl2Ktkb zg52B_ldZ>Nu^mYeBj+*$R3rweL{VWs`wUON*~uy_Zp5DdikcEt;Tp9<VU@T|WonzU z25kQ!;+&!QeIgIhj@8#SR92PvC|*}p_a9o)pTf3ex>)1<3x6g2jZw46r(X)ARcH%e z(xU%SeT!^;ecbCYe<KWlG!`5-k(QkU4hmhVk+}rAK&YSU@>p$4Q<e1L%BC5khmx8m zuo1KXEE}I`k9#e!O>{U3N?7A$5yqRIaZ*^2PwRl%6I?Ky9!X^rl@_Yx*t2qZb8{1P zc&3=8J(RkU^9=8zj*FWbS{jA%L~S>FBVN(L&1u$DOO5wsoJGOT630rcM|qJ?y9|g# zLv^;#;8_w)RYzkWVV-tDmSx~0st?I~><x^BJOdJ@6%@zPs^wCi0vd4Ak4Q6k<FM2K zf*b-?t$_L)POfo4i;-(%YNpx>=4LTQJC#+7S{6%dszt2EBN~WgqDdETUTSQ<Ov<J` zRIZ^{0s`N+4rPb;KyxegGjp-Ouo-+`Av$PTbz=hmjiqS2MxT{mTPt=xfEr7A#g4DM zVd`KVOBq0)i=sxNg;J!-@(h*eGfeU<>AW_`=*rm;#uXrXtf{KGxq<C4hy^nqdrT;- z$-YMmC9VT>lEO;1r&L{(XsDDiDfJS<GA`9{zGI|~Eae-fr(UErp+gNBg_O-JlYdoZ zWC1Xle;h??*>p8SI5>u4fx$iy&p@Wxe{@R>W=Xw_Jt*7g%-cONu|@{XvEd95`%K8@ zjin=L<7y{S0WWHzt-Gf$naJ(voQ=ocjoe(ACbM~0JGh<{fgyfg^KvNW`FKp@8m9$S zU}q<N7RU2oqVB{%d)LNjUhYQ!=yY~2;<FEn3I|J`@)d8C;|;Q8oI}xFUfHaA9ihxV zjJHInS!OeYRNWaZ@>!f5#R)$nRf|ccG6xNnGRuTIeaYnUB+j85;DJ*D@t&a%?hBpx zF!g~I>1LH@>f*k%2Zc=7xN1dnRTBn>QW`QGc+#4RnWAYm7@RU*hR|dbOS&EHn2W|j zd(Xg{?&NGtBjgw5m0%=V3c$FjFgdp%uT-2RO;wfDoA_Q;Q*}88=gX>^;xTbhV$`2U zq4LI*C3gG?aiA~LKeQ{37UmnXB+Zv8#q!n1YfxkFLYHqc?7WEvQ%j}Sfk+=mo0m*Q zrx$cTt1GSqytWK36YDf&cSxQgrBa<Hy=Ybox5QDas^+>u{rHdxq-`K;#(Zm}n-zY5 zg!l&8FzKx6AAplF%dJ+<&D&H&65<~nQ~Z=?vaujBIBrBGz;EdHUk*y7<?;Do7d150 zra54lx#`6`zZi#yd6nkdR#U*DUMZ}SFRnOMfdxZ#qG`&?`f<|wSjv|AXS|-uQwRTH zDA`=oQm0(EyrF5S_Ez3VPI-O^&r)$A646E?>!dW1u+NgZ#ss}+Y`93iF&E1#>CTgO zfdQXkw&Gz*P0+3|qch<*nif_(wU<dFNyam6BW7Y4nhGyvfIvGAHLUXlxVdVD;e`_8 z$4+~odE;m%r4ya)sT@U7c?yz(Wo@F`hVn{Gfe0w488@9e%e7hk$t>?TgFWGSf?}ws zZ9%^uksiOP*-{gsOltC$r*u6=F#Q4wZbtC7XP{q;t!!LF&?aQ2)ObmxEv9bL7=)f0 zsy0?%6|bjbo--tr8dHy9)1?|^MT%80G-Jb>AtvQ8zKkP5q>V(W?yPc4xu*&W9WzOL z80Y`m#CFB>1|1;F%4wr&!7CeD7S+-vSUPBqfg@;`wB{>i&Z3pg@Hec0DN>oz3n>#w z$`Tb{4qS6p4K2+H%uh5l2@Rzo)Nr-_4D$EURWapsgfiQPx3q1THs$cMGe<ttEow%y zLup&T1Pt|D2~O5YH@iK%Qs}D=(nQ4CQpTdfwW^@B5HztFcv{51@9X@e5oux9R#i1t z;%|`U7*BhuWfR7OPcoY4xg`rqjCM}%iv4x<G=aaPR(oiZ*qWk%m^awRHxpRq=Y)zT zjI^4n7Gq$O$-=(zq(7C9p31=9K*my}*8c@>z)D{8SHPElS{nTTr4_Uu<dsU(Dz;I) z**seWnQt=Qu0|Z6*VfvdG#@We`ShG&-edi)r^Jns2qKE6_FSA0axkNKiOk#%?O!{t z#z2v&d5oqqK7yHy&!?92%}`Ulf_U3bfuu~s)ZAZctY>HSWLgg{XxLii%@sAZRm;$f zW|ZaYnXPJ0>zy$@+5k^!1q`M*RGCa2Y0;x!Sag-j*%XK`k_BVHcVIm2x8E7J=Baen z74<1=i!AL~8tOsv^r~+*H8YLn82|Vbge2$7+;=hcVMTpU%Ip`fm{Og}*BTR?6rvxF ze1%*wj<y`eJ|n|JC?xPq;*5vJ$jZy3`;d;@re#$a<Jl0+L-887G*>5(wP`ce+12R$ zI7MIRB`@+qtcvZYJath}>OJ>O>l=e*kUI19nir^op<IYrf1d%Pq!A55{!VpO!lQno zm}#)oWHO9%Gbta3yjR4VBbZTzW4)q!vFYQi0&J)k|C3)Mq^VDRE^W*2NfE@rS2wMH z+O*PhnJ;dtTsfSYNlzp>ljY;_Mk}odW=bocT4`l!^+o2ZkbJSnGT**QHBjH6J*J_w zC=I{lV?Ie|n{>c~Pe4pF??T;z*RT*HT0A?lH8NBR%!r#IpJ>l`6(&W>o2@q%R7S?6 zHM?rMSQ%zdOo61@&2Wq0F5G5TBjs~MXZ#ClV&{p@<1wMuAIoqi9p$+t2baU(E1aC9 zU`ltT*6m<FyAedsq>-5fh=&ZZ?7VNv4Jk|{EuAu?1~FO2bB`6YH49BSjUi&kPBM5Y zjB*7_Vi6Wv4eI2uj-|e#qVa#Qki{mG@1_b2i!6q<B-ZpBY_j1Cbj#a?AtnAID06cO z4E&$|8v8oh^hEOcmiQtVtMUFpc~yYX;?#s@77QaY&qQsBFBac9DGXPa|6{`@^6Dzu zTiT|%0!s}tU(R?eubEy_xCHvgD$xSrJNo%m%!Z!YD@23YSLny^oAf^O*c;x&(~9J~ zEk!XZAl6Xm$v<WiGsbW%lCqF7$jTSvU}Ly7s;V(ufQ{E&UtVWi?#BH!)Hp1bAFrsb zkt)J8wtX^!nP1~mD_4-;xaXvW!{|Rwkml<IX%%K+v_=eOenakg11VX20y_y)sIlfa z6uf6l6u^*JjN`vC65;e8YQS#A8+iRkd(L!0z9FylK#NzbNR%&%Sw9fQM0s3>1I>{> zp<(T4^rrKoB}Ij0g#|@<rTO{!r6omhFO^mc3yVp;tbzuU^zoeNPpyk95z8^Q94nQY zF_MZ^)=46x<IE68>6AX+u~Sug*P|84v;sY`jNf5tuz@m^CnZLhJ{E7HSkMOpR-?Co zy+%CIBonAyRKvkmQdj~DNGwYrnAu!>nqmn$08H=cxjns77$>|esAx(#vudjA>tdPi zTW@gXJr#klqLt?}xvdw>PW_<URx<&s&E%A6o~aMZRy>2LA$MLr<|L_QGK>V0BkFL5 zoh#gy#uMeW&~wVVls4OcGn`2bd7h#MKRIai3R}rohiIcreMzO8F_ar7iKihTleS1h zORQ&7q?w+e8%OJ`Zl0&Jbkfq2M23}2f&Ndtz&#saQm@C!_lK_QX-^&s1Kaw7hj=oC z689Rbl*TR_%C}U@TMgh}rR8&pMvcR_UIvl$(VDWGl6Cd<;}ChD_g-$K%zx@qng!OD z8qRF+tSC=ZOxOO!-N!OMmKM>mfLX3&I6gYBFfW>4R$5q$8Op-aXh}3Vx3H+%2tOC4 zf)rJYVKuQ%{w|7c%UEUt`3i+K?WZANHo;SZWvNE*tG^2OY<-7j4X?H&50WUWSg(ji zjWv?Txj^e{g56-2?o~I`rgzFir%>8-w)WvLcUiTcSfAX~pNsJzIVkgfA|X%w;vwU9 z7$qc@E>@*troP9Z#_#tQzRO&7$Q1}y`9a}Gqhe~wPwt_fYq@DS+Htq>Z0f>1Z;cpN z<grgk4V=+0l;!7@<(HNfVcG#dIe>nlq}pF4>*`p(KHW6&NxVOal*RW<4J;}}S-OMg zk$iTLR@0>hZF!|b2&1+A*eS7p^XY9Y6HfD)`^l8{K+2@<6Q3x1j*}r|nq=neU}bDs zB5&BWfT^eQi8R$!(a=)gTwPmk`Ytg&s8pr=#`_G->b)UO`{t_pI%8Yr`CC9pSOKBI zME3BDfHG1^fy8=Pk@^}cWtIi7S1pI5R@ZZ}J$(KVGobLV9T#$N4T3dv5oAlET4E0_ z!fNyK%1Y%BOwsyX*y$<KDJAvBs>!PKb+zeqG0){il_VMv>Aq^aAX3LYrH=W{nb!8+ z^t!>P+iaG@fghWjTB=~vXuk;~p`uA`83|{0oaUxlGBD;a^6+u2T^*BYCXjY!4ChZF zwV{Ue{WcD5Azfdo3oFGX1+~Y$Kd6V82kfh3^)Q@c%`4SUB94Q2OGO1*RF>y^7LIS8 z!?*B5gvmJajlmCZxHwrb`Zn{CM%sGJdVCH<;Wtt@2E9JU`qRN-nm*1L9GayW-s~hS z{X~pXWBfb3-&he>`o|m9|2>3emw8TT_WUX=O2Y!JV)2!w6$*Lg&gEz(RZ_9B=0>od z6$)5vE^ti=SL%DJ#1IIoM6Gh`RY{p=p2jtOEcF;!AG0C&X^+G@{G3NCe(MHZ6IL_p zFd6PhbVU4TCl!s@Va=K-LOaXA5j&b{z}mxBqcuXhFn!A5rnMi2aC^Y1!5J2kI8))K zv;~WrCtT_`^Zlxl_47Xy&SZVGd3Dj%kYoRHe49xzW>&#LC{t{B%QOFVuxVC5=KFS9 zcphsz`vfO_g3_6&!|sy??pMhl!XRh;%nIDPipJ%3Ik|*0%VBP6NgA4KFkg&$%}QND zUX48~SdxROt3{ZH_Q|zf;mGD6c5I)KNN5OV2iu{EQ4<XGhS`;2_ykw(H7YH@#7b&N zl<KF&!HqTbO@?FA`+2gE_yUBD5lbyUN#*4!#+3hD#~>?ITYI|$WP^;j(kr+Y2jg^* zI5qAE$%KFMHrW~Rv}aOxkEs?dZ5(XC2)oG>Ni2G=2_u<B@YXk?FNkqJ4(R~;8J9ZZ zDSdAzn7Det`!u{WzCBsK+x8R22GcsrE+^qMnH%JKW&fgzXf&FSNgHg3pqth#^~lf+ zqDFk3rd@*I?>5c4jOwcLW~?Yo91Z6H2$_DfqV^cMr*feyLuDC*>f7=PEHJ`?L{%2X zg7C&>joh*!yLn8&tQSlzTs4N5pEPWm%;!QQ3Np-V9Vic>gk_Qkx>To%;>#QCP^pk3 z^9F1yBD+(oYjxC{gX;J+lr@quL5{r}!&;S@$+R7PR`^hcx!UBS;Wt@p7)}$T&|(eN zNif{N*mDy|g)m}5g=ng#L@{m2PF`VQab95=mhKcp3ovAg7R!nq%An6ul{o@kDQkvX zSXe!;NEi9Z8b57p60t>HVYJi-b@pCwMCS-L_SFp`UY_$rpDX3i=XIIxPS$9q@7l3C zpm8oXV2Sqga#0sdCJ$vk*RR-~RwNceQdh_2K%gRJMRq1sE-!DY#%QQICR;o)r8L|c z0%R%Xj9o4+0~sM*jjWHX5z?hO_^2{u3M#EXv3&~55JSIGR8%H=BWkN)N3v|3GEBg6 zM>c_(=l7qcZ`my5L??|8ZY{=dhYchX9j)D1lZPLQOSC6D@Z)psBG4=d%AlT1vzNph zadgQxBoH=Hfh`ZQ3iNWAbH>m*cQy>L$d;2MCwAiJ;n2N{or4J{|GY@Np}JXDk5U%7 zi;$DH*iD|M12dm#1EDwK+@0rSD&zbG7<Pp*_An|D8m82pXx<hiO6e%kPa4(PIj*!I zIWdTn-QE=Vite7a<M|>gU^JFU0zS6ML?M`%^^=uSHJ--TWeG$1fKz>!PPJeOnr(1X zDKYR&2Z0Y8&tgh;r5lYFQK(^B%Yq&;p$bT5WTb@gZw56B)Y2zmtlEnjS5)RQ;Rwh4 z?13Pl*mXjsj|NBHoZew^g|@zq%}&zWjt%`98*eDL3fNWpHjcQ&9h=tV8IQEZ*`8c% zKB(^#+DTz3Exrlc*$(&#TN>K>BMBI|CYVTwUP$#F*c4&DPD{Yr0_oiglSnCi`d?iF zvL+<0^uwj`RRcuxdr>@Rx}~TxjW?pt-1$ev%w9qCAed3-JGjEB7Pm!mk*3Q_BdSuy zT`4Z&TFoI8KN=T|ZWg>5JxlgZ>ur@B95<(pxVa*M$|7w=f~U&t$i=b;Wzo7%bZr(L z#ok0SR+C}xa#f@t)$77KPf^!SbEfXlC^nWnhopAJl5rN*r50IPZ?v?a9nGp;j7Ew? zt(V4BU(8Wmb#Lb*{e~n)pq78^GBM9?qjE8vLo$^5U9g@O<vL@(8<u*-*X2`$npR-3 zVKpp$c9bij9E!@zi}<Izmt{4XF8ttJO=T6UgBoMDMuv=@P>6<zZ0zZ7?WbnOITd~0 zB0f;pdMqq$ZQM}Ss6daYj6J|6)GedNC@7p)R+v{@R9sk8iY=^##YJ2LoL@*LM`6BL zU!+@=IBx;0>=6^2M%X;UBV<vpAYf2f*>(ehH+@Z0vZ=!C?V#1b^x6U0?H%o=w?Iu& zTx1p<u$PDB;x`wDNs_4;yj4$MG`*0XNL2$0>DzcunKQ1{rmAHzSt-rx>$JQbjSexO zHTxmRa8TAmc?zM%{S1fC%7mNJM)=(>M!~LPxYYAY^9u@#i?OU5zkgkvoWnUcP&|FP zyIqbWO3Y6EBh}EoS1~p(cv}OEYq!M=!ZCA@=8H)?YeF}B$Y>o2hqv;@bwO@#Ioh{3 z2-A36iR|sr;5f!N`q3Tk{?jH}><)C#{fr@{W+R6SFh6=8y-6=lQ<jvK6qmu4E-Wq1 zFNhYEfMi$&k5tx&6p;f6_^zBlz(AQ)ABL3rAbh(>?JOj3c|Hi}3FAk$gJw|xbp;Ta zRL5aVG;+V;bTB??2mLra>52>k`Pf~!wHX`g_3R8Qf_|5eXIKdl)ggy1>||qOcUZ40 zo#B4D8ajo@1j`D4h#l@AXw|wU37@8D;&nDYHDmi5iyUt=U*80x2$77Xgt{^bLyv}< ztv)jkm5~vHc+s#KSG{N%9U-PM<){S9NM<-&LD#c&v8e0W?zqB`PQ7lnXeO#f$wyIy zOq?#PTGmj{?~67x`=e45`9tUfQ<GTcNf31vD=VNQ(wbt}M5>{{b1OWx3maQZZf~=& z=X5oCevlPom@#9oB}Gt<bV(gxlRoUmh-UD>JGD=kR>&6>TSi7yXHDgm;*l{dDXqvY zt)!%#n+LmQay_QO><FLQ7d<UIWMLC{EqN3O|CuGDc7K-fy2_RU3`D8v_zst?V)J9B zV?E=M5ZZRT<}?d$3MNfx{A(N2W@$v}8RhS90ngrGE6CElhI-R}n^f^jH>$M9`>?Yk z=|WAeb{a9bZ^Vn4>m9^6Fk9kMoopsG*=*7+3N5*+k?YgdcbUNF%t08nvF2t>n6qWL zAB{!~>`Gr(mT|%eMME|Nnc1af=}bNNsd6)>KCqzeKaX8~wNR^HYy+u-IrPF)%+}we z(oFF!AcLS$lAF5vbG=FY)(sovhOt*USXZ@=V5W{s4dsm%5Jh4QS5+j&EWmV*W`j^> zHoWEa9?Gj~&_ae<+hvlerP5myh@G{WHLqN>c*x<>FzJ-e#sbiBoA_zzpJD&+b((4O zr)D7UGuNPL%FAWO1UtWk(Ncz+B;I6tH*j#OGfCfCABj@Y3^G<dH`s7itDGMZl}R#6 zY7Cyf@@5`@vC^&}GJ|237Uq^p9A%6p@%0tDY=P6pX`&d*FRyHZRv~aB27oJs033#h z9R}0GJJ%$?h!o)9PV6k>fIzR#uNiA`S$PwrMnwQ)THS#&=(#iwDkgMAuGk-1gA+Dz zl1pwb4|Fk+**Hr@_G8+qNpAyIUt4#gqc?eibf#cYoP=Z4B73lOcT<6}DEI)D$MDu& z)Z5By7l5W5B%ZyQ8o?SrNO8;3L41nURaMP!H$&OjF@ujqtxpzxv0dLFn}T#q;a7*G zfBN(do2n91res6(44ylJPC__K3<)x}#+7LY;jImaHj}wSETlQHx2r#yyJnz+OMDJJ z(c2Ph?&q1!o_s!A)&SwVv}nC~5ZhI7im9TdsR@o6I~w)RUJsQ_rPIvoaO`H8te{lH zOznFsw{~Jhy0oRKVVT)t8ZrB-R>l+9<cTh#8WWiQJzXG|nW}}P%5i08DZB`?Z`wyF zWTsVV-x{gH`ZgJqaG>HJq|lhQ(-NGI6~BjZ<oTw=hVNEDO7tw=Mo~{J^@Jl@%`5<A zOa_d&;cdY&W}2LGVV6gL@tSepu}4Y?DJg6lYw_70U^u6~w}L2>mDMu$n+L-rktVlW z!mzER9wei$#2)9u9v)p5e)?JF`(*2_=VHZv0yrGdwhkS}{*n125i)THaiMCeQ(@k8 ziF#cy<|iw37rmUDU^)Qsp4S27V#6?YNqPK&77{-#C2^>I>b~Kd$fJMe3J0Gw<8VM^ zrbcIm?!XCpO%B`y*!IR5GE8+gHq@5GT(jOyIuvD*27Q~U15Z463cGeQOz=$?L6l@) zRuyJpK_$A_BW7uNI*0kXDy&<rt)(S8?9^=BpF|~>y@1yN;53Kcb)r?g($fz-xTv}} zz7Kojb2lBjnS0|m&ps@76SO>gIKLkr-x2d!T}#z1IE=|VjV^8a({KZ_q7J0@2>TDL zIz-pPGwz1cj2NZUbfyHv<Bk3yP(}x0$!y*JXdtr*2n&0~spK;bz0t4V$${fb7R#a; z9*b5-EjiTYN#9z3)*Zi7iiDyAe0;!xWQsp2%)+2pnWDXw97#fDk!F?nYyplN{nDCY zD(J8h>)Yco?AlaI->>0q!%#(~+X3P&qg&m~#E4)T+b~5@v)7Fz^;ULB;e3;E`~Y@t zdj<2Y<Kv?OjA*e36iZkz=O9ha6Y45`-z-ht_BN{ctL(kxJw?70d+Q-d#GpxJ^ET#; zEn_a)+@HizlcrCnSetP+x3}w3m!T#h*k6}(zcyT`!fT!-JcPN9(@c#-gDImWSfb9} zh;&HJ7{HW+55pdWM7xrbXuQSJQK)h4c_K}%3i3I`r76ix0x9XYei4;_(pQfD1Mkse z%u_d6)r|G!iNvzx`u3jQgz`s)967A+L7bPO;{cwVqMmT;GVu;m(b0q)8tM5MrICg( z8@&YDPONfT?<l@}pA}(_;G<}B0kC!9NI0`Z=BAEK*e649RNy?X4g0A^Y@>&s79Qt8 zZr)fLmY^|n(;i7lGkZecW*a|0enB$HMpRUz-S^BzUKv#N)_v&+CCzr>+uo*i%XGda zzxie(^k82AW<P|x28^DE8RRRdE|&E6^9)m;%w$p@ZYsypP6&id{EC|Qw28;c_Ut6A zfZjwe3)YGaY>*R0!Cq-`AqP3kn!ZYgcJ`k<RU<W9Fld>+H>W=IX@7-~77|eGD`jg5 zXEuSksceKZW^f*8FXlOVJQa#w7AKIH1*(?M#jMpa($JdL^iNm>8?Vt$jLX%`KlWZ8 z&n-$*>b~15GVDy$J8lPx(pPb`Xyqhh&fe!oz!o(sCT1(6Obl;0*KSQOX23=0>4Px; z`z*1ki(0DwqZ7TeM9d0w9C$g~kuw5mL7?EqmH;z~i&bjzAAGE0+Gm`MNYfUXd5vfe zmd=nQO=K!UHX70?1RaUf5~xMfJwKo|yC=NmO>-eK%yvsIJe0AH4uVpXgfM13J0f%X zm2yJWCt?DH@3pk`k8?4GojCB1VB<CLH~D)iq=Oz!El@?&4v)-{uVfAGsw|aR_i`*V zP3<f8d1|bd@Xc7VkUry(XQFxi5qSmbba-CTg{q`(rnAYD8=qf+j_q`Rl&)3vS!KS% zYy5T@Wx~+XiUh0dF}XD<GQK+Kxk#8{Q{Oj{mH%7zh+lM4_OR`e8gpJVket?HmpA!b zxKt44oMC#bQtZ!}ZqrCZEQ=A!!Qs28TDDc;Bwq3*y$p6fNxxuMETu-*daSpdOds|W zT>OEP)?=9O_x#JgGq_+i(aS5IE0)HXFW@$FlAaJ$kANBCvCz}k)nsgrFjN06{{6$o z;FI%J?dg7*C(M`$T%E~~UdhgecpbU#F!~`EtIT$=#SD8`*0*;jK}=acj_LRE=9)x9 zeJxj#n`Of3yB<h;t}O5|n_mjWpeGT`CoLy`;dm?~k<d#TU971XR}pcPfjN7A91~{N zgw>PMc{l2qwb$b6kscs5n>B=ypdA2(*E@A=h-A_+N$>k#{9XahB>sQp_X=3pxV1%7 zr_5VZ)Sfr&=Ls{?wL50y_YE>+#>$FCBc1A!O6^%2LT5Cko=S^}`t_SAvCLUA*>ojM zNa45YK{N=rSDKZTKGiBrmU0Ap{X5Kc@3^xW|Lw8ToOsjY)a>Xa-S;a6&ckj9*etY| zeUfaQpZePjOsO;XX3dZ3GvG;w_K5Ob;p&WCGahOE>!qZpu!9*hEs<Jg3--?xa%=7C zBWaNT#qZ0ce$_>OeFCK6(8LVA)iItv|D0Kll;qpOYd<cXm>vEPa-`UCxlGd8(?x_Z zR*Cti=xhS1rSW=tCcWqD@>X*iS6ce1ras4-S>ef1liiLg;Y@qj+*Es*AMy5-_@*f^ z5a7yIsK(Tw%MPMJOBsRd@iSuQc$=iiIb8SvYRh6YyN}<{pMARA;ec2+w2GFKa}BMt zn;Tp0rdH$b#^Hwg&>E`VmV423gXZYv*oK6EiASPiLt=eT@4D7*{Fp~>XV==!L%VxU zoE_N`;RBq#p6rd_XM8ry*F8cKiOv_8*N&fV;VT;LnzydI2e<M}oImWsr;)judOl9n zJ~1+9fz3l6n%KN{{9cQpjx1CXTF4A*g?K1^+efjp1U^WLnvgDIU6Y*&Ni97yMhH7F zZN^~?Rq9^ay~go2XtFx}7YJZ3rp*J(T4LD#*iT}PBTN}S8QRTrYSM7?DH@$BO-;o3 zW#fy|r9>p-EET%i2Dt@9;SNa*mM3j_54(TAd)SjZ+FEHY8Q+l|{!*tjg)f28TZ4c6 z#{ANY|8-xbtrj+kB#T%+2lAX=BGNBU<Xj+8*ChJSBNi=^A$oRb;)$NDTGrv39fw;} z#Cp^GWz2l0jbUg1G92jk_c3(y{Sar!rZGS1C!;l;2JnA4^O=6wuIf{JZHQey#RYOq zqtC64BVRYst-Z+}^U4lE2i|5b$BYyPJI7gwl%ICl7yD`Du@uwm3Va(u@xY8j?Wn_N z@HfuIcmuqtO4p~2S%8$I(QJERP8?C978x6dX$!YOiKZMJJn0I(7mpiABd)(I(&tKG zdJ(WBgM0N-Tb3{!=G@PJ+UzB!X4-|vRYwc?V^ccWjy?w_3i}CbJY}#Df563@V{Cs- ziTWzN^dL&wLql|rRA!wB_W`HXd5Gs)XPtl(ePZV!waVZL7T8w}G*a4nZU1&HuDxgT zM9tzo^{d!US)-ZVvQ1?j9BgxrSJIA-m0V4ui-^-$FfO#gt0`y)%WgO0-DbCMwLbd* zIR5=^AUntIO}$}D;xNbdaz>0x6H^|JIJV8PXdKCA9%HN)skL*>RtWYhe)W^SL_;RE zhF=euHWc8H#uH@ELutm|RP`jIG4wL$%E*77$H2PHgjLcv|A`#h=gKPV_GImmy5Uiu z!Kbd^<cyS?XRui-(u<#Liq-R6QL-1Rf{ctb`)9OKKUrVL)?Sh3>$L-Lp6JL1NK*)& z+lS4q?3Ff|ma(6i%L&nb=0G>BvoBwP&5?t5>+5PCVMX5-d9z`IcR8lEMV1~1W%fE% zdkB-=QX@7kCkY1a2J`ic>Z^{|mp8(5QLCp{szLol>9o0gHtwJizKliV_SiQ&a`uUa z?hKSV`FHxne6B>WgMZ@-Cd;j{Y-cK<AEb2++grPDh_dta8B#Idq)%VW3w;@{;uiT> zGo2j5G`>8n{ea^94>liaDy5P7I<2BJ+jWP?o3p;@J&;*G<v(>aYW5EK`b=+~6G!fz zv?!CC13fY}Q<w#rsa`KNy*9Ku=c>(A8mW}op~?O{ZB6+Q<|yqy{UHe`ZRvu|BtIx@ z+H#1O&`0w8K{gh+7y{1O4=(A{llB;9uVse2X=}v%RbaBThuR?84|(Uw7?lJ5wI%Wq z(ug|f=xZ<)n$)61&mUOcyokRTXUZ*n?H$TTMpnn`U^^(mA(f6ej0a}u1r&Nlc3*#M zZ-1h{YaM-ZG*dk9xHLGppk3qu9heHCoeqo-c`~EQq&TtAe~=QKLXzQAOWHiUr|@)? z!+6G22JDmB_+>}=Wja~e!)9pOv}mBCBiW1crVVVY(y+qZBEoD|E}5T90-sRr`PUxl zkEzK9a|}2zXUv`ir&}~6s*Y}fO^72djP8e$<&v1b?$(XTgmL>x+opapGUXuld8z3V zw!a7|erkTbif5;pz626&=4ZSmTxIy}AEU?oov#=WSpS}Rq7HvS&y19GTPey(N}5%D zsS_cDx@r3{3e2RG2m{xqo6XdjOwXmyseRVsRw1EN9B#=?g#NS^QObMn&vEcml_Oa? z5XZLdmG#ZYzNJ1^9m9ee(nxn~P}PDz(+@t?XB=V4kF%L`TWyt$2+8+(B8-{!NPj4w z*IbHI{xa*_=H!SuMtqRB%$Gzmp-^gr4O+Tm?Q9-BtBsS^$EUSRp_x!d1Ih+Ps7rZ= zlRi56Mn24#cuP$Qk$JogRmLP1Z>P9BxkT8TN&@>D>0r@~XxJf}mnKtH#m!0DMlY4h z{1(`kgLU{puugs{j{-C;B}YVv?%?q)I*Q3SMP6(n9c5(<E;!6W!NjvQ$bqM#pFaDP z=FKn~)340D2BN%q3Yu(-@`}$yRxqYndbE)IQYc1}5y6b&a??5qKjcFWl+2!XI~L+E z(^9unLyI-9zX_~fIb(pB4ntHYHM74UvZ&Hd@}lwbS`5+C6|ONCQYFRMC|V>3e3)0w zxHfeZg$RHxqKxHO#(Z|RGzUmc+o00@8ivoDO*76LPgkWrFN=QlS3gtBl;sBwQ~ODM zKS?s&W-KE_-f8tin1i}%d5GCPkX!ph?IVlLQYqtv_fP%|CHO<l5K-Vn`KU%GrM#{_ zML4-7eJXUFcPKdfS7}${Q5G$awl?DwzvbooT`cocp~mR)ALx^*Xa}bdMaAKiIKETP z1c)KK($qFz<)%UVF2&p#)X|bXj3)6Gb;&5xlej@<T6z8Q@}*TgoXmgFjh&cNAHEoD zR;${w$*Cvu8Cwi%#N#NI@)h{~Je*X5r2z#LY!PjW4mme9SYt0FOCaqJnhBRXC$@I= zqat1xmhnTY{@u*jHp>$SxhIBGjYb`s{UkbuEA|#j$U@^xeQi@&M}p^{*Oeib`Fu;G z(pLtO>->gHEvDO7h&n-ijmJzY3@<+W9Q|V9|EOHPvvRGtWQehG-K7TZw(acXA3Fhi zYKG@Nqw~ynsOb>it|6Ec6O7t<7;m^;r4%t6?4q&|GP9q;)TK8LW$RL}f*sS`0X~+^ z9Prv*l14U-G>dEwb{91Ij><}JHL*1Ok45|_Xk=aAS_iM=@@4~4OCN;7w86ZsgPCG3 zN3(iQ)4qZ4Ko*Q7q^{gW>A4VaxDVzdYsE13uQO4F3`;h1dAE<$b|{+~Zu$%Ng$bpc zDeah2b*yk|K#46&Tn3S{!u)pF;AEOBMLs3&*5Yf9`+r#i8cOUa^V2E#p<vi8nd1o` z@u(4XAkekG8;7iTTq(Mg8`jP5R-*`T3sB;G$9)aeMWxK|w6l%<6lBTM9!mX`fij1F zej{@T((8^HfA+(tQaV~*wW>D7LndT6Nmh@hmS36QY1U5GGbD}h`O9pl2}M7qt!K(` zdGWaLbmx$?i;-xWa<qRuUyk0krud+FHd-gv`mw9y%2)VRq#fX@#vDd<djnmWY?lq0 zYRGznZwIR*50B)+wv04mCqZANqo+3lr5&l#U!RUN_V%>lN2Ggt@oRDa?aBhj8SOaE z=lJJ3fvsalk8ut{-2U6<I!^i6taIG*v61pI;lOQUv&zSeDSu`x68O_qBChGCAl-6b zGACj)1O7?UjW{RpRh#36u_KV9KTSlw=}&Wkr15|6*^F}i()U4sx{i!=clgqk=c6#K z$<{Spj+={M2#n1i?Z&TxXXk|LMg}HkO?LNk_X$pMr@GVJ1F~lzvy6ZKJ6X;LpZgyN zg|ewTL1#=Vf>6*Q6;uC$&NwHWiXt@5$-%YV`^dPor$J{zM*0bo{s=GC1TVxu(3zN# zeqzS+$r;ZlXFT6K<N4n5y=E_!dA`Cc@7~@M27=C%jQ6L=`!!xF^ZYNqxEGZ7r}?AE zZ@-NA{u%KDGvd=T;$<1}`BI+o-rWUWh=HIpGb4U*MtoLAe0D~BPDXrgM*Oghcr+tk zkP$D+h?iu<7i4gp>lCJ?2sj;S@t|{gT0F~nIV~P?MtW__2ieZyY4NagLRx%;^WC)g zNaxM8c#e}3@PA;GKLUEEIGGQE&ccl6X_?`9T4sm`Gty^e#6ubJ?2LH2GzOg!8P7*% z#3`+*e?e!IQ;H(7l+>d$AkXE#B9hOJ*5}lpGa%0^HBLP_1M>P6jZ-Jia3(t^X`K3R zhO@VGp2n%?W<b7ZoZwgF4(fLfYIjatS2!<kUfY_YHXQp@07w=Vwzd@{aZXQJVaJ-* z;<kb{9cv^R3=f{wJFjzIekrB~+Y5@K1^I1jN{f=EYx3L6))e7*pEYH9?Zst9ZRU+O ztba(ftt-GQ1^M%m$+E)Mf}+xn{A6o!L9z^a7bV*|ilU_@CHbX=CGwHpWP5kln#9Ir zZ(mo>db}7doL8LRx~9E-P0^adWCy;~UK}lJEopCS#c4t%$u%XV@*>{CxkVjaYq8;t zua(X#ENzdLwicDN7Pqz*cO=_e+t;)uTl4bsQH+vkL5IB7*WZqAn+43n|Bj-PqSoS~ z*0MG2$-;udwvxP}*0zqqyfU0`6HTjA3`ZpO;<fyuc?HENeqL)q`<i65HNT`Iue2D4 zyR@xYv!=M9C_fpM@Aya&%_{`?+KTg&?Kp|PEx)+5EWaQ>3F;NMm6n#Yb%6ZxPKw|- z$9!IEM{yorjpnT>C@yR5;A?F~WhDhg_)Kd@QJJj{cNUTWMe{n^+dHCdYp{(ZzoWgR zpsc+#nO_twE-oo4EygEJ!N?3qT`;etu%I|ES%C7lmXx;P#QfIQ{Jdl_Y`<hjS#i|& zTMigBVXYKRJaY)19o^FCO*<6dcSBARX54tWGor@n4SwDP9u0ueXCRzY<v5*+d5Whf zvOfu+t6QPCN^!MfyCUCbx^Be{iv5b46t^mFQ#@1gT*V6&FIK!%@!N`5DPF61qv9=! zw=3SIc%R}!ijOI7SA1IWS;glScPPH9_@?476n85AM)41de^K0}xLffP#eXSM5s_Y5 ziX#+9D~?y3tT;t+KSk;wzJHKnuHvDJd5VRKrHV%=9;H~RSfg00*r?cSpR?SP9H&;X zQL$NZh2kp3)r#$kor>Lx8x;E$Hz{sa+@^S@;<<_!DqgI3sp7X4uTs2L@kYg46mM6& zOYuI%hZG-E+^+bv;<Jj+EACKyRq;*5UnuTW{Egxt6xpi<rWiXv027H;A#pFosYIAo z(~0{z4y~HNzK(OKKBv{e^yP{*iVcd*imi&YDVV-bag*X1ib6*`zf9xTC_bn7hT?mQ z?<?+643j_b{v^c%73V0HC{`#oC?2c0R<Td<RK*JwFIT)t@m|I4iZ3YsT=DmcyA@sZ z$t>Sk#eEfv6c;HrD6UfMQrxI`hT^XjcPrAYVg92Przjqzn5TGzVvS<6;%dci#Z8K5 zDqgI3mEtXm_bF~yd|vTQ#os9IQv8?Vh%8gy$%+xhLlsLETNF1do~`%|#cLJsP<%x3 z8O2u>f2H_0#XX86VD6D_dnwLPJWTNj#U+Xf#csvTif1c+L-9JrI}{%z;_t^Ae^v3< zin|m)Q=9|=Wx4hzj)2^0{BXskij9iL5Me5JY5YXRvlPFfc!%Pnicb>p-U}LkgNPyN z?=-$!F#xld<r%N|CB;(3BZ+vgQsebR^b5yn{CLI9isvX^r}%*4lSJtE9U6aE@o$Pb zpash@O>vGQis=OQLHUTFAyk{tEkZ>7a)~Hk9ueg#CE`2$$Mj$aL1ZWIjaHQW@cv}R zfs!xsfl8G8B1GhOkfMAC`HG$dg55=bO1>C+@{@sx<3N=<f$91l>LclAI8FiYBYq@t zrsGr*k$FAwV6}hn{L73VV(cZRU(fg~*i%Hrw-Hg8vxyjTqKa}KRS>lL9wd`EUJ=A6 z1vyG(K8GoCRLS^!#d5{Pigk){#g&Q)#iZi#iYF+ZsCcsC8H(pAeogV4idQOLr+BmC z9g6oVKCJkJ;*S)cQ+!F$_ABpb{5{1#D!#Ayk)rKyT-EEg-x;HE+y6|}xb24y*0}AD zq8hjT(gKa!{wbz$+fTJ<-1b+k8n^w{I*r@@YqQ2}KX#VJFHpQh@iN7$6>m_yRq;;6 z`xPHmd{XflMce<qqVcyB-&Opr;-3{iQ2bc&--<!)&qgYaQ`}3@_M6i+K1*?~Vu50r z;zGqL#ifcIW0RkkD;}rVrfB=!9*qwuZc#i<@f^jA6u+T(x#D*ezpHqg;@yf5Dn73G zL&cvczNq+`;@gV0|Np(l|El<*;-`wAD~5umzM~W;DDI=Uzv4{A*@}lL7AekGELU8t zSf?0QT&b8)Oe!9)c!J`IiYF_cp?IF+*A&00c%|ZXiZ?6Xp?I(2!-`KR{z&mT#g`P{ zP<%)6J;gsNzOVR^;vPj89R~R)tT;w-lHydw0~HTeoTC_3EKyvbSfLnGY*4gz(6JhC zRa~pMPO(qX+DoTu{4B)_6faS{Oz~>P8x(I<yi@Uh#YYvNRJ3;13mSh#@h!!76@RPv zXT=W`KUVy=Vh|k_={izzoT9bQ_SN`w#aW7T6$=#06c;L1DK1q!T5-AJaf)q<U5Y)5 z1BzP|Pg6Wc@ghZQ|6Q)}?<js(@ixV~6~!(@eIM8O4;6o+_@d%#if=3aO7ZuKe^vZY z@l(am6+>#rjZ&PTxR0XPnJC9hjn7s*OtDCDzGAuJV#PYexZ+C1gkn<hc*PSGt(|(Z z#?MeZPw{Jt-&DL(@jAtu6|G%+uf`u%d_wU@iq9#&q$u_->iv$!-&6df;`@ppDeh5p z)gBEij!~SXI92gL#e)^+C`J`a6c;E~D8>{U6k8OJRcuvUtGG_FPtn@hr)vBx#S0WK zQM^p?YQ-BAZ&kcg@qWce6~#^m-Ja3-3yQBOzNKjG_up##&x#)?eysR!#UKo2k$=T; zihC*Ut2kY8mf~E+0>v`Lg^E>*OBIh+T&{SWVw+-@Vvpj0;ugiz6wgt-Nbwtr5Id>I zaQ60pdJfXc`!f}-J)ZeqX8iwFyZ$Pz=M9SAQ@mU8Aw_G?|5)QMD2o3JM0;D~zgDz% z{4R}utoWH?NbOGXcjA3(zfaTq(-p<9iRb@cq4)nkjxzG~e|jACfb!Ghicc#(r}(m> z9Y5{Vxb-LgP2(Ra{!7u0n>cq${W(E#isFHahbY?dQlZA@D_TEfOyiA;cAWHOjVBem z75fx97s>D2@zJ>&|C-{r6t7miQPGZz?$P+eirW>RQT&;r9S{9N<L@c{N$~^4PZaGq zC|m9KF^ZEF_f?#sXvaU+Z(5@Fk5sHutW~t*o?|rLs@SR6qqtGgj(4no^#Z;Bb;ZjS zuT`|;obPM=e#OTWf2jCVMLWK+e%N>Q{_hn3s<>Oxj%xyHhmTYouegum0g84!WBs)S zdjD|6a>W`&JC0eV@#7TR6^~c!RkY)mZ5lsE@vDm8RJ=;jj$6K`@w*itQhY-3$BK5m zV*SH!>-}FV{!ww4q8+DvrtuIu0`mE2#Yu|O6z%vVSL4>7T&(d0ij|6XT+*cRm5Qqs z*D9`8wBwPj8b3qve8o!?zpZG;AvbB<`lS&y^-vW5<o}?bJ3!MPte813bhzFxSFBNN zP+X>XoMOA8^$+%He6!*<#d8$Ds%ZU!|F_r=hpE0UR<wRUng0acm+Ji{#g&Sy6|KK- zy~YO=w<?~Yc)p_b^L<<6-%+&lSa)drK1J)_drIR!QQV>UhT<<3tzYji8vju7pNg*P z-w}$|pSQQh_g6efagJiXqV?k)rSZjz^@=TucD~H|@3=;W@_B;dCdE?~&sMa4yGu2G zrQ-F9w<_MHX#I6R(D;uOpI3ZE@#l)xPxl9nzpwZY#eXYisUEiexrrK|su)q6r8rN~ z`sM7rUWMLYqIk683PtOW>(KZ*#eT&til-}DKb)QayG-w2qxfCL+ZC<<?GcSXsrano zi;Ax+TECl}C;YSC|GVO+ikzTfds=_nSdH(cxS!%o#V;vZKbxITT&VY}73&n66|H}5 zjmEnaHz=N{c#5L+t6iw^Zzx`&c%9-ciq@a@fW{wJd|L52#g`SWA8qIV!`^!b#!+2w z!!x^Dt#HEyj7?qJ7-X<ztyUFdu&iPUtD$0SFj=dtEC<^%vJD24V6Z8HK!AkM1A)*( z?*T$D3B4p3NCJce5)u-62$1kT&$;K$&Wt1{@B91ydB5*lTl37lbLY-2=bU@)xlP^g zD%x?(Pu2aEqP3rmP&q$NagyR5ihC(qyIHZi=P1rstXFJNwDz)Zs5_%*$3xeu`&dP5 zCp%T$-&6dd;w6edQMC54Th)D!;)9A$C_bxb?P9-C_uGo^DSoK<xuUg)<*FTLwBinm zyC_aow05vUb(bj~pje~WplI!1G9C+h?Nt9h#eT)36s_HBi@Hx&JV)^Y#mf|}z3WDG z-=TP);v<T`RJ3-kt?GV5(T?xFuWmceYwcThymvdb%h++>oz%U%qP1(yRCh{oKgCML zIz?;GTBL3}KHQ^jJ5D^HZfnQdq;5NIe5Sh3RlHcy+OMutH?k*k14FigGLDOS*+tz` z6|H?m#)t8|O#NjX7Va8#Hz?Y1&O_DRso1C3uXvQ=w-mQ1p00R~;suJADPFC3qv9Qk z_bEQ2_)A4Qp1D=sZz#T__`c#Nigp|`qU|*2@KV0Yd@tZm>fT*(y5da5lp^Q)^1Vt$ znZE_M9k*Ph{)a2}C?26WplHV{H>vv+#WNMpRlHcyj#FNz?pqY^R(wG5aYZ{m`LeoS zSNy%=pA|n)wBwThR(DL>=~0Rk6n9pfqL{BZTd`Deu41*K9fxdH_Y%cripv#OE86kL z<J7%b@ifJ=70*|^RPids8x(I>yjSsIMTkeK$KmXis8V_U--es5;Y$?fC{`*iP;6AR z{PY&f8z0$`>4GhFCJ~7`f(Rylj<`MOlzIU=E5gtF=)4TPw?E^9dma(*_o!R=67ig> z?(Y&2-%r(jGZFEM9TD#fAF(r3u=bc$>pHuD>jn(=**mNYS?3gRb9ASmYwcR6U?8)y zfSv^_R%7`mw&ik+)6SR82JlUkHB(`Sd?b@*gHL?3X@`2?i>xQpwSIYe#p>REq*3lW zySfH4N10@*&p_wu<rz)6@fz&2s<V3laWHcxh%8ytdz6J!(A~dk6%Oq7hv^;Y#5N!W zSfNzVxekXfcdcK??<^naU%v*W`d|N=Ko7KO+g~wmP^~iWa9<$Q9{CH0BOTaq?3)f3 zuG$xF);7XX?%VhZwh^w~7mhqI+;^Ay!m-U6E?kc<Tyh)XR{FvfZ6n+|U%1pZ!X4)e z$1)!-eOr9t$m=#7+gDT_R)d(|cNHywjpa85SB3*S%P$;`&-mLLe=Pt16pm#X{w~`T z`(yg}n~A^e@HY>C^1ClvzYqhG4}R}J{Q2Xf{I8Z5%*Doca3~z@rhgqG9Oa$=yLtHT zSol@qZ#@1OAHTa2fBx^Xf0q~{AAJbtk8hGMz8&z)#&>ckzNL8Z<Ph<l7>X~S<$}C0 zeO$R^<GVBz-=3)Gz9HhfC=_4e&mD(40^^(Hi;wfQe6Ks-h5lB`g3zCRMm@-%-whZL zdLD^ld|U};)Atze?K`-29!90!?DMd<od0F-8Eyc=rj9rIv(H|F+yC9VN6j3<O8B#F zwBLOX_x2s!IzK~v<-F0KeMY^^AKxa#w+w!aZx8(0_`brueFwMBM~LqX-ssOh`y6h6 zd~YJYQ{l(>rr>W-e5h0Yjt9}5KSVi)<Lg6#u0i|B_@?1+xcGJg<L}Cd^*3Dlwm$DT z34~#M)A2W4d@007d24^e#rHYlV>vTE%8KFQ>qLCyH~SkdzQPx>d^rPwhl}q>#5c=E zf^haWTz>Nq-x@ruL>Sv{vDm%()%y4m3XgqX`x`F4n_mRogXb8ZZMTMsuVt#?v;P#| zrdLfk#%J5Dq2lX9e4G<tf5WBke8l%8B4B(;{0&!rJ3-gt*pB@T7vHkqV-7E5Amg*` z)==sD9Rxd)=>3L^@6<n<Il+w2wp&BR$HHCg#WsBX-i-K`Aspjl-_hoGG!kIb0B>h8 z<3m2|&pu=S%g?`KAs`A7s1kn___Og%MmWC1XZ+oan++$LdtUjBe|v_)<=^Hw{S2T# z8!oBgtpE84N7}VNewRPexIcaKkiKQ`uf*S6{Mqy!fN;p(8hFX?tlLd}SvMZb4`Phr zyx(Prufslsue~Mu$isOQ@m+?G&4+&#{`lRo_+#4q@%5lVxxn|Ljjyx2JF_w~(7!5! zQ;Z7wXD4}<eOY-bS(r%RKYr$lt*1&$OB0C_oOE9-{>w%jU(-<Qx;7@JG2crkKJRRO zjaMf|eTmey0Ga|rPs1OPa*jy(M5J6HQXUY=$3*fUk$giWy%R~NMA8?LbU~bhzfE^+ zx!JiXT05fl%OfY$-h1T8g}d}Q`$k^q|6qscs5ienX3pAskJ-33cj2VI_=lq+k!kx) z`T8IK{yJJasdjAH{k5C!M-*Nh70bRna;)$D9p4;{_rBQ8_1^k&*_Vht?}a%0;oE0p zqrVp;T4u(1BGTnd+qi7TLCzE>!LLSY_g=X3vc0@7>=-@p%`bPIT)VwI-LUM-4fRO* zMyCJy{ttGH7QX3B*+bvl*f*hi<1%N;lz{t?DT#pl4^#FGxD!*R2i(q-y#nryNOhi+ z!={}fR3+UfBi$R8#Xro8I#YLEcHt)Ep>x8U8&|x3Ykq3$t?-X*Trr_~axHUI-Z^K5 zv#<O7oE6mw;ifirZd?)D_fNl_bL`HyZaj9E$S$`|sM_V$NfI_%+x)>9mG*w;+KqjO zF1r`uz8n;8^9N2<IPA{L=4?cq8~;<B7cO(AO{$$FdHMzz!|-vA%lTKM?pW$L4|PjE z1DA-KcXk4NloR957LlCTK~NzhIq~Zn0eLz1))8W#)BxPv7uO=zI}XSFZY1QKoxt;v zC1m_aBsO9-A^!DFcyKLjXpyrECCmogo+CE3ym*A~=EQ#s5{`WbPjfHFB|b0ugnKf) z@=hp6N`B$e)5$v<yb%4Rdo}KJ@<xFHqEE?_yu7=Rw&>I17?pPwSS$LBIL7An<-_r; zICjW;0?ZP9P8^f+?#Ae3^m%dYn)h=?@ParJd5_WYqB!=<dzy}y#F3vj<q$YtmK4m) z%Uc1*ujEN#-dH+*Eso;6Np!p-j`F+&9b3h*zq8#-^Wb{b{VDP=VuzgSzax_)OLs(u zYI*C7Jb?ELc%L(}miKkM&l`E|VYsi)AjqhZxAFcU-j5l1Kkpave(cCU_u#&P_v2Bf zIrkn5=liI<oW^qy$Ec2WNQ#N90{*J;=U!X`={R~TWRpAbP<TYn?jQXszG_{o$8_%u z*CYmuoW0K3o`E>pHufUE?u?3{8r`WjPJ94yQsSC8r)r$zj_O>AV0;icyKhYO5eT*? zUt*l&a~NvWtI*BeSvID-B_@ueO<3o+vrRl}Ck$lZ!oE7@%~6?VytCN8^R&D(4Rk*G zFCa^IF>fPh_e{Vs5{`SQOy)SdZvyu8I80+ODN)xNq~tS{ljN}iuSy<c&X`FkVs{6Q zrN!`v!p$LR?(jQ&BX(NOQu=?J{_Z$;`j`nLqhod%)3MVyckE6V%m?L1_H;&$JOI9^ zcfEy*ku%YWj@fVIoRRet@H);G1?27}5TD?V9EnFU7k+u8O}JS7gmNg}+v#g?f_^mM zNCq6K0TCesjw)~uoNT_Z_vHEs<J|GN^Ctap{$vIn9rM1;#h+t}1J3PTw|)YHjh%wz z%tl-oJ&NX;v@-no?U5mVe*#|g`R}0dAZ-Uu-hVO*q!@pwLHvy1;T_42KavW6tZ4pN zdH&yj6E4TZ4q=9}b==tK&yT~+_PMd`9^MW&BjfTUCpPA_G@Rq|qLVq0fz;#}h>ne# zce`T-zY&RztVGJA6Y^}3^au^RY-DWm1f<$N=ouB;Wg1Gyy2sg@@uOpTovnyu#2E9c zx#qACV$L-!ynbBD>*XNdm~&}@*D)h_T{(x>A1vqf)ZKZ#RD7!Xd4I<gUT=ori#g}a z<8{YPyuL~jbaFd+efel!??fhI4yV({oUT22y+yuq;m+c}7q68odHo3DJm!q=;PrU4 z2r(xHMvOU}vK@2YIEdG+lI9G0{xRnm@&5w7v6yq(-n@PxDL=4}_l1)3yHMPC7qk*{ z_J%l$IiJg0SA+0lPQIl1Vfk+CVET;NpVyD-c|Bt{UXPV;l^x6bZm?g>nZB9VUxVyo zPLsrcrF`p@1L<=PWLC`i(KmSA0D+A(ORCPF%lnHq@OqA<r$3+fACBX-T5|fQa^A0- z#p_M-bdA(Y7g{EyO}={>2n#t~#H*>t+d!Z(=aXZ2y;80}2C2uKkrMKsa?j~#F=xw( zypER~eci?TREpQD_T%-oBY9nT0Ixrt&ueBMUN4%)>no+ao-Wt%Qtx*iLZ1rxO8j`< zFOWKV3-SfEEb*KqHG86bh28p?GkFhQ`_LZ8oZdoSAD8@oBxSos%JA7;=wBjKbe>S! zV>{5NZY-}CN{O8)balW2`Wz@ed&;}7uA@&2%m^{(04cpoig}OC4{?24X!SWs!%I>- zlcj7gm)Q1@Z{5EuLpDgMJ}$K|u9iLr&y*O1eu|~UZUAq^oa>}i-#mi%`z_{mxzN?O z<XcY&edb8nW`v63LLtvrFyy|HhQCTV-_=i_pQ4S9Ik(1nT`9GBf!v=X-`XG{{~;+k z*<qMNYj{0;6|e6}2^=qVSAHmcCKvI#RZ8PVh>V!?eJP*Q2YAoLy{HR$dbX79Zc+OD zbt$jA2(SG>^83p*^!ba_%WIOVWhL~P(#q>H$x-r~yk99bULqxVjim4*DH%>EMac+- z{8dWto8P9-V?r&@No+^VpifNlICm89&ldl~cjx_ELWc)Pnl~IppLd0)<~B%3p~fwe zm-D2qe<(HhMjf9%CQm2IcXyDodRtOHMZW%XsllIhG33lNuYZ>`KP2__$D`@9yU<u% z@;F;ko)|&@yeeKdN|+mW;{B@wyq>$6*Ja`}LgIW&-aS+#Kz@=>4{zdiVF#~oNxsgM z+Mm7yeSRqEyi4lw)s6I-C?&r}@>M2b<_dKcOHJK7n_+$>G2be+xlHQ%d-C-y5kCE^ z)bHaGPnA$kqvSd%KD&w>yGKg(a0&l=DgSqu@!j=%^7@dZ`9X>KC`t1VgoB=vT<_7# zFh@&j+r__Yd-@zKR8;T{-oGGUyhUoWTGI2h@aaTJ&o3nW9uo3XshxF_sx?x}dsQ-q zI!Vt{J-lbH6?C$I*Vn{n#2nu5I+NFh$Mbqf5wE99IbR?&`QRS(Iap}m^}Tujiye9W z?rL7YDH7m>wY)!BC}Ew*y;7mWTO<qzgdr8T<Ml5R!!oI<J15fTF^PHJJl?-1GND(( zFDRtX;eEVLm;AmdDW4;?c8t(ii`2zxiPIHI{!mh~S!#J*8Q*<wKCdyUg)0u>{V%`8 z>v!a7vW@qrNoz7b&ii}BXOn#KeyNuorH<wZA3d{(VdjfZI>Y-F`|~<Z(sRDhaFdkJ zRw>CX^4$mJ{t-#lGwT_C5Ai=xVz_e+eRk{S^}4aVj*>EbPtx#(<d=(eV$LE-KSN4; zHs(-r>9|Lxs(bu$eqr*V2jaSSg5^E?u!Xo5CYi?6u`J8dV~cUEc$74<|JG5s9=PXm zxX#~rFs?QIOK`2bq88VM#dC3Ox|5W0@J0Q&wofFD95S8$o$oWRJ-3tYGC1wriLFeK zUyuC?@#Jp&Y-ijb|2R^TyUG0*Ke^exhu_)aUPGaEw!7$9z|C&i0N_#gmrUn#Zao?Q zdG{^W!3*w969BKc^O^v!xp$FF-*De1-+b)uOV=lE+YW$F-4YV%XYMPk(|@>EvRMBK zjTrEy%Xx0G&5_Y30`7^-!s}9aJN}x{?%WW;b<aOA1JmC@LB{s}&R)3A%t3`pxLwc6 zf%_X59Dr;3z<gYny@G0xXNgw2Yo1<;Ywf>NxGtDD4cGdYN!lHsvoaTLIYC43ehgW4 zj|>@e>XiAoPFu!z_B?|XJ>BKk_d1e=wD<Nb;#n;$`hqSp<Ls_^xTc~Mbj35sCM7qO z;97bGE1>Ke###RB)wot{UXJU2Q(2vJW)|SO|HTYHm-BXFmA%aA{0IrB>bf>utKVzH zwdOJwR_%ur5ex1YA}Ay~*B{B0926rvFLd|Cwc!yKa$}beM-v&L`Q5{DZTW)fJovY) ziPjBFN!!&-fBViXg^rULX3_Ua<cH<5vX|}<!!`ZFiMTGSClz#FM8@x$2cn5}J4{>8 zJ!^4YaU-98^Y-0vJz_FN)~eeXX7yHH`|l^&t@(msjvT?f4_s7->)KT;;dMC_5$g+? z&ZC+};(GLF^gs4NmfprcP=p?LBI+~tt<PAt-`+e4*W+7RZkyb#O!NtE4vGInw}!6G z?s1H9i@RGP;3T(cF5qPM!|{Mq+_K{Vr@9MSyx(yr911wiox+cw?jFh%e%IZJRdt5D zIt4h>U9tz@d+r3*?)Tlll0bgoj;#h<;2uq8xX_)$s4sHIB>@+^kFZ=Wai3$Rf8;Jd z0dT3iQvz_A`wY|aV|U90z~$~n((x7Ud+Px|aZeymT<PAxqPfcLVboW<->2s_?qy8b zweFF8?>e`DQD5(J_$KyK_Z8CS4ese=;TzqXb_LwzzP1zKX7^{{rPwX*B@A+_J7#CV zZSHqiShu^yYXNt-Tc!Z+bSqW>?s9iz1>Eh%n4^2#h4lQHTfQgYUUxGyeV;r1Sit@6 zg_LAJcdu9jc))EX3qR<lNYf9wYw7v0`zT+3!u?x2;7NDC*??!<-|-92x&thb=iDQ= z13d3OdlcXWcMn$fi|&09z)S8z26@>X#~l629bk@r?KYCmUvaNr2iWRH$jh&~B_jZ@ zxo>_8@VfgC*5+^AHs<!XZWmp@a}OZZyx~q|b-d}GMGAS#eTJ<3dl(@AZ@c|0i9fg( zQDXej{VVJJ9d~{a;9d8n2Ed=(CHn*Z?0!Z%d(WNN2l$J-+fu+^-Ln|W`|hq)fWNs9 z5&rI$90~ZqeR>n%L-#h8*+=d}<h_sGa+c>O?mpz!Pu*)s+@HDoGy^t8j$##`5TRu% zc4B19V!)P2A>%wLlG6h?IdT*eaY|%&7S^c|hce<j5snwcPK$iV<enah)B?U6S<gJ2 z5jmJ;c4p*4N`dntdosBfM0Pz9aABl|G<Z?uV{*qOk$>z9_)+A0bX^*`whM4s<a1We zk0aZS1za9^KLxlVat90YCy_&E0IrPeO?J8}^2UyUt0VcW{%a!VFcH^A){xw;k6gms z{xq^v8{mdW*J!{^k&R5!&5?arp0`CdvdnIeBqspwj4WozyCQX)0ry0<Fe^Wc6y-QZ zzE6II^zdwKYz5$VG58w)zU}72V|5X)Yo20B9r?h1xSkvNVJF~+kzbLD&yVcW4Y(lk zZ<gLgk>AV$TpZbPH^7e~FR-{TjeKwj;PS}QMSv?JA2Z06k&9A*t0Ld~Cg7ULE==*Y zk&-!p>my&$^QVz(nW-BiXEExVBGu&eTOyT=<<`jf0|2*2E=4wCcSKe(Wp_oo>j8I1 zt|pEBEW!=JV)sTk#vQvqQa2j#^GF|w@}bCRCjQ~bn3aG>BabEkk44^b0Z&Huo(K3v zWIvYkQ<0BH0iKS$xe4%WWM(1YxyX-LW-mng2`@$-XUblVyucj&DsnQ}<&{VeGrcv^ z69v2$nRo=?^~lI_!0#fH>i};=eopFmD{>xb<@b@2T>*cHoVgF+kC7+IN`H!+$ZY;O z@)$|xFOj3ufWJo0C#n4{vK#B+?~y)Ag%2asz6JOwa$PRqlgOW#u}>rWOa%NRaw9YL zdE^4hq%R|{@q1rICXfmK9m((uUq?<{1~?(wejMP$==n*&mgo*-vy-Ankbq8!E@45Q z8r`h~a9Z>qETz+<ZA`=&(KkrpXGUF?#97hpSz~8M7qjTTADyx@;0Mvu_5}Pex?nos zyy$79)C;01zIS2t{#AgBqrYR5bV>ByTEL~zTE1|ZY)KruJlgbaxUPu)fz^0b^i<Zv z)zN>kB(9Bqy#R1s^c>2-pGF_&7jB5o{RZIX=*5&Rw?y|^2)He}u@!K8^w(spJEI$S z1l$#U!~y&)dczKYd!xs)9`296mk;=Pbhl!_gVDEGE)PYIBnLkd-K!n&Xmmj-;PL3k zm4GLrt(1?yjb6g)_+9iilH!}uADjSqD|&eh@OJbo65k)9D_QdIM8Cy)csJU31mL~s zJj$!TMBT}NzeV5d0Q^1rdNbgo=;P#vkE2_e=})5tB!<tTGj;-e9(`wjz(1o~4+UJG z)5o&@Y0jaftebM)VfEjfvpth^Yt9YZ0dC8wV=3K{)5MhBne!|;_3oUNB+PqqCbB&5 z&ADa?;J%!1&j9>9=N(cVR;Wz?Jd|@V>GR>7>qh_{&AFHq@>tFn{Lqs*WB9@^a$aN9 zPv>-!3ZBWy82~(=^BU>wg`DGN0$$Gf!y>@1at>bscqQkyPQccj-H!&mmh&%?+v_<; zF=L<PJhLC*)0`(+E}!R&W%d6vr)(DB%bW-E0AJ;BSGCx`bBgN$U*{|)b6pa<okjPf zSP>I=S?mOU@5iw_NfTGZmQMrxBz8VMua3RPlD{T)F2%)lvD;YT*T;5cHgAYMLT0`( zb~cIcme@2><gKxzNwjywFoO^!7`uYCa(8T9Kj5C&r_AQPu`!JLzSwzW$_HZYEr17O zTS#CJ$KIw$eI&MI8Q`(lh2+%7W4Dufo{W999pD$SiF*T{ihar#o{rsI3V1elAZhox z*#3tBUWjd81$Z$wna^I1ebx*3Rji~E@Jg)caKP5s4T}MPk1b-#K8S5<0DKg?l05ct ztcUgYY3$u5z-O^%s8fC(`#z=cKVzH8Kwri_XLWoPyOhlJ@7PIXps!<>js%>L`y@l2 zm^*1IU`y^FSv)7@KFbfClKUoKKQ;Gh647b7C$9mVo;#Mren#$U62qCf2eM%}E4PJ7 zIy-mkY`_n4_hEsYo7>9-o|pSBEAIT<m&lD5<^F6G;Nsl-4+i`w_eN6rrMV5H-5=*( zOD?`V_uGu~C%JQ3<X7e{8w0pHcOq%xn%ref^>w))Fy!^QKPIu?kb4!0=*HaF5`dd? zM>GR&$vyByz-_r*%){-uU$F%5%w5|JxGQ&x3%DnDAM)nUayeigyDyhZm1FnkK1O-= zK<-=2?Sr`|Yy$i;cV`mjQ@O`85l`pt!@7MY_hA;+v$?&LA<yO3upVB>t>PD6%sqY@ z;HBIeQpn4>NAmSw<^G9f{p;K-=K)^L-OO~pmb)KcKYhD<P~p-|J3qcV>EeR;9c+az zjB|x%?4tOdq{EBjlXnMP62EXF;79SrtnDAi-zL{x9^anDa7DbDh4Pd5qt$>b<L?u$ zia)RnaCQ6wQpq)Ohf!Y}KY<l{UHmhAId*+~`B=bD<0mscH^jfsdb%<G=XHRa;%oTc z&G9;B{FeA<M*(h)A3X<fTl||8@^{AfV1eBgpSKBccl-qA;hy-aT>w9eKf`LiH(pFi zzb`&&E#Ut6Y__XEk6%G@d?0?y34jOVKR6cfQ2Y(bgGb{@N`S}WXY+-}<L4Fuo`_E( zaXuNpiFEjj_!IolFXNBw33w{b<yNt$<Bu>8&%{eeI?u-6BR#zk?<4uY7{8v(@KXE| zHgGS;|41tNRs6FI;Pv>3F2HZ%_flm1HvYp3!0+PUC8@p<zil+&&G_8C0dK|sIRWtd zcrz36cKil<{vrO0nSejW^W%Vb;@8&z-i?3S1Nc+Cl?3?b_(3Fr_u?OsJpK|N%Ow3Z z{uSl&`|-c9ZvPf<WCH&lA4it@AYR2f`Y^s|GT@{5tfhdD<I`sVK8YVT74T_%K8xqG z`1nbHf5aEC9zKtAp;7Fg@#Rd*7x8ow@MZiFzV}u9Z5H{z;!hO={vEGm9eo`in-AEO zchaGN6Y_3c2{<wDu+4zYdEeoOw&Yc^Bu>ivl#F?D-jxRdPRTo*u2b`lVexz?uL*Gq z8BhKbKe^iqin`sK80j8=V;v<%egoI3^GH|I+DJOnH_gR$ub*s>>)ucI;+p>ui)Y6E zq?&y?n38>q6S&SihM%1E0~Sz05ea7YD`1;gVTQ$$%wtN5j^|scla9l+_zXTRDd$&8 zUuPAUUEPgq`IT(GE6yP`?-%2B&Xb+E?w?tY>)c7>aXoMo@8^BacPlr8(<N8ie{Tca z;~U#>oseR<9m<)*o&GjQLyX=#1^1W|GR*dW8iniFqshAC-bH=76L|2uyTc)gLMOIk zI|aa`dztUayRs5?xq<bw>qy49TiHll6Ejh)&Pfr+i8%jqadp2OGupxAAly6na|;S) zuN~-iy7ybUdc&HfE7x>ySTn%WInvlky`U&vT2koqT)K`&dMq_tp)Xyrx_jmNo{Uqq z-_nk?*cN^1QSiwut?ut$&sp|smtvdn#Tr`)Vk=D-B~xWf*Q^^@TGiNA-*!~dn!>`g z?j_FH{!e0RJf@+uD~&zYC4&D!HkPhE25b<VcGb-yvKz6Z1bJeL*=gR1hQs!;ezTjY zGXUO1!V3EMW_bH}*f$+-XLtnhJ7>vG@$}O8bWeB2sXn#qS9jwrenj>>x5a4uuxbN0 zNDoqAc3o!@Kn`+^PIOONICu7JCz9iy9mxeX*auVH6$|Iyd-fD8s>^!Lat|oH_kiUL zox6YT+yhTO`IM7S-a_Y8EL_Qk+v>Or51ac(Jc!KH!1MCv<}JyqrfW(h2VrqqU|VH- zer4-|<V;+OaP0lY#ClBP;em>YG)`q|n+f3a#N330n=ywTZ8*br>iV^v>k`uoXC|g6 z@mDl8v0q~9+<~cye0gyOo%L`@#4{69%@f8oBO$RM_Bn}f@f0x}5?J3@*^t%~2<6P! zx=MS5EKdtZ2p%b)Jpl~o2&Q;YJkM&XtHmLiJlD4!=R^BX7aH_X4iy5`;3%^CW}FA) zKle3o0wy-<FUOfb+`GP77QvX)))wJZ)4GNK#hJ+(N)Iu@Aw2fHY;)Ey&gsNS!s*)9 zni@I4xvH)bC%8A^h@mDua+K#DnKSG31gH-0P`IY%rujH7xV^5m+8$HqJL=3k`e*Hm zV>9b;#Bkt5MIQPnB~-W}#e?7VL{b)%J#<meg=D?(5G$O1iQ{wE2aXK3hi)}CvM7+r zM6uI^lbCR@+fn^1dJ_B0K-uw_Lvs|RIRZ4_o<W;EjkZCKqaEhJN}O8DB(%3y*E7-K zGnTRkWtA4|VVXmq4W(yQRpocjNOUKrO-snxW9l1@)<z*=%)z*A9rK%-TS=bYQKmfS z3IteDQeBHAwg(S1#mVg6DU~R;;9+9flc&RUnmtJ@8^(}N6=X`fe@$j}{%S0anz^dK zCo^+pX7!9jIz7x2BubBGuWD{;>u9V&E0sMNR4F9I<81ZlYb{)xd(v8)@<!o?8swIL z9XL96s6(&}Kgk(dC4PnqouO3;nrK>7Uj-r|c*kFhg9I%kV<dXI4hL#U(aG81^=+*@ z<FLMIfe>3!kyF2V9gm+)<E+1iR>+Mu9DjYt{0=2<J@I|mK+2Zk6C?4>ayfua&gjDo zwDlQC#C-2;JUPoVdoErY{L8ZjJ@PInX`NMwi#=AXzS%27ob6UorDe#Pu$*BEezCBk z@6s|$&nRuva|c5wyakA7=pdR$2>7b1jz-Hr@}-tp<sCTMR-`IVqP1ta3q7+oy_1`f z`+z%q5SbTHGRg{U3ot`7L=*%>bxWGnSJ{LTP8DOo&YadM2VKL<D_~9^l~fs)*7K-S z<>t82Dx5*+KM*re2oPZ5=UM`_4ejZ=$~H71WMh1eya4tux1aZ)?#;%o5r0*65Pr=( zAvRHF4%KY0Z%k=%;5J+kd}=CN3IWHCQwH!v)eYwCODU;9afXghHbqH3NC+dyk#?w= zn#C<hbN;MkVNo*sAbi$cTTNP&xO8<}OGEwqgx`TDDTgP(RV9=E<0IY@vsQJlSw9zg z505unm4aJNo=wbJj{D}q#H`*`P*^*cXJ$c0Enn9+mtL#;XLYS#v2xvt)o}DeSz3of zduFZ82(E=6SHpU4)DNY5IS#0#%r?~pp45Z%%#pgJm2ELNs+pwQR^=B-E%WuvJRaOx zMur5hwl$^-Q`Jy*7Nnay+S5zY4e3feF6zXG(a6?RRwsOlfYeaFO2z70k&4PApilFZ z?#h5Z!2`ANEoN(*%~d!tiy;XmF%^zIL(&{64&vtFv|yz6YE(Fa)i+f&bX3<MvF0%L zy2?d0Jj@*I+}zkw*;<pX#4)jLhg7ztlPDZH?zIw%Q=2(DmRgpaK3&(`)~-s3NGc=b z>`}!$y`IOrW>0oy181`BH5zg(YPD%Gd@593m3$6*Urjr{6;Rc-5lr~l=Dxj+I**_A zgHM#{QO;>|;;y9{?_g6s>{$+AREi1-Ae@N2LJpZ;F_nda<3DQ}twx`&OUR*}ZRz&K z>GtMyTU~Q&J5{tU2GzD-PHP=PW#VDIHBEuk`||Cb=Zhec4c{{@y1GgTGk@lX31W)O z&|2u^auOncJP4ju*CtWhqvWMM<8kxagbp1-3%Mh7x^8W)v@ET@cv*P$RSSoY))zox z71pT^F>RqCFp^bDkERbP=IyOjRu?u0=VnjVg>H%?nUSOY_b)bC&Z=7WY*&0*j(QGj z6}8O`=49m}=a8Dpg^6_9Ta`|soPTtt^N1NHQc+ac2|-@#!Fi0b(DA9SlsKwj`H%W6 z(?((2M}3x=63A*6wk={uCfpd&&ufjcHRwMd*-t}5hp=@VJgOW@BWp+#tEn<a%ZAjw z8i+d|b$Y}thgJJOKWrdP0XreKF$GVh(IVE9x$7G`T8(0>WSH$7$|>(W=UEzhs5n05 zAATKBQv6D=(NgBuFUV>s#i^pCLm^@haYaYLSAkYhmTm%tI_lX9ny@g*ek&=A5jghS zUl6Q^z(Xkje~UmZun@^e)`|>jYDV{~xfNuFJo!#%FEw@(Y~rwj`V<Oq&>_+k;mp$1 z=_^-?l!HgV_2?I|2U+Gj7M?vBt7ulT!D(AqbBGXmN<MD|t{jpM-pHQ$+#wXxg60X* zZ@Bic$h5^)CCyePx>=>@WmVVA?^qz3n`+K_sxRn~#YWYyt$iU9wjd~82R&4xq6GuY zympn-h_^d%jyej1is7Q#mNfnwEzur4?$hua8brqjP#M#j$IFsskH51lWd$qA9<3@q zpGdL|^_c`(Xo-ND95e|?|CV%btN@`R<p)IKwAQq@H?vd&&B73mHRC~AH3~P|JE>~h z==o`mD$$`<3+ZusJ6EpFfZ`AjyAA=a&}`M$RHaKwDn#vQz=`mr57U)4<y28nA-|dm z)+|WZ-;F9PDC{r|2<tRt>Iieo5J5DX4OE}0^&i|(4`riCx*n`w<h92;Ox>yu)RKl% zE9^6g*y}DQ0$pb(Eq(OvmHlfo>HOY4+cg)D{Ct%14EmB{$Y<HI2B&%T>=maKE<Ep> z!P$%G>myShkr`N>S(#qnv*M^^Vg6D6&gl%8US`agorKgyiK2Fl<nlT>o>c1Y>l_e{ zJfyl^n;zVSn-F>luQEE*gH(x`Ea3-?mog#rP|>c0nxrJwW->>xAZD)V$Fb7JPC-9Y z7Vwuc;lr#Rx;V(Wo_-2{DSOhih{u}6;Fc!XW8jU(UAWLHdtpwrWeGtow&e7>><6n1 zH`3Z@J6mkid-~URt<21TxxJ{Qune8gazIgGvN$s<Rag$K$wah4@fgKp5slY(EVKPg zwOdkv*p6Ijvbe~o3<0|(Gow9I$&6QXEY+dfNNA-kCI?jAJE}c<DP*G9F5pYfCXcF^ z4@U!YCJc}0q8lS#(n@lcVz$ZT5$h~`>0h_iv_gAt9Mp;r89?d{sW8fzm2+vY(oFke z8%}>eT+~3TQJ}X~Vw6_tZ3Tqq{O0C{kmRg_MqaZx4HI?YhQibguj2$!yhIADDCPM< z0u0Ca`pD4U;HEDiiv~ZoSr0IZu`c;&)z?f~N;L=Cx7T%`VUl*?kmlBf+8*JV%F1Ew zMy16FM8yY^V?$QZzzUI0AJo{Arj3mCk$@4+bfi7WKtfaXTLnWU6!DOmf?l3rpmZ|5 zETJ%nD33|mQ$c$dC?(6l`b>+6kr;_AdWT;g4%I#L<bu>OyDDWJ4T=5tPXr!l+_bAh zu4+6YqypKsDosOkB@F-qlH|e-#u{g$9x9lv;C7fLVPNugzgdQ@?X+|1UAPSKFk6QH z{95Vd(E=)s<}3Oe@qs}QvURq11Ij4&>>%|}5J@x*^-VQxO|<&4e5fy)eAH|IW>C0n zRV>cZ%wkiWrh`a^Z(GEE9Kt3bDf~JD_0kk*88l^@EVT}xLS>sXX=hs?WLoPNHCDDQ zlsJM>P|cvRqY=>*R%G*7-P|$1p$54uA5sXm)*NgSR3W6>QQ6vF6jU;O2A^a(q{s|s z{*rcBAQq>atE+`xLwc0t56VBzAcj@1h6z(OdqZ!p$=`ZWl%Nu`f)B2#*Q&-{xT@); z?82~FGok4-1?*8t)3qfXi@BGj1+#WoJ`MF;>yMNuT_tPo&GtC`X4Q1Us$fPD!?h+= zUX0?f5qLH#tI=AD)TW?~`gTK2O-nWY1~GZ?siv)?-D{vq(IdCAz-!EhloZ}mjRZxq zLCRj_8Ce4jtZ(SB!cQbstuQyis@GPdqk>sR@HK?~Q1TUN$yz$<p{#?Nnwl*W1qREi z`~l=OUzA>7m(=Oc*KlEM5ux}|@_uPGSY+8M@&*TO6?tu1ds_?U40Ly{%$Sd-l=<6X zwMM=99{WnwG{vH6s>K=xOywO&5RfLB$F{#s9k8snqbaCwqO8&83ANLsoZrLtCSW;) z-pG<Qwikq4(AwN#^cPArn5UtRRkl~vHPkFZeX;+Q4Q>VxYTDWYr8(4d%@I@p8pP|H z+8_{REQ#C)mQE_G3U^}wsXEh((aMB<YI)VKLWlZas_XZ{y6so>>9*P}b!KQ@8%(Q) z;$%w0_90I+`-Wh{VI((xL2IO>+NVYB!!WsO;dBZ|z>bklh-tX0$=7+H^j)mgL(y(^ z7RYYMrK*J_EPN0JZ%K?jl92T<XfCIiDxus*6QrVtk|Xqvs%~O&M6hki7O!!ZUJ6Q) zG}h5xn?_Phmt32^S~S(|@G_DlG<2OP^NRsHSdC9p(cKn5LLb&pN=LTwO%`hVn_?+j zrCyY<L88=?soqTuRQ_VjRq!cgS`Q+|*d@)jy23fOG+6^i)$>bo9oub#bg61<PZ-AX zgl=<_7|8tjB>jb-OAh%R!}-2i3)t;EoBe{;>LtS!UNDfMTJT$2TT7wx8*al*BcED+ zBmb#Qu}I(8wmnoEd2(87jSPTD#no0;)nFz_Yg;{RP3Z(iU9t6t6h~V}RTTtCLd}Qj zG*!~$(_y9fF<_>{X&M*Ol;$v6&=++BQitl9ES-@!4p9#dfyo1=iz`CCtp-g>WxF*F zqgoI#D~C!p<q+?wF4#`|Albvo2DT$!gn>!l*cF+vh|HLD1~SXjojpAR$exkGDk7kA zp`fWGS@SXP!xbaXZOw>Q-6ZWO%aj6wy+qJ#zcj?E^A8?HU`R2z7+qDyNmwO#89kJM zNkNTxVMTKg1q+!46j5srm&pgkCe1@yqdA$!^xIi3=|iby77ZmOnwqOx{tGc-g9)t* zdr9Ijz*FDeEVBZb|G_#dBura7C_sDM0YRl)L^B{-Mt|;odP6Xf_xUPLfwBgE-16&% z{`|>%RiM~53VJi<my(9b6njV8g4)WChIX}6`oEsdUMP_Fb!oSxV%jlzC6IK!9C|FT zi7f095(3M$a%d8g4%OnRGe#!VH~aN@8SM~#T80=43yV>&{6t8tkmPH>aEQm60)IEk z*U#`el0kLD=PmEs^c8yoYv_>}B}=k&OKatV#!5=8np&z&P;Z+mb#{(1Ee_S=tuJb; zYN!*|MgPHSFt`mfE}vSy1(&sXs(}m?)8f31G2tR`E3;J7SZTYiybXUt{5%7I%-w-r zfr&2l?QLj@AOnr+m4e!}pr)y&6%&5YmqHHM{&}6<|ET7gw$dk<rKw!7cyYRNe!Ug( z=!Z&QQJQHpi=`l0R#IG1oGK|SFDfc3FDrr74ikn+1Y$f~R7E9I_#=e`WoH?diT+%F zNGqmJEy6%Tb)zy73&o6HXhrK#M#wPYAK)-`UB8$VP176HE!Ia!7F+9c^&#!yK3?dN z&>L0OwsfnEIyW>oEda0dW~9n6b;MEyZo@Ukr&+2%Wf}W()~f8Kj8;mF+!PdcVCanG zF5S?&+NQ?(Z~_NEHEHzv7<>U<(gd*9{o_I?46)Dq%o>GIAz4R5Xeo$-Qxei>GZwa` zD;ppml~gGWtb#GzIH;#$7$fhXi9l3}O;Mnd!g7|vI@G@%CWt2yz=JkPLvyH?pnw97 z;-Z;@B~}<L2<c(dKQQv@7mAhEPAW377-j?`6N7@?tB`W)>MZ)Id~b@IH#x#TyUk}& zMnf)k{S|B1tvklw?GX=uzsK~+Wu}!Or({8KVX~;Aytou&s>S8WvSemfaR~-6K`Ql) z=#NryTL7(y>V?1A88U#BGp6OhFq3BIpJEg<UdW^Hv%2HZCGXQ2J@U&c_J!p(7Of#` zp;4zPT<DW9C=WSJAdvPULulgrI@e-oRwnDGS7Y1%d~{MdND}r>r{#&CDnor4k_ByL zWH59U{3d%LqOg@hyGzm@gQ=y(#^{(o<z&L}b4@pOKCv!ArWsSM(c-dVLniE60pr<p zeJo>*Er+ZQY6-&xkq`Txsq*7ZAY%TD*yzak4M;jrogz=<6|1*c^Ccy}otdF6E{)$- z>dHWYzfb}XBvCAJv|&CL^17}=@DfwP(Ua=>Md`wHduvd;8~jv05s(j6%^gkcwGEYK z0<5&>ItG^=DwkOg$<mI6eu`1OPsY!OpL!GuCEu48c(JKP$VR5pXjxfn49j1}1AU{} zM$sQ)EL*#{UWeA26gzZui5je}DAiz*Ptm&OV|ILHb+ytAbVR>#J{TfcbTU%`!l))V zG1x0w-*b6U8Odm(UINKsI*nHQUShJ!PU?p}x!ugJ12?s|cGN(D&^8LKZ&j-*4st(4 z^9;&RjS7kqdIzQfkUFs{eYpM2(zZW@)?27|m2|+TH4Qbb&5bpjXHbW!)y$Dj8P&O> zqPIbgazPCqdjsh8O^~tm?Mt8;usav%OtUA*22`pxYg&SQ&f0o~*I*bljjVL9DM-M6 zMvVApl%qFox~SUu4@lxrD@Q@>8*zmyovtT;nPhS#wxy~KNe;{w3Qispf#24m7WyIN zz1R;R?~7`hWd2wwKN(CgzL!5M=qU!9SqaS6g^&=vN4hn9)y}CgTqU!aNOGPHMr}P9 zXJ7?q`%Q~DW0Ks4;UBhjt(A@1*#*<n$bp|s&-a)V^Xf!Q+5r+BnOSdDQu+3f_6iv` zRTaXoGW!K0Q|EssgvW$+w9%xYcVSY;Lrdr^u|sQ`F%~KFCvEE3yx6f7v9qPgO6b_O z*ELt8sEdYBOIa+Y>(W@&atKC!<@0hMPJr=LUTbcz12bTBwK{DkfYmm)a_SGp&E~^` z<YU6n9G-AN1Z^MMfmT+8sSwS?FiS{Gz2VBmOywzzzhrv}A+e4L`>l9N?LE*0!y`ML zCHuBdOj%nCH9jc!i&b`diw&^UAlV>GZK|59YuGnMX^Kph$-yWc$u9>)L*uM%cqZBO zsA2xXmciPD(1|?JGJ)j5WT(pcF!Q%SGS@R*%(-b&HJuo13;sAR?j;L`4BsSGpSS%4 z;_}%}ZA@rtKzOt%`)!2DWU{CMOkNGiYbKLelc=&|8HfGAyBo4rTV^>hjWk<IwwwkB z(Zo?U)z(zDWBOwHVDy_suKGQz8V(gdWf9d>WY&b5ek-dmuL-jsm2Zpy_PQ}?DCu&d zQ$F@F=2D@VM|)F}jDMk-fWzlAWG#`edFLEfqha~WIG7vrT=GL+hrVrxis%eZeV2iw z>@1A7Lz-<@1fvE;T%c6La%TZ(hSd~;4EuCHtNPjrEB?f7Bbb)CPq!XQ-BwK-wfsL= z4~bO||BtMPWD&AEYy0%Wb#1*~y_6yhZzx47!dcM~n9NjITwGdMT!BeVsbmVBuw*Ib zGKokrqYu6Y+Ric&djQt$6_n_#N161<E*|^QA<X~`vcj}$m{6)ldCO*0IY>d$qWM;H z`73d#=URKV9i;$+fzWAeq-6q$uWwEq)xWZH-HMeNuU9tI<OXB2*10p;T-C{3&N|6e zz*;7aG6k(S%Ib-bY(Av>v}oG~PkF4lkTK3QjAX1}=z@Vhd~mghnW%u-sNPV<)RKbY zf+R*XlBI>Eg%yc>oU4}UT#E&2hk<iuXI6D(dU`TFvr1-l;V8E5z66eJTd@|aY!XGO zva)2!;WR;U@o{?H!1_#Drg5e_2QulNOz(=-nH~{1%r<hYU7{hT2SI;=p|+~E9s`DG zmod1GUVHwGL{EQW<F^t=_n{u3K8TitK`j-RM(1m;ZP$6V>`gUL!^bE!7N!S8dH9(W zoktlIO)PaT1QgQYi2hLHr#6sz-HvpMwhvodqcMM5?bWEF=;DM_F&fx<ISDf>heZaf zQ->hAxQ4S_*(LCFVXxOD?S^0XMUV}K(>7rGh;R7jkh<o|#(I3SQ0By<CW6xdz5XS8 zs@b)**?G|R4b$!kqZpz^XhZo~!C<<IC9OIp!UF@-UB|35YlS@~#p>k7AsY1X^DLA4 znp|tfH=Vnnie%+~vP_tXJ!5b3HX;*~2HSLK2UzXH_7QnT+{`y~sof2)CuzTBc@&xg z>1dF3iE$TZdz5134N#vb66|c6N18E`1!%<koc&CP40=mqC?<TP-ZL-)hZ7E0bgxUK z)Alx<M)Db#*bVGrWU4jB+sl@+pJzu1uaBh8XJiw4P+%?{y5Iz{28b--WQ1Aag^>yV z(xJ;z0H?PO(IOx%RCF{`h`$eH8f^QqX2w`{ImN)&@#kDS3Xi~SOkpX}Sao<OTX<Qk zjZST&4H$YrdvhaJ2V*i`4F*CJsjLnF%|6@E+Y!^O57l}z9_X9gfe6hQKFG%GE?^DK zf$nuyX-_2CVP!|n-$$$Vt!nkOP0E3+7z!)Ld?*COBH&U+&)Dj5GAB7?4X%D+z<C}^ z>}<F$B#2@|iV;<U8X<YNF2-EWTBy=w(k0;clFG^w{sqJemaetPvc@`!mQtxp(a5ut zFr{(y4ck=LusE>76azQXf%Pbxg1z2raTDGBtJkix6G>1z)~sUd#=1?-7*XgErL+n{ zl)5n2m=TK$DvAqBOG=AN%CS(mxU_`Ru8WGLvA1(aR1L7CWKj6XuSG+X11os7g=LTA zf1xpwxR($VCm7Jqto269CAq>w+Kky{GCiifK>D+^SFHxL|F}MnLvT=^gfM)sdo#wi zHQo>mq{0bV>DL76P`okvw$?1Fmst?Zw2u4R?zgdY1nenh`3*@Ga&{<Mg#^x$s$me8 zpnh7c35L<wn@hpwUsPU{DlRR>{CS*|RhrqCqi`taz`(!QF_{CAH+DV&LJi$sm11Rx zx9-A>Rdt9m#Tg3$TTwupD%5qp(7G6K_@0VbQb^++2mAOvAmljk77%bGov;~Pdehzz z0}N6HWff(m6;Qj2%S($=$&xY@2bL1xOC(sXHpi4DBPXosk$MN1ez6qFVl&eeYL{9! za2K|1&`T{F@}^n5WsNDq-i;|RM7CKmiUf*(g`sF6a8_crl}HvOD~bv$ipncWun3|& zS%l%#vf6-vp{P0(OQvPwZnrTta;BXaY$0=!)%)*n%ro#DzU)iv0x+Z}XrxkgOG@4} zbqVYsz&0s3z%~3DQ)^XL^ZyJc5{d*0jOpY`LKr<}Ve&E+bC{59#|yXNQs&caF?+2W zn)GeiEo_g@PovVSlM2(R491}8pU>wL5F%gN%$(bR$}(IS6%W4l83U&Q+BFj_W#Wi6 zaH-k7+>|cWvYJKBO>7NBb{0zkWoG~kAxCJ^8e)K~v1&;bWJ@6B_2Drx8%UE*>i2{+ zI6$b{TbFHC>A(}wqVxypOoq5ai&tsDmaTSRb%B_o%C6L<CI@&9Hah64Z3<EdtZgM* zT2gXQYh|^VwG5q#!tC$6NL1Lw1g*GG04CUSgBAX0#q|WBwb{{F*Mbf^SH{`S45w{o zM}-0%>7j#Yv8s&s7nrAzm_nnjp>kc?MlB)~G=-B_WJ*p=3y@yct;%qZ5v*2DF&Cct z;MaB7l`n;$kbyi(BZ(;6=o;oR+sml<+xFZ*-Gqka$f^En-AyCq#?ISN-`<X~cJ?E= zERaeL^j2S^Cmr8xYe!KdOSQ}(+M*yC4}PizjgcJ8t^3b?<-r_mRfGgONX)$_+6}{b z^Rg*8QY0E=HM3#Gx_oa>pw2aG#KY*rv^8kS;WjMNvX%&|J-2CKj7Eh6)5~jRw3)W^ z5le?qi0rr{DPC5WL6g?-SOpNydiDGT>|JQro>XtN>S4m!f;J-ws7C3YTe+bW1j$iZ zDWf-7btj5TR)I5mwQ2o8>e)6WxGO;-Nx?zWT0m9xtZT#Rtj6eBkGX!8u&7p6FR@dK z48u^kLEBPJB=0c+A}lC!+hi^s3l5wSVA1-b%Ia1u!6k5^3IM`{z`l#9VbG53dP6kY z%s7h0aF($?pt0xIjIy|>vK6eLbPY?tDfPk6rNBYgQk;kt%X8~6a}S&3<mYp*9OIaQ z&1z(=s~t4;Ca9B`L2i|`D)#6O8jDj|T@7uszr75GOImfon@gHCgjiYb%?=5Z4`xx- zw8MN3tAp(m_<~qNGa5xZO;Z{Q?KAi#qbN&(0V>vt*u%MQNai2=Oe{iv=q39^r1Vcr z8xYz(r9ztmZwfqQ6vsB%p%Icn255bg9GD3K&|1BLAKOkaby(lt3OkCQuPkQ`6-?R6 z3|+BTW+^FEE-a)vyuWes8mNWY4wqTCn=lL3mb9g@X#kA<wOF0tUo7V}C*VTa=*`UP z7e@7#S;56Y8#A;^1yL(Ox*h&LA4h=2{$Y%BzQMiW#XnkGhz@VLt;cD02?AOqaw^$I zG-Q0=TZ80lo9vA0ZMRL{wj5r*C8ZEtCMryK_1d_hr;~cKn8GBhTcG$gfnkD31>03{ zSZ>pVA|u(_J#E;sqiN~o&P(1}2hfi(prnc&nvj(gTRBQN-$#V7qh}ig#!B12Z|XJY z_+nB%g^M(*7<H}EjS*xg3Da)^)p>Jy^0Dr^j3SKeHq@GapOP!uU2yV=>VVl!jTk>M z=-C>y-+8l-vzxYfh7UHf*$D@#5P>yh=~)d%j8Pgit|!v-adl*GAsPfhShR`OH~HHZ zOhIjEP>Yklwpb*lOVj2LqU=cd?TKz|T`{mq_yJ$YYF>lWt2+j)#f|~_8)hEE9RrS; zF*|<)<ns`wcE2U4wgWpydE4*>260W*BPx+aSh|3f3%sQqv(xNloYB~ny$${nSnHtb zgY<dO-=?}t%5Q6H8NP35bsQ2Si!;0VnbD7w<x2gnO2E2NjOGFv4o}(gy24pq4=Q8* zf(0_2hkJ=&ak%LyggFWG_<c(NWa6`J?I<yI7VSczFp(aV`JjBO6tgMN2@n9$TQFxv z+c0QGBL6l7G!vg<z}X;S$_YI-O||v}{EYw}NHu$!wntQADx>w=*RUANQMT<hO96!& z?0ggXFvs+CxPTwP3VTwsJn~I6<f9b&omeo7-I%a6-)qdOecvq4dV33I{JHgB@}5d& zv&NKkJ%o^~pvM5YCG+_h-l**EHVr<?*XzFcTH`?$MVS;($wl)pv<jhm3h)rRc#$2p z14SpxFjbum7Rw<!Qy{RnC!QL;%$S;`by1z#XNF|^mMUV8RaTD3OVVI@yW^>Z^S!eu zv%05$Ag!%?RsZVV70XfUOiRc-C<Qx&%ICKqTJ<r|4B9O-ta4!XCnPV6kxg4MV{i*i zmG@cU%$9hdbL9_P12XJ}hTeV>ExnK@TN`gK90YmD>aHV8OmL`CprRcx+zr9eQojFr ziJ%Q8R42l##jXJ7WU^3Zz4>KKl=8fqv2-q%-3`D}lxn>ckws=nIBA$mcXg$Ju#q91 z^@e*<Jih#>G1^<}<7b|21XC{Z1cQ$%;nza}#>EU-!+mHny|0nya6}=go3*fwMJL6e zW|p8xa8L0;Uq4)m5+K|2^jlobzQW0pg|fde5VPN{1;jVvYYCmIs_ozmEgok$D~h_) zeUdOtxoxY{c7=M2`BC(F<TyVdihbT%p8givZ*^gZk9p_3b$`nh=-#VIdR6E0)tPnu z=?#v(JI1>^Hd}&Kb*f(uVVNt&!~v3^*eun=;)y=Xb{5U3Bq>2PZOA55PqJ;cS5sya z?GVM&vdK)VoxpGFA?tKtSry5H`|b>Bkb!v@IwoaR(CQ*&pLEO?`Ll)EG6VgqGV3w} z1yofB&t{bMnP{>KrQf0*nymJKUX!N+ga=t|FWRq#LJ9S%*N$Q9B!cW(Z>%W_3?8)A z!3v~(C29VVQs{Eo39zQAH+(GiHm^$?R#}ViWTC_T*~?`tyb?29vn!*0Q(@!_{sBzZ zq}R^N2hE%xtzEFRVP5VnjR9-46{dc;tDLV{@fmMS10P;?=rNhkf-rbxqNrklAyMDf zKYm?|RKym5!^%rqxXl2WhIJrLt2BhZI_SADBH}_D;Ir}}D*w0aKFOlJ8JSX6XJiUc zILA(l(wUSZNpQgoO4JO8rn0=1P4N)3XrvkDr0-f;TZJv_NZK?q*rB9t&DG>03p>_s z3T22-a2+1Dtgpv(0MUThdiZuSgI+{-rin#)S<DuLHbl^-D6k^jzlMY9Hns=<x@4ok zNzV|Yu2MVUJ$lS&tbd)79fR;%_hEM+^%{9*Av+*5MDwW|zGP?1ggHuQzRC=DjOACh z*QJ}A8aUTol_fU1-l7fWma4grEd7j4;VELvbmHv9{B8F1LV<)*vszj`rxvjff>C~c z9D~<ZorNlkZI(^Hd(e0srw+)j!Cg|#-ezt?6p=J&+6S}iKCx$VNTl0cl>HTEI;nO^ zjhxvKB45iO77e4Qi730Kd<gb!%|4YP5rG!eKsqcpdfhEE0n#V1SdhUnLahsyrS3w$ zz)m<BRFmG$0#=I;+DfH9VD4Lu=4W928rhB>ycBRtF`9M#rr#T2Bx`8Qo)uwt?J)Ci zye46Y7F22%tH=NM&w9z8&>{z0fShSrFg;B*3J1$<c!sp&svbjH#=xS7L8b^#C*#1C z-ETyy-ZHvX+WY~u_R)T2HC<1QhKw_F?>rIYYpZ;As1j#gX4RU^K<B#k17^i6dmvWw z$$gmMji)!#;al_JYltu#vY}QwdB}LS5990OOD9yfvk}$7TggQ7DKUjFleuJ|UQ}yV z2OB-{VV_V|UK)D}w^X!qy4hCSy%o)@?(9P_v~Oym8KT#{wR${7&c9#6pwVb<n2=5f z=0WtXNw4l7Sk<`_2aDwQtytbSb7lY0GZGsUe6Su9PzMq$=Q)@S${iHNk(?t?(1Y`1 z_=-AL6s%g=53fSw=IJtgnwX`b=OhqyV&Azo4tZ!?1wA-4#uS{);gMp3-sI0PhZK|S zK2bZX5_6z$v8boRu{Wj?RJb5CC&;dxP;({>7p8@$r0^^9qC<LSV`?aDn5c~!!~USb z-QXDsplzW5vbzv~%o7F!VL6J~Dlw~8uor9E{J|d$_w4+m9DY9AR=6y?h4w^|qC&<| zs9qld#R0k>vNTu-fi5^DL(nX%U14f6Y9-NTGrNU`Kh;@T9^7MNNQr9BrSZS+%d{1{ zCXnQ~zKDHgj@=Mx3@36-ji?g>2W^iW;#=z2e!jIWwKY8XlM{ZX<!()gAvMLG)-n8+ zwgFCHQTa{l{tt(r>4)v?H*ExmSR_=MGTTae;{kR@LhNk>Ip(u7V`th8v@>t8yU|jh zWhZz+qJbD_#vR;5AmLdvrmT4jr#<volJB)F!PT6!G@_|cQ-M#TZkYvzUKF)#Y&cdx z#{$h1$*jfBTk0ZKQ{*MID>iKf-4MlDqXXM7G>Kf#A4tBxebeV!{4{=I<{vjm%&v#h zlKxL?$E-~vi`+6hS<J(+bkJHh1T*{g4l@`c{TI@P-ARj*E13H5LruD}vB(EAbQc!H z#T3NkAxk=<u=x`SdcYK(?CN#@N-ys6iBBbxW`jpH_1m^vo#EEohO#CI=4{aJwGu0m zg(?loU#nR9NQN3Lv{#N9QMOY%u+p7w*vEDBf<`-UY}y;j!otO2b`#DT6m&J6bOQ~| zsxl+W4TOtP3bn@`oUI_kMZ?d33ux+W);*5&OnjybNwLkcGLkqv3dN<~Uf<e|J`05h z7Y9lUWuGgVunCh%HhQ27@-uiF5^Ol3dB%=V*5(OR{ZbeZ`!NRg97IHhA^k(b$e&Cd zW0Sf#U>dcZSMCW(0#NgfiNcfyY^khMrJ=y6RA^ACNOYv^g!RhBm`6Bx*Cn0RBJ}24 z(C)1<2+Ud$bp~nnlw7+pQ9#$F@qN$|EMFU^7T~s~$`+X18g&0lRkXJiPO1xJfVwhj zOk11XrOkF8eUz?C`&eAn-mXEo3-cqrvbwY-WvjUjksiCXHP<(KH7wy}$R9H^xcscX zogH^kz(u-n7N!+0W<9MhYTN8{CTviqn~6RCZA6o1VM?}nu*<j-*mF%%WQbR34im4f zRIsD>ln~)kpr1E-Zzid*4Ghd^9%RPHya}@(n2--Q`!JlOEw!;I`m(7LMbV;gzdofo z@DRJE97WKL=6KH<8Dff(zs+K>@cbnT5Eb{{3>z;^5P$6c_zTH!70M`_%IsWt8Ph`Z zK&=2$*9<9Du&BYw-ad2qh_wa|)*Ym;qMEv~MGW24`S-_`(IrWq)*y^v!<*uDGXSZ6 zZ{sr7J6Ocd7{+b5*7-C@{K%pVq(FwFLlGGE^#qT3V<<CzA?G1vdjw!q#%I*>4##Im z6$#q9VgCBw-pqip?`q9q*}XaaNc$K588mvpnydnc29H5ZigPUWY);o4+yM;>J3$x$ z3`vJ}3UZY7g59soEID$kF(wG7T8og+s)|<Bm{oa0V&dm(xT}|$-=lPZH|)@21<vg; z?X-VtsPvUQTe)F;?p<XTvvc4{528RqS*~W{S$5|H`eg^UWiF)|zZE{Az0|B!4)cSU zQoTjYV#_Acnp&`Zf7?ldD&yCO>|}W{-^gTnOe4TFbcnKglx>^LL)VGf0Ryo=5muWC zn2&8i;$RaRdfSnrj;8wBdhaAJsySIL9EB&*gf?CAT61rRjG9v@khBr$v>f|pwq>;? zW{xJ)NXm4SE%;Dh)}^>U6$|s5u^!P&lr;xqyw^)qXi&iyL}Dc!dIMXb&IPzeemwO` zi6PLk2NsMJXGdMRPE}2<{wiRee2?VwjFtjqn+A1H{)6+qPM0u;AzkQ~KEn;|7-dwS zOI0PoqHv#N7-Y0D3W=)ZEDmEoupjcQV_`{b7ZxBNiDbEqFhLZv3t!c+5F^hExzV0s zLD_ynT4F9Y(k_jE`+Ua1u-fqob!FM}Lc+vY7OEoHmfNf4I0xOJh8YNs{sfFHrg1O< zAWxATj{r<NqHPgbQS?@pCL0vHsX9}t3Wjvtr6r)jO%FT?B^@Kncw|@mgdTDPh>yMT z?&?D-TWc}iR9i2nC9^AP7Q1CTV@OJ9p`~PLusUm}lc72bbzRVgU?ZYpHmf~beJGnu zbhwfwvc-sr&aj@(nnTtLbpND$WGj9s>z-u;<!nYkgw?|1T<k$)X9DX{dooo-zUNJu z9&SmL;ZASY{2_Esogv)2vcHoAYH3@W{!$&6l<nF5!zV)tkwJlwW6DvHY}y*JqvB~W zM)mWPoU~qQ;5C|o6pJz4TXSw$S(G7SJ4w>NExLcx9>2I@)fkI}KZK-~9Wo*8tVKcC zZ?M_J^kEGZgY<;tRe=?v7oCnR88=z5?U&5MF%#9i2~*NV^?1!FAo7xEeoU)c@@g7o zOIh1}Lr2zo%eO6(U*NHQ<oTO2L4fCP%13RYY~zZJU@8~mOh0UZf^q7UNh<;)SEABo zyMj!NOkKpxnf6w@1XTCKGP_|_VR~vf35#tK%t|OR9pJzr9xles+sGKcb;&Sna34c1 z6XN)iQM!XO6SYm)wz)#*FX|)%-$Xo1yS~XzzNbpGekHB}Bjby)q)>`v8|!I`|EqNQ zHn6qamK7^9nbsHw2iLqE9F+DT+~m^?*D6c#vgg=^soBp2;b)R>+X5L&dvJPbVN#}- zh8sI5>|VE+HOWyJ&?V^Dn^31Ms1RSc|7{l#8)eFf24VEU){7Pz^z_7&U>%B1<bN!g zp;k{?_f1mpT0C!}N_NhIlsENMZ;_tAxCTEBd;{O{vAM_YW)-zrf{#sxxD4M8d81MF zk3CS*Q|0mc_Cv^OU3qKFkkruqvuQY|+gCS(`{(}LY%`!_EGwI{y>ga8){<)v`?OU7 zftb}O2M5zwDO9oo#V;wmrS%OILnWTYDtN#Kq-D0Z<|!s#feZ2R3=OoEE3pxar&Ebg zhx*ml+<^)5B2>(z4c{haLlk)`+lLA4W$Z6ZQeWVqWK|X-Ag8*rQfV>V)AlRULsW_` zn(=>a_)uEHmh7#Vw`F4yiZV*cC=pNz%_@WvT9oY^08g<seC$uNQ7EV>`wg~(G-oq6 z4zG&=f-RtJY>ag9Iu?Ew5S}C-SdA)y2uu~LzAmd4t#M%6(%)|+Fpalo&2XSq?w82N zxL~3k%L~>fdiw_wkoSoi-SsEYGSJWIApHY4ZSQ}&QIIprah$L5bDhX>V@8d35^&pJ zHEt@$<ed^Z)2$pcsd9AuurYa+ql01E!(qAxhq>DyW-Q`~v`L@@{O#{)+<4zgFifX} zsVu^S&P-?53dhaIZ44B~!^m;UdG3gK<93npIXk#Jx;sTDxs%<U-Q9Dix;9D={XRL) zhhKXSa1(XL_?>WXA99ZkxyL!<0zTuM9n_rzbVE<0&Uk0%K=|<zVxH$W-n-*X6tM-v z?;zn@yioRQ#v|%X427R4;cxcBPxS716Lltq!cPi44}LxB>>7H$Tgbgf$UP<Go*Qx> zDCx_VYGvs8w2*sx$h~*SJtO4aH{_lba?cLAlOcC1<Sq%h%R=sokb6$ZUFif%%yr0D z*<Zx@R@Q;LsB?S3o#Xs5;Ep*v`3c&|bq)%+<Icu_JI}c_;NH%8C*U68Opf?JFw!|V z;2z~{4!B4A10%KbLhh=NJMb}t4@3rcG!&j(l>J4WSk{5NDDvz7MV+|ciRXDC_jV!o zh>&|^$W4iu{Y9P8&MinXbHREWkADyQvOqe1NuN^|jtBp~9eVz;KBpWU4}Sf3=y}{% z1dMM&$en<j-=~Zm5B@dwUEg%*J$rN(`=0BZqgNFd6c%)Mm2_jvrxYMlT-@26%3zP3 zisIg`&eHBwS8taD8_4vmT+x+2Dl@>n;|lr;lEnq3MV(zeJzXVT#hKo&qMn}8WJPCL zPj@Fa=_$)}m6gkjcnjMBVVMaQrt!7%g5vU?WO-*vS!ZcyXK8Pyr?aQ4JJVTMR8&#i zS(Z%o%4=)a@q2io2wRO5_N2-?Go`)Vh2_0H#YJ5e-NiknWhI@d;<8j3M)R2usGQuP zm~WJ0OtmLfl1vqKca@i9%8|B;t`h7W)KyW~Q(95dZL-vjqvF%ut5SF+RaB74;Pa`H z^4_9MXK5-^fy|d=x_e8K<z;0><;7(-RcO}vLLvV5mLLtKC7l&rJ(=QEad%l^NoRL& zabX3vwMhoPQIGwQ2AH&xf>bG@E9^}5bY+sAMP<E(<)zs7rMs)Et29+olrfp{B`sN4 zjO=um7G-*{Lw<KrX?aCaswjiply;Ywmv#4|zCs0nommPxdrQ&HDNYu4rAjM0d-+;- zNkv(z1fS{bEvb-Kf>Y%sdBrTT-m(hRd#1CzxUjP;*@+@9E=G}86qcJhMdff&BQlgM zDd_F#=}mTbVMR(&Z%<jOqNhAlRFW($Eh{T8MN&<MVE<(3R6$vBs<beZLcTl8%DZs_ zKxb!BVWt$?W2U#FG}){3&3&r`IRSZ9=UU9BOpC9E$Zk#N3qVhOE@zzclEy>~=xU-D z;GRQJ=DrteAAONI4%LSdwT?3n7=b9+Q{DR$>l~*={mFMD4sx6V;sVFPtuvy=aSm1d zrsA=Rrzu{jNSV#}_n{l_FCs2<oGxO6<9u7)XR7-;b>FFOO0@`@c1oYfWJlUa;*RRZ ztrJ00K7|MoFrB!Q<IL3O`zcl`B5M*)vm(>O_zqL-Ra~pceDV45ip(F~=PCY3k?E!X zBZ|)}{#Nll#eXQ~KyWeqIK|x+_f;%ctWj)LOe?NbJVx;p#fucLR=iE|0mY{jUr~Hp z@gv25C`KTQnZ8j(G#$IBdxm0};v&UmL^K)w>ONiZGR5nNP$^$l_wR^M7~fa-j*#X2 z-hPU;M9|H_>J~bf;5ej5ria=Yzn35)-h84epnT5Ol8FBjPUr{W<$Z()Ny&Q>58k6T z$M^9$p(A;3mn^;QOn;<rDiMLHUC~`kgd#)jCbGL}3nNhdK-x|u;W!;cg!=|@isLLN zB9bH3|7hYg$2mdWrx3x6XAwcn<RiX+IdLz?xrVqm^nLY5mgG6J&Tt@oLF!g?BWgjL zUTS&tr}jpabOS5Z4HgyuM#VP8C5maqjN%cBf&3so>TZmGv*LFYzo&Sv;zf!-R=isA z2F2SH?@@d}@iE1x6kkw$MbYxz+v@(a;@=fNRs2%XbxnHXilY@LC{9+~LvgyI<=3RT z%M|A-Rw>piHY;{09;Vo-xLk3S;#x(^=f|u2B*oJe&sIE7@e;)=6t7jhN%0QFdles2 zd_wUV#g`OcReVG7kBWa${7})#kAJB<s{Fm3;`WL=Dq6WRMcsQV&QeS%Rwy2*SfjX5 zk-9nQ?GVMo6}uHzC|dcnUfmlNPf$EX@eIZ9D_)>@sp6H2*DF#N=J)SXykGGV#a}2s zr}!(y*A?GVd{@!RMe4|m_n(SiE5@S6f286##hny)Q=FzaLvglZiQ*i^O2q|=jf!oG zOBB<J8O0+Mk5oKb@mq?U6~CkSJ;iesFH-!m;?;^bDBh-ckKzN0k10N-_=4gqioaES zTk+3|e^>le@k>P)4F=0Ot~gq8g5qSwJrt)a?yHzoEK{7TSfyC6*sR#0c$i|R;&R1R zifa{*Q9NGpB*oJe&sIE7@e;)=6t7jhN%0QFdles2d_wUV#g`OcReVG7kBWa${7~^9 zivLoKqM>5BZl}1t;*N^DC{9t_TXB|RO0h!mK*buxg^C9&9-?@-Vz=T7#eT*0iW?PA zP&`HP48`v&UZ8lX;+2ZmE8e1bm*V}3k0|~^@j1m`DZZ}wmg2jL?<;<+_)o>J6=P6{ zSgs=#$0_clxSQfM#TkmT6-yN7C{`*iP;69eQ(U5$R?H|Kp?IX?(Td+v+^qN=#qTMe zt9X&(j}@<0yg~6c#d{PVP<%}BDa98QUs3$6;@gUUR{Xo-r;1-Hx^d-y#nFlr6elb0 zp*US}U&W+inc`f<D#d!mX2lN0!xTFemn*JPT&sAD;_-?nDW0x)w&Hn;mndGLc&*}1 zigzg9tN4)O6N=9$zNGl7;v0&8RQ!wLhl>AD{Fh=BinQ>*;`WL=D(<2<MR9M%S&Ave z3dI8zYZMnM9;|qX;^B(jiYpZR71t|nR6IfP6vZ<Xzpn_kGyJ9)cK_e1e_yQmxk8cs zZ`Ri>igznoz58)>Kco1v;_HgPSG4-}2kN%{-hZn*ruyM1MXP7;tnMj_`HKI$<^7++ z|EK4}^`HJv-~0djU52jyzuxb<Q|bAB#YYvbUFJn~+y2&@>V8-8Z;GEPex+#pStGQ6 zFivrj;vR~7Dcb&3vAX9d&R48gY*DoRs&A+}qqtIWt>UqYwm)^My1%FRL&ZxJf1+sn zQMao59>oV0pHO^O(e|HyqwcpA-&6ch@pDDnZ^~7Df3)Hbin}OIRkZ!3LUorZ9-vsG z*q~_pNr$StQ?XC6U-2kK+dtZ(?$Z^|QM^F$GDX`jx>4PCDBh>|h~h65ZGUL1y5CTI zNAZ2dPZVuGD584%c8X&acT(J4(e{64syn5)pJJtAoucjcEK>L3iam-)C=Mvv{>~<K zpQ3oC;<<_!E82d}b?UxF@ovQj6dzZ#{hOE7{kr1s75}XGfuil#{9D~IGz4rXM=4HF z+*#4~XY$oOTd`Deu41*K?Z>pLdx_#Q#pQ~t6>b0JICXDUJWcUz#q$+yzvU`*-=GLE z`A~$3RovEpIQt?@of2-kqP4fD)cxPu-4ECBJ&M+zIH2xh6gMfJqR8<AmcO+l{@<d< z%vO0_s%Y(m)#_fTXzl$=)V)m6+6Pywd%fauiklTrQ?z!$^VNN+;#G<_DBiAU?ST)g z`xlDOE54%mJ4I^;{HwY@R{TQIRr#BzXzhO!)xDeIo{IY_7Aac0-#m3MP;64{P+Y2L z?S0==_mPSl6pvRtS<%}0exUA)6fal2R`F&<Yv231x*t<~TJa^t*A%T??@#LfyW(ex z|5D6RIc)8D<JCP`kz?JY_q`Ph6s;X^e|1+W9;A4%;$lT>zw1@^D#dk*8x>Dfw066* z)P0`fj})&|{Hda~*ZoZ04=FyW_?+Ue6|J4_59<Dl;zx@AROEmT^Kb2QW7NH);;xF* z6!%fIcDZtOAE;QX*r?d9Xzg)b>RzF^M)7FHZ!20m+;`ReeZ>nEf2??oqP4%>sqXs~ zA60xx@kK>zcY9Oa?<)RH@l(aG6s^5&gv$4Eijx%gP~1z=+S!WLJx6iAV!dLEqP4Gm zL){t0m5OT>k5#mGwNusoJ;fg?UZVIDMQcyHRo(X}KB)MF;<Jj@j`kaMzpeP5;)jZ# zD_Z+muG)P@EAF7Ui{ey8Yd0%YcbVb=iZzN2iq>9ssJc59`xN^Xk5aUDvMuU9UGW^n z3luL?wDz$Z)qRKJeTt7L{!-D}#kQ*Z4aIj9-&g!Z(b~fzYQNb|ajfD_in}XXJJ?Kh zrxf>7tW>O1wDzw>>ONetNAU>70Yz)~+NADN6wg#VSMg#+Ywx;F-N=^64bIM@{E%^9 z;4bQ(s%XbY3)Nkwcz|M!qKxa}eLF6CsQPy*_9^x&9;Il<L$|2=bj5QNFHpQp@oL2z z74J~IPw^4OUn<)1&#mfyL-8HO_Z2@;wBw!;ZKt<W9ILpKqMes8UEMPkQ;Pd3Rw~vh z+HuZB>ONetNAU>70Yy8$xk=rpD4wZ!uHwatc3ks1b>E_Rx8ehek1N{o%$L>uy5jE@ z|E&0dq8-Qlx4L86PRo1<)c*u^@2ogQF<)`EVyWU>#cD-6ZrQ5tC5keS0`V_b_i9Bu zUU{6lH!Gf|c(&sCikB*0rFetl?TYs*a?T$40^(6{IDLOOd)WWm?OOkBx%{``{!hzG z>^iVTPh)+dlFEsg$0GCs<Fm-Me4Q7AaOJE|xc4U_{8Du<BjUYH>K1uK<8{H>V^*!} z>;kSEFxY4BFt2=_Q_$17uG1;#TDw**1!jBT0-V5Gz~=>K?^NGhw(z6uB)0GqnZ6eG zl<95a*^}v7zdXHSb#FfsA@`kKT{zj-@jdOtdB4juNE*{)0uA<A)!99OII=-xt%(Ll zW}SlW{#C1R8m~W0??C6Oj8lM>1_hn#aGYt^`gQ!y@`3*KYfx<e?T`IF7PI{o;|A5_ zuw7x>1NBY*!r@qdHrzhj2v_Y3x9>K>vHh~~vClr-ciVm8W^E%J>B`1eu#Ip%zHsD$ z;l8`l7mjW5aN*YZ!X>v6?l@mK&UqXzzAe6Rv|$Vv?z_Hlti$2L{lFKl#21cw2S~x2 zt$i`>{Xej^{HEZ_aOnQXFC31~_}d$QEdT!$j&&Ul$F$p@y`KY*aQdokAfOFL{b)P< z&BGsmXWeGz){&ma<B#F^J<hN6$M+`Oq%Hfi@wLLkAKzt&k8|@F-wyb*@sa2J@fE|t zF)I7B@sW=F@!gI1>fp!tCgRV=cM|UX@zIX)H2mz(#&-fd{PA%y0%a`YV>)eooUh0D z?C)+=XqT-Vc-m(_#JxYha>Pd)3FF%te>T3WeDC1a*%=D$I2(!Y8Oy-u?QmS0>9ark z44(;ncix?5?j*m<Hr{^sDcsw4aO-p<zI@*3&pvwsZht=d5Z^rbF}^+UXXE=V?(I9c zbvSN)6L0iqpS=pVKfY@a-!<@Kd{gi@C_a=KfBS*h&c~nq4HsX_U5>K`?IGivhQHzB zdvUCx=l>MngAZrve)=}z`#s{DWfO&P_BNc~=Mmo;JY@Rz-bQ@egUN=fk8phR9(5eb zQN}l88}XGPzFqO${)S868pM}CAjW6g85X-&zgiz{h>z`o{S6o2S%}Z_k!@#&ithx( zN1K5C4Hw^&i0^su2-9cVnW5rKfobvI`wbW0`CtTwV|=!q87jVo2*kM+_BUL7HzU3$ z5dq_~?aWZ|eF5g-n3w$x7vF}LK?jg8jL)_+L&f*dRLA+XjSM(ke3!j~{Nf?wqm0kN z-%#<L2j)SP-fy`0?%tY}FBJ$qTzvN+zQtZ_!>8{}#J3FLm_D{uHom{%-lhS!&bU1t z=Q~4`ALrrw<;y%UOagw4Z!Z39d|%+6@sW4<yKpbZxq7p?=atX+$9W9?aFv)q(a!+- zv*E^TIO~5i!d+$^Kz^6MF$m{R-!i0c9{icUO8nXM?SXJnhzfYgujP6}Pu7jc@}tg) zaNh4S#K*A*`?I%1UvW8G5Z{~lSS|edZGIObOw#6$ujgjS0iTDBud}DSpnrD4`z1?? zQYERf!irQPQ7FFViam8oOG^`pl9Gz@a`9g_;&|*R?YcH5mT$h4F+MN9U0)Q46$|8p zPK)LFWVrd3)v?%~(am;<I7M-q;&esISw5$HB<_p9O}B5p*|}-MvdITcUii}Ij}}&a zvZ?K1;KYL_E<CJn+9$_NYg;y<egf`~?TZ(+I&Q-GBJ$CMs)ftO95j02VJjs>&&c`_ zxIeb9)!DuX&wBC>a;I$UbH9jwT=l_OYbPvo9vD@2f9<CG)+}%y+<u<(U}T;%FFJ42 z?I+2%H}+lVj9oaPdY8U0mwnmi?EBekW9mmQ+@;S=9NTBUR`tQAwIlItmvI-}`pCy4 zqZi$J#ivg9MYry9>!jKpY|IagMVyRxL(I}yj(ZDa)u^4I9pBRF4Ejaf+$W9%J-B)Q zi@o=NvZ~15N6$GoHQnSON#p{ejX={mh>kQJprz?<Ishu#bRvu-8&D7firG=eoO5=} zjyaDy<`L7FM#VAb9C7r0->zNfo_o8S`K|x|zutQ9t#?=V`Kr#TQ(@PxUAuNwoq7b% zLg5JacYEQ;jKR1WjxC%8NDFs@H#{%${r-g5`v)QN2X}+}RFNBhSPSQAWF0Rpa%?#v zwiwnjyic1>gbG^pPq@VBx(fekN8{4h>Gg~oT19h5`tJ*ocqhX+>2GDiy_&bf=}*sq zdkybzO#dzp_gcD-O21-XxDPxP?&H$8q7j7-;{89R{|5{ZT6Z+w{c}3!*+T1i|C03G zQ1sBjbYGF)7i9`<;JeqPzt|h@LwNuC^jIA3L;3E_>04{zK8*JtN)OG1`*6A+O`i%z z3T-?K?k6(#Erk0B-VeJO7q-K5Bt2<v#`02lHqq1D%{Y7wJV(*f-_1B_Jv>L#GuX`- z7l-GVGm+phH{&$0c<5L@ndW9p=9A-=!Bg&L{0USK9nU8--Ha#d;5mVwYB!^Z!A`sq z5!AUE4Gr-8iBC4V8Ce)WhEBR2PmXeX<1-;n=wv>*#LYOD5u8HL6>f%$`V0M;o@?BU zbb3yu=Xy6|UL2m&gcxqd@jJqEI-fk`W?b42o-^oq)XjK+v7JfJ6RxRVz9QATgYmO? z;>R}CWeCUIiocifGmqlWF#gA^Kk9^O`3jvyhUv30bnXNQrgTnzh0bS!PI@`r7tkF} z=i-deg><K-H`09(-M!Nn(0wu8{nOj&zJ%_<>C5Q8l<r~aoDd6LM)&sVhtPdF-SPCJ z=)QvP9n<GbgZoOlGYx}Y#q3N<zoZQJujc(}>DSVI4c+DG$E}9@TDoVZUqSbEbXTW; z$S{AQyDt4Jy053ZG5r&Uxq<Ha>FfHyeIwlq(kGR}eG}aa(+lXnneO)V?;!0%x6r*L zoujbOt#mI-?@jk@bgxSPd^@=RO81)d$-I9%-Rsh)%!T_7x(_ilFF{eH4#G}24v`wV zb2BL4w>Y#1B!T1fo3{e@N<F^e^jm|zI5b^6;eOIq%e-ZHkk&8ChFdOAdiOhu99ZG8 znf32?0zH-D8QiaCCwOLvXIQ^RdS;4e`+j@VQzf2wzlHSdDV`nsEtm+;Eb(OaJCIMR z#WShj&?b0hizmC^E)YVY8p%Pv(|>see6?OVN;lvP^wjPW765|KaWCK`*uW+TE_VrK zn0M+LXHZ5Pyqg*r2tTSQ?gfAJ!)-F*mJL3zWtrn1%?Erd0?FbGc@c6dd_tHv9e02` zzVD!nP~VY#n}!Z>`wu;L`cQ=3(aFg81MVVE>P*8s+c}}WyJk$ys2T)8iEpX^qB{x1 zT(@eF3xC=e_@|&Oy#~1%5eDYn^gjNZ#dwwx@FElVj72ET#9It+AH11i-|VZN2&3tz z??tKxF`E9GA9z8uEO(FLCVM*%AK(s*P8)Xi^x=GKV8l<HJ23|Z16B=63OYF7&k2JL zftLkF0(%VKjotW;_y@P)hkDW<>xe(rLGahz{jhl(og66ZxFIiOoNZx)`+1R!-;i>s zPeg8nBmIwL?=dJE8XhxuOvrGkInDS(3wuR|zcvRsQh$4TWaJEx$NEDV8dY@R!OS;u z9&uLG@LFETYxQhi2gG^JP3N_FS6;I_cwLSqH4*28g}i1h=k*;4`MSJ2ZV%qM=1^W= zDdzQ@{dnDqjwIr&2F)VQA(CRzIJ$pzczt{XuUC%ewdIezUR%lQ1@*jc-HX?Mf%ziN zTVRNYQ-@wH;@m8Gu7RM4IGi_)IIpAQMxN2cBF+vda>Thw^89Q&-OZpJ;siM(&R{f` zh{Ig~C=qx$;&e)h)=Ro?O3bH8sjr<OPe<|ECTUGOh;CPMRkD%p2f<bm=Z6KnmP(4l zFd-LlP8-7OFu9*Ki|${Ao_~iJiZ~CT1xK7($<NP{=Wo!+5s#GgLo`|BZ4$2~JM%h1 z>g7%;<5)@e>Giz7q><M@g?Q~-#_N9$<n?cIEd_s~W+fz78%CV#<+}WEy0=OWy%lut zlgsNRCA@wNk%PL}jo1H7<Mr1}UjICn*UUm*|5d<ihq!lWqPtU4Iqwj<>xE)>Nm(A3 zcutm@y-rfuPiVfKP@@47IO5C^Zh273d)!{U;|dKQf=ma82p2sPr~7Y%dHo7qdBj<R zt|a2@F`U=^DtH|vcXr*K?&~^vEg8sbSg7}09^KsG9dXtPuO2X(?sKGe-jaBl<ytCf zJ+eKYUOk=H7O929Cez(IQLe&2pGeNzpiM-a(}k*!FQxlgp~;hn(%o0mie}NhtI+lo z;i6xqEUP7kSNG)8O;GP6&SlcFZdpwCx)`s=OKmobyF}9JCm~zqtz#U9`B`dz(f)LA z5bAB7M)#NVc%7fa>%&5gwtBkTJ9(Wb+<2(8pgHoiq(AQu5ssQ8{PvDeZ;+Ii1ILK- zrqs*3lB;v`d1v4VUKa{Sy<1E7TB-3Cq2x7^!y|<<Tm=?!dd=kZ?Gj#p+raAu!Y$hg zU-cD!J58=5d-Lg2lFDv7(0zySAy=hDoWrE<@`cCVsN$Wk8+lzWWvQ7Vcccc-s-%08 z)XUvM^HD;pONE{f^x@O1r3Pm&r2C}>y#7=2{FBsI@3p-1jiJvHx*w68mkTHF1>HH~ z+`Wd^!-n$O?*Lw}-N<XU+__cad_~?pUSccF=F_3oyuK_HUMO{Oy3~H(!MuO9<a3w# zbXN(*N`&%HOS$qTOyOic{Y7f(&l1~CQsa9|ZgZrri}qz0u40Qg8>JpEm-^i-obzZi z?>9=!cZ<yYP<Vs8WFyW5sh1j||DNM`XM?12s>I9{K9I3OC09!QW*hH3u#VSzr4<bB zNB3qa-2wa1-7a*#N@{bZJUvbFe}LrYP`R^FLOvtBF`$EQ^%b7KSK8FiQlfiXdH?*K zdA(lB`;^@IkI?G&U3mYkLwG$?X!2V<-RBBVwvMKIU>&cEcH;G}A-o>6jMoL*^LmPu zXt{90V?u{MLZu5NOt#SHpS>9J5Q!loHFfcJyt6@KeqP$+CZS$G34i1iK7Ce7bgPv2 z^$Ol;%;xpbLSFBe7`8LHs^py)B_}wg9PW!GOkB9`L%APn;{DOWlefuJZw~JqU&QOF zQC<(1JEP0#E*9EWOC8;?ns=s3+c{qDR7(whzANv)FH~J3JX|C6$;{>bCaL}Y;yzz; zwZFvU%Kb?a!__Mo@-?aJdWok&Xn3gPp(KY-Pm1w+hosJsqL*ynk6g9iO}pXRyqQ#3 z_y?3wp2gp#zaoeHTRDVseMScPsH&Esn=WBGa}PO8L-)O#Eoi_*<Xqk!IGK4JzG`<| zcYY%c*D24;#5MbNmNxGb)=J@(jJ2e(4%gkT>W%9j`>w}zdP6O)6<09dGq<t~vksn$ zYt2>UxjDxy$F=cVa@)KP-fy{|RBJ!6FRmS{_|~!+YjHjJCBzfm@XH9e51$AAh;DSJ z<ioSceUIrJ<?b;7aH_kJt?FiX`6|Gp?vg6NbM77#A)DQ+S)0$h=L`b8;{HNe_`3VV zM8Mnb3GIMy-3Wc(xpkBh-@D(C1%Gh&V>|oNJ&YCfvzyD;x4Ly~D4V=Hn8&-lPw`BM zwZpe$lhMDh!Hw;lhU>WFSm8Uyna%M9V{qN+PP%ulWq~J8BO$V0uE%xCw<uU7uQ$n` ze;+C@Qt%PWSa>kWQ8bpZ6+g^oR5Fq|+w~V#%+&Fdaow$s4SM%}#kiKvT!HKKE9ov< z#X^_g#KKk_&#YG-mWk_(@_D$<jI)_m-N~Hn`N=3;XPrYjR)5Y0G5Z?cuQ`(pUfarY z)pa)DI_GeTf%-P)q~UDlzp*3>*QQ(8DCcIj;JVL2WRV42JQ-=e=WtvX9?m*xsb+(2 zol9nFd!Fplen%dzOW)(uKc34x?BAP=wY-AVSh1AXm0QRJtFjNk^?<8cRh{*0;;SDZ zP1YPn#$LOa`8;r+3|tSI!G?ZttN_;yCs8yW@^3bmL*F5751Td&*Taus)opYeSg<49 zFIk!+-D`&cHo4~>2sp}}Pq}lndj{!njQjdPz_IRAWY^=|T}uGRyXTRPC%E&O_=)bH zS&Bco*R%Rha?fJTpX_c&a-HH{!IGTrp0NOMhP(fCz`5>nvgUd2Fh+g8yGu6U0{3{< z*@f;mEc8Wg^I?FC-MbmfCGLGJ&86;gR^?^x<ne&Z-BVWsu5kAzhhFKnlQdVkdo${* z-DSLajr&jL>{@qkzIUCwFQfj8`!m_=diRfPm^ZlV$xb)Amu?TZ$-Ry(@n&}&seOxk z4%_st?$g5ox4CQBZvW~|XMNo6-W&(q;Z9f#xYI3R1>EJnGXQY6JC!%@ar=w|-0Qx@ zLf_|Rv60^IE@XNSxMz@CA9R113xMGX4L$O(djxO(&3%%uKklw$^LWBtmj!s%y^ksU z!+miFz;o^;y#SltDQf`Fy9@Z<3oaLrM_zRQNt(UnhFGGPU5?Kq|8ytuy;s~rIsvb` zKe9!>=I%wU<aM`T1K<ren+^0|?gWaPH{EMlw{N*y`TE;#A**AHdjmP-9rq`O{I|QF zLEd%GCner<$FnWI@1D%mKX7+s$Pe9v*%N={zDeHx*qzOSec~QN;rXe1+g^ar+>vZE zpSuT<dB1SCC$YYC_g@M4%Ds^AwR>U>;2ZaPa_hJ5=?wCn8)q!vyU&ohe{jF525j`M zWECIb6|(w|^oEkUM|meQ>Z85yS^&p*PqW<|>pkZJj`MC{29Niqk=al1E~4*5?@Y4B zpS;I%04I54Nwbr^J`I4gy)82U=X#OD0q1$!kq6KBjyV)?q4(!q02g^<>ATpAF9clT z{Y7}!dzUva^Ony7T<*O<@?7D4Pnuony)_STmG=aj;nm(SQt2A+6K3LC?=Z64U%bZ) z0oQvU)d6nsejsDs<b6R7x!F69l(@~ig~a-+H-gN5hquEVz@6TLjextomspg0yaz&# zk=VoA_rQ&RMBYyWaL}yxm+U<aH&$%obyX#W!~wUK;CiN)*$g<#>&-ep$NOL*;9Tz! zmgao#<w<}Gypfb+7kQIdKNowOngEx1FOh7Qd!I4LmEI${fUCTt*-EeR<}k<CdYR;o zzjzN-0Iv78=L<J_m5ll(?}r@$w|IB+=B=K~y!_SU?ybn}-eUUh^hU5o?((jq7`exb zjs)E6oiPA#zxOW^>H%*&net(8J2t_;dEZn1KkBV!9X#fpO-6XayXy~tC%t2K2R!ZF z!S|l=zGJ2R!&^KB@SK<VN5J#mTvq4{-iq;nm%N`@qL;mANtai=M=5Y$^&TZ7yzWJr z&>P;MBEVbTAWEpWy*Z5Y9j}-{{_X9|R{EYdegfcq@7FlsBk!Eu03UnH`vX4pM(+#w z%qv_C_`<tsKfssXRg?-}d+QDceB*I>cjP<oYi96!Z_svtAH8N4>?iNYfq<=E$y~s% zUZ@rDo40`}{O;v3vLiz0tp^+#`j`|vD)c*B)X||FGSIQ1$t2`)p;`*f6GDF?+ngAB zpYNR%+E@lSIdmKA=+B}1_5_?7DkSMn5B)eCa7L(k9N?@_I)j`Y`lSPKZs<Dl(s`k+ zY;+fdMzJUthI+Fo7l%gjg-b$jWdJS<{d)u8^3V}|09S=BWj$OSDsKT?8~U02a$V?K z(&hTlX&&H)(4FMjn?u9c$ZrXqP1$l=Xe?XJUqf%OVcikhz-D%5XcjeydqUR@2HYE3 z#(KCvbTk{}1EE>-0S|?$n5Bn9<5=O3ggzrd9u1vS0Qh_8Y0~BKP`_b-H$!i*3~z=0 zNLJhu`qN>6cS77e7kM{y5t;A3&;nBagV12s`-h=?vc@N&m1_Z?h8|!nUxen9%fAd= zIvem!=sq@*Z$n?R(BFst$xQqZ`k8h6Q|M==_jBkF=JPM%{YL<<4}X3L;HL0v403aL zHiO(6es~q&w(vcq((U0&=IoB}ZKD8ph1ZZV?+$<13Ai^rg;MCg@R&@%1L2d&bq|I= zCigrX{)jjK7Je=r@M!qhWq`-RN3tHC2wzK@JsEz1Q9lzN%69u~cvmL7Is6s*?D_CX z69F%U>)AS94!5!%UI|x_3tkO#>2Bop@FS$|8{uDe1$-BNh)w(Z@X=(VpTaqmHa~~6 zCjqvGk4Xdk8m3`C@>}>*wyNL5*DV5E7@4^j;G)PVX7G~8m!#*Vk^L3`E{`l23%DW@ zWhSnU<mUmdi5yFDab4tn`u-BRmc_gwlD-~rV`N9t^Ond@eDBuC7tHSMk+Yc49g+K3 zD|bbjsT15C$=DrmZ{!%JcVFZ)vdx2$5jB8^B1e$H{uaqE1w0Z-XUlmkayeV--y;XG z-k*qsN!BML4^W~!9r=VWJQHyX0oWfx-hD3eI&1p*$Qf*#FGLoS2VaWB8S>@GQ+ohj ziTrtQz^jqDZ0KJ`N}02-B0KB}_$Klmnf=?yaZKp@$PLwiA0l7!g`Xl%t_1uXsbmw~ z8W~NF{5A3rOY~c09ZUOr<WRQ8Bci`C<dM<pF@U3@>qwrXqjxi*W22|>_2Z%qWTF$I zOWDv*j9yK#c2e{TGQ-Ky^GJd}N57~7oEjZO3Z4;tgM4;o^h##%?C1-uxO1YfZ4Wp< z`b;_Cg6NsGfQzDUi~w95<(7@erP1t}fXkw<G0rQZr;+4WMvM9au8uxSp13A@6otoi z(bt9m{t~@}%zi`kVlvT<(R)__ZjNpyC2omk9uBxII-X_tYjhJSct<p?1#oBdNG5xC z^sn`Rd!mm}Jlz-NzQM@-(E^g^!RS!Z<)P>g%+gcQt3rUMqlJ_O&qQCK@7ZV*iS>`@ zNXGJ9bSdlM`RI)#)(g=!WUv>bXH5gV6#a@Xyd2$uH2Y_?kahc7bn<M#>rscVpV%u8 zA!XooPV7GN#ksLJa{=eYUJV1zk6l1Mydd`5D8PlWO_T>0#lCL`TpHV(Y<yWPjbyky zR!yQ@5gT0wxH2}Aa8+y-dGzX718H+jET2(d8%tweuZum8lp}wM_3IC~J~oy4xgmBy zZ@`VQdpZF(#dhI)H^&a@1-K<PZw=tq*dKQV+!ninHF`%ZPU_zon@t&dS8O30?cK3v zHpP2lqv^XhwmUifzSt?0=l91>X#_kFD<$hZ7`v9D=AqaF2LT?A-A;M%Xlx=Y{ju1^ z2LS#adp`&8cq~Nbd?NM_*6)+C&skkh#m*TAcsf?YHvdfQ9v0=<*b99C|A<vg2Rt7; zj(y7uu@{*67h@G{m@mbCW-Kqq{@Mn3BX$G{`L9?#S^UjdycqCStevd-c5DVC+Y)=9 z@4XZI_aMN(V;?Z&yRqyAfcIjrQzX70<3^~+2eChpE+58TYXy81d%p?racm-kd=h({ z?D1(Vn_2oSb_3hX=dmky0DKWUks16lb`$CHRqQD;?$@zF!vWvK9w8yWjXgy1{9Wvn zF@W!5btKOZvFC;YevHjyLO;b$j{ts-ea5`}5?hxI*cz*&Ec`Wg1f%{>>^~&dZ?Qbq z(eJTKcLHooD`C?(BJIvU0**{uxe>4_?S3Y7RN8P-;^?$J*#?hE`wt0nY}&1CrpKk> zBlA$Y)7B$SVdGHmCAbkgnX)Qv|6aJJ-$V(JF^FaE{V?zJJ-GnaepjNhov`OPp7S`` zpyzJw+sDBw8@L_(yIEONR(G~JZM!a5v2N9ZWvklOt?K00^qcX8;jG-|!h-C;%>`@t z3H}A<L&*!4u4r4fw!OnC+jT+HYJ4<#!GXBbv7mfq+gh%sU%dd|E1s{h6(F|4=G>gT zq6MqgbS@~H-B8tVVD75y>}LI_F=PAR$;E=z>sSA;<Ye~x>Xz1Ke1};w;Bfs?8wrE& z|H@~OK{uXfV7|NTgs>vk|D-Z~so#ud_4uEI&RUY>oh+Y+<}HmwKbahewQ}u>HoS$1 zQ5+m7Z>eMMF>^~`)Wa`=Y&lNoBgdU}^x_*AA2W9Lgq^Y91J$ZeHo@tI-CAB2?{VYB zUOFD))QE=C#>~?C899@1$;DCC8{%tGP8{5@Cf<w_PZ}lx_#CIwOSlPBd7}YmXpUXG zx@Ap#eD<XH_#FJ_j*agcAG>?!*m$PAIDy_O_$1;<@v-I!<C+kcSP(mouje6CIOecw zc4@U9XOSakR?aMK)<YkPO^BS_;^xFzJ2=8CkH<Ruhr+ZiY3bCHCaP+Ac*S%a=^3}D zf@B*nPd3D-sEg&WT0PlD&icTaP5DTMN0#Xsw&qaM)RWqIL^}=>Y{2nHdYWKeb#+cz zZH*jkl5zkgk6ht-Nj0@K%uM6V`f_{zQ{WUJ|7eTVOAqc?gEL9x;6Ho%SZ!scJ@hY+ zr&a}yX$b}i9MIyQI9UeHESHTk=1``&WzGIM?^4?8?oXsl97$=;q|{Ie+RHgdJh2iK zLu%z!%%dKb<sTK2IOv5((e`-44%!k<wY3L@CeA#Ztp{e|%t4ebPI{qInM%^x*eQn( z2G3ead88E5NK&(F&sQ<WtH|lAJsdU;#w#f(uXJ$ACk{@|R?Jb%Rm@Y&S1eF0R4h^~ zR^-ugdJJxtQ^)+1oHDc5Rp6`P{BOe9jbK8{td_okLxc?b>l@{j@<z?vsxlmNMet9* z6%PZmA*y6+o{9D#bs@+8RyEY~Ft4hb8RqC697w%l4NuR-;ed_R^=P&YIQ@3s^d@Ch zJzKfQKw1^SlcnT%sb(kvWE(kt3M*;Wc0eFy`Yl|}<xU*=)ZDD6XxZ~rvkK}bXXBDM z=0;@z+I)6)Ntu#OPMb_V5>6Uc;DY1LafTuI+a9TvasW|~&3Xu;WrTb!D{Go<o5y@6 zQa8D{2}eJQ*y9N~l7GuqY!CkFta>Dw@3+k)zRQGoQa~vvE3jdXJvN*zrWOJR?Wer1 znblWXgIdkY&yjN;agLom!pbKw1i#6ZX|a0dY+kWBmM`_>w<IE{q|*~~?a6S=QDt?b z9M28WSBt}K&AGOy<YJqA@R(jXLJ<8;*-V@kR?EW^<3;B5xW=m4c}fmAQwhPRrm~r& zPjvq<QIOlGR}xXl#pNA~k_jqJr|W@SJk+kfVvZ5VUC$5q558j<t$zR1dwYCuPIhjN zG_-DyaB8S%7EP$RyrHhTYI;2A!IM0P#~zjC<os`+YZRZnylvIm-Jy5zu%P96@XJAu z@yUzfuFZ~5UbGxqU(4c-$;&!cEMBu@civjDa&qh1rOVbVT>;M`s3vQ0F2>~59fGTI zk9$LXKPy7&**{9oG;KXKN?NlVin%R05zlc-%h4jL<=9oUU~_&kdJH4qSgSa=SPzV1 z_g=(yP7<TLttc&z!`1M=q2z!F|3{P@mZGYr97hr6TUO+u#y#jLJaku&w%%s%$yiGv zm>YTOS~gC<zz+rXPhQ38#~@zq?7GtWisn+B$Jj6r2S4V3s!&_9D=R9><uus(QgpKo zBHVH0t*JM2%2(h-OLmbYW+T#^S=-R)pQh{|-m98SAvGzUs;NiCEj8yWo3i?y8S5&$ z-1KAtO~pU69r_Z|>Z!4%29x$CCkcY8jSW<@g7PW(i8fA<P0rK>g}Xh;3_UV~=(7|l ziL+3b%F(|l9f-0Q=z(L9&A^~}rf?lj|MrhZT{~84o%N+6C(u=wYiVYdLRJQ|-IXp9 z#1yusk*tw&a4;EwKc4L@ryfew_H<~TK^cs{`w&W=riSEGDz)P>=Te(fO<C-!vROSx z8wen=N^=DbdgA*$bK119&wL^8d?9b*)KxT}?oTpA{BfMBN_AZLnxRB{nOjlTh#XeU zH3tVmV@s&4lozV{N&V=tbVb@nZ2OeDBHQDzRC21G|5{b8t!CS^1Ww(XK%H-PZFxme zpo*-%+cPbLA#4>@n<~<VmuC(|w1o&#dFFKElUA3XQvu;(axJIw75Et!Z`Zt=P`11Q zw)8taIqfybTRjHSyxRk6c|0&$M>DjIDz?X}>ZbY%2q-ivQ@E6I2M<b>u>e%3z)%49 znxOn7C}Fjq>ClpW?I%Akmoc+n;<4L3H0?w*=J@%fQ*(o5B#$LMl(HrG6J?xHU)y9( z$)#XzOj6I9X8I|CbA{<sPErNkp-o_%VV*9fo<DZ{vSkoDR(hE;7K4oJYos`(7v~Sp zs+cE|J&!$ujLImL<j`SgW5MH%$q`^pjAnzZlXM(>uI*hhWJk)0x`F;$h*42_#q_2b zQhQyF;U-zALpC(dGRFs}QZnhGatSRBIJ{`}a^xKr0X^KZILN$uRInN8r|@~1XaaL9 z>zeUrR8M<suTi@*Ibx`;mVpC+dV}&t>IgB=R;@TC&!ZPaR^vIQSN|U!0PEL5O6N*J z)FjD>+^Vl=Y^<fA>>{#L9{WrutjHchGsOyLKPAU-+s;a5PjhX#j9n>*;Fj^Lx-q=7 zM|TF<D)FMVlvGueHDkk`C>YhyY?z+m3q!n;tP=TEl#n&Re8B-*c2;(i=}WpXk#xrz zU9Bj-B0aOTp?OYI6*Pt#8RUrcD647rPb9YeKlP!WbOZZL$mx&8<4NOkr@0J<xaPKH zD_3_kXD(VY0gwF~nVA?sP2gQ-3~k?>buNToIo6zfYmSajv4`k6_AAXv=?L1qe@Ewv zj%Cejaa>nUcIJV>Veo`Z_$N%s5zZD?GN-I}5oW$YY+iYz%6GU@Wjk+4Z_GR=owb@% z5YP=dTogV>s3sFk+ae^FfA*`P&gzbi{Yjijt8j$85{UN<eQ;ms#D|Fl=GP=~InTEi zr4;w2K72`AF~6~*9_NosZpesM4(gaScwDXa?2BO3@gszUV{@g6QHEf~c#vrh`keq1 zcWyy;5r(|QfZXhy{Eo?a*~L(%XwxjGJVkmH^_8VKhInp8eM1#wWpf<n1<|{C?zjwI zi|jxb&4G4H3L85FEX>KzHOkq{N~qmbPa3D2@{n(BdHnIQ8I^;b)){tQ$Ih||Cu|4% zIyUn_=aAa@!t@8jC5!>anwDd`0=CmcC(6Txt(0zRK<O$PXLsq>yA2?91Yu+Jv^v^f zVR$e$RTe0jMS~-L(Fm>7hJmYqq{NQ~t|WWx^xE3$=IYwASup!lRK#h-@P|3&^GfS0 zp$=45iD^2=KYkjLdM~N)TrtS0fXhqRbrM}<lE_)Vx^ZdS{xHM@dr)Rb%{hKQ<jeAH z4%0XoZJMpTGq1LOmi9&d$VodJF%JdoP%sr0<|7a_9x^~ekP8#+IlHczMmLf@o@<mp zj4-sZ2gVv!3FR%nu~R@%9O)<xV#jY}+J_{O#Hu=p{)O~lB!(?1wi4<Ebc61cE58{w zR?IgIzQ`Oqp7cPuiMIAcJR)S024Pmusje+8=i%%G$#V8OLqk2$Tq`pe%<^j^$Ih^J zLg}e)LSG&i#iG8^(h#mxfyrAw4gKmjS{SM|s81Q=7wguveMkbbP+~A6EyS8Xs$gVf z>*oRJ4K=hGuHHY67LlVS{~p6>VNezG6AU8bCfeR8dV)vI<D_}kvl+m#bvMlAm;;f- zMJ!l}RSLqG<HhrIJiju*DgM|YIB-a%l#D|xt)vI8gZQbhnmfC+VU{GA9UKJvhu+Ve zML88@zHY=>nF(bp($KWLwrP5G1*lrwC1Pv5lX8|g)AwquXaEn^mX~*@aY?8gVFp!* z?Wmn4pHoq#<%TP@)V!tq!LSL-q@9Wi*s5~OaF@(47G@F$mh@B&rMu@^aI$Z*I`5BX zMHlmXMXQS$jSSa{yyAQm-bUcdFZ+I=^Avue=3ZS<QCE)tq{`{~RP)x<==V`D3Hids z@4<sL-1VtO0+Or~4GI#E;;X#2rUH$u*z^+Y$H?Sh+Q0;2NwD_I>e0#8SIod5Dz!xg z*eV!GQf7wA>YA#c-j~)l*3{Z}Az4(cqy`Aoh&DrO_4jQI9L7;(fY@CuPD!H8)`~x& zXlupq*%}+_FfZTMvaG}8EYIZ1D!PHk0YaK?7$e9fOF&NPdVSj|Bn`Mx=xX|2s1)tO zS_t1x;f|_kR}mooB-;bDMNA*{I8`Wfg|J>j{VHuNn^|2k7u8_~WPv$XEAf;1d1e#m z-R5YM<I%S%R(n3RZO%}as!+nT6JTYdp)P_^JE*?XZ?#kD<;!Xk$`&~x)sW<i<^VIK zhEcjV1&6K5tuRS6$2sB$jRRUgDLh{(4Eb&QHxUiAvym$hD~8vWKiKW0SO6#Z580$s z9%`!*^B|_*E9&P~VCZLEGBHH+Zc}4rGoohw*k}2^tH5`$1k%Nzhx5Cbykh@(VB+2= zI9-I0FO7Uh1=Qnw%<Bgf9;FC4RtRQHBq9@p4TH4Mxl_NjU`W$gI~%i|4VaTDYiNvP z9u|i0vdS5z6SP7NLWS0+REgA(@?5Hv>6wNUAaBxak#C%yQD44SQltTilN?B5CZ{(v z)MYED!<owId}=wJq1Duv8|;QLcb3vVY$*GtY03fJPw0sGC7pfJfej*U=B!ilT?jQW z)o#1N*g7G8NW8lcm^n8?I}vgX6_B8%jn?{#=7fmZsF+J?rgXE%WXq#;Ofie#F3e^+ z*vZM|$jwL|Rl?1TP!puIogkz;l?L+M5<s-g8tE1|fMc6dTggg0T4$z=j%2MpzLtax zs1DaKvlb~~{KuSI;g=YeCE`fvSzTC6_#pAzX9TUZe3R#Hty^5i65uGSK-JWi)%_1N zC>u;tOk@>`QdMJZy)A85O$uYlhDOw<jwOqNSx~0tFb!7EU|9qCOb#T;H#JO$dfTw3 zOI%p80%Z|QVP>Z=a`Wq@sbNNCX;XD0X$ON>FtHv3`DGPhEmUtT!wQDfms1|gYo^s$ zxnt#Go|+=7YI6fMMQgwDiorcQJ0DfWT$NVUL#9B^8@sTit3#k}9&5V65ko-5^~X#N zN%;@lmiLXEsH)BPg+%wW6Uu33R98A<b}20$6_pr`VEEElQ##vN<&9;myTM&)d3k*< zl(h2tJh|q}m3jdt<gMuz<|2k*EB1%)-Op0yqW59mD`uD4;TWB%4O{N{12S370`h|T zRgDc0_mEGunERv{o7p_0qNbuAOJJBK+im<;UCi`E0cj~6(Tw@?n@guxStAg}PT5?; zgAQFL{rp)CI|M^tnw3*jkYAFYSCCzto10r)Q~=vjaiy?@SZ?Q*Q8f~2l!vGi3*d@G z>#LeqkKSx9OcLd@Rb-JoW_+S`n><*t!+yQ%6NzdDH6+d?K+li~<cb;+MW<YR$!gWf z@_CJ^gOZd-KC5A|idEI%Osy?GwNh9JYiy(m%cq|Qj$1LD&dP4Wgb#UI)S#J_HM6Ty zv(ojc<i<A9?10kDSMgA0D98fAX%G;=tk*~k*t2uZz@-~S08wxjycsI*tcK>&YREig zST=s!hl?QS(jDV@f(SH2(tw?`K!#Ohh=K}Am7Ns8DTA;cg7~$9VW`bg_seJe3?*ru zAQuPJq*%7E*6FmR)s198$PnlS#X7!n6}0IU_+0j+<ty7eCPBBhR^V=)h&0HStEjb9 z6w5OG#b09e;U&24D`5LH6LdzZ(vk{cj-HEiy{RI-yD&l?lj)_a*Q{9|923Zm#Grsp zjXH!?wR+Mqv=^8lC9(>#R;^*_oUHupoZOP){6fq|<`?G_<#bHWFQ_zad^V^Gwyc-| zjftvBuoP@@RjC0?5ol(>dM@w~<+YlzaL?wp`#SgY%EBRt@_;o|sMkyxXLCJ@H9>*I zX4zk5ZFO?b+kFVl<dT-v_<p-A5^r9CkHu#;G}e<fQtvl6%ab7ATiu4VQN@GemQ5G~ zm7ob*<Z05#oxEw9v2^PYAky(;wkSwlcE735HQyYi*^#g@bLyf#UqoT0AYM<h=cmS< z^iU&a=Mb1e&B`gs%`V9;E-Ap|Lvc<nI*6jmAQh~YV%~~ml_k*ngFz&fz%zfyp=)bM zm|S*|W-(fD5SLvnB{CYY)wHZm$li$^UBH}x8GPFzh|N7%`lJVvCsrH!-9S6{tsmVq zc#@WLgymIpo3mwUVKDZtPbG;YF;-UFRMS{lU24{^LIv@kih&<}+ias>CK)7!T(CHC zO1mPtDW(!N5lRx5o^8Idi$i`hi$?sIg$NZ5y4H%c512p9a3VOzA%){Ck*xwaS!*bQ zsCm<|8lCEt;bd4mf`;$p5Xn@La$`YeMe>r}WV)E=@}f30V^^{ElqR-7oe|Md4~P7L z62ZvYXx5#fwKdi^RX}~wUJ{x>S-q+);_gOOK&7kFLPALEq>yLx<zi%E0~*M?v%=Uw zrrdbl@UmS+ld3~7fvzFsWvB&76Qg;ugv74Z)J2-2WkQZ}V+d#<iUfQ0sv1b-s>Z#< zn4*hZ8k)+=zymVoL`QE_puj9jz-}r{Eoj_^X<Ifdz$jwoERh)HlUeo8Nu0o{a17MV z=vW7nNdn$Zy6KW2vuM(v!Gy}+T*Ve=jC8zTSJt3)*HEW6?rypYnF|#oT2e+3Pv&F} zoP%rDadUDU>tP`dL=h94ohgtJE`}(wJcu0V+g;Sog9V8`V~9+jOUZ^xi({sRomzeA zY{NmEM?n|HpDdmCTO?MfQBQ2tMY}ST?`rdaMT1i@q>-;|qUNlzUQ*P7U~s8ax1;t_ zL?YTm0}UbSN@acwh%M`rXnR-GVw#WE24pZn3Ew=-7RlBKJ9snOSo3V`HmNNKeRC5T z_H}1w*Nm-Zm(|U~RvyWPxKs0CZfYZ}ZJdc&UCdvW>&o)V+IlXm!DQ8R%oYcF3~MuC zrSv#9PYEP#4Qz*cHYGt1(Ze1LQ<1oG7f^8?rZEy@mqdRm+f=aBUT05}yKvOrS{cg= zbHSHbERu*TAk?gN#~3oR=c}akCu^}~Acs2!INrpH8VsF5Vv)eIwiYB)X=Q~~(laSL zr#C=Kyho;%A>s5{bzQZT#1naq*+sQfmrjRCy$%w+YCh_n6fwQ5=6Icz+7>z6?`Hyb z7S1;6s`kKbn*`#bvDt5UCYB}|YGp-ma4|$qPEKyMQ-(#`G_;x}4c20+5fpJLaiF8H zO9q0SpV<shSy9@E6@krjFrWu%l5dt(?=APVh3Lvo+1#Xt-_kNH48np!n&?o=W`@)s zS=AwrW*3ifqz)%UG$fIRRg)M>nCC(xHe~3~I=byfFv{EtWF55lMvk54)!M-*=T|9U zwG?V$K`8=ihE;&=GLB$%Z6lagUqHj|PU%*CTY8dpR?~%<gJt3f)(+@<8qEfV^a<hA z6T48^Of=HW;L@Ay{QSb~{1Pm|$;-*ZuqdZcR)Mf}26RoaR_n@FGo&)B_{<_cS;ME5 zkCluKO=`EIuHB_W_InR*al*2a+1)fZQ9A<9m89r&mzwTLR)Fh>z_7P39qK0M6qvDr zA4^bo(dL$v3w^GspxGr%6w+v_YU2m4T-LH?>9P)gJl19D0Nyqh?cj<#q0&sD(oCUJ zl2uMBj&+~Zsj!&`)+CxvcH0)yxqPhIml?linBmAt(DH&dQf%7@j4<;#^B9-`Py?gc zCE||`mdXw#kf^z=z6w)f=;<)Ei-B_H1gJyt4Tr`LS^~nLuNDmiGnl~%%ZA#@MqLNW zR#;7C8k4Blo1E0dQ=e&B(6=f}o7Eg8v|&=D7}X1UeuDR{He-6_gmgliE-jx?&K^l` z>h4qS(cltF>d(HI@&^#oFx!pP67ENkb;gTUY9zfb1L)2$o0ynY!yXojljn@S+W@;G zd$+C~P3m(cgyE?~6PA89r+|fm7Az}!L|MvX9VGV~c4E$~Gc)m9HNZ;49AjTfT@4)P zc%K~;+9~#TurB~Nphni1RE%!OIZwZfu|1tZba$-T?kp&1E7Ik0I3)(wBz{PFq*P#K za}Bvo&L-9*^RFVV*pdPhuoE0G8;*`^TN7_?w$A2esft9GGOI$T49zO0#A1WwAd-uK z;McLeEYV2HeNSNm#gL(R+k|*qeB8J=)dJ-xDFhxWPx(XhcuISud^VE9EEUi>3O18! z2o&j|5oW0$MkJ;TkrG_QrI+2vf8+&{)~tLp?ExI0+zFFnC=Cb2Nje2r6QBw(Y6z?v z^u=7FiJF=d^%-3g>r<C&(faGpAY*}91$S%ZC3<Bj&I#(;+04WpYRzl{Ist+G!eAHK zS!<`wF`_X`tgM+?YS9i+Re6@8S(A$)ff*2$2R0M<8XLumsecZP4fiBJl!_-Ain}$y zaM^Is*h*0oPzl(C>gQwCVI_1<_LqBM&{j}dTEKtZ%q;830@E(#6)XxCl*M(V=Qj$G z5Pp9aZ(F%y^%`rO0d=i8!qV3IEoH$ONsOoC?j&<-epX3-c40wbenBy|zUCJea7k}& zKA9Xe*tWb#RyMJV5UlJI6C3GRHNqogQJ=ewNVfY7{J9irnDu35F9($ehS%On+5=mW z=}I8t6I^6AhjINb7xM*_^d5pp^#-1a;>gu++nO^-4kS@Xy9+G&W1BN()%uFLRkHAz z#n;()J6!E%#A|kpkl`S#yEFMgj0YJGw2>(^rH$~qU1fs(%dnp37U$;W7Zzfbc5ZQT zVaG(yqCsRO8EHfqAgbgw_z2Z~?^TGs2>wccW7cglqjcE(lguVbT1&PmoDAX-uxI68 zj1T1Yra6IDo9KkCeJ|MN<y!(=vg~iv;P59fXp&9yLE(nz)l_BlV$PmnOp5tGMkC)M zprZiM_%mIcm@FzODlCD@onKs-o0n5i1d?LWJ3?7=P+Y!Oz<1??1$2}Md7y=<`2em| z;{k7}=|Hp^W7DytZV?c(^U$Oc9gETL*g8y0K*Jzy6AQe$8CMmUI!I;t#(LT55p1Gs zA=_orQ+P@hFd?GpvEtYo&p~)C2D9}|u$^&5ocwURv3|DX1qKs49D*~o$b6b8v)|bS z#EjJwEV93~<E$W~$yiIMr%MQodJNhmG(Yl>3@k)1$F^5Bex-DTn45&PG{Gollv_r- zvQ@s+uB=vn4o@rQ*48ju5prgCQ(~&Un`TZrk-;Ix=KG=$O0nGWx61l9OCx)`XcmS6 zQnodc?d8KOFaf}{K^<8uPlw95*>$i?nFq5y834kdD)oyMv&;4>Lnh?8T}E1usc;%k zjC$O~-YijJcNDrnsTf!U`7I9q%#umF!AVDfG!9_|NZDe0E}6tmOh*Lec@II5sK^Z? zKZ68I(!yj}8$LrL{qwr%YZoo*=uFTFFO&Cux+z28+x>MIBiAut%9<(>|7Pb{qLWH( zV}7?HlwrMaU9}nqn~|LP07Z3GV<TpfIkM&UEGhxe%K}|N%9lOJ)-qjYre5YI_j_HR zDv7Wv39GUG`@k@@6j;ziS=80mv(12#C>yRX<*aN{0l;RPN8Uj7b*x*uCexn=Z&|fU zZWuc-hs7#G;Y<}Mi9xdoU6tFQf#FIG%v-*|Rc5pc=L);gDeTl1tB-A<2`Z(A$BOMh z@kK8!pFX48!ATF{v{w9%Cb2>klZy#Cq1**YA)>dk5>gD56CD!5E};_1E9*?Zpkn|X zpeA;qvmiMX7c?>@se!(osV999yRxx$oGaVRFcGuNrI-~cE#J$own^;Gf+C|0k@6}< z3aj~pGpk80RPvwP1*vr=U^Jq^h?<C9He^O3nUgUYtisi_Ni+CI_sGPJS~j<|9?eVJ z3I>mfkz?|6sTXXfoQdy2;QK0>nf%O(@k~HMvU$<Y>Z$T-CR4zQrIjlA$oR<yoV<i8 zgzh@nlO>1CG2y7HsIHPQO5mnZ;u6C`V_Ya~n$?9J8({irglQLwtyRPWoM`Q(=-}*v z0qHkXQCF@LRb6J`lO|2fVo(ep{n0&4Z&dt^*iZR}MTts(v4eBzG=!VXnqfuBL7hw2 zbY!-!UBqQDlMeDXjGFt|W-BD0PmpyoY=ck`{dou5Cop$qP4)G#d)UEUaHhArVA}j( zwW9I?mDaLSUNN>G`jl4lg}?Jm`m0%qQI6Sw88<tZ_G)OxhB)*Xm6*m0?wayD7Bo-! z92om)4xZ711Jf)*Av2)}H9@p|s|}i<L7ktvr#1d_CQ{4@##|Pdg6g@KK@ri>_}eJ` zwkZ2zP4{NUwKD#qW+k}+Qy7Izrt<8fVx2-w6}fsl@b#gfVGlI0x}BBrJ=xIx#W<-< ztcq+<Rp=pzRJq;RgdG+&LNaiGY(e$y8dzbEkveKIQOnb<ngpW3DxByu{LU6rePz0> zTs|aV#5&l@7wehWDT~czJ}ZFu!UERtp1MIhFpv@DE}@@7#j1y*R5crssVbNv5HQzP z?_fY(+tkP@Cd?Yv)mE3*C!5~<Js^oMe)xt5_RB_J4NSbCmB=ol3Ns5QUw@$i4<(`H z7iYqd96_t74%dQp(?bw#j$r$xzU;<_4LX;Ls6YzFereLdRC!{H6G*Dt!B=BDc;>oE z>$x3#{e&r*>maMC?*$FnNJqMIHNR9g;R8Va*W8k34vj4XQBknb!h)svR>n<m{LjM0 zu~uKT3K@uCBuizNY~9dM*Yk+isy>{PW~mbU39+0tb@`7!0t^}g@a2vfvVNo*Ut63_ z(bwI^K4@=&mF$>mAT6a~Q+Pv@ur}ueXR?I~Yhs~=c0TgWB1(WH{UT*-m0HaykEM#S zB^)~nb<1f`Y}<-KA}L)siC$0Bvzf}!5lM0nYj$S|)7te5l6vyIR2<u!$$#=Fu+EKX zW7UdO^j>up&E<iViW9f}of^S{`Y-uUrJM=dKywu&hU{;~xXH5P^z~~xO555@$INDI zMxb1@W3(N=TI@JjhrzxI+l@AjFL#<Y3)<uqVF5O~5|%e%8c(eMWSOZ6vc(yzsYrR% zihZk`DMwx|hnBLf0WX!7iyA2U9*v|ljVDA=;MKVuE816fHfwd4tz5Ba>0-5r;Y%Q@ zr}LX2DJy{e&xDvw0V!rRp?)_CT+r@jmBFMQOqTHldV2G*IWiJgt6HmtxKndvZtB>9 z{U+LhwjWzTnApfItAmnmH&4l+z#6Xn*&D-8^6>_LjTMx*6ic)Q?{@!+RKtJY0c?W_ zJBm1}v)gjHJ}HId{*oo>q141^l@Gq{@9VaV7nq#PHT!hQ+?=}C)$r1)42P{XG97lM zK-Vnv32a~qwyJFe)8^&N37>gk!szJiT)Rp>y$R+@@=JNmZYm?KwVdq~f?VitX3fbW zT^5_OC!Se~HPhX1#K@O+q!Zj?8%6gtKc@~;+ZGKU2X`?93(F=Nd?qEdGSYlw!7RbF zoG-eqj$gVLrKSVIlFo*izAZ+iBQ6w>B2&5YW_ps%JaAjd9PD|6#uX0iY|BZRwGNE$ zbBsjtWh90poQ<~H6eHj&?BqdH@O|c)H6@lpJKttSq-}W?&D0zjBVm$Z5>zQs4wX0R zOKkx5wr?Nk);0qZD7O2v!jcUz!s}v(>wZ5V7stu4LdP44-X69$zjsfaIAl?LTOq`= zUp-cuh*6@OVPeBfSb8j(*uk4-m{<h~xo<}z?C_f9LzAhEE;xb=^6R$3Dch7{F{Irh z3p1BLg{9&kFipoY1~k5ag@to^`~;Zap|CC?V|!*7U0ccO5$mm;DFmPUO(!tyr-3&R zM6wP(Nt*Wye2XQhd$C!Vnh9Dul%H)+(*3RiW$(ZaP^)gF<k4?6_PNa<)Wv{t5G^s7 zGy6f^fFLTGX#^2a+LB!x6fnaYQ!KygOY2IawQ+vfFi1BmO@z)|gIp;~Cuf*;O*4X> zWeHer%y`^fWig<v1=K0%9+NQ31!q@bmRxivSsA7usbZVM91!*^i#np*VYl&sQBs?D z!tRpPucmAXF!SV1!9BHsJ{z-|QcbDfWihjz!EcAysRO^453FYDc4dc=*@+pFZaP|( zr?7u<(KIHqOB-i4*Va^X`E<63rR0qOBoWOF0d@^a1qx1i%jCzlg>8=7QUVE23M0tJ zAgZ`bhhq`UeoOu2`zkNgU3@avh<@oh{7-9jQ&8!vbQEP3#l&aO?Z!R(ncE=Q6U%j& zKGz`mbABoOZaLC?&01|biCxd#w8r|xQz^G-&p{0WDhKtd#CN}C1CS6xGNJ}eX`3?n z$krBIryx~@_MO_*HrtJqsOYf;S@~Hx_^4J+VRm75Nj$T&V_8SbYJ3cQ9}L!~bS!V} zXm9UmpIk7xwX<bK+md)^$AL>%<5R>K{uCAE6zt1MC;eKN9U*ivfg*Y=q=))Ibv7XI zt=%y3eHr_q2D1jmh;o>SXf3v?un1$T2?vF-UF_>i>_8x)uvIC6sqHA`kp%x=I9eld zpoN?T0Mc+oWQMtFKQ^tyW-T=z%zM`mCijV<b{ETvuirJ+S3?OhU#}3JvvR_IWGfgz zqBXWaU#0dfN|>fGtK?*IpAyXPIuRyewld2NIi#_|QrxNH(%e*i2xn<vO;$@g=o8qZ z5U}!N??!c{j5r}|5~HJlbwS3!{%1`<Wm%gdV+^}!PqZDm!@;QRmJ~~{d@j#giMeai z?wB-oVtg}C9~zNCT`u@x0Q!xNsdL5VfQ#T#gXTr6npdpsT;8$_r%YrnS-N=1q-84) znh@U*=YzFqQ=M@fFtTc@ZYvQ_&QyV{cAWmfSJb;SYx%O3xRq`EJR5{hv6q7}WVKI? zBkK6X-EAE5(D?Z9P{V_=V8$9;(GQCKFR+CXTOeTJV-pjWO<7-KClAzAY4+rxW+?uH z!bNmX-}Y;@dhYNrw)`$rxXEA8hxWEEI9DJGT44#q#s_2IPN)(oQY|UXfPm3ap{&LM zx68tGq$0ecDS=yPqUtjK7U9`#0a>o3r6KGPg9cT<4bjx9Ruk<M6W@DCYMp+oPyQf8 zl4fCrr8!n4_<Eqg$$^X*OPow1<Y+Lfn@EnFA~Oo`cee2+jC!dZkDa~`CfZ{lNz{y# zj7>i{AWPW?RcMzEuLPxK<Sbi0Z51V&GZlNP$bNI?WQSR&o~TC(ahhkXJuE4^DbFOA z=+0HcO)+`fGb3~WpK47<+DQ$HQd@>_YPb(3occ@?=KQOCx!f*YQ&q}e&7M#w3iITn zgaNxWK2y4mcIkEY)1>TWWI$`_1D2#6xNAp&oF*)(vV$u%vnh`yzkdG`*vg0pv~#jE zNIG?cn|10YV|ai^D!l`eo#aSZ5dAG3Vn#<PQntDJ>9X5GU&;OPN%;+SYx-OXOydCB zJv7I_E*+ho`ENU&L}5(2@Qcei`8)$jr@JvH2X%*wyPA5KHId;Di))V#q6|#Ved<F) zYo9`94F@-{CY8CH=UQf+4HJ20Ck5?{l&FcpVxVp?S((_)4V$oU65zUW)^CnkcxHDr z`bH0F*r{E-4Q1N9T3a!qOZvL0#0sj}9-E4Xv6gk6pJx-0(Otc79kM+M<xBEW6#i7V zKUs#QMLm3BmUCEKR+lJn1NMwDYaDMHc2;c%+K+0tcGJ~N+3!UWpe7`dTQa%rH$&fy zXa>6MF~|v~6EK4c9Ty2b%*TJFl~|*e)HqkACv3S%&+(o$Wy$g$HJc+_T|e@HPdI34 zuot1LrYmg^AKj~};ny%l>q4W3)izi@S;dF)$#OGR+WaK*s~z_8!+$IiZApG}_6;<F zULk2NE2US+m0m%&6=5lO>3nSP>$+Q9m&gbO16#Dso&w(GVAW<>1S9h7_s#a(K1ph> zwb&+YBo1`1R-dRTt%I4MT0e5AI`+20X>|p(U6uF#)Qp|vOIgejuwUw)Hq&;D!j6`M zjwCP@Yt}vnCgQ9)Q#Km-Oe@q7mi6mdZb>bpy>cscRU_>J!VZCwSp@^qgG)Vvf~n_F zT6#5CT1jL!lXmk~Vu2WIk*s7^7zIB&3Dt!yD$rT^OMy5{_uGML2j)u>YDuzcY%Wh6 z#78ogQlH}+)G!h+nDvhALz5OO2M4gKP*M5Qg9jinrQ1WJ4AyWrFQJ3t7wcF=E}3lP z)?jIz`lU9y*=3k%=c?cmsUX!EEa{=oYCLob6T<qD5>%MUlQKt;NTz{;MuEyuR+p9V zl1E>1lr~Q1mpV<pg&X}3xgim2$?U3oG&d(!+Za<y_dRFuE6j;QU3|q*7!{09VbXv} zaqX1gOzn{P)OJQv!RxG+DXh;=rm9@TjI=MCdRAAV5lnCbHe8a>>=rj?*XSrExRyrG z=#mY}7&BlRl~NqyrM9_ZP7|~#e5}C8UEy=KMq@3ImS`=X0rM+Q0+fj$I@kj+wF-V5 z%PjRl8#9WZzXYiypTQspQ`KdvE=ehf5y^Z!6q8hX-~jSP(wOyVi7o!Tm%P?2&rHt< z3v*4g*>ao8s>!=?<!c0NC#;yn>VbgJVk4&+GGP`D#@O|#azCkp<19GI)`;kvYN{%$ zu%d=E(gpgtL84fm(r273kR!UxXE|+=4C71s{Q8IKnUfz%@)`@ie8SA9to+v3ZO7hS z5Q&6M$)BT2(c{60^5elnS~*GmY0|cdd^4Yl3Y7h75R>u_=RUOQbZ_0(nGs{;w^sgy zu~DO;H6)mJ7wd@W%(b1cP-ZA^hdsVgDOL0|m@gn3IaBP|gHlm5FjQb>Sk5Rj0=#{l zsY{XHQk4)EcIc4uC34fux?T9lAqz4n=B5;aTUE;nHyzL<nH`KI^k>+R1-}Z}B9j;# z`4!`atkFx-yQr@O^)69ay3H;(J16YXDFawezL>qxcJ#rsO)0Y}c|}Dwo8e>#gG5s{ z{YhcEDu8yC7Ai5Dd-(Wbl1w#Sd?GU#aO4!oCnL<O#%k_=9>MH(wpo+`67!hLPSkeD zwnC*_HBBOQBFR`}d})?QUKX_K@sf#^w=zFzlnTlod@RN8i|=W7j%jB8*T(G}LqIvx z6}jC^Y=PX`dQ|TyH0y?pl{`4d(Vb}MZX$%-DB?-vnW2>5g(nCnx1`%-HK|@BJs+f_ zZ#o5;yX^Nzcr%JfC`0%}qQ6uYJVUW%hVj8~x}=Kct|3IUahNH4GZG_qG)o%y68l7z zySi-Lld-L-wdAk=tAz2_KFLtdZ-HIZvC^7(rL!vdnX2HYRP1~d&GKYKDrQy=+q}t# z0VEll4QrOh0J?O31HR|VkEUnmnO@Aal9Ww$Bww<bzvnICcB()>2o_lVfu%8x^>$~Z z(>#4{X7jpc*oAaFBEG;d90$2zZJ#|ZG`P1GS|UGn#~mjAE+i<}zDiU!vrxN=Z7<B# z)1h=lNMMzn<?O^@Hf0SSSvsgURb!fZzQ`)@qA_hLFT$1|$XEXVC|~~9Rs)@kU*ev> zHWmybjGJi6DI&(0=n}PR`N)36P1d-l8aQYqt9Q&9@Kem$=cz3t*q~CMNseqUXYA|A zi$`%nC0FMJ%G_o6N*<>T3rvm{;xE1nwx!f@vfYAfgoY72V!-KYWvHX^O;4am<^WNe zf{&#zlmKi~f%OP}59=>$Ni0tga#Pdvch3dM)%9so8b}9?)GC@5&7z;g*K9DeSuJLS z;K~v0IiL!4U5-u3$*8#qj7o?vCiy8fZ0O<Q0yAjd<`)MfnB>=V#LD{^6j*gL`OE<b zyQI01<kC@=>L6q3ie*bz;L!7+-IRN!Yn!m*TtuEZ*(UHQs_r_wgsPwPq1+(-nbD+& zQXH+})WKm;p$+h>H8$wJl3?^bhf=axW+FocPl`#dYFWjZSU*)D%Y?MM_El5UI)Zt& zGlOCWRYlp*DaDk<Pf;6jRaG0bU3O8E%}fYVN-`TTv!;3aV*yn?{q`Wrj8(4Uh`=bD zK_O{}$lDg)!J)EII8|RMavUsL+%=vFl{MbDa^<qs@kJ{;;}F;J3SAx$uj^dN1sN+l zaR}M}?ur7Zx8pd!<L5fwA$@!Iadw2?{tkhov~T!Wx3q8n(mt`yzTwh7eM%qi%jdyx z^Aq8QAzVu^Txl*Iwsf?#E_K{YI3r*t9?gt1pQGuq*}c4h;lb_@cW7vsJKP=N?hqa8 zB2@A(cqi<9{d@3f$jJzLosg6$aVzBXNqFE2Iend2(w)9eI{d5rdr~~#7jpWggzqQe z>--S?d>0)dr+<onV2XcGihoFoe`tz-a*BV7q@PG7C*}F@6#vK+|ELuI=oJ5$6#uvs z|M(RD&ME#0DgKEm{+yH=ah?365T3Ir$scmgP4b7G7n1xDr&o|coT#&Fl0W7gkmOHu zu1xaxa$ZgHlN%DhkdvM8z!h@xQv69T<GGjeJe1-Or}!f&{%DFnnOj3nTFUcYDgJaP zf-EpsY`+7+?|s$Jb~+IJ%#nOno3rB@XUBHupyl~l*;#F^1#S3BO&*{lKfk3duLGYI zDal{d+EUn-*Se@xf<d_QE1+3RvT}<t+tZ#`kdv3&)>>T9QQVr_Uea2CuaUHtWVaWV z6ttN)+Ats9+_pRqujJ)sb##>Ex8xNRFUsv`Da`9ALEHr$ZHo$Wii?VJi}Q;lk<O0x zWlLL|5A5jV$|t;-lb=<X+tS+J-dfO_-?0cOwHM};v=p_swcz6?MIEh0#quKF!e>^n zQ2~38_*!vResOzFaZ5o_OJPe(;i8WAmiE@Rj+X4)Tx6ptCvTCwwt7uFhP2FJHvSeB z6cw}-7POSKws+*`<+l}O7qql3%Fiyr=Qwhb%2b6fx^&{T+=8sULS#R?C9l1;Bc~;| zXi;`?A-*-y*4o-ym{*Y7kt68@NRgAB5AwAY=61B>8`*8Sg~cVgdAS{+USV5taZ%eM zkYC<O5FFo6&T3gy2sJZ5C%ZMTu%u-XUu!EUDatEAGA)Y=O5_z*Ey|L$sI@q!wI#c) zHM_N>rJ$s^sI_=eYe#Nd{vzZtyQCmtj;CE-76_r`IF5%7fqjBEz;W;=NC`zhC5s2~ zIEDxTL`mR*ohIpXwhV?VRh+3<t2kG2U&U6%<%$O@9-(-g;?0WpDL$e2lHwM{&lG=B z45JY+Km8TASIkt*SDdC;tvFw?U6JyG@f@ajqT)G<lqY<CtKx%-&nUj8_<`cLiWC)m zZ-nB`iusDAiZzP+C@xX_yW(q#?<;<-_#eey5J605h~gN<$%-Y46^e5d_f=e~xK{B9 z#gi1zRlHL17RCD&pHzHV@g2p_6@ONYKr}L+0~ALo?y6X$xR2rz#kGn@DxRWvf#S7_ zcPKuhxLNT{#ZMG}RE$70OMVoG67j#2`U@2IAVMtHsDG8Bv?r)1?5p|SFe1Y7M?aDg z<SpKpb_WDGq<zVKs0-8>yupscp4>xY+>r=6NxR$5ksgWuKkz=(hYBJRt0AJ%QttEl ze#8-uvqb$Xh=}wc;`ZQgy^pL(cxqNsenn~~^izW%j#FfhPyZCf0>!C{rHV5YXDc=+ z?xonQ*rB+;;sJ`1Po#6G`Zp;auXu{$nTqEtUaEMt;th(oDc-I4pyFeSPb)sJ_=@72 zitj3ZtoWtk_ljE;U2X3%#XgFI6o)I0RvfQ5Q87ocNO5<?GQ}#zTE!;CeH2?17b`AT zT&=iX@o>eX6|I~*RsClxUZ{Av;<bu5Dc-Jluj0dsk1IZ__@bhfk8i90eZ@}|zgGNF z@jr?oE8i6RDGpH_sW?W_%Gb&2&r>W>+(WTKahBp7#d(VRDz+&uRa~jKR&j&k5sJqu zo}_rX;<<_!D_*Ji7sXo??^L{B@e#!*6`xalS@8|UcN9NV{9N%{#h(>_SByXau{~!f z4p1DbI7)Gx;snJhiUo>O6-yOoD9%=FP~1zgS+PTLf5ih74^li-ag*Zlil-=^sd&EP zrHWT8-k^A!;@yf5Dn6$8wBqxMuPDB$_^#r|ieD;zueepw)&3-=*hg`Y;&8>$isKb0 zD&{B_DekUVrdXv|tJtJy`^gsdFIHTxxLR?&;^B%%E1sx$s^Zy-7b;$^X#3Zj)PK9; zy^0SjKCbwz;){x}DZZ`vzT&5fUn|;v`9JCpp`#+7_EPMpI7D%z;uyu96(=j^DV8Wo zKaTh+)IUpcj^aGUeHGgjmnyDQT&uW2@d(9Z6;Dz;UGZGSixsa_{EOl(igzmBulR`K zlZwwNzO49$;ya2TDt@l`t>Vv$zbi(dxJdg~9H2N<ag^dX#R-a26blrmDwZnFP@JvU zptzS}vtozh{)z`E9;A4v;wHu86;Dw-Q}KMoOBJtHyg~6c#k&<BRD4YFX~pLiUr~Hh z@m<A_6~9#cUU93Uiy=Je8B^?|I7o50;%LS3iW3!c6pIvhS1ePkQmj>MQrt(eMRBp> za>dn(>lF`IJX-NY#Zwi}R=iO0a>Z*EZ&JKn@m|G;6(3i8R`Er}*A(AYd|&ZX#jh2A zRQ!)(2nw>af5m=^Llj3Uj#1oMak65bVu|7&iWQ2p6z3?;Q`}dvO>wE>O2xH`8x)UF zJXY}}#nTnh>`Z%81gnVO>f8VAc~AOy>U*jF)O31^=l^MX{RK*&%N4IvyhZUYMXS&M zUH#80TD!p;>i@T*)#JZX|Bs5lDMnQ9?5$|^_YvwJqiF35|6if^|38j0?eYKaanv2k zPxmW6s`#|x3yOC9v_<_NDt@8(z2dKmcHES%`u+gLVTz*_cT%+DC2N<Os`sZWRw>pg z+Hul;>hDlornp-1U`0DVI!^tkD4wNwq2d*ac3gC;`tMeJNbzySe<<4V(7)9GuHq+( z)?W6L`t3L<s``5$#lear6~`*t@lUq;ixmH$SfN<0XvaN!tG`8YiQ-Dd0~PIf=P31` zsCb&9wZC1Weml;&QT?|o-lzD8;!}!teDkXM-&XuU(c0<0Q@<V8c&dl@QtYodRB;DI zJD!=O{yar%*DF>3Ohr46nXCSN726f}SL{@@<Cl%<KUVQ%#WNMHJ<yI@uG9OsDBh*` zpyJ;Z?Re!S^}nI`Z^e%lzf!d0l;6~E?TEe6Ay8i#q&Py+j!!bxKSi-nad*XXMLRC3 zSN~p$3l$eDu28h&kwetKN$~{5Qx(rqwBwMg)PI8_K=LnkN|wX+i;6wj3wO}x;}ykj ziTCr=zpG-Y;!MR_#ngF&cD--ygPrPMueee1SjCeStzGc{E&9V0mDh!e*6vrX{#lCk zihC(8RJ8WK73yEBc!=UA#S;{*ozKo|T&(x6QoKR&uZq^b_c!%FskmA36~(s{tzGXk z^?$4Qi=wOYH%-yn^R`p}D8(HWCo1MDT07n}_0LeW^CwN}U!Z91cYjp>0gCGs4_7=! z(c10KQ2+UgmnmMWc(bCl*FB*A#}uDYd{OarMQf+~Nc~?b{-F3D#jwg@Yo8ma{^5#o z#hn$i6s=uuH}#h(?x{FOalWFp$1PI-a>X@@8x)UJw05{ZtN(1pixjU^yk61T-|kWW z!-`KRKBxFkMQe9^PyL@NexvxaA}3a4ysg+*afssfisKY_QM7ipV)gH#SgAN$u~E_5 z*IL!TRB@H!L5hbdTD#hx)PK6-d5V`RUZZI3X?EV~e!c&w;?s&RC|Wz(7WIFq_=V#4 zioYsa`&qim_W_E-6h|xC`7UcW%h&r;6{jm!Db^`kd)a>K?@(N(xLWaGMQbNJPW`7S zo~3x9;uVV4K6b16?^b+B@o~j}C|bMNztsP(;wOq<EB>Tt?O{>1<MdG+tT<9}tfIAp zWvjnP@ehg>iq(qN{<XLITNIZlu2eiw(b~O^QvZpHrzxJRc!{F5cipJ|+ZFFqd_?gn zMQi7JRsC-(exUfd;&+PHzU8Ssrk7%W#i5EjC|bMLB=zSh?y6X-I8)Kuv*xOQU&VIC z{S`YEtsQHl`j1sSS@BH83ly#W>N@qKSRyz2C}PT0{38{|D%$zZZ1oo@{z0)qv0Bm2 zbMCGF7R4osD-{n^wDX%sssBX9(-hBDyhQP8#TylGSG4OT9#Q{Oiq9*)s`$3z2a2C7 zey3>XF+J_4x!#KM)vl`;s{S1m$16@!%v0pLEWTH&I8)KiTh3MgzKVAJ#s2E=RJ8Mz z8`XcT;>n6<Dqf&y=P9pK|1FAlDL$z9cSSot`I7qIQ2e*z$BJJm+Ih*})F07)y0_vW zMZ3;pjQTSbrzjRG?ygv_Xy+m8)xVeGLdC_3D-`Yg<00zbq<Dhjsfy<)UaWYP;th&_ zRlHa6Z;B9)Qjb09`~S_3D0D?6VxNEwRN5I{!jc7953w5&{%J%!cd}NmU%sZL6}YC; z;1cV?TGBO6R(s2u7ALE9^=c=JH?p{<N%k5iyt2e83t!yIYVT-WyBLobt;CDsZfR}B zr?#BH(-wSyYjFpnOT5ta&hnPFPQ;N2BI~_1PGr!@YFoK{IZj~=hFR3vvb@8|!iwIk zmNhsuuXXJjrn9(n<=Ry!>i_ijE&`${`M-R)NU8$-bG(HvUj9?Vk+wG6=xu~64}^<v zBOGO%jc?30!ZilMjon7L1%Ytmwh^v95N^k9gj*H}H+~!8)&#=sw2g3w1j6kc2**AG z&0p5g0i2_F3H;D><VPAYT*!F4gyS>*7&qzq-@<V$otiH5Xn$dKOa%tR(Zh8?_GiO! z&5+FlpK&c5?FRN|pY4eoz3@LxADnZ&<J2Lu<Ug)=VtmX$`#k#&oX$(=WI3+2KkH;Y zSvQ|?ZYR?Q3Ori^cQD<LZZdL%>Czry(>*-!4xG+J#7FsJe>SZRxDkxcx!G~zxX1X0 z;NQk~D%|!RIGr-YcN87^v(HX~KNw#e@omIC#>e@bF7YX2JdXIz!N2|W6yGI?ZxsYD z;~S3up5kkUaM<2P2J9)m{`V!yOCIhiz72>k>wgemHsUKrIOdQ2Ku_^qi}=VV_SaMX zmLNWcV|-R#kxYJlDE;n6e3NY?cy67k^|21|t-?dbHwOPb<?jP5+vm8#{(6e<qx&6a zGkBWuS$Wl6{>}mOb;p0H`Mc}U1V3AO)m?lyBQnmn+Fwuk+l=_0Km^R6l~>)x*Bo~o z+Rg2+r})l!7VT2o`2+;+iGDkQ80?emuc!DP+H7P9^EVOyHonW?w(l^Gy%8VnLiT5$ zU4$FK_U1gF;FrmGX5*u7%y+W!&tEHud+$bZ%7xGP&$WQTaHFnr9O~!xXT$v+H|Vy% zKOx*g>j5%d{{DvlVE+0ee{tMnd2{e@^Y<d$AnPiC{60f`w2#`KO$%)9_X&KKjrcyX zfq*s~F+eUSel_xk1PXDV^}=-7u9!F6_J12OnL0G^qK&U@<uV)yfFq@`?<i~K6nu^g zM^qLS=jCL_<M_kRTycs<VPRoBURZ#AYjS^K`r-J%r0d$4n8!>%pG^3pZzcJN;g?LO z(U~L9Syy~3SCP-@XBmi;Gep{tiMuIs97g{%#p#OWij|5pfgAt2>1OAqQ03MG(yGq> zIhMUouV2=CUyb(MxbutmP3ceL;?9G;i|()7c;BiS&O6SQMEG9agpcQ?yzwC4VO}=g zew3t>j+6#f-g`jCtdUEciQe-ozZxCty=CkAsjKf@zhQNB*03e9uX}smxXv-Z|M=VQ zp~_*E{h2zXOd^hwg<B8kA9#PrmOgmzmr<_&*4Bkv5qsM6G2C~@?YhLq#`}JZ51KfS zM80<4(;4H$nW9%Yb=HW5yZW*35L&cl>-NJdPm`zX7H(a)1-ah9yl-Cl)efO~Tf8x4 z`sRiugUUB7>_29DlHVCqn&h80rZvg$jA={q_aD=q<afq&B>CMjElK`SV-_a)d+$lw zj{9!oxIqik_v{6C*;l`Z1}%)u`hD!{EgMk&G(*t`x6lBGU;Lq7@oD(qc>6J+#ZL?G zUU=}rfwP>kBNh(a6J=UBV9%|%-n--tr~jUV7LrQqS~e_oCc2w9EX~-`8!4oXJ+CEQ za*+n#j(F1<H>`4)rXz`@TsGeB++^N};SFbEY;y!S3Gsx0{Tai9sP#Y{HR1j~OG01$ z6xy(`9&V<&VM*r1?9G`IqyOqZvG?X-6UT2(o0ztF)0Vo4yKJ66v2OFUiOyHYY}~M= z65%WN9JtQe#ogRF*4eUp?0E}IaW9TIrp+3;Zqrw8=#5*QiGv?>$2sF(zZE>NYT1@z zgs4Nv#ajyDVyRlU6wDg2qyWA_<vDu}Tyoly7j7M~DhK}1SFuoJV)(U*aEDonEfd5w zV&N`8H!l;E+Zpff4BvUvcYke1p>N5SF}ODd_Xd@Z^5YwYd!r;=uh&LMxRLM;$Mb=` z`d6MaV+ee1-eANy2q6c-w@=!6(?ib>fXj)WGb0_y+-7WHZIGr>AZhAt0Y&-$pyh#- zYVo~>7uGF|eVrB}C+v+Ho!a7z+t4y#%Z8<I+*+6S>aBR@ZCE;}e0Zg{9Jr@~Gu*rl zxW*=a^5#_GlBr8Gw`@50{98wQ=iNFLIH>%*TQ@8jv2m;3yVt+B_r?tyG#t=`J8$Dw zy?3vF@AZvA{#pYeZa6vYu0rSDdv2ZMEM4N4#dmma+Buj^3xy;6iia1D954jEL^$>g z!h31q_o38#X^{@dMbC{MxDK&4v>^DX35db-BK4SP3%`esGqm?Xawqn;!*S=hX}EJL zg?0FaL*P7(^4Cj?UA++7JvR-9EN<Yl9dCpjjE-w`oX+T<(e<r~epKN&Yol42j&or2 zGo-yC`q~PNHln*6fxQUPFQ7gi9veWR9qWq>y0Q0XAl}%!{gFnjWf7u`-Mkb@#EwFT z5RE;8?miZK?l9;HvE5dqXN&E9oa3a&7Nf)&vAf2BF0o7uGy23<ZRa?BV_)}ioPM!I zNVk7%-(xYFj@=3ccwp>{RTxRcdZQ47V~?ZD84_EIj%B;pWR!Vm>|4Y$ELMb4438a% zJ0oHzq+@4BEO#;V?U+*ytv7aK6UN}NXXZg;jWweh;<4U?p>4(<sCS&PPB=adS#LZa z<w^_pb>E@&rq_j=P{4O-sBwCg><ssN$H5)%wKraO->0EwW3Pwt(EWh-FG+t4<aR&g z!U)Gre`+kQAIS@D`r<NpKIW9vMmPN>KKVpmantAS2+yZi^Bph!Jtp$m_3*^KjH)`v z{rq`82&I3`SHAcsJYT^B6~z7WFh1$)^d=sJ|319L$T(by()V~iWhr{o#k@*@q2{JM zNn9k%eKt&y)0>lF{FisWboz3@*p~q$<cDzdV{#x(_z%s<%~y9L&Hl_vUyd0Egu@Sv z3V~|J%>Y#&{1Nw^UZd%Lh;EMo{x+8ZUIn*>A7N5XuPt;xO1InVDQNoP$LRKY{lNQw zr#s{f42SRIOxK{A199_yra1UlUYH!CeTM7Idp(Cr4L@try`AoV_~~x`2Ll{E2RENL z>7GpY3ntyO>3-3qdkNhy`RP9O8Pn}khMP}Iy3EI5CdYJN>x0JLYbY2r{JKf^`Q71u z!%z23PFVGNn=RxmlkSIfzira(05^xXm~@xZ{f?jREA4o3kQc$tS0!EMV=$9rx*u@< zs@I9&yzqx6-DPxt<fr?|0}OBjhKb=%O}e+!{h3Mke!4$5={`pH7k;|${fp^Vpecsm zmvotr!Ay?ne#`aVz5WOx68_GlTTA!%e!4$$p+qknM(l)tGU@h(><IsC(p}B_znFA4 z(7n}9_v=QyIOqYU`;DZ_d<<rC&VYFM9<J9OLf$cLGW;ZOgom(J`wt<F2M=M1hYex+ z+Z%>G8%|+m@axQ82>u(>*lt?*arclY1jw|hxc8*X)SRJT<ihim`wcwdq2HC@`m{Vr z8~R!uJkN-y_t2{$A;Zs#r~lC7C&2R$@eCe1fc5vBc!mwFBo}NJ&-O#NFoNgB6Ce5^ zJuir7$Dv=)^P+e%haQCH7Jf-`Flp$1%i(!ho@5VQM9)9PlRtC?J+FwTc<6!jyegjE zoMB~U@V(|<hEfhli%feMg&dAOyiQ~~o2S$3MTo~p8Qos55y)<&obGV1dT8&F3c90C zc*7=mDv!gv;S;C8S<R)^Bf?y0J@O-5w$Da5XH+GczIzEPM8<LM1$|?Xw9>^~5@Pq_ zoqCWnst?9iF86qtk&b&oz8~raKh)^EA*8(_5-$Rl<KMkt9RkLW7|#b3L*A(?<5%yT z@U0kg;L-36Wiap5HBN5^Iu0JGaMu}qMjQ{u*f`NgAkJs}ILBz5V-IXuhG2Z)ow{Vq zV;Ej~<M<Ne91&)y(Ti~PCfS&{;MBb!nubn9LT72{ap=VJOsuP&(YK<r@@Cn0NLlxS z`FJNj3Iy?H(dnJKEIu8A!vsU>@v-PBy;;wI#@?yzCidBhys$QRJR2REw-2I|4TtUp z<L_bSI(TD^WQ^;W&8v&;tE1adjow){GuI)kd%?TRjF9jwlbQB$`1-%&ox=yn%($hF zcdo`@;#1!$L+Wo4Oh_Gb#$3N2Udaffg+-*MM}*nD#x2G7={)w`dV5UGUI^DGal@q8 zm&7+Oj(KMngy=^K=#A=uxY57akJ@v+%Xh-A&&jh<h!et{c+mGSmfjuUj_*4tBh+_f z-=?7h-2Ow)ojw$=?&xG>`~i2-iKr9#4sYj#`tF)BHKS?}5(>Maz8P@xhKn1~Og!Db z4|-K`z`mC@$jyk@$G!UaFBjukdcccjmjQ2@iMklx-mY6Uh>`Xg<5Ufrg7AIunR)p8 zi60^Q?<D>KNFu`~F>q+WGboV&<-dd;LSX9K>1z?DF;qiF%(G!yN_Zg#0{OywBl>|Z zygzb?yYq0qynRGs9+d@ZARm#PhYxTEMyCxsd%8T{A!166$hezzbe6lva6`kLhgS_U zLC-Ql;~Et4Gw7InpI-Ei#Zx5^z2opS;N3CHvGMwGVsCpQHUBR2ypu+aOzkmzHz>Ex z0{l~&qmJdui{*Q?NcmB`@JErr9~(4(Y^3~6G9c}VPPUie@Bd_cVUt@l0BSj2C@mW4 zl?Ndm%81FmaHQ{jZSW3A3k~OtKFSp~5b70)WK`7QS)WiO<IWLq3`(=l`Wi>5%{4JM zr|U}#Ga|!lAVO@w_TG_^=YSuqzh9q7+9C+!P&%c#f8V&nBx=MtyMfm?&_hO?UD28% z&TVmCPe;BZ&THuSBF<0{Gvd4__m5ai_hqYj-7=2XmAn35?7eq*T-Eh1d}c<YF<=|q zFs6=;jb*T9Nu!Ewu&O0gtzv92j8$!cZ5i1H(~C`Lp(WG+p(XTQ5_%^P2pvKXB_Sk% zP(m{}!1umuuYG3Ekp$fP`~JE2x${WpJ^P$}c3pezwbpLDepANliyL?yD<MDM#rxBb z;B`9W|ERYfEd-&V#YerrOyYIl?RouZDzC4t;&py4uk8zY&0fN5+g7~3LoVXo2S$NZ zNt!PLM~HfyDG~MdXy^5mEMEIi0#Wa5N%Kz7U!vamD0GB_QjL0N%;ohkltI*6L`LMj zFKM1A@n(XIqTWtmYEkdwI$m$wiPu{st{tG0MZK@~=k<ycc)f2duQ?L_W8(kgQa*VH zdQj9mri0h@sMe@gFR40yPu?#+lGkA-J=4SwdMfyooL&hzChFy}v-X}fZ<~2PT=ICj z#CzPae6r_0yjDtSw}p8B8n`ENCs)q(j(VfS=NIdF|A9Pt`)9o0OLBDZ8s1NrT;xk# zw?QP2db>&~d6m3>Y&Tx_ox<z=LMMym`i)#iqx*__g%ZnU5=(=W*i^~O#=ZD<^g+CS zp3iHEl=*=Zd4Fj?uP3kLb*<$0h9vJ_DdjcyP+mjbygsxuuQ4grGe+_L`O&;?lrp@w zhWBU4lTq^RL-K7UxJuO9&y*hYfT;J0)N)HX?{^Xk{6cEyKB2U2gi7a1Twm@;KX+8| z`o7e{an-zE4EZ|hbqoC*MWM@k3@t3`WlFuYuj2hHQYNF0=ly$SyspXN_4Kv8E*B~) zmAvdEAw;B&ET7J|TT6|ESMvTplB20on-isN&XSVcC^hm*BmJN<aXmp&^`yLQmKa~C z;PdzP<8?!V*N-Lr--2I6y(6T29^8ZXOQihwld^hM%9gVfqu!ZPCR3%YZ7un2lk{)e zfp2e@R6SqB`(302Zj>BdAu0b_%3*<&<VH#1_VR@Dt574-icb`J%U#bWpKi(P(qdkp z-c{};kIxV1eMFvL8t47VLWhq;d7phaub)YqN=RvJlDr%$d6^^aF+7ic_K<pyOTA2$ z_Hvw*)piT`_O_9{ZYwo7dnxZncJjJP()^Ot*CkR%eNrPwNFLAZrJvslpIltY`x5b! zH-Y!39>VL^C-VBYZFv2#gV$w!ypB7P*W>ee?Vr!<D^kKsrF{Ojf=}wk@tV=kYwiBL zzA4o5vV8l7Q0D&P=iQlnTP(G<I+yo2)EU=rq&7!LT^}Sl>JRhzXHt*<lKQ<t%IEeT zKL3w|eCvU{zd}lt^JBnIr2HS1^51nAKKW46e6@u9U#W}PQc6cluAe%9el9qM*Y6~j zOSj_v3zECucHXy0IUgjod9<Ybm1aIaRMIn5QvQVajIQVNjgqPbQp<;z^GTwM*VR%B z6NP5JtKpO5<jECtcz^K>UjHs3JS1iE@IpR0-{bYGiM%cl>U|@N_p$N3ek)~u`HsBL z5{ilmB~+I1$wDcIk0nQ(9~Jegg$6#95H{_{Co`nR-;$88lJ@wGeAOfV{~&dA>vH-$ zL-M=JUc5g~=wbBkysww^_eq#bgnF-&l=Mq`Oo*SIh3X!V=if<RaO`pXwp!jEB(z;K zi%-sq@%p(u`BY-uSITzUF?{~%VZ7!Z$!m{1$&wmeFZ`inG@oxjf!B+qjh6@~zuT0& z+&?0zS})<eCg~X_A(RTGJ-d|O{zvNcH^sc)x0=^(sgb&2yuVJ;PoE-}jNF=aFzPVG zC+^Xs$TKF)E5&u{?>EDB=I#x+=F~EciDy}sg{up3Em_U5XZMc4b<f90HDya$ajo2* zHB&u|G*UZ@wb!seb1?s#)ws6aOd8pH9I3wjAm+8}?JaTbzL05L{yJOsVecTE%)__d z0ry8|qgFGI3H6Zyt`A*sEMP+@YdYY}(0*(SH-%n381P8wYNqp<(0ybY&xW?&8}MA{ z+_8X{Ln}x*uZ0?zz_&t&F}0tCo+i<L9y)9s;ET`+69Hd_&S9N?6<Wz+{W^3Ay=)4- z9RaKlKgTrQ8Gaq_q_D<?n(<)U-NU#}uFS`E%Gr}~om$N*p5BHE6@NSK+X44Zcd<E5 zT3dnZ&d<~L<nKr#Q~tX%uDh&c)~0^XVxF;a8LrvCT8Qh+Cr|*<#6bt)n*SIXYr#ZT zZQ(O4wxV|#X7SC8wd8h^`|dp>ah>%XS=H>_7vnnT8Ioq{J!^0+n@`qO{@wyyEBaVD zl_!qHwW?(|T<0AiRd;hA?rRQU740=Oj%)3)EbqGGSTyzf@_9r5F}OCK(2i@<f<?H_ zpD_v7=9@`QEsd=3)?en}+BTDZ7F01u`@TowTKp?AvgC{ta9#2N>#qHR5Uw3FN^$LM zV%oY+FT}NX5!u`Uf8Gh#18<*$>x%7J8Y}1W+IJL7dDRW{bI_%%(*8&H!gck7Ea5ee z^6lCRrt{#3x4`v~z1WNoTgcKoyoinDh_~1nj@*N3KI&@{<I!KS+>QyYW1^1@b&_O{ z3vJvQus&3D6ktQ>3KsM6p?NHapM~bO08R)!zaDU6=xG-3NudW=jwgo-82Kro|1yt1 z4=ra^of>+ZHGf*@+KGVELx(dbzYIOy0XQqvT?IHl^c_j~SD~CSfD1w^^8goyzGJyu z6gq?1`gQ25;{g|kmQDg(5?ajMTpC)=s=O?8{Zzo^p-T<}{3f&)DfzddmsvDdgg#)< zSB4hz;Z>npmfh8%Mf~oX&_CJut_`*90Jttx&E|c5=rZQ-hR{ED1l$<fpM`W&Xc<fU z=Fmubxh1q=JHV}>f3UD_3w6y0+#dQZiTZb;(^mj~A3B*8a7Snd=IGAQrF?i-=-*QS zcZWV^rtb-DaWvrG&`FH%zECz9+WnzZBY+1&b6WuqhQ3<^cqp_j^YB<`4x7j0p(jXX zPlZ+w2Rt3RmId-m=xcJWXG0qf2Rs*gmES!dx+V;GA+&*BUJOlSj$R6VxeegYp^r!j zFNe-L6!1#uA-1PiLsgA{*FxtW2Y5a7Eo<|Q(7nv<o1vf4^_S3XEReTC_p&<P4%L!E z-U;1!Ea2VH0($vt=nR&`-$M6H1H2cS&Dj4Qx;_DTKlBM>_(y2<9)N#_&LP$PE3}+U z_JdGt3E;!fNo+I!4&6@T{V4Pu;p5N)ES^t7lSo;ghHhh-{U<baHQ=+*sVvXWLotT( zMQ9p{`^!)>>-L!NU7G`r4UcB^9~Yjq7_cGyM}~QP_&PSxpM~R0#0lZyVZe#uZJPim zg+E~ePYyrGVm&3iinR3e@L~piYIp}y&uQW3SsmwwcV}|X4`1{%z^}sDq`?cqw`>4h z6z+=yejRS0>*DZ4^g+=}!nH!X;j4Fn>$33T0>I_rlUb0z3E#Ub;J4uy*_^Hjj~@@X zGJF)N=c@3E9>CQwWdg1ZFWwz+U3dgp+V$Z}Sp+wRZ)K8h3LnFgxHVkJ!n!T|&?><1 z!WSd~zYqVBT<Fg5+pLbe!d&hm9DDo2cEp4I*UiN>IhQrJq-I}z7jL1v@}MQSR&8K< z=lyvyt~Dd+yKU}hTo;T*{w1Ud+q0oR9euqU@Rul_n&->*tH6VmKjU>(*AiS0dXi*% zcDRE+&k6sN?cu!en=GaC!;{#mE(njO#|y*UE(QfTlG(gCd>T@QqPt@e;PUW!<Y2!I zUpfMCMR@Bzz*XTZNH151r(^@J4G(AiT^D|b#dAaW7FO|%;SihJ&Ebm}$}Qou$;fUC zf6fZHJ-mso--kD=1Kbh*i1lz+coO-<-QlBH5BG*&W_<UB?_zEr41dP@dnkN5%leV< zD7qdEbJBG5@$l(ofIo)!D+N3m-oWqv6h8cTz|-Lv>*$&ATg8Cq!dIcJqR)r_(g}Dm zJeNiNQuvx<056Bn$_Km>zL=?gEqpGs`Fi*XQo&!sM>BtKg^%0-cqcr52H@RrC2RC= z;gQn;?}hue2mB-4J{R!M@Ceq~2jNAG=)-UWiT0!LKf3@Qhd1T`J`KNiEZ{%k=`q0P z;ROc)z6f`)B)$sMZXewkK5YzOQ+OZ7_uuf{Y);>WD;UG~;S~(**vNc_a$Mw#Jivy? zl??j$$Q9)5Cq%AcB2J8)UIaKf@&E`ZdP-y`62qyHc2dD<k*=wLGa}PiV`oPGJsj}M z$hl-lXGQkh1#nK}F2cEyx0eIXk2JD$e-*ilebt4L(h~p|MdCGpizAz+04|A~%}_3j zj9U-5JaWiLz!j1AasgLHZe>Ya9jRk^UK6Q49B^HPqpZ>EBRh2fZi>_{0o)vkHUMso zoZAMtEmFG@@Vm$pTLXR{;U*K&yCN@+1Kb_CmGy9MWD8Q(eUXP*sSiXRX1P2VxoIoF z!;$rS10IQNQv&!yB*tQWEb=%x?VFJ{rtB|~6YBtPM<%nB-ic&o0{$AQn*{h<WNa_s z?~!k(1Ky83P15*RWYZCV4<d(b3-~CKPb&X7@_sYmKaqNR`7BbvTKOV!@F>8Sk?Xes zY>fPQ55U)v<@*D!&G?>WeO<-`Qr3+b2hht+8CA^6Eg6M}0B+6rj%9Xx##1Ed-(`HV z6X1@F-DUyq%=rFLz}*>b<Y)I}EMgw+%XpkrcYnsZ#efGhZru&=P)3{`<|7#+$kHFp zIEoQHo-vaV{W0SJX8KPV%Si=KWn94~^K8arq_gKTa+d>M%$T+h;H8XPR{&nlIGRNC zO2&(<zt=K~S-P)hoWYEJp3yr8@I}TR%-F_^ZCEZ}XMB+j*d*fw(f?-5jl%U^#&flR z?=!Zo09+KES_SxZ^uT_=CDAwe-KEj<NE4Swr%nO<Ci*!aUKzdiNWfLm+sQ7jiB2JT zUmHD&*}Ojb{xN_XqI;3}ZjRo-mUBz=;~v26(ZT}&zk`kqxFh-kOXAMxyUga@(E}Lt zJ<*2a0QX1tZUH<Hy_N*_P_(EL@Nl$(E$-3iRJPPVM0aJqKOX&_75B#|#wfshqBBXK ze~O-00(d%FLE3#L`Ydbux#*|-?)m7=<U}t<PdyOuQuO3<z{}B>mjGUg*0RPvj^56c zeG)yZ5%8brUTo8!MPJ<<@I`bq3GB;g*NK3Q(X&_&Uq`>(1+Xc4D=G57(Q``y-$lFF zfWD9B4+k8Zc>pW*xXdw=0UI*gS!2g%&R7FDA+wxJ;Ka;BNkk`Sj#>*iCG!jt`>B~* zkp@r8d}l1+jLgf~xX#Qxc}u`qnd4X>XJ>A~1fH8&#Z;e{Ih^!)LFRMSfD1D(YX$r| z^Q!Fu7iX^IyGt{FT@Sb{^XmD4-(-HymipVwc?|Q)%(bM6t1_P&1GpwLYdqlE%q1lD z>oY48fEzM5u~FWXS-_IGIdc^&=hn=ZSOm9aUd<BxUFI&!0Kd=Nn$g~wdFVpGU73&3 zbx-DYVZgna+mVv*&s@&jK9ITF@qi~XlNo>~GpDc}{V9`sy+xnOoJ?N#bmny|vu7|H z5%65*m*k(%XYM%#@IvPK6@V8rx#?T<rOcCA)_=|%$GUwr^Bku0wahHm*eRQRhKJIP zpBKA@ba8%cGRyQ=vA3dt3u4ER4lj(&iUTf+J<t6AI`#&M<<i(~-GIwtPq8gs9*eM0 zeiNHI5AfSq6XA;3HC=!!V>5CASH;@%0awSeS+Uo|;=*xaH;#hqy4Xw1&h@dZ5r7+F z&mRi7G4|0RfSY2^ZU(qHb{(7dEwR7N0o)q9nl<{n*jc2R-^c#F1>lZYbrNuA>{K?z zyJF+$x;u6mDgB<<tL=b$W5<(o+!s5J<amFq^k;wvViz0@crbP*BYGru?p}aLW5w$L ze~5j_YJMzs2<hqZ*i1IzKgL!u=qF<9Sj|tyK4+QzDK?rF`&8`lk$|UTdsYFSi@n6o z==oUB5r7wBcayeXjP;xVcq#T9a)8%kE875X#AcDi-;BM@g8WPDAd>1^u>uD6c5II< zz&o+{IKaEHXXx{<u^agCZ?PUW%=cnkA{qUAY<rf=`?0GE0sn}7vM=DDvCo<6f5k2! zd3+Gtk4gG4*1$skcPwWj;G@_RAcW}0u}@eopTs^P;eHzX6S>NNVvqI%K8qc+E8z3k ztIYcsu?JW=U&c<H0Qf4_!H71-&dCIP9s8JR`6hNx9$-^!%5H%F#vWqO-^S(?0ltg1 zvyQ%xjhY5HX4q5P0gfH^8dH7Tus2vd>xb<-8L(m4<0RwbhdoJN__JZ3u|Q53HkPgv zhixLgoHT46z7sOu^3Xl;VDzaAa2<0TD{$-_mhSkxV)ZfNL{j0%MQrU`9?H+RdVxef zDg)h3XbcZ14~^YBp5sNw{rz}6-(~^{bi!;Vce^c_lkK-+h&x<Il8fJs5G3YN7qGh; zeJ!bM?EWm%abua&t&c6ib(<?#b`!qkm)pL^P__$o;JSS=Q@X>SSTQ>;ISSXEW{~s5 zx7{4qiJ6mdopb@8?|jmZxK8e?$92jMB-CBDXT?v=W65W&D8O}E`H8sh_RCsar(ees znsL=!T(f&w$}>-4z2`hS57*q6nEJf$x572?;W%6ij$t2FIDI9qMNjnNT6_z`DS2rv zuDg#Nj_a&{@cHadNSb>*frjLjMm#U<Z3^KU+B9;6hdJc9_wXMo-+gi0YHSg|_~71^ zo!yHo`a0Kgq221m*fM?Ls(v1iku1p0%Pvgj<tB<2uUgZ;xV*llrsd$gRXI6H-B*1v zzST2<yw2ShuUxlk@$yxj>-2MMai5)+EG)=z9xh(PBRLkEJ?i=S^0i&v-v35o>JP1J z??__HdP&3oAo9hl4+ZZ?Z7$E!Nt>(Ri6ZpuCifmn)ZbKofY)WDHF!m`vX{|oa4&vX zKs|q(eRy%5Gi2L+KGMYK2KgoyIR>C=?MiG;&j(2Kn(h_09?UbGjEEbPf({fj97qC) z0qOU=$R)ARqPxQ}5P^MiJ)Zm#>qA4KjIez+E_8hDoS8Gda7O6NaAw-8iJ{)wId`8q zQNl=lF+H^B-Fq(O2br@o=j^e5{qgJh+pu)$9(*`4Ou9>Xf6@!}&Y3f(cInL8Ikgk9 z`@Q?}buTn?PF-zX7$bttH}83&IlZ;R=1L@(?~)PD#w8=pOXfsgYk9eQQthPL$rmr( zr}p|elP+F1=is|*Yj>`#i}b`Jn`K8v#nW?oPAF8nh#8H{;pMNmFb8|i$+`IAi!Y~Z zVmJfIz_EobrL9?|>}n<C2Fn%MOp*6CUG9oVwI99l-bTIdSnfZ5AK2;E>!&Ygf0g ziBHLy9-oqn|GY`@-Q$zy^iPUs$%oVEtbt1co*tiM-Y~3baR~*X&x#+(6UT5`VNHE$ zT~d!iltXE&OOtx;O|f%)6V7#-*W9RQ{1$u7EtSm+Dl2m3l%4;TlQa=yZeDRRb$l2O zNKEipd7czi&7(qjP*iJK`pMD*UdkCq4GU_@la(vmJC=9XG|xwN`~!>a@r*dOC#i>7 znRhr+6h{>&tC}k-<2(Shyt)+Uvp3*a>IOX>mB%Le=LF;QA<Tkc>^y?Cp|PP1=MlG7 zH&@v6@p3SVbXfNqoLDTr>_Lt^Yf=yVO5hB4_pDRbi*vx0f9P#FPUonQ1<>Y9x&`IQ z`g)!;4bSm>uK_1?;mEgx`+B?LyH3O5N<5OyoK}SMnRt|=JsdZ6Os+X6SAC^Q-kc4I zQ*;pqqOYi7qV=#Sd!nCns+NDUHVei5@yswOBG#Tg_zkyAFwcEMfihTgxLSPYo#X01 zb#!$rkFItPw_<RC*IHI>npcy~g;Kb<G|k8@Y-2`1UpW7%rLC-?v6+-@3IzxI@&{Tg zDX6G|x7PXg<YPIR4yO+D+)_Ddb8Ya{G9(Vi*wrkk9FRnFydw!V<;SG69LzM?x2k(( z)=I1_pT456t9$zL?v>Nx$>b1kkSL|p^2Uaiw)#qlC8%3HGtX9Sc0pb9j2vEB^Gff5 z1HMSGEqaJ^&bmtEoBuosFa7j&IsVN#9gnmf&(bd{s^kkcF_4?Iv{pTrTO9OkPxg{S zz!E>{AVNI?Y?@b9(}+`o4c*8QpG~FBtqqN~)uc5Ub5N*ykn*irxrV7pqFz8b6*Vn5 z<$Le4Hf?lz{Ns?Gl$6{<{^U5zWZax0Cno`7KIqzR@Z~K31U@<1G<Eu35?qAG8~V*I zyFjW2HG|$fnL6MMMVgnBQ&O&#;GQ}ipyCuY>yfQ3gCA3u)>H=fVw+3L!1mHKqqq$x z{o<TdlL7yfGbY<V=31-McL&cFPrWdtfZ)>FR3n%qctAx{va+F~rj)EHk)KPR%W{`f z!12g0T&{hQ)@#^|9^RcOHYcr;`|3&Ja(ri60VsEN-)rux>ROZ4r7d6z<OYb2O$zL& z*hZgzmO0PgENw2Y#-WXkJS;a}WR3uBt*N)vjoV;B@NMdlb@c1y<!$vTzQdyS3pTA# zNx>D}Jz(Q;-$N=OIii@fRk^T9*m`bGUM?HG9GTqKT9pKunjE#YR3=4`PFA!u)zy^6 zT?gJIJRV$Eo}2qWKAA2)V@2nxwR0d$^0>Ga3Ap7P-uR5AxNppf&*)hJF~5Cj_Y82m zrE8YW;iHv(GdkAxE??8T5{@3on`>~0)Qr{Lf~)b2JB9deudF(^D8B$Q&^#Q*+6?`m zwX&g{C(0JG`q)1g+mkx|hNfj{suu;LhXk6_h)G*N#0)?d45+1CnI;`L+TA(axQLCH zg^#|!va}-3YQV9<rqk{+2eP6;fJzM$)ev%wb2p@&XOJTVrv3*zQYZ6eb#0Z&x|TA0 zU69WhTPskx$!bt=d0ksYr6hwAPIW2zCLHvR*4tPQHd&c0ZK%Nc^Eeqd7kPu&QjG_o z=d7&M8PL<RX5>!8@$-2tNeE9XP520_5yfrJi5Etd#v%&yhdv*CX@7V3N~brekh4}> zD9Tp0BJF9Nrz7M9y&3+Fvol*!nyoDqwA|L7I{s5dFxCnRRSqUc$qsrtBzj7E8T`<4 zRAjGo{JoP{2soj%vfe5|$?7;t2&9p0U6^cb#F52~&8_S=JLpxV1~~#2QiE1qSxsxQ zd0rVL(}sBN?AiH3TNR~46IYHQF6VP4`(#^FMQLj#DiNaEAVphU3jXF6&cI?7FQ!Nh z;RVihCsp!SN9h2J)SStT<3_7W+v-}Sds}^=f1vW<KK!mm`$NA|la8j@373UiQ(ilC zu#N`_RoYQSpy-@dm0+`SQ{J+myp-~At4N>JXPjOh;xi7XMs83m=A)DVXOE^uv^?}W zT>xD`66PD&l=iMHt&Jy>{x(76%~^+Zw;zbc<bOqx5Q(77$j@@TmX@Ym)6SSBJ%_YN zyMrG-mbA$B3Fb>2qw0TF(-`cGD0Mi!5ow!(Z86T{1$n3H&x+|oSB2|C>VoVbjT<D) zNx3#NF6#>%0$YhXa`Ii^XFw#!fq9U}1vcLfOPmM2tsz-&cw)kB68=%ua(?#^jUwHX z<SN)?${{S2wapv)Ol&<u+WOL>fqE<&1PdChAc<ZZY@n*Nrmn5oNb)Ld1=KGdfbHvE zfwrlf4eE@eI;AMOs;&`7DGST5!%^YIcw=O)vYL4*nJYh$$6gcZGlz&Xfy<T&t7Bh; zxQAkk{%QA#Tp^qas(1Fpb+>>?RcSA!Odu9jHs{&C1(LlvfLTNqht-iU*Oj)GR~ueQ zX4}vRb+@rubjLQFJFW65TBYP;z`5JZ8_#>@k<-YS?F`H@z+j!eF6&FvI0qiAuC{V- zX`KnGfGiB@L*$fuq%w6jcAL;Hv=u03E|E8tIh-iZN(e>)O;s~=&O)f1LN7+8GXkO> zu8c;+@}q#;(pqZ{s1Fuy+Dj!kT7tlZR<H0nS0@kY?_JaF)gzcT=+P(&R{4UerX>E1 zh*&p>BB`3BQ6-fY2I&7OmSH;uHZVvCNJl(3pL$$HO*6%MzXXl-Bv6D<Wd|NL?NbiB zDGgKgaYL=PUq<Q%R%bFv;ismuJXugs;<p2SZ|cD0r6jvVew8Jx1|(B^Dbc857r+Wt zTLA(4&S2FL@FJDrun?cY49!1WFY<X?OIax-;e&hE9BNw&B?}{43NLZhb~OaBUz=wQ z1}393;-Vg)HT2b0T4P4vBxAub)(xQzm$0Ql^%<T3ugL?u`&V`^Pp<9iJvcWf>tI*? zod%=Rv}rSQMGTg@mRNjM%GcyNm$mo1oLL#>j|wZ4V<FE-nXt3iyP{S53ETzy2tE=~ zn@rL)D9a`aSjlN^44gww3l|+zEHkUSyAMoe^(>pdst@ON8=DNDWo5z7G&~pNORv7E zE!kWO*0&HHk0T4Y&n3-1F;^~Zt!!?9?Fo+|as-$i#MUy1;*dc|sg~=g)=Rcy*_Ac1 z!CL0WRc@Lc<r-;Ch8nWE`qsh*It@c3c?CH|P@0PYc{#cH-7^w7#T4yYnsO|0HCKun zftV|st4eX`{Q@dkU~S1b%oI6Hm9GdFS*2Ocwyr)}n46zxM4mLWEi<iZw(?UIyQTEm z5v>z}dD%L4lWi5gwHcgHWNMd}2b&g*p)lCOuwbl<xlAl+ku4zAN%{s!S`A>RhV)iH zKrFD0KFxzvq%SizHA*3&V5okvs?tf`wH}aSORd-gi%$WI5<fA!fx(M4lVTwgQqwTc z&=TZ&*ET%BlcvWpW0y5H)}`67nGd6M`c^;cn>iIGZmTbWdoL2=!TJvS3^<f}rLQFZ zLAp)1Aq?``7Gqi~G`2OXr=iB2F4odIYmQ2G8~QRS`@I{RYqbl*yP$$$?PUg=W)$Yb zQ!_#!m8F=VP}*MgO-Wh^sSm{S@;p&`rPeBF;ncezpDDG<2l)(HD;a5FzQ`J2n0}kr z4lJ!)tXP!l+-xAG0g&OQdQJ3igXyP!({HU@XlSOWtu8)$c0BEc7C1*UQsD^C^Vu?+ zpRFoLjulYM1tiHi>r4@vpa=72tF#rw3!@rp$J!uRa?P!_3~?7MLq76(wJ#-@{(OLx zK$9I?v$1+%s0d}`sBqF2Yt;H%Qx54B$*HSpsBCGV(T)6>ZOY_hNPn6c)aSw!l`M4i zBev3(1y+v)pQ%JVJ_{uwq=<k8AWD#{)&vVdJlJB82G|51)?BlozO<!Q8fK2$X^NBp zZdYDiOJ?WN)gU}kec3t!g*R3uD;nF-(V)Q0FkTBK%(}|Trp5-*P23<!#=-XzSTL@7 zbQ8^$^Gz>QGFXBe8p~n5_|X(wZxRb+NQ|H4dS#1RVJuphY^<n|mL=@4xw5sjk>q0{ z%@unLm5au<)}$&5>w0=j^IU63a9AhvD{Hhya2Ko(K2oBj-;@#8aDp`JU#_t-u*HGm z(66J~FyIj6orArX{Mq)Tb~f~-es^!BQzN6|TA3)$NA}ss469L@Z4jv-t=1|~vuR{9 z@U4;uvYT79ZXMciGH!(v+FHxe6i{zQx0aFMR=;nC;m>DvzIYR)AkhK+w;CJDYMoSy zFk!ZCWZxNcP9vi7X2@AcOG~8=|EAiqLy4|0jfKUfEm^pSD@WB0AX7`lZU&t2eF<GD zom`u2YcT6#8hf>sW)vVtl=FMs)|MtrgXwHv-fikCp^VBmclxiL;**RS86Aa4YE2oZ z!R<ht*wxYW_E3o$+F-71MYrYX+eny^ko-X{=^J=Sjb}lR<aXT2jzghK+QBVXsP+dQ zz`CtgX?pmSwu=gDnvuw@lR;%kOB0p*y2=HpQuC1`%-H@aO`xGk119Wp$eJzS??R@` zG)x1z+Ma182#lWat!>a4{Y<kV_|y^5OueKi13eh3pfX?;0lKXsz`BPvmJ(Un416(7 zO?*N}Ly2-JGoa8BW>=`@U+gwMvGr@)qXHuh1sYy5POAq};3#S2KMS?{VW;H|0Mfk5 z?1FqCg<FDTUpv6KWM7gO1zwVz_@h-A-VC>L=-G;Ekk)A4=S+}1|1QA<n=VLAR1lx7 zw}JtU5uF^O_z7Kx`qGAB<%HZEf2a`gS~W#X&;xj@&t(0ZN+>b;n0(?$j9Re5u2AmA z+9Vtd<2;};-=t;B&k<xSlSX(tmfwQTvb?1=Uf@B^HyRkfGfmnl_i1jq_(LM|nkyEi zF?EMarF)W6sVOaMcI~Wru0Voe%|Me;!)=~zHX;_Zw3U}vwzS06f~ihZKntxY8B`}F z*5ydUC>^w1427D(M^!43f<c~wM}y)Z#O4-Giywiw27JdE97gvRp}3_I!&)2)Azj0o zUS5WP*%X;24xsX$-MQt}16n#~d{}0dSLF3~FHN?0b@e07Myb$7nIq-bhPepV%Fg>> z$;o?LY>s&vs<rJvb3IPyLNYk4&GsuKq$<O}Q5Mr){e~msOlbU6iJ{V@893BpXu?Rz zscvV+(g?m63LziWYR@<6H{y;}Tt#!t&n>2rrwr5m5IvYpAC)y)SJRS@UbLpQQKmpJ z^~Ej)Tk*A}6_uvSdXeivsh5+nFsIB-`#=&`Pm%%4N7964wJ=eVM&oJ`B1wqAVhW+H zWu6RYv9MS}juj_WQUOmAn{=0^47w}}Fhy9?sLe*oFE!Ug3NR-p9|dTWDnqx1AIdBf zM=tkuxR$g;Igce7Z5&XqYG1p2jo~0R3Hg5e9(*83tC($~skwAseJNxs$gR+pz%yGL zN_CEr&Wu~sL}ejepvh|~ud9|O0Rh?ezPJrG2)?!L0TkQfcXDF1|B*53JoHq|Qe}Oq z)gpNtj6<IJdZbK30&O-XG2Yq&{_2Yj35X0Bzo~4-%q82!a!j@!Mo|pLAgLHp%`479 ze+E+sb4dR0>!m*`<(a<1;e66n%v-oHSz1<OjcIXgxm|)_rJE8fU2b-6Q9*u5exe|! zI4>`+xTpZex#FsnT#b=SNJ>h)N!Yn8zbX>(v1adPbSeulLQqk!Y|z?q#J1y7b=nId zA(pQh!BCpf;fz3+;0|(3vxP_HpuV)Bt)>D+Rzj9U0mSkI=?gGkER4YCq7Wvri(F54 zf3kaJSCVr+B%>lZ)wDEQBN);qwip>=Z<Zl;wh_eB(=9ZCNfnmta2q5EzD<!GIh7+T z8}o`LjD|}n1=%@m7;y6ywd$&d`kEotIRCAbpe<7~C4mV~%|@YcZAOgJ%B-;hVr*kW zYja~=9<r3rqSH|j-@uWRXH=^})Ne$<*%%leE3a)yVpzMeTw4nHP0o)rejS@)<EN>3 zz%(e<p;0POgF&WC6(XQd4&lY8F0?C~q`?`4pP)2>)tJLm{d&p{AsVd^h)_bhv@&S7 zMXo!Lp|gIax?oBYdB1ac-|B8x;FkwR;-?xQMdr6YjD89~ZV=6sc5()m<532%vY-Up zyLt^qa2!2C9;6frHbMDFD{d&k!k5RG6=^W0lmFp4vJ3cHDnpeAGv&?DeQtJsPHtXF zaeg6&gY%1Xi*mbX<QH%>%qK_aX4yq0MTI4a+(dqHVO}D)ps0H{jvjD`4;J(s#azWa z#f0r1w0^DqM4d*WfGz<|A~<QYs<AG;Hy+%F=4x5{YMc)xi#w7lah_Bbv_q<F!RN`O zyfF(d%-IN{*dn)N@(|bEkpd2%LLXn=(S9IAHNVKg7o^lN@55!RgT2?}QO2|Kv0*(% zYD;k*nP+Wzly3rd+LbkI?7ebG`<d%SB6dFaH3FS*h4=Bi0<ETM<pX3@DV-^&SYNXX zL=M(E{8Q&a8xhLPt5E@p0q0`-%9f^PJE5&S%Qr3f62u@j29_U3vny&ABy)zG$(ed9 zS!Bb3;x#mV<(jegG`>>a*w)ZmRac5RgiI~9XdM&`7%ODnczySZzWzh&+gC!+;*uph zRz@aiYD&5}>Vvk9Mc;938AfDxR~JZTIcdU*mblf#2uCS{xvjLKLhBj>f36Ka-G`Ke zpFf$tfElfo>GPcjdoLd<*|Wz^AN;kGRaG&ft=-8HjIpg|CLvluYjayAgb(e2WUiy~ zF}WY4XGS%vv<4vydVs^4?cAbZ*UJ(!^yd1IJb+cDYe8uf;;g=b_HES-N?-oOSe+3o zh9!^_?Vorp%#R&oO#_7Dn$|_=#M!B*DZ(6LBpFD{NLgJlO67MEg$YkA9e8U-V$&wt zL(_%E+FFyQnx_$SK>IQ?P5m)gi0a82HVKnBK5r^-K|<4}7^TlR5}w@Bq$ch`Sh9@t za`q=CDRMqsq3JnO^WoAKG$1lrzNXxihxmaNuaQBKgm2Z5nKPiUA{yg;W@4I;%wrH4 z+nPR7B9n;n6}_wNIvyi9N*0<+>s3vKc}+}GsS#C^R?HZrqSb0gB~(0JYsFJU>?r81 z7&{dMHw@ZCSRFWk#2N@P*3`r>wqdbBm|0IMw+Fikv4*E)`t%8KnkjNNf6!QU?^48V zdMdJN9TN0eX}W$UA_ekehA(Mh3dr+(<f}|-lrwW!^F)BrIf<!?@lDq>@tKKFlvAu^ zC-(y)p$8iclcb`W{Yag`&#W)|C9Jk=gl0$wHsnFXbe6o)73<5J_Qp~;p=`MihHf5e z-Wyx1u@(Vi$rU<9uBx$_bE7b3Scd5V4rdBXatc<eVNL;0%Ad@z&JZh)ly+qaQldD4 z5gu|UqcjCNBrMKo##?GLwyzO+g3B+HYx>uACwtnLLx63^^3AU9p5B$+U2LDryD{xX zKI<|~PC6(Xhr{8mIf>*2rDdUZJN{UD%6?x?1qLPq1TWnYXTh|f45d^!WE>cY<~u12 z@^RBVIoY8UqqFG-j=|phA4<b1t8E%6d8OWHk#p__`h_x#Ei|DwtYL<<@fe#mGl;># z^dBb~$PfYeDhRFy-DwLlIRl0@Kbu%|=U9oH$2MjoNopDTQM8F1#nBgcQcZ4dZeAUD zEhcj#b@<Y^|0)v{j_LHgcH)UEO_*6ZRh6Z!Fk&R<!=iy|Nq<;gw~sv2hOYBUW%7!e zqf5)@x7A=ms&Yxwsrg!95(<n=CCmZ~=5n>^hxmgc=6Q~p7{&L~WIdZSom8(OtT?Uc zQdP~#FXp|JAsI!=Y&1w0C8JvCqI7JmW$#9-$zc^j9v8_~vN+ivYKGO2g$z5)+lmHu z-jG|bKj2O4*-<VA(>GMrknV1sZLP2e87^4UXl)l_APn$kKJ%>?k|FfDUI$j4Ay-t{ zQ+y%Io#B;}pI?}hUxJxlP}QKw<rZR;#x#6KdPnOwOYB5XgIy=#aW0DvLDMWXK=5Hz z`34$Hw5}hd2?pP5F`>8bHC#t#7OUnHU@%ytSx}o&u^cmyTPJC$(793?3tCQUb}rgX zeLaWck$2y~Sh06$a}^Z4sv21;jS;Y+rivg)bmFKuol~UqDzUV(T2}E@%L2<ZL#FhS ztmL##lDwr&%bH4-40<MEkR%O2Hg@gA7`JuQ;(QL<P7@(Y4GE^ktT__VX!mcHG5LxW zMK83#B$pl|Mif%AycvuPOCLCT4jV<*G)SWH!;g#~vaEM`H$)mz2(=d#V5M(pX{>71 z3Bqh-byQC<I!*P*t&re5tqgQ`I`U<v>Xa0vMj}N)!K$r#V~e*Uw3*ThO)4dCSecP! zh!h$#IsL&ZrsJB@hhwlum$VuSd#+5Zb0qVCmS%XGWD_0fI^#sc#2B{BpsV&fiu6f} zX=MxzL6wg5$=a?;JoEyJw52F4|3Q2ET<jtwrfZqsCBkO{Ob;uvM54jF^q$5JF`6aU z>GFu>kGZG{RkZy%<)nA2MC{7YS7Kci`wvhODsc^-JJX4k=tyPG+*Q|nUYJkoIp)xT zY-;ME=pl`j^Dsb{GLK1@Nex#l)@cM4c%}42nn1<-(>H9N-6o^h!r9pFoRR8j7{$YZ z-o2e`;z?L|%xy9m=#sFo$HZ>txakZxUqE56L@$yGr$10*ip-cwOZ`xOoNPe$a7|3M zJ)2(tr;RU&nL%h8G^`^=Y-e>~Khnp8s%2%5_z|Wn+H9)N;AG%Ix(Ze`<}+w{axn;7 z#bCu@j3$m$!r2<+Nolh+e5ROc$)@Jmp3RK^G+VbnGLGqo7?7!qLwBxe<j`HJ(}rB1 zDrGyun|eZqVALt}npW;dY-UOTq${(V1q|yo<*-mmhSwVYVARkGXQ8q$+L8BILa`GF z(_cyrGrwGZI?&w3dGD#&G{Tx(k$`Qbc_C(?RzYTE-?|7*sGzj8fd3xnvrFG>J1p=O zv$DOud{H^#OryaeJt-0D1R9QnRaDYwSBlooc7#gu8xUDiP5j`#<?U<OM|AeBTnz)L zVY;XR%YJS7Tem5FDbzF~Rdb3iwKi7I{OpqaoWg>_{DNXE{mw5e;Dq$Nd^QLq#u3pi zSF?>?hU6&OS$P+`rGV`H`oPLoWHpW|Hsox2Wl%GS8H$yiDeMnNrHIGhR0B%fPndL~ zzO-B^<}fPlMWxxHA*R*=gOsrvMoi^E%xGM@+8MVsZ)JWAjKvy=j;WhH4w@?$)W}?X z<}OF_E8G||JG*sjKBQ>jtM*28PO~8ydnid&tla}?6};UgRpd)nuW6FdN>q0sHx`SI zsTh>4op*!P{1{ZoE6z*g7Zzg00S+E6#CQP)G*SL(mO8P$B8K!;DeyITe^`hGIi{e@ zz_T$q7$Jc9PM4u{?W`0C%n&M1528(o^@t?jHs5LeCL$|Bs*)t5^y#Wso5}$xV?HLh z4beFk<mRz=Ebute+^iNBqo;6lfq0RKKPh%eMhPNXC=(1I95FAD=G3@>JImtiMge>z z<-zRWOJlT`&rx&I_UjX9Eh(cByK*!XBVB<iL?vWRrn(CZPnYE7l;jnc6kzR0ac&-l zr;Dm2G2pU8murEcwO|8lZ7#Rch%{2))C&C**5n4+4}$uuCd!!^5yvJG?2wFXV{PX{ z%UP}uX{RheSck0ch1*~W@~thxA!;$Nppdml2IF^e4#TpH$|7wFj8{fxP0&JwqWDQ= z>C6yg+;wLG`U;N>IAM5Mml|`(!s&f6{EJm1DYCTVa7NVQFoQKq=`cgF*Hl;MPgy7H zGV(XLmJ~1NgI6wSY+$s)Sj<ZG)HI7h7z@o<vUdwrRYSHu>jmk`6Mr$iwS_Mz$M~An zJVAZF9AvF0gK~e<K@6~e8d44{L?$80PEMTX!3pm^U8zX`4+k0rI1L!<^vG(#qlTb^ zTp@!T_cc=1(hS`W@(UKJu1n0G4M{jSwrRU<!^jQaY%Z-36BXu4BAwFR`<3r54U!ZY z>Dur;vnLM=pUa7S)@dzxG~LMtNX@>r1nYEzgDVt3xTk`?lBQxib(z+l8ZvX$zahNH z=h`+zm_$$GR#rff(!S^ie87;O#Iju2b*eD$)m>mBlGC~}nNE_bS=0hMC%>k(c{I$U z7t^))-M`i?C$iu(bo*^h+{K|#3;<{tl7UpG9%N=D6qyep6+`OcN(D6~Cy@lR?z*m~ zwG|64XtN-Dqr3%i*%1{38wj!PW$Bz*OTHjo#vAxniyUKVn34G73cr&JRc7q^$~Y86 z?PVNRm6}veR+TVKJ=wjkcTJYRZ&mxMRr0`y-?VOMH-+0ElTFz^tgzmqp1J2pz!=6y z+NU{{)moj@;Tjq&Rba5QICVLAZ>rwl1){ya#|RJeh)&q1aqwv={&b6Ac~z9n8&r23 z!k^ZTKcOORkUhmJHML-trKK|RhBcHTDEOQjJ^DJssUge?r#97>+B-wY5aXYXbr{Bg zCf@>}K_feR=IZ{=nSq@qMM=jT%u-liODh)H$z#S4P41m)xn!;qss;)Q=B%-Ju318q znv5bFwlNu)Uy#<)Yw}7fApZ(*sSaFVWCV)6B0R#<=5J|~S3q_KQ&N(H%b23qTHVOa zXLM1#Yz(%bv>EM58wZs5lm>5PX8T?$0F6URRl-G|=TF-NZRpNS$`xeh1NBak)_Eg6 zDsRMO%A3J=nE0WoQU2Ny%P)jo4>Tj$e#uP7#7;gzs^Z2u7&FGcJ}M3j?7uK`KBb<Z z(}OUJZkaqyM7y*Cl}zHTWDRJP5GeG%y@mEv*oI7plWuLRD3N{#;j>VxJ+$of73=y& z3>^@!{lO;NcQ7f~nxGj*C#zz+a~%frrp?I=s!{B=G?OSsivf#A-5Q<VSh|s?>Xd$n zwc0|RwosU|lyOmZI;5bW>Z8AE44yc4V+PtOS)1koy;2MZh;wa9MM@ug;RwALX3Uxg zXRLAP4#ISwL#&{0=v!IezWP8J6t@#n$Ys@nkF+@Js>nfLnDME}&#j~e`LwdB<%L5H zNDRgeg{D=YcO?UdWL+;(b9N~o*8PBexYAQ#Z=+)NH5||J_gG>_j)y&+hBI)tP|QBH zR-Ht?$1zaX7*J+KIBDaS`XJIVRPse;zQs;0#x7rhzQ^wS<t%2$_;9)IM}gfz%viD% zyxnZWUnQjjDM7Wy5!^*EP08(fwlHK`tusZGyFBGnl2ze0rJLDBRn6|FTx+14gMr_o zd_;($iPTrwSpaGJr#1mJCs~14iScg~BnOt`X1c%6%ViS>r}L3*m2~=-O9MlA(bkJ5 z)N4%dVk*IA#L~9>)S~A>TDWEDI$6Rd+J)VOVl_6Q$XYl3P;NqT=(L$x>$qE4V4Q-D zoD5G5UR7<_15Fl;IkYLgCkUXSv<baKo!OSbY%7>Hpp24mC%LR%)3-_{x%k^%#sh;8 zFey+R=Sotc4Iwk`^JI7^o$1C3D^sz<W7bntZR9bX5mD#{kY?A($4oaAf|$-6xzbnk zU7HSe0h%WhxazRCE!O!P#mFfaJ22`j#l@%<>xNv<+9#}TmSUhJBH^5v0HuAY%%&kn zN|Re0ae+#0kZc04g=7Y(Q8Go8wG4?s$AjF?#MD2>!Z2FRBwAtKr#dkiavZ|3pqWKJ zsk$+XC@Jttg_5QR8Rv{+=LG+iGe4AR;1)?(Y>bIi7`$PWqUcmOaTcc@`-_>}67fIs z-<kqZf-l3O%+k(I)2oq37-InUk?`jbSX+ca7$jVB=A13?1580E<u(W~LJM2;<!);- zQ|hG(fHe}vS^-MVEyDT+_KRRCBB@rluk2dhjg4L)w;P*wU1h_(*6KKj9O+}rH{G*u zB-Nf%#^h+)P2^Eq=gdH}K^7>_-`CM+f`h4W&<e~-NzA*$Hb+=s(AS?->L~A9+0(le zJb|qbo9?N`!R_|~T;Jc3&#?V~{Z*=F5Mk3b&{7OxKBc)pMv$D^ZCR|iVs`ChYG}x` zHYvFerpP>0Er<#;T9a~fTeUJss>WK9IK&bmaL&x}^?h^~fr&Y4igPAYV6#ZyzuhiZ z?E~CM(*Ix(ejzpX<175FHz8x@AJY-FHaIacP#gYSMUm}{q0$U{L9pf5{w5NZP@RGF zJhMK3pn(H}OHxH^4LhK9G_||7_6rngQP$}blzzaQ<j3JO4wZxZbg}p4QaK@W-|CsR z0j)n<Vel<G^U=zfV~S|x#zXZcXr8i8Pq#lZrfIYLH|AN$F5o~=w_P9XjLKW`7Aag6 zs=?XoG_N<WGr3Gsgz3~R)tVkok~BZ|fj$wIrLlSEu@)OMG?=-Fnx}0fff*AHN5aBH zawO@INkH-mHT?8Ka=&02)8=04?udgJH}hfZo94+*p_EFHR3o2&hQtJ{RwAF{+D2*7 z+JIYHn(Wj^+zz00yfw*HHO4VuuzLw^b}e1)pav!w${`K&n{+D@ikck~%u@d79vlOg z*vcYY&UO`rN;R#NOacMg7cA1Jou(9d-^h_QBT?j#f$|TL&Ft8TvU1F_!{Rn)3<hnf z8U`)5AA=7t);=Rm$mB-~7p4)zD1x`TUA@{9Nj+R{TP#x<N-;eey^E@Gjz!3F1Jh)! zO6N+bY{9NE5Un`P9s-4eGxj-6BT+JYwrse@Eeic^iZqNaa%h6oiPw&itKQK864U{V zm{A_sP2X>_j{PIxMcNq1Hf?;`*`&%957`jeadAN3to&pl`cjA$T>`NVcyFUbaXSJj zf^y?h!;8zIimDBV0<sy{okf)hoNfKN5juw&QY|o*;z6cGNekl2gDP3QH_zAsXtK2< zc!5c2#tuRIId-k!3LQJk!4%3MQBd2!C^ELC#*q5JK2vR1W=<ri*qoXn<)}M1F^z%O zQjAWg6IkY>>sQ<*>_(oHjp;BL?gsBOT{B2-#G8Q=h2#_M`kA7EJ|s~j=+to8Af2!B zWbg!;y^VGZ`K+;_j*BVGEcx^WKL}M=nnQqY(<d`^te$oq$PcQX0Z)={Aq24>*3>uE zRZ;=MybDIoc_AuQL!!oR<;Hw4Ks3N`gjt==k8(?-ukp7X9Hby}_!FM~KRDV2d#C^Z za<q$>lyzx_2rKS_2$qc~IH|prg47UrEk(*^nm)7BHXe&;L};$HIvY}KjxZk&SU@R} z1?G>ZEw5xLqUpH86c%*rkeS0R{6)ROBHU>`DT=nk!%9I?ne2j66SOB4Wanq+V)H}v z|Ajdv@vQ!COr~Fr!yopAo-(t0MMrm6S9jNpf*BqC?JGN%#rwMt?p=*7?4c1B73CJ} z#~umh7;Y*{6)8n}j%gafbC9sRzkls2IlBU~aGG1>1hbWe845{Tf?}2R)J|V^V;D1) z%kLX&%Awg|;8*QF|D#i|<QN)L6@js1k)3VH1{H~cW$&vKw$Z!ukfhz9;rMbYx7f1# z*rd^=6=YoxN}1@mQ$jun-e?fu)NK6N4_DUz1rB}j*Kc7hBl?HI&2EJW?kH#`p{VJV z%4;Rp`m?f~VPj;D<HFp^huSlTg`KwnyJtSVAlk~hDhUT4r_?>i=puU|>fTAh+5J_6 zq+}+X4aK)pi`s!FqLj*%5Nf5eK3Qh)%ciHWm&ojXo=RgkJu>tAvGb|Ev@&x|qq|Ya zfawfI197L+BzsmRSN8R<XkU)m$yv*KmoA&Wyzh`{@x$YMu@;S~KaOL@R?X72a^lFH zC6L{P)2{f5I(xHMEbqgk9OLF$SbQ6wp}uFu5p;aFIW`P=X<XS|IO58bj?BW7vJly^ zTx_w9vE1)4Nj2ITNU_R?A}q>>b`(d4H$=o%Li5crs;yGkHhSBDq5JexQYhD|VMOAP z+2atDFrvrd397|Hb?mVQ%(QhI$DkfkjYB9TWr2~LQdLc@j-hD*M999_9i<l)fTCgA zWE8ez*QD*YI7&~-0*yf7>=NT9H^n0y50YF*3bIVEUe3RAKOfSQ1W}VmrJkdZMB1!~ z9ET*Dp|1vaQyb|a1C0nZlh%l=%wR2XZgPU}wA}58W5ANHr|;NZ8G=IxBniJggD4yx zq8vtc!AI4>+-L?$MgP+=3pZUXW%r$?%d$EvZ4X=lX1Jb=%$o5RJBJthWr64DHqo@u zW1Hx8w9v0JTSH5iQQrq+BW!ZYFUgKn=Qma|WW#9I0n0y=o3aYap$oy>1YS#q{Eov} z7mXK22e!J0Blb7VfYxECoh;W;f0%&aVkU;97R|uwcp64J!9vq}F7$QWb~7#EZpWqX zwJK;K#!xXNQ)m4eRB@L2k1ZuM9jANcUh}#6JWbEcz1Cy>*h^RqD?p1zy<)!YxpZV( z>8TICl%$&hY_gEFW5^JbvP5AqW{{P8r~2binmMBkx(SA-w2AXDVEdeziz8SO5W~?^ zTN|rueaM0Nf!Uz45!})l3@O!3Qc^O;IbHeVPzL2#Q3Q=~oV~u~<J5!FXUOQT15SD{ zZ()cXxKlaNHIgz%%?Q(KJAjCyGNhGE%^DT51J@)W-GtwyeCwl8R1KrXCn?(r%TP$% z&LI}cOqagX-YaEN;g;!3ozvnRie;dZ4kK#9D#IdCBc&R4t;sTA+_jI@v<+g!uHPwh z5V<EOrU6w@M1zwpgCthd>QdwGqKyh`ae4u(FmvZn5=vT&_3b?-#d5kx+9+LMkS$Nt zIGqiQbqb{mu{?C(j$=AONa(WA)NpFS3!id&0cvWY&&?N7Q_%Kdw*gBNQEi`)wjqI& z%>iSXE}Quwe_E-|Dj#M3{&w?Hoh>caIB6AJ$Cj!KGEGx5R3Hth#<4SkXx!<Y=%lPH zYptX*wcjUdE0ztCc5Xn#Qlyj&|LL=wK|?K-X2Ce^4kAKJcf~onq85U+n1$9(&{m+} zaIwD>RcM6;56<LlOq**KQ8^tBrkI!n$+1GVIVfSGJvbe;74};j=gq@r|FE$l6IOe+ z@}udyO@Cu14RW2dkP|sJ8yqPo6@l_x*rt7+%dF~jd3<7;tXs2#ST)e)a9c@<2XiD^ zxr|<#pl+qed$v?FT2$lC9CN9S-qK$BB*xSIQd3d<G$}1;&V-eihKZtc>PSgEHCNFq z!;~;z2qvQ_Z7r+O14widpuf8!>5qlRc@P6;7NFr<nItt!Np?E65>cRcboY~&xj>R& zWqoKXb~q2WgP8fX>G*RcORLg{DV!0kgqcMzmA;OhDu<AS)3>FKvil6o4Jn;_<rpIr zh}p<kY#Ms(sbdQEWDfx${gh>uADG@Su%O*&)8-5{(M!_jKIzGevQYrk1dJ53LjezK zOjgcsgH(o{Rm^V0Cc?n%+>~ur8m@nUt+5c(EK7Tkty!6vfJCG?i*PQEOKUHL+hA?T zsI}kyq{_yQ(w5*nFvHi}u2#4kMs?Kam9jRO-HlU+&mdc@8P1EV!eJqH&k{aM%`%W# zwPpZIni~jN*R%(l6=^)R++8MouwF<Psa!k!)XF_6qqiI4z_;2`X~)1ZLOeOJ6~VVP z)Kt}AQW32hPFV<tMoCC8f!&NG8j2EjD~Q27X>4*%q#2a4**EQ211Ykb_Nz4DH*(g@ zKv9j0$(vJ&a@Ichi3$vqI9?=4Bq*)z0lWf@NPgS^S!*^;U`Subof>}T8frBvyH&sp zJFm1vOrIkslbSBeU*<p5x;YkwzqrkO!z~TXnHTI+o&Eyc!*C0KmjUV02Uu{7u%ki= z%fw8Jv>eeN*$T4g7IT__=|_rX_znDnc7pP{TF7&?+yc`Ol5}H2M_`>+TXWB#K!FHn zP-QK^g^ji*)Qa^}$r>!m7poW~gJvFdncgl~M3z^ihKl@&ZAL<dR3?eC{M@Gn!vdXV zCURYH*MFv0#S*a*NH8+}!?21#2Dt4(s{0STG!}C<9IJux@NmY!o=J2aM~y?m18aAs zsRm_a6-Ch1C(V(0I#ZB|wgcScp)~q1NEV@XInJl%L;(GiJuMg~<f~K$(6QteU@se^ zD5<({!VmT%(o}5@MaPsvq&{Z_9ZMmG*Q<bF)pJ+B@mX>zC1#2w1|MYfp{`O7JT<i~ z`l2MrZ(&1ic4(Tre>lV-Qm}T_gANSZMq`&C=t%B>VW`1a)BsN?AGUYlo63|~QohWT zDmY8UrY==p6zKtt#@}}zADgjlM|5X9aC<zoPZ^xo48Sl>!ZaePyVI7-+y?g{si*EK zZ6{^)kamt}rQK*!rR9jdfZd$CWlx*egy~%^3#{1Yw^Pb@>X!<JBvTEJmG!dOvsEQI z57=`0)TBmaQ*5?wAnZ|Lb0}SiLqf4f4utlE>15#<DGscVWwvGhs67%<=-Kp0=)VJ} zQDY{O!$3t3;i@8k?OksA3{YR67F{(c&7{v0)oB;b97juD&MYwJt<n|wsa;)NhvEK( z!f#kJE<vDb9JR*X10o@-T<ugPNoW2~O185rbsLP~>Do|w9dgkpi<SL|-KfRXI(Dt1 z8PD0vS4qsJ%t6R+8u$B5+t&ib!BHD-bA=k0wR~6@jtKE0&HiD8V4<3z?rztioAzZ| zs0fc~b`A-W1Q#SaLuDX7Y!XH3r-|l3JsBvyE(g4p%4C1XFr66~et+jr;Ym%%Amz$- z!~W_|x6lT@O^XBZpqy-qErRcR6~p*ZX8C_lPXHL?0*39J~Ix}fSV=Vu6$hKL<B z>IIt(4@L6TcQ@fb=uz^(W5ykZrdxk-qM|W)1|`{)DcCt3SQQ0lA&3=cox@#7w8fk& z%k^hGsYs62bN0RQ<qW?Bh2nUURlIlQa%}463rc2fW?gMdV;dGFNPEZ=(azc8Zm@nT zrD~*Y9qtwxQ=axxib<&{s6V?hu@H%9>I3Iq#B({qVrkOSy3MCWLoudj275LlPJw)> z1F^p3X&R!N9CuEO9fh{MBH?kWsK_E#{&j7*1LR-M`7;uSO{%q6>0_%SxJ2wzvK4mh zY{AlnDs>wp<4<CUzMTL}&d86-6N@N(A_z7YnpAPl1#gXU#*x#otEEne#{7MqpFQ|d z>~=+&O9W24ks1xGJe%fun6SEgJPSjU@m4GqSsm}`>yM-Rh*#>&h<H<fA1BiE_2V$j z|LJ5355M8~{~o`P7d~R-@Dbi*KGa_huyka`38B)FTa}K8HI2+D9WkQxv5|c3`pZxE zH{bOar)T|D082*>J0W};Lfi%+?mKcALiFO+1F$vdr(>X>;UOm+rYyWpJh|a4cf*Op zPmc*_8$7qa>A11!84>f+(y?Yh99Ip9;~MAtk&GkUBz{Ws@S?rDy`$F)W#Kl8dSBDM zZbp5=%iKIxzgc*6#@Nuf(D=wUp$VaFLpx?pLS%uT`y|8r^n3Sp#FHxUA4R+^{d?X- zysZN6QGq9;yfN^>I9SJFZ<IF)$nr41QT9eK;*Ab`KiZpuH~gM;AI5ur&#=sIw7n6G zAU3{F{l<6&>c{|wBsHnG5pQh3|5$HUn*XsW&$x?t;{yK2d3&b$9~bbyb-@4D-n=yb zTL=7)5BMMN)u#C$AMn48x4%AN8HGHT>X_aMf%2Rn;m`F$nc&~?CgN=u@V}k-Z}NR@ z=ieFsI|TgiApZaB``W?3GyZo9_}@wVFZ6xw<lh<p69fJyiht6&`AxJpf)Q`$fd8Gv z|6&%7{C2iCf)P+xIt7#3Qoo2dHRZrv!~^Gaei3h1$Hn(4%I1rRmmPS&SHN8-=}V=d zA@Dv$>3k9K*x*yYh_njVU6^v<F5(pj+`9+dvjgru0`9p1cUizqPMi8gysDG~cM-2T z;BN4iracLHr=_{W-eYO*i1%HZJHwml*Ck&>y(MYxOz#(I?wI#zntPb{-!%7TUQXDJ zU~{iC&Ao+pcA9&*_i&nfg!?h_TOV+zS`J@Cgp;MbM8MJ9Uj#nfU&JHVO8p|pultL5 znXVIG#{%wQ0rzGB_vQij76JG0fO~}Z4U)_vWX+ETe;MW^nRGk>ZoX&#IvV_Bm%#f% zeb2siw6}vdFYvxe-!GT%ck;T`&6YLVo9G>;ZuXm_(cVv1H~UEGEdpC5OkQKwmQ=2^ zdy!A>GEbcC$<2D0-mZ1B2PfAZV#*xVN<i9yH+HSCcgTwT?40b*j)G3?$d>?g=jXR~ zCc3dLT1kFSM|)vsqNArny!Cf?E${6}9^Bo}38vZ0vUBsZ3-j7Ly1F_FI`X@FI`X=@ z3Uf=^i@G}7v9DTDcSljNe2A~GgB#YqVUaCAE6&a@?#eB0FDPm+Y;P~@>F#Rp>geol z&&kUx$!{;pP4viTtJg3-e2|9?pmMqr#qHgNJ)JqlJze>E9VMOlU4=yj?TP%NL=mRD zF(3E<Mm2np$iZJv0bUmtw3l>rb>}DYJBxA(+B<vlb4suoSgy$tgm7-R&nSv9JEAL5 zkekTs>?khiE=FcbIts8qTt`VxS7Av(r}?52YqXM`D-w((FT1-N=}i<A_vCfA7bdz( zP+A4uojnD)#YIJV#rZ{&D*dDeTiEq8rh@E5A>QV+C%QVibKCQZdUA>jaiU3QM@L6t zq9Cu^WX6dpHzyyd>nzOc?!xIPoq2`DC3%UwZX~X-v$(jZvj_DhQKj;O{j###dkS;# zX>LwOqOhdBho5y8loTZj5KVheL5VFhuCYeKatpG1y1IIDJ3FvuEw87mC{fZ?+?`jD zTUc0BR9uKCO~N3>(|01fC_hn{)15&2+lz`jaf(ZOdtOd=A#}0so|3{`Q;BI*jL(X) zJ96?nJ4?E{^4d#KIeDG!T|KD9L;{46$ic}|Bv&&ZR8IS(qPn7eHD)K9r+l3{3)Feb zhXa?Dn)3kiItRRw_0#SuRDV&mRa5LTQrDA2BE8q<-JUlWZ8Z$mIT=Vdd!fzIF_2sG zIl0c}y`J>0oA-Fqt8Cuoc?<X)h)044EB;LJ9K|aXf2a5dMKUIazYE>VOgc6P%cT4f z2J>1>gh;f6xV7gYDlZHH7GCAMOyK5Vky+}dT*2^`5VwbaBEDNjM0m@I_<j`;;Zho4 zei%+TVe%P97fmUcNa>MCsVoe^bt19I6B#&MXyj(TXD?1HRjgKQR9v9AucD+M{#U5` zFvX)4PgXov@j}Jx6mL<yL-9VvM--n>d{*(#if<^stN0Jaj}$*w{6<mg2kFdYc>&o+ z5JxL+qqw8uWW`+-a})~|XDgN|Rx36rwkqzUDD{Z=deklT2Y0`^*C`&QxIyt`#WNJo zQM^#`GR3PDZ&Z9(@fpR}72j9<Op#&&%VC7#wu(~~^A+nA_fb4d@gIs&^py-}lp_0P zy7LtGP~1x~sd%K~Ns7N#yhibNiVrEitoVguD8t0Fwc;ejY{lIb8x>b59;$en;;$61 zP`pL)F~#>3KUK_xxFqzWxTE5(ihC+{DxRl!o#LH}e^7iu@omL_D}JLGL&Ii#V-+VV zW-HE8tX6DO>`?4eJW}x@#j6!>SA0nEDaC&(enLcAzE}5_;B8FL)<lSYQ`B9cxF>N( z&udWkV#Na#Pg49PaiZs4rtbR`Ur>CLIN9?)RCjC`+@v$&RL_g6J6mzK;$DhL#ctxR z;Fsz?m^j1pj#u|tioYi2c;5Bueo66jMGtu;Umi~cAKspb^kfmik4uQ)(|hRiy@+7C zjq2W)2!7t7?xl(-Rxb<{3_(gcZ$repI1%NTMMOCvX;L1DQu05Sh<sHOk)I|aJrPk~ zAXh;oU&3Sm$8aScgi9*~!<YCFK9VN!#EB?({0U0@C~wNjEO$u<;?1WUDCt4`v*`xT zCBjpMBATo8H<Au?G7>L7lK5a4*_rR*W<M52AhfN7=XhcR;d99!a6X^!;d%QIVIb)s z&h@+lh^3ylh6sPs50!b|26dlIEcd*#)O{fliMxzg>3LTXtElw>@jbN_qU}Fv9if|6 z2ck{yG<DBZlyu`gZ9VjdBni$_tXFJNT%?#(>{dKb@gT)R6pvI~uXvK;>56A7UZ8lX z;+2ZmE8ePjr{evJk19T?_?+U)if=0ZRq>ySA1i*LxJfY-GWm}wj!+z<I6-kI#VLxr zDds8`Db7(WSFBNNRBTh+SFv4jsp1O7)ryBI9<6x1;wg$}DxRx&k>cfwS1a0n_jYyP zt@xngV~S5HzM%N3;#-REDSn{%sp40P-zrAJrd&5u+){Cz;&zG?6>Wb$L){6*62(0g zD-~-M=PT~5xSt|z8Km!C#XiNgiiay6t9XLqsfxc;JYVr*#osDkt9Y~G?-lP=q^*SU z|55Q7#g`OcSA0kDeZ_w(ex~@f;`fSHj@cq&!ng9wcy;ffxU=Fk#hHo)inA0;6={oL zdg~Qi6c;I4d5AU%`a4kZAjLxzt-Q2e-BxZoUEOCZUZ8lX;+2ZmE8ePjr{evJk19T? z_?)7ZyWUjyUlsqU__3mu%QmUo%4e|*ldlnqV-zPS?xZ+HaW}<W#UjNyisgzmidMdB zQ}@1#?TSkkt^BuI-Bu1fTHVJho}zfB;<<_!DPFF4wc?G6w=3SQ_@JVdBcD?D3yQBQ zzNKj8%n#IU<;}0u{jFjI9Tn+hGsP_x$0=^7I8kw`;ta)vVu_-aS1Z+Bt2keAZ^iu- ztz6ry?moq}iiay6t9XLqsfxc;JYVr*#osDkt9Y~G?-lP=d|2_1iq9y%r1-kxJBsfs zTDkf&b$_k+y<$}5+btAFDUMg%L2+lrX^Jxy3lyz9UaIbSiuH;uii;GJirtC_DjuYG zh@zF>*Q@&^#nTnfR=hy*QpGD3uUEWP@lM726(3c6Qt>&(mlfYs{HvnX4?b4+7mAw{ zLoq|AF-4A1l5WQ+PEg!Q(drSqsXJG(NO6v0xnhlCqhg!lzKZRNOBGiru2wu$@o2^4 z6;Dw-Q}JBIixe+cyjt-_#oHC{R(w$LF~z48t$y>Wy5CZKPw@lAPZhsX{8ljnL0a0s z;+Bfz6t`2Hs5n(|hGIgoL~&2WO2t~m`HFih?x)zP*sIv5xK{CS#bXsuP&`%fmx^e1 zk`F6y2i^at%HN`2fX*-1{9U7Xv*I0!R_^|Tx}Q>fQSo)fcNML?{fWB2Qv6Oas`8<= zZ&^8eTYWxJF-!4(wY>jV{r^Ax$k6xy(~nF!{7&iaUd2ZgpHzHa(dtEStJ~TwKT`J> ziX3w#AGG?=<|@aJQrt#yC&gV9tsZ3Uo3r$JnPQD%lcLps_Eⅇ&R2+iq<Y_^_~;; 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®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 XPo68|Ug{Q>_r>>My?pRPEAM{*)O-iP diff --git a/TP1_labyrinth_etu/Debug/makefile b/TP1_labyrinth_etu/Debug/makefile deleted file mode 100644 index d552953..0000000 --- a/TP1_labyrinth_etu/Debug/makefile +++ /dev/null @@ -1,63 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk --include FreeRTOS_src/subdir.mk --include FreeRTOS_portable/MemMang/subdir.mk --include FreeRTOS_portable/subdir.mk -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - --include ../makefile.defs - -OPTIONAL_TOOL_DEPS := \ -$(wildcard ../makefile.defs) \ -$(wildcard ../makefile.init) \ -$(wildcard ../makefile.targets) \ - - -BUILD_ARTIFACT_NAME := TP1_labyrinth_etu -BUILD_ARTIFACT_EXTENSION := axf -BUILD_ARTIFACT_PREFIX := -BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),) - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: - +@$(MAKE) --no-print-directory main-build && $(MAKE) --no-print-directory post-build - -# Main-build Target -main-build: TP1_labyrinth_etu.axf - -# Tool invocations -TP1_labyrinth_etu.axf: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) - @echo 'Building target: $@' - @echo 'Invoking: MCU Linker' - arm-none-eabi-gcc -nostdlib -L"/home/yoda/cours/prog_RealTime/tp_labyrinth/TP1_labyrinth_etu/Debug" -L"/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/Debug" -Xlinker -Map="TP1_labyrinth_etu.map" -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T TP1_labyrinth_etu_Debug.ld -o "TP1_labyrinth_etu.axf" $(OBJS) $(USER_OBJS) $(LIBS) -lMyLab_lib -lCMSISv2p00_LPC17xx - @echo 'Finished building target: $@' - @echo ' ' - -# Other Targets -clean: - -$(RM) TP1_labyrinth_etu.axf - -@echo ' ' - -post-build: - -@echo 'Performing post-build steps' - -arm-none-eabi-size "TP1_labyrinth_etu.axf"; # arm-none-eabi-objcopy -O binary "TP1_labyrinth_etu.axf" "TP1_labyrinth_etu.bin" ; checksum -p LPC1769 -d "TP1_labyrinth_etu.bin"; - -@echo ' ' - -.PHONY: all clean dependents main-build post-build - --include ../makefile.targets diff --git a/TP1_labyrinth_etu/Debug/objects.mk b/TP1_labyrinth_etu/Debug/objects.mk deleted file mode 100644 index 0e09a97..0000000 --- a/TP1_labyrinth_etu/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := -lMylab_lib -lCMSISv2p00_LPC17xx - diff --git a/TP1_labyrinth_etu/Debug/sources.mk b/TP1_labyrinth_etu/Debug/sources.mk deleted file mode 100644 index e1c6063..0000000 --- a/TP1_labyrinth_etu/Debug/sources.mk +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ASM_SRCS := -C_SRCS := -OBJ_SRCS := -O_SRCS := -S_SRCS := -S_UPPER_SRCS := -C_DEPS := -EXECUTABLES := -OBJS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -FreeRTOS_portable/MemMang \ -FreeRTOS_portable \ -FreeRTOS_src \ -src \ - diff --git a/TP1_labyrinth_etu/Debug/src/cr_startup_lpc17.su b/TP1_labyrinth_etu/Debug/src/cr_startup_lpc17.su deleted file mode 100644 index 7c06c01..0000000 --- a/TP1_labyrinth_etu/Debug/src/cr_startup_lpc17.su +++ /dev/null @@ -1,10 +0,0 @@ -../src/cr_startup_lpc17.c:220:6:data_init 40 static -../src/cr_startup_lpc17.c:229:6:bss_init 24 static -../src/cr_startup_lpc17.c:264:1:ResetISR 24 static -../src/cr_startup_lpc17.c:344:6:NMI_Handler 4 static -../src/cr_startup_lpc17.c:352:6:HardFault_Handler 4 static -../src/cr_startup_lpc17.c:359:6:MemManage_Handler 4 static -../src/cr_startup_lpc17.c:366:6:BusFault_Handler 4 static -../src/cr_startup_lpc17.c:373:6:UsageFault_Handler 4 static -../src/cr_startup_lpc17.c:381:6:DebugMon_Handler 4 static -../src/cr_startup_lpc17.c:395:6:IntDefaultHandler 4 static diff --git a/TP1_labyrinth_etu/Debug/src/debug.d b/TP1_labyrinth_etu/Debug/src/debug.d deleted file mode 100644 index 4d138b1..0000000 --- a/TP1_labyrinth_etu/Debug/src/debug.d +++ /dev/null @@ -1,46 +0,0 @@ -src/debug.o src/debug.d: ../src/debug.c ../src/debug.h \ - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - ../FreeRTOS_include/FreeRTOS.h ../FreeRTOS_include/projdefs.h \ - ../src/FreeRTOSConfig.h ../FreeRTOS_include/portable.h \ - ../FreeRTOS_portable/portmacro.h ../FreeRTOS_include/mpu_wrappers.h \ - ../FreeRTOS_include/task.h ../FreeRTOS_include/list.h \ - ../FreeRTOS_include/queue.h ../FreeRTOS_include/semphr.h \ - ../FreeRTOS_include/queue.h - -../src/debug.h: - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -../FreeRTOS_include/FreeRTOS.h: - -../FreeRTOS_include/projdefs.h: - -../src/FreeRTOSConfig.h: - -../FreeRTOS_include/portable.h: - -../FreeRTOS_portable/portmacro.h: - -../FreeRTOS_include/mpu_wrappers.h: - -../FreeRTOS_include/task.h: - -../FreeRTOS_include/list.h: - -../FreeRTOS_include/queue.h: - -../FreeRTOS_include/semphr.h: - -../FreeRTOS_include/queue.h: diff --git a/TP1_labyrinth_etu/Debug/src/labyrinth.su b/TP1_labyrinth_etu/Debug/src/labyrinth.su deleted file mode 100644 index a3bcf2e..0000000 --- a/TP1_labyrinth_etu/Debug/src/labyrinth.su +++ /dev/null @@ -1,2 +0,0 @@ -../src/labyrinth.c:83:6:slave_info_rx 16 static -../src/labyrinth.c:88:5:main 32 static diff --git a/TP1_labyrinth_etu/Debug/src/subdir.mk b/TP1_labyrinth_etu/Debug/src/subdir.mk deleted file mode 100644 index 3498e60..0000000 --- a/TP1_labyrinth_etu/Debug/src/subdir.mk +++ /dev/null @@ -1,40 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../src/cr_startup_lpc17.c \ -../src/labyrinth.c \ -../src/tools.c \ -../src/trace_mgt.c - -C_DEPS += \ -./src/cr_startup_lpc17.d \ -./src/labyrinth.d \ -./src/tools.d \ -./src/trace_mgt.d - -OBJS += \ -./src/cr_startup_lpc17.o \ -./src/labyrinth.o \ -./src/tools.o \ -./src/trace_mgt.o - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.c src/subdir.mk - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -D__USE_CMSIS=CMSISv2p00_LPC17xx -DDEBUG -D__CODE_RED -DPACK_STRUCT_END=__attribute\(\(packed\)\) -DGCC_ARMCM3 -I../src -I"/home/yoda/cours/prog_RealTime/tp_labyrinth/CMSISv2p00_LPC17xx/inc" -I../FreeRTOS_include -I../FreeRTOS_portable -O0 -g3 -gdwarf-4 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -fmerge-constants -fmacro-prefix-map="$(<D)/"= -mcpu=cortex-m3 -mthumb -D__REDLIB__ -fstack-usage -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - -clean: clean-src - -clean-src: - -$(RM) ./src/cr_startup_lpc17.d ./src/cr_startup_lpc17.o ./src/labyrinth.d ./src/labyrinth.o ./src/tools.d ./src/tools.o ./src/trace_mgt.d ./src/trace_mgt.o - -.PHONY: clean-src - diff --git a/TP1_labyrinth_etu/Debug/src/timer.d b/TP1_labyrinth_etu/Debug/src/timer.d deleted file mode 100644 index 16d3ee1..0000000 --- a/TP1_labyrinth_etu/Debug/src/timer.d +++ /dev/null @@ -1,54 +0,0 @@ -src/timer.o src/timer.d: ../src/timer.c \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - ../src/timer.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/read_mic.h \ - ../src/sin_detector.h ../src/semaphores.h ../FreeRTOS_include/FreeRTOS.h \ - ../FreeRTOS_include/projdefs.h ../src/FreeRTOSConfig.h \ - ../FreeRTOS_include/portable.h ../FreeRTOS_portable/portmacro.h \ - ../FreeRTOS_include/mpu_wrappers.h ../FreeRTOS_include/task.h \ - ../FreeRTOS_include/list.h ../FreeRTOS_include/queue.h \ - ../FreeRTOS_include/semphr.h ../FreeRTOS_include/queue.h - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -../src/timer.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/read_mic.h: - -../src/sin_detector.h: - -../src/semaphores.h: - -../FreeRTOS_include/FreeRTOS.h: - -../FreeRTOS_include/projdefs.h: - -../src/FreeRTOSConfig.h: - -../FreeRTOS_include/portable.h: - -../FreeRTOS_portable/portmacro.h: - -../FreeRTOS_include/mpu_wrappers.h: - -../FreeRTOS_include/task.h: - -../FreeRTOS_include/list.h: - -../FreeRTOS_include/queue.h: - -../FreeRTOS_include/semphr.h: - -../FreeRTOS_include/queue.h: diff --git a/TP1_labyrinth_etu/Debug/src/tools.su b/TP1_labyrinth_etu/Debug/src/tools.su deleted file mode 100644 index 91afddf..0000000 --- a/TP1_labyrinth_etu/Debug/src/tools.su +++ /dev/null @@ -1,3 +0,0 @@ -../src/tools.c:12:5:round 16 static -../src/tools.c:22:6:draw_labyrinth 40 static -../src/tools.c:46:5:test_collision 136 static diff --git a/TP1_labyrinth_etu/Debug/src/tp2_son.d b/TP1_labyrinth_etu/Debug/src/tp2_son.d deleted file mode 100644 index 0f0c0fd..0000000 --- a/TP1_labyrinth_etu/Debug/src/tp2_son.d +++ /dev/null @@ -1,60 +0,0 @@ -src/tp2_son.o src/tp2_son.d: ../src/tp2_son.c ../src/demodulator.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/read_mic.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/ethmac.h \ - ../FreeRTOS_include/FreeRTOS.h ../FreeRTOS_include/projdefs.h \ - ../src/FreeRTOSConfig.h ../FreeRTOS_include/portable.h \ - ../FreeRTOS_portable/portmacro.h ../FreeRTOS_include/mpu_wrappers.h \ - ../FreeRTOS_include/task.h ../FreeRTOS_include/list.h \ - ../FreeRTOS_include/queue.h ../FreeRTOS_include/semphr.h \ - ../FreeRTOS_include/queue.h ../src/gpio.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/lcd.h \ - ../src/debug.h - -../src/demodulator.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/read_mic.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/ethmac.h: - -../FreeRTOS_include/FreeRTOS.h: - -../FreeRTOS_include/projdefs.h: - -../src/FreeRTOSConfig.h: - -../FreeRTOS_include/portable.h: - -../FreeRTOS_portable/portmacro.h: - -../FreeRTOS_include/mpu_wrappers.h: - -../FreeRTOS_include/task.h: - -../FreeRTOS_include/list.h: - -../FreeRTOS_include/queue.h: - -../FreeRTOS_include/semphr.h: - -../FreeRTOS_include/queue.h: - -../src/gpio.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\w_exercices\lib_tool\inc/lcd.h: - -../src/debug.h: diff --git a/TP1_labyrinth_etu/Debug/src/tp2_son.o b/TP1_labyrinth_etu/Debug/src/tp2_son.o deleted file mode 100644 index dac76ce80549181cff71d2b3ace5cb99feea4c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87076 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 diff --git a/TP1_labyrinth_etu/Debug/src/trace_mgt.su b/TP1_labyrinth_etu/Debug/src/trace_mgt.su deleted file mode 100644 index a29349c..0000000 --- a/TP1_labyrinth_etu/Debug/src/trace_mgt.su +++ /dev/null @@ -1 +0,0 @@ -../src/trace_mgt.c:23:6:write_trace 16 static diff --git a/TP1_labyrinth_etu/FreeRTOS_include/FreeRTOS.h b/TP1_labyrinth_etu/FreeRTOS_include/FreeRTOS.h deleted file mode 100644 index e5eb39a..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/FreeRTOS.h +++ /dev/null @@ -1,468 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef INC_FREERTOS_H -#define INC_FREERTOS_H - - -/* - * Include the generic headers required for the FreeRTOS port being used. - */ -#include <stddef.h> - -/* Basic FreeRTOS definitions. */ -#include "projdefs.h" - -/* Application specific configuration options. */ -#include "FreeRTOSConfig.h" - -/* Definitions specific to the port being used. */ -#include "portable.h" - - -/* Defines the prototype to which the application task hook function must -conform. */ -typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * ); - - - - - -/* - * Check all the required application specific macros have been defined. - * These macros are application specific and (as downloaded) are defined - * within FreeRTOSConfig.h. - */ - -#ifndef configUSE_PREEMPTION - #error Missing definition: configUSE_PREEMPTION should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_IDLE_HOOK - #error Missing definition: configUSE_IDLE_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_TICK_HOOK - #error Missing definition: configUSE_TICK_HOOK should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_CO_ROUTINES - #error Missing definition: configUSE_CO_ROUTINES should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskPrioritySet - #error Missing definition: INCLUDE_vTaskPrioritySet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_uxTaskPriorityGet - #error Missing definition: INCLUDE_uxTaskPriorityGet should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelete - #error Missing definition: INCLUDE_vTaskDelete should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskCleanUpResources - #error Missing definition: INCLUDE_vTaskCleanUpResources should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskSuspend - #error Missing definition: INCLUDE_vTaskSuspend should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelayUntil - #error Missing definition: INCLUDE_vTaskDelayUntil should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef INCLUDE_vTaskDelay - #error Missing definition: INCLUDE_vTaskDelay should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_16_BIT_TICKS - #error Missing definition: configUSE_16_BIT_TICKS should be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details. -#endif - -#ifndef configUSE_APPLICATION_TASK_TAG - #define configUSE_APPLICATION_TASK_TAG 0 -#endif - -#ifndef INCLUDE_uxTaskGetStackHighWaterMark - #define INCLUDE_uxTaskGetStackHighWaterMark 0 -#endif - -#ifndef configUSE_RECURSIVE_MUTEXES - #define configUSE_RECURSIVE_MUTEXES 0 -#endif - -#ifndef configUSE_MUTEXES - #define configUSE_MUTEXES 0 -#endif - -#ifndef configUSE_TIMERS - #define configUSE_TIMERS 0 -#endif - -#ifndef configUSE_COUNTING_SEMAPHORES - #define configUSE_COUNTING_SEMAPHORES 0 -#endif - -#ifndef configUSE_ALTERNATIVE_API - #define configUSE_ALTERNATIVE_API 0 -#endif - -#ifndef portCRITICAL_NESTING_IN_TCB - #define portCRITICAL_NESTING_IN_TCB 0 -#endif - -#ifndef configMAX_TASK_NAME_LEN - #define configMAX_TASK_NAME_LEN 16 -#endif - -#ifndef configIDLE_SHOULD_YIELD - #define configIDLE_SHOULD_YIELD 1 -#endif - -#if configMAX_TASK_NAME_LEN < 1 - #error configMAX_TASK_NAME_LEN must be set to a minimum of 1 in FreeRTOSConfig.h -#endif - -#ifndef INCLUDE_xTaskResumeFromISR - #define INCLUDE_xTaskResumeFromISR 1 -#endif - -#ifndef configASSERT - #define configASSERT( x ) -#endif - -/* The timers module relies on xTaskGetSchedulerState(). */ -#if configUSE_TIMERS == 1 - - #ifndef configTIMER_TASK_PRIORITY - #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_PRIORITY must also be defined. - #endif /* configTIMER_TASK_PRIORITY */ - - #ifndef configTIMER_QUEUE_LENGTH - #error If configUSE_TIMERS is set to 1 then configTIMER_QUEUE_LENGTH must also be defined. - #endif /* configTIMER_QUEUE_LENGTH */ - - #ifndef configTIMER_TASK_STACK_DEPTH - #error If configUSE_TIMERS is set to 1 then configTIMER_TASK_STACK_DEPTH must also be defined. - #endif /* configTIMER_TASK_STACK_DEPTH */ - -#endif /* configUSE_TIMERS */ - -#ifndef INCLUDE_xTaskGetSchedulerState - #define INCLUDE_xTaskGetSchedulerState 0 -#endif - -#ifndef INCLUDE_xTaskGetCurrentTaskHandle - #define INCLUDE_xTaskGetCurrentTaskHandle 0 -#endif - - -#ifndef portSET_INTERRUPT_MASK_FROM_ISR - #define portSET_INTERRUPT_MASK_FROM_ISR() 0 -#endif - -#ifndef portCLEAR_INTERRUPT_MASK_FROM_ISR - #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusValue ) ( void ) uxSavedStatusValue -#endif - - -#ifndef configQUEUE_REGISTRY_SIZE - #define configQUEUE_REGISTRY_SIZE 0U -#endif - -#if ( configQUEUE_REGISTRY_SIZE < 1U ) - #define vQueueAddToRegistry( xQueue, pcName ) - #define vQueueUnregisterQueue( xQueue ) -#endif - - -/* Remove any unused trace macros. */ -#ifndef traceSTART - /* Used to perform any necessary initialisation - for example, open a file - into which trace is to be written. */ - #define traceSTART() -#endif - -#ifndef traceEND - /* Use to close a trace, for example close a file into which trace has been - written. */ - #define traceEND() -#endif - -#ifndef traceTASK_SWITCHED_IN - /* Called after a task has been selected to run. pxCurrentTCB holds a pointer - to the task control block of the selected task. */ - #define traceTASK_SWITCHED_IN() -#endif - -#ifndef traceTASK_SWITCHED_OUT - /* Called before a task has been selected to run. pxCurrentTCB holds a pointer - to the task control block of the task being switched out. */ - #define traceTASK_SWITCHED_OUT() -#endif - -#ifndef traceBLOCKING_ON_QUEUE_RECEIVE - /* Task is about to block because it cannot read from a - queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore - upon which the read was attempted. pxCurrentTCB points to the TCB of the - task that attempted the read. */ - #define traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ) -#endif - -#ifndef traceBLOCKING_ON_QUEUE_SEND - /* Task is about to block because it cannot write to a - queue/mutex/semaphore. pxQueue is a pointer to the queue/mutex/semaphore - upon which the write was attempted. pxCurrentTCB points to the TCB of the - task that attempted the write. */ - #define traceBLOCKING_ON_QUEUE_SEND( pxQueue ) -#endif - -#ifndef configCHECK_FOR_STACK_OVERFLOW - #define configCHECK_FOR_STACK_OVERFLOW 0 -#endif - -/* The following event macros are embedded in the kernel API calls. */ - -#ifndef traceQUEUE_CREATE - #define traceQUEUE_CREATE( pxNewQueue ) -#endif - -#ifndef traceQUEUE_CREATE_FAILED - #define traceQUEUE_CREATE_FAILED() -#endif - -#ifndef traceCREATE_MUTEX - #define traceCREATE_MUTEX( pxNewQueue ) -#endif - -#ifndef traceCREATE_MUTEX_FAILED - #define traceCREATE_MUTEX_FAILED() -#endif - -#ifndef traceGIVE_MUTEX_RECURSIVE - #define traceGIVE_MUTEX_RECURSIVE( pxMutex ) -#endif - -#ifndef traceGIVE_MUTEX_RECURSIVE_FAILED - #define traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ) -#endif - -#ifndef traceTAKE_MUTEX_RECURSIVE - #define traceTAKE_MUTEX_RECURSIVE( pxMutex ) -#endif - -#ifndef traceTAKE_MUTEX_RECURSIVE_FAILED - #define traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ) -#endif - -#ifndef traceCREATE_COUNTING_SEMAPHORE - #define traceCREATE_COUNTING_SEMAPHORE() -#endif - -#ifndef traceCREATE_COUNTING_SEMAPHORE_FAILED - #define traceCREATE_COUNTING_SEMAPHORE_FAILED() -#endif - -#ifndef traceQUEUE_SEND - #define traceQUEUE_SEND( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FAILED - #define traceQUEUE_SEND_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE - #define traceQUEUE_RECEIVE( pxQueue ) -#endif - -#ifndef traceQUEUE_PEEK - #define traceQUEUE_PEEK( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FAILED - #define traceQUEUE_RECEIVE_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FROM_ISR - #define traceQUEUE_SEND_FROM_ISR( pxQueue ) -#endif - -#ifndef traceQUEUE_SEND_FROM_ISR_FAILED - #define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FROM_ISR - #define traceQUEUE_RECEIVE_FROM_ISR( pxQueue ) -#endif - -#ifndef traceQUEUE_RECEIVE_FROM_ISR_FAILED - #define traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ) -#endif - -#ifndef traceQUEUE_DELETE - #define traceQUEUE_DELETE( pxQueue ) -#endif - -#ifndef traceTASK_CREATE - #define traceTASK_CREATE( pxNewTCB ) -#endif - -#ifndef traceTASK_CREATE_FAILED - #define traceTASK_CREATE_FAILED() -#endif - -#ifndef traceTASK_DELETE - #define traceTASK_DELETE( pxTaskToDelete ) -#endif - -#ifndef traceTASK_DELAY_UNTIL - #define traceTASK_DELAY_UNTIL() -#endif - -#ifndef traceTASK_DELAY - #define traceTASK_DELAY() -#endif - -#ifndef traceTASK_PRIORITY_SET - #define traceTASK_PRIORITY_SET( pxTask, uxNewPriority ) -#endif - -#ifndef traceTASK_SUSPEND - #define traceTASK_SUSPEND( pxTaskToSuspend ) -#endif - -#ifndef traceTASK_RESUME - #define traceTASK_RESUME( pxTaskToResume ) -#endif - -#ifndef traceTASK_RESUME_FROM_ISR - #define traceTASK_RESUME_FROM_ISR( pxTaskToResume ) -#endif - -#ifndef traceTASK_INCREMENT_TICK - #define traceTASK_INCREMENT_TICK( xTickCount ) -#endif - -#ifndef traceTIMER_CREATE - #define traceTIMER_CREATE( pxNewTimer ) -#endif - -#ifndef traceTIMER_CREATE_FAILED - #define traceTIMER_CREATE_FAILED() -#endif - -#ifndef traceTIMER_COMMAND_SEND - #define traceTIMER_COMMAND_SEND( xTimer, xMessageID, xMessageValueValue, xReturn ) -#endif - -#ifndef traceTIMER_EXPIRED - #define traceTIMER_EXPIRED( pxTimer ) -#endif - -#ifndef traceTIMER_COMMAND_RECEIVED - #define traceTIMER_COMMAND_RECEIVED( pxTimer, xMessageID, xMessageValue ) -#endif - -#ifndef configGENERATE_RUN_TIME_STATS - #define configGENERATE_RUN_TIME_STATS 0 -#endif - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - #ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS - #error If configGENERATE_RUN_TIME_STATS is defined then portCONFIGURE_TIMER_FOR_RUN_TIME_STATS must also be defined. portCONFIGURE_TIMER_FOR_RUN_TIME_STATS should call a port layer function to setup a peripheral timer/counter that can then be used as the run time counter time base. - #endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */ - - #ifndef portGET_RUN_TIME_COUNTER_VALUE - #ifndef portALT_GET_RUN_TIME_COUNTER_VALUE - #error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined. See the examples provided and the FreeRTOS web site for more information. - #endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */ - #endif /* portGET_RUN_TIME_COUNTER_VALUE */ - -#endif /* configGENERATE_RUN_TIME_STATS */ - -#ifndef portCONFIGURE_TIMER_FOR_RUN_TIME_STATS - #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() -#endif - -#ifndef configUSE_MALLOC_FAILED_HOOK - #define configUSE_MALLOC_FAILED_HOOK 0 -#endif - -#ifndef portPRIVILEGE_BIT - #define portPRIVILEGE_BIT ( ( unsigned portBASE_TYPE ) 0x00 ) -#endif - -#ifndef portYIELD_WITHIN_API - #define portYIELD_WITHIN_API portYIELD -#endif - -#ifndef pvPortMallocAligned - #define pvPortMallocAligned( x, puxStackBuffer ) ( ( ( puxStackBuffer ) == NULL ) ? ( pvPortMalloc( ( x ) ) ) : ( puxStackBuffer ) ) -#endif - -#ifndef vPortFreeAligned - #define vPortFreeAligned( pvBlockToFree ) vPortFree( pvBlockToFree ) -#endif - -#endif /* INC_FREERTOS_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/StackMacros.h b/TP1_labyrinth_etu/FreeRTOS_include/StackMacros.h deleted file mode 100644 index 1114b6d..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/StackMacros.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef STACK_MACROS_H -#define STACK_MACROS_H - -/* - * Call the stack overflow hook function if the stack of the task being swapped - * out is currently overflowed, or looks like it might have overflowed in the - * past. - * - * Setting configCHECK_FOR_STACK_OVERFLOW to 1 will cause the macro to check - * the current stack state only - comparing the current top of stack value to - * the stack limit. Setting configCHECK_FOR_STACK_OVERFLOW to greater than 1 - * will also cause the last few stack bytes to be checked to ensure the value - * to which the bytes were set when the task was created have not been - * overwritten. Note this second test does not guarantee that an overflowed - * stack will always be recognised. - */ - -/*-----------------------------------------------------------*/ - -#if( configCHECK_FOR_STACK_OVERFLOW == 0 ) - - /* FreeRTOSConfig.h is not set to check for stack overflows. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 0 */ -/*-----------------------------------------------------------*/ - -#if( configCHECK_FOR_STACK_OVERFLOW == 1 ) - - /* FreeRTOSConfig.h is only set to use the first method of - overflow checking. */ - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() - -#endif -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH < 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ - { \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW > 0 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 0 ) && ( portSTACK_GROWTH > 0 ) ) - - /* Only the current stack state is to be checked. */ - #define taskFIRST_CHECK_FOR_STACK_OVERFLOW() \ - { \ - \ - /* Is the currently saved stack pointer within the stack limit? */ \ - if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* configCHECK_FOR_STACK_OVERFLOW == 1 */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) ) - - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pxCurrentTCB->pxStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) ) - - #define taskSECOND_CHECK_FOR_STACK_OVERFLOW() \ - { \ - char *pcEndOfStack = ( char * ) pxCurrentTCB->pxEndOfStack; \ - static const unsigned char ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \ - tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE }; \ - \ - \ - pcEndOfStack -= sizeof( ucExpectedStackBytes ); \ - \ - /* Has the extremity of the task stack ever been written over? */ \ - if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \ - { \ - vApplicationStackOverflowHook( ( xTaskHandle ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \ - } \ - } - -#endif /* #if( configCHECK_FOR_STACK_OVERFLOW > 1 ) */ -/*-----------------------------------------------------------*/ - -#endif /* STACK_MACROS_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/croutine.h b/TP1_labyrinth_etu/FreeRTOS_include/croutine.h deleted file mode 100644 index 65fdc48..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/croutine.h +++ /dev/null @@ -1,752 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef CO_ROUTINE_H -#define CO_ROUTINE_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include croutine.h" -#endif - -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* Used to hide the implementation of the co-routine control block. The -control block structure however has to be included in the header due to -the macro implementation of the co-routine functionality. */ -typedef void * xCoRoutineHandle; - -/* Defines the prototype to which co-routine functions must conform. */ -typedef void (*crCOROUTINE_CODE)( xCoRoutineHandle, unsigned portBASE_TYPE ); - -typedef struct corCoRoutineControlBlock -{ - crCOROUTINE_CODE pxCoRoutineFunction; - xListItem xGenericListItem; /*< List item used to place the CRCB in ready and blocked queues. */ - xListItem xEventListItem; /*< List item used to place the CRCB in event lists. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the co-routine in relation to other co-routines. */ - unsigned portBASE_TYPE uxIndex; /*< Used to distinguish between co-routines when multiple co-routines use the same co-routine function. */ - unsigned short uxState; /*< Used internally by the co-routine implementation. */ -} corCRCB; /* Co-routine control block. Note must be identical in size down to uxPriority with tskTCB. */ - -/** - * croutine. h - *<pre> - portBASE_TYPE xCoRoutineCreate( - crCOROUTINE_CODE pxCoRoutineCode, - unsigned portBASE_TYPE uxPriority, - unsigned portBASE_TYPE uxIndex - );</pre> - * - * Create a new co-routine and add it to the list of co-routines that are - * ready to run. - * - * @param pxCoRoutineCode Pointer to the co-routine function. Co-routine - * functions require special syntax - see the co-routine section of the WEB - * documentation for more information. - * - * @param uxPriority The priority with respect to other co-routines at which - * the co-routine will run. - * - * @param uxIndex Used to distinguish between different co-routines that - * execute the same function. See the example below and the co-routine section - * of the WEB documentation for further information. - * - * @return pdPASS if the co-routine was successfully created and added to a ready - * list, otherwise an error code defined with ProjDefs.h. - * - * Example usage: - <pre> - // Co-routine to be created. - void vFlashCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - // This may not be necessary for const variables. - static const char cLedToFlash[ 2 ] = { 5, 6 }; - static const portTickType uxFlashRates[ 2 ] = { 200, 400 }; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // This co-routine just delays for a fixed period, then toggles - // an LED. Two co-routines are created using this function, so - // the uxIndex parameter is used to tell the co-routine which - // LED to flash and how long to delay. This assumes xQueue has - // already been created. - vParTestToggleLED( cLedToFlash[ uxIndex ] ); - crDELAY( xHandle, uxFlashRates[ uxIndex ] ); - } - - // Must end every co-routine with a call to crEND(); - crEND(); - } - - // Function that creates two co-routines. - void vOtherFunction( void ) - { - unsigned char ucParameterToPass; - xTaskHandle xHandle; - - // Create two co-routines at priority 0. The first is given index 0 - // so (from the code above) toggles LED 5 every 200 ticks. The second - // is given index 1 so toggles LED 6 every 400 ticks. - for( uxIndex = 0; uxIndex < 2; uxIndex++ ) - { - xCoRoutineCreate( vFlashCoRoutine, 0, uxIndex ); - } - } - </pre> - * \defgroup xCoRoutineCreate xCoRoutineCreate - * \ingroup Tasks - */ -signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex ); - - -/** - * croutine. h - *<pre> - void vCoRoutineSchedule( void );</pre> - * - * Run a co-routine. - * - * vCoRoutineSchedule() executes the highest priority co-routine that is able - * to run. The co-routine will execute until it either blocks, yields or is - * preempted by a task. Co-routines execute cooperatively so one - * co-routine cannot be preempted by another, but can be preempted by a task. - * - * If an application comprises of both tasks and co-routines then - * vCoRoutineSchedule should be called from the idle task (in an idle task - * hook). - * - * Example usage: - <pre> - // This idle task hook will schedule a co-routine each time it is called. - // The rest of the idle task will execute between co-routine calls. - void vApplicationIdleHook( void ) - { - vCoRoutineSchedule(); - } - - // Alternatively, if you do not require any other part of the idle task to - // execute, the idle task hook can call vCoRoutineScheduler() within an - // infinite loop. - void vApplicationIdleHook( void ) - { - for( ;; ) - { - vCoRoutineSchedule(); - } - } - </pre> - * \defgroup vCoRoutineSchedule vCoRoutineSchedule - * \ingroup Tasks - */ -void vCoRoutineSchedule( void ); - -/** - * croutine. h - * <pre> - crSTART( xCoRoutineHandle xHandle );</pre> - * - * This macro MUST always be called at the start of a co-routine function. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static long ulAVariable; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Co-routine functionality goes here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crSTART crSTART - * \ingroup Tasks - */ -#define crSTART( pxCRCB ) switch( ( ( corCRCB * )( pxCRCB ) )->uxState ) { case 0: - -/** - * croutine. h - * <pre> - crEND();</pre> - * - * This macro MUST always be called at the end of a co-routine function. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static long ulAVariable; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Co-routine functionality goes here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crSTART crSTART - * \ingroup Tasks - */ -#define crEND() } - -/* - * These macros are intended for internal use by the co-routine implementation - * only. The macros should not be used directly by application writers. - */ -#define crSET_STATE0( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = (__LINE__ * 2); return; case (__LINE__ * 2): -#define crSET_STATE1( xHandle ) ( ( corCRCB * )( xHandle ) )->uxState = ((__LINE__ * 2)+1); return; case ((__LINE__ * 2)+1): - -/** - * croutine. h - *<pre> - crDELAY( xCoRoutineHandle xHandle, portTickType xTicksToDelay );</pre> - * - * Delay a co-routine for a fixed period of time. - * - * crDELAY can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * @param xHandle The handle of the co-routine to delay. This is the xHandle - * parameter of the co-routine function. - * - * @param xTickToDelay The number of ticks that the co-routine should delay - * for. The actual amount of time this equates to is defined by - * configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant portTICK_RATE_MS - * can be used to convert ticks to milliseconds. - * - * Example usage: - <pre> - // Co-routine to be created. - void vACoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - // This may not be necessary for const variables. - // We are to delay for 200ms. - static const xTickType xDelayTime = 200 / portTICK_RATE_MS; - - // Must start every co-routine with a call to crSTART(); - crSTART( xHandle ); - - for( ;; ) - { - // Delay for 200ms. - crDELAY( xHandle, xDelayTime ); - - // Do something here. - } - - // Must end every co-routine with a call to crEND(); - crEND(); - }</pre> - * \defgroup crDELAY crDELAY - * \ingroup Tasks - */ -#define crDELAY( xHandle, xTicksToDelay ) \ - if( ( xTicksToDelay ) > 0 ) \ - { \ - vCoRoutineAddToDelayedList( ( xTicksToDelay ), NULL ); \ - } \ - crSET_STATE0( ( xHandle ) ); - -/** - * <pre> - crQUEUE_SEND( - xCoRoutineHandle xHandle, - xQueueHandle pxQueue, - void *pvItemToQueue, - portTickType xTicksToWait, - portBASE_TYPE *pxResult - )</pre> - * - * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine - * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks. - * - * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas - * xQueueSend() and xQueueReceive() can only be used from tasks. - * - * crQUEUE_SEND can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xHandle The handle of the calling co-routine. This is the xHandle - * parameter of the co-routine function. - * - * @param pxQueue The handle of the queue on which the data will be posted. - * The handle is obtained as the return value when the queue is created using - * the xQueueCreate() API function. - * - * @param pvItemToQueue A pointer to the data being posted onto the queue. - * The number of bytes of each queued item is specified when the queue is - * created. This number of bytes is copied from pvItemToQueue into the queue - * itself. - * - * @param xTickToDelay The number of ticks that the co-routine should block - * to wait for space to become available on the queue, should space not be - * available immediately. The actual amount of time this equates to is defined - * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see example - * below). - * - * @param pxResult The variable pointed to by pxResult will be set to pdPASS if - * data was successfully posted onto the queue, otherwise it will be set to an - * error defined within ProjDefs.h. - * - * Example usage: - <pre> - // Co-routine function that blocks for a fixed period then posts a number onto - // a queue. - static void prvCoRoutineFlashTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static portBASE_TYPE xNumberToPost = 0; - static portBASE_TYPE xResult; - - // Co-routines must begin with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // This assumes the queue has already been created. - crQUEUE_SEND( xHandle, xCoRoutineQueue, &xNumberToPost, NO_DELAY, &xResult ); - - if( xResult != pdPASS ) - { - // The message was not posted! - } - - // Increment the number to be posted onto the queue. - xNumberToPost++; - - // Delay for 100 ticks. - crDELAY( xHandle, 100 ); - } - - // Co-routines must end with a call to crEND(). - crEND(); - }</pre> - * \defgroup crQUEUE_SEND crQUEUE_SEND - * \ingroup Tasks - */ -#define crQUEUE_SEND( xHandle, pxQueue, pvItemToQueue, xTicksToWait, pxResult ) \ -{ \ - *( pxResult ) = xQueueCRSend( ( pxQueue) , ( pvItemToQueue) , ( xTicksToWait ) ); \ - if( *( pxResult ) == errQUEUE_BLOCKED ) \ - { \ - crSET_STATE0( ( xHandle ) ); \ - *pxResult = xQueueCRSend( ( pxQueue ), ( pvItemToQueue ), 0 ); \ - } \ - if( *pxResult == errQUEUE_YIELD ) \ - { \ - crSET_STATE1( ( xHandle ) ); \ - *pxResult = pdPASS; \ - } \ -} - -/** - * croutine. h - * <pre> - crQUEUE_RECEIVE( - xCoRoutineHandle xHandle, - xQueueHandle pxQueue, - void *pvBuffer, - portTickType xTicksToWait, - portBASE_TYPE *pxResult - )</pre> - * - * The macro's crQUEUE_SEND() and crQUEUE_RECEIVE() are the co-routine - * equivalent to the xQueueSend() and xQueueReceive() functions used by tasks. - * - * crQUEUE_SEND and crQUEUE_RECEIVE can only be used from a co-routine whereas - * xQueueSend() and xQueueReceive() can only be used from tasks. - * - * crQUEUE_RECEIVE can only be called from the co-routine function itself - not - * from within a function called by the co-routine function. This is because - * co-routines do not maintain their own stack. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xHandle The handle of the calling co-routine. This is the xHandle - * parameter of the co-routine function. - * - * @param pxQueue The handle of the queue from which the data will be received. - * The handle is obtained as the return value when the queue is created using - * the xQueueCreate() API function. - * - * @param pvBuffer The buffer into which the received item is to be copied. - * The number of bytes of each queued item is specified when the queue is - * created. This number of bytes is copied into pvBuffer. - * - * @param xTickToDelay The number of ticks that the co-routine should block - * to wait for data to become available from the queue, should data not be - * available immediately. The actual amount of time this equates to is defined - * by configTICK_RATE_HZ (set in FreeRTOSConfig.h). The constant - * portTICK_RATE_MS can be used to convert ticks to milliseconds (see the - * crQUEUE_SEND example). - * - * @param pxResult The variable pointed to by pxResult will be set to pdPASS if - * data was successfully retrieved from the queue, otherwise it will be set to - * an error code as defined within ProjDefs.h. - * - * Example usage: - <pre> - // A co-routine receives the number of an LED to flash from a queue. It - // blocks on the queue until the number is received. - static void prvCoRoutineFlashWorkTask( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // Variables in co-routines must be declared static if they must maintain value across a blocking call. - static portBASE_TYPE xResult; - static unsigned portBASE_TYPE uxLEDToFlash; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Wait for data to become available on the queue. - crQUEUE_RECEIVE( xHandle, xCoRoutineQueue, &uxLEDToFlash, portMAX_DELAY, &xResult ); - - if( xResult == pdPASS ) - { - // We received the LED to flash - flash it! - vParTestToggleLED( uxLEDToFlash ); - } - } - - crEND(); - }</pre> - * \defgroup crQUEUE_RECEIVE crQUEUE_RECEIVE - * \ingroup Tasks - */ -#define crQUEUE_RECEIVE( xHandle, pxQueue, pvBuffer, xTicksToWait, pxResult ) \ -{ \ - *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), ( xTicksToWait ) ); \ - if( *( pxResult ) == errQUEUE_BLOCKED ) \ - { \ - crSET_STATE0( ( xHandle ) ); \ - *( pxResult ) = xQueueCRReceive( ( pxQueue) , ( pvBuffer ), 0 ); \ - } \ - if( *( pxResult ) == errQUEUE_YIELD ) \ - { \ - crSET_STATE1( ( xHandle ) ); \ - *( pxResult ) = pdPASS; \ - } \ -} - -/** - * croutine. h - * <pre> - crQUEUE_SEND_FROM_ISR( - xQueueHandle pxQueue, - void *pvItemToQueue, - portBASE_TYPE xCoRoutinePreviouslyWoken - )</pre> - * - * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the - * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR() - * functions used by tasks. - * - * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to - * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and - * xQueueReceiveFromISR() can only be used to pass data between a task and and - * ISR. - * - * crQUEUE_SEND_FROM_ISR can only be called from an ISR to send data to a queue - * that is being used from within a co-routine. - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xCoRoutinePreviouslyWoken This is included so an ISR can post onto - * the same queue multiple times from a single interrupt. The first call - * should always pass in pdFALSE. Subsequent calls should pass in - * the value returned from the previous call. - * - * @return pdTRUE if a co-routine was woken by posting onto the queue. This is - * used by the ISR to determine if a context switch may be required following - * the ISR. - * - * Example usage: - <pre> - // A co-routine that blocks on a queue waiting for characters to be received. - static void vReceivingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - char cRxedChar; - portBASE_TYPE xResult; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Wait for data to become available on the queue. This assumes the - // queue xCommsRxQueue has already been created! - crQUEUE_RECEIVE( xHandle, xCommsRxQueue, &uxLEDToFlash, portMAX_DELAY, &xResult ); - - // Was a character received? - if( xResult == pdPASS ) - { - // Process the character here. - } - } - - // All co-routines must end with a call to crEND(). - crEND(); - } - - // An ISR that uses a queue to send characters received on a serial port to - // a co-routine. - void vUART_ISR( void ) - { - char cRxedChar; - portBASE_TYPE xCRWokenByPost = pdFALSE; - - // We loop around reading characters until there are none left in the UART. - while( UART_RX_REG_NOT_EMPTY() ) - { - // Obtain the character from the UART. - cRxedChar = UART_RX_REG; - - // Post the character onto a queue. xCRWokenByPost will be pdFALSE - // the first time around the loop. If the post causes a co-routine - // to be woken (unblocked) then xCRWokenByPost will be set to pdTRUE. - // In this manner we can ensure that if more than one co-routine is - // blocked on the queue only one is woken by this ISR no matter how - // many characters are posted to the queue. - xCRWokenByPost = crQUEUE_SEND_FROM_ISR( xCommsRxQueue, &cRxedChar, xCRWokenByPost ); - } - }</pre> - * \defgroup crQUEUE_SEND_FROM_ISR crQUEUE_SEND_FROM_ISR - * \ingroup Tasks - */ -#define crQUEUE_SEND_FROM_ISR( pxQueue, pvItemToQueue, xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( xCoRoutinePreviouslyWoken ) ) - - -/** - * croutine. h - * <pre> - crQUEUE_SEND_FROM_ISR( - xQueueHandle pxQueue, - void *pvBuffer, - portBASE_TYPE * pxCoRoutineWoken - )</pre> - * - * The macro's crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() are the - * co-routine equivalent to the xQueueSendFromISR() and xQueueReceiveFromISR() - * functions used by tasks. - * - * crQUEUE_SEND_FROM_ISR() and crQUEUE_RECEIVE_FROM_ISR() can only be used to - * pass data between a co-routine and and ISR, whereas xQueueSendFromISR() and - * xQueueReceiveFromISR() can only be used to pass data between a task and and - * ISR. - * - * crQUEUE_RECEIVE_FROM_ISR can only be called from an ISR to receive data - * from a queue that is being used from within a co-routine (a co-routine - * posted to the queue). - * - * See the co-routine section of the WEB documentation for information on - * passing data between tasks and co-routines and between ISR's and - * co-routines. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvBuffer A pointer to a buffer into which the received item will be - * placed. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from the queue into - * pvBuffer. - * - * @param pxCoRoutineWoken A co-routine may be blocked waiting for space to become - * available on the queue. If crQUEUE_RECEIVE_FROM_ISR causes such a - * co-routine to unblock *pxCoRoutineWoken will get set to pdTRUE, otherwise - * *pxCoRoutineWoken will remain unchanged. - * - * @return pdTRUE an item was successfully received from the queue, otherwise - * pdFALSE. - * - * Example usage: - <pre> - // A co-routine that posts a character to a queue then blocks for a fixed - // period. The character is incremented each time. - static void vSendingCoRoutine( xCoRoutineHandle xHandle, unsigned portBASE_TYPE uxIndex ) - { - // cChar holds its value while this co-routine is blocked and must therefore - // be declared static. - static char cCharToTx = 'a'; - portBASE_TYPE xResult; - - // All co-routines must start with a call to crSTART(). - crSTART( xHandle ); - - for( ;; ) - { - // Send the next character to the queue. - crQUEUE_SEND( xHandle, xCoRoutineQueue, &cCharToTx, NO_DELAY, &xResult ); - - if( xResult == pdPASS ) - { - // The character was successfully posted to the queue. - } - else - { - // Could not post the character to the queue. - } - - // Enable the UART Tx interrupt to cause an interrupt in this - // hypothetical UART. The interrupt will obtain the character - // from the queue and send it. - ENABLE_RX_INTERRUPT(); - - // Increment to the next character then block for a fixed period. - // cCharToTx will maintain its value across the delay as it is - // declared static. - cCharToTx++; - if( cCharToTx > 'x' ) - { - cCharToTx = 'a'; - } - crDELAY( 100 ); - } - - // All co-routines must end with a call to crEND(). - crEND(); - } - - // An ISR that uses a queue to receive characters to send on a UART. - void vUART_ISR( void ) - { - char cCharToTx; - portBASE_TYPE xCRWokenByPost = pdFALSE; - - while( UART_TX_REG_EMPTY() ) - { - // Are there any characters in the queue waiting to be sent? - // xCRWokenByPost will automatically be set to pdTRUE if a co-routine - // is woken by the post - ensuring that only a single co-routine is - // woken no matter how many times we go around this loop. - if( crQUEUE_RECEIVE_FROM_ISR( pxQueue, &cCharToTx, &xCRWokenByPost ) ) - { - SEND_CHARACTER( cCharToTx ); - } - } - }</pre> - * \defgroup crQUEUE_RECEIVE_FROM_ISR crQUEUE_RECEIVE_FROM_ISR - * \ingroup Tasks - */ -#define crQUEUE_RECEIVE_FROM_ISR( pxQueue, pvBuffer, pxCoRoutineWoken ) xQueueCRReceiveFromISR( ( pxQueue ), ( pvBuffer ), ( pxCoRoutineWoken ) ) - -/* - * This function is intended for internal use by the co-routine macros only. - * The macro nature of the co-routine implementation requires that the - * prototype appears here. The function should not be used by application - * writers. - * - * Removes the current co-routine from its ready list and places it in the - * appropriate delayed list. - */ -void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList ); - -/* - * This function is intended for internal use by the queue implementation only. - * The function should not be used by application writers. - * - * Removes the highest priority co-routine from the event list and places it in - * the pending ready list. - */ -signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList ); - -#ifdef __cplusplus -} -#endif - -#endif /* CO_ROUTINE_H */ diff --git a/TP1_labyrinth_etu/FreeRTOS_include/list.h b/TP1_labyrinth_etu/FreeRTOS_include/list.h deleted file mode 100644 index e8b47c4..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/list.h +++ /dev/null @@ -1,314 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* - * This is the list implementation used by the scheduler. While it is tailored - * heavily for the schedulers needs, it is also available for use by - * application code. - * - * xLists can only store pointers to xListItems. Each xListItem contains a - * numeric value (xItemValue). Most of the time the lists are sorted in - * descending item value order. - * - * Lists are created already containing one list item. The value of this - * item is the maximum possible that can be stored, it is therefore always at - * the end of the list and acts as a marker. The list member pxHead always - * points to this marker - even though it is at the tail of the list. This - * is because the tail contains a wrap back pointer to the true head of - * the list. - * - * In addition to it's value, each list item contains a pointer to the next - * item in the list (pxNext), a pointer to the list it is in (pxContainer) - * and a pointer to back to the object that contains it. These later two - * pointers are included for efficiency of list manipulation. There is - * effectively a two way link between the object containing the list item and - * the list item itself. - * - * - * \page ListIntroduction List Implementation - * \ingroup FreeRTOSIntro - */ - - -#ifndef LIST_H -#define LIST_H - -#ifdef __cplusplus -extern "C" { -#endif -/* - * Definition of the only type of object that a list can contain. - */ -struct xLIST_ITEM -{ - portTickType xItemValue; /*< The value being listed. In most cases this is used to sort the list in descending order. */ - volatile struct xLIST_ITEM * pxNext; /*< Pointer to the next xListItem in the list. */ - volatile struct xLIST_ITEM * pxPrevious;/*< Pointer to the previous xListItem in the list. */ - void * pvOwner; /*< Pointer to the object (normally a TCB) that contains the list item. There is therefore a two way link between the object containing the list item and the list item itself. */ - void * pvContainer; /*< Pointer to the list in which this list item is placed (if any). */ -}; -typedef struct xLIST_ITEM xListItem; /* For some reason lint wants this as two separate definitions. */ - -struct xMINI_LIST_ITEM -{ - portTickType xItemValue; - volatile struct xLIST_ITEM *pxNext; - volatile struct xLIST_ITEM *pxPrevious; -}; -typedef struct xMINI_LIST_ITEM xMiniListItem; - -/* - * Definition of the type of queue used by the scheduler. - */ -typedef struct xLIST -{ - volatile unsigned portBASE_TYPE uxNumberOfItems; - volatile xListItem * pxIndex; /*< Used to walk through the list. Points to the last item returned by a call to pvListGetOwnerOfNextEntry (). */ - volatile xMiniListItem xListEnd; /*< List item that contains the maximum possible item value meaning it is always at the end of the list and is therefore used as a marker. */ -} xList; - -/* - * Access macro to set the owner of a list item. The owner of a list item - * is the object (usually a TCB) that contains the list item. - * - * \page listSET_LIST_ITEM_OWNER listSET_LIST_ITEM_OWNER - * \ingroup LinkedList - */ -#define listSET_LIST_ITEM_OWNER( pxListItem, pxOwner ) ( pxListItem )->pvOwner = ( void * ) ( pxOwner ) - -/* - * Access macro to set the value of the list item. In most cases the value is - * used to sort the list in descending order. - * - * \page listSET_LIST_ITEM_VALUE listSET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listSET_LIST_ITEM_VALUE( pxListItem, xValue ) ( pxListItem )->xItemValue = ( xValue ) - -/* - * Access macro the retrieve the value of the list item. The value can - * represent anything - for example a the priority of a task, or the time at - * which a task should be unblocked. - * - * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listGET_LIST_ITEM_VALUE( pxListItem ) ( ( pxListItem )->xItemValue ) - -/* - * Access macro the retrieve the value of the list item at the head of a given - * list. - * - * \page listGET_LIST_ITEM_VALUE listGET_LIST_ITEM_VALUE - * \ingroup LinkedList - */ -#define listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxList ) ( (&( ( pxList )->xListEnd ))->pxNext->xItemValue ) - -/* - * Access macro to determine if a list contains any items. The macro will - * only have the value true if the list is empty. - * - * \page listLIST_IS_EMPTY listLIST_IS_EMPTY - * \ingroup LinkedList - */ -#define listLIST_IS_EMPTY( pxList ) ( ( pxList )->uxNumberOfItems == ( unsigned portBASE_TYPE ) 0 ) - -/* - * Access macro to return the number of items in the list. - */ -#define listCURRENT_LIST_LENGTH( pxList ) ( ( pxList )->uxNumberOfItems ) - -/* - * Access function to obtain the owner of the next entry in a list. - * - * The list member pxIndex is used to walk through a list. Calling - * listGET_OWNER_OF_NEXT_ENTRY increments pxIndex to the next item in the list - * and returns that entries pxOwner parameter. Using multiple calls to this - * function it is therefore possible to move through every item contained in - * a list. - * - * The pxOwner parameter of a list item is a pointer to the object that owns - * the list item. In the scheduler this is normally a task control block. - * The pxOwner parameter effectively creates a two way link between the list - * item and its owner. - * - * @param pxList The list from which the next item owner is to be returned. - * - * \page listGET_OWNER_OF_NEXT_ENTRY listGET_OWNER_OF_NEXT_ENTRY - * \ingroup LinkedList - */ -#define listGET_OWNER_OF_NEXT_ENTRY( pxTCB, pxList ) \ -{ \ -xList * const pxConstList = ( pxList ); \ - /* Increment the index to the next item and return the item, ensuring */ \ - /* we don't return the marker used at the end of the list. */ \ - ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \ - if( ( pxConstList )->pxIndex == ( xListItem * ) &( ( pxConstList )->xListEnd ) ) \ - { \ - ( pxConstList )->pxIndex = ( pxConstList )->pxIndex->pxNext; \ - } \ - ( pxTCB ) = ( pxConstList )->pxIndex->pvOwner; \ -} - - -/* - * Access function to obtain the owner of the first entry in a list. Lists - * are normally sorted in ascending item value order. - * - * This function returns the pxOwner member of the first item in the list. - * The pxOwner parameter of a list item is a pointer to the object that owns - * the list item. In the scheduler this is normally a task control block. - * The pxOwner parameter effectively creates a two way link between the list - * item and its owner. - * - * @param pxList The list from which the owner of the head item is to be - * returned. - * - * \page listGET_OWNER_OF_HEAD_ENTRY listGET_OWNER_OF_HEAD_ENTRY - * \ingroup LinkedList - */ -#define listGET_OWNER_OF_HEAD_ENTRY( pxList ) ( (&( ( pxList )->xListEnd ))->pxNext->pvOwner ) - -/* - * Check to see if a list item is within a list. The list item maintains a - * "container" pointer that points to the list it is in. All this macro does - * is check to see if the container and the list match. - * - * @param pxList The list we want to know if the list item is within. - * @param pxListItem The list item we want to know if is in the list. - * @return pdTRUE is the list item is in the list, otherwise pdFALSE. - * pointer against - */ -#define listIS_CONTAINED_WITHIN( pxList, pxListItem ) ( ( pxListItem )->pvContainer == ( void * ) ( pxList ) ) - -/* - * Must be called before a list is used! This initialises all the members - * of the list structure and inserts the xListEnd item into the list as a - * marker to the back of the list. - * - * @param pxList Pointer to the list being initialised. - * - * \page vListInitialise vListInitialise - * \ingroup LinkedList - */ -void vListInitialise( xList *pxList ); - -/* - * Must be called before a list item is used. This sets the list container to - * null so the item does not think that it is already contained in a list. - * - * @param pxItem Pointer to the list item being initialised. - * - * \page vListInitialiseItem vListInitialiseItem - * \ingroup LinkedList - */ -void vListInitialiseItem( xListItem *pxItem ); - -/* - * Insert a list item into a list. The item will be inserted into the list in - * a position determined by its item value (descending item value order). - * - * @param pxList The list into which the item is to be inserted. - * - * @param pxNewListItem The item to that is to be placed in the list. - * - * \page vListInsert vListInsert - * \ingroup LinkedList - */ -void vListInsert( xList *pxList, xListItem *pxNewListItem ); - -/* - * Insert a list item into a list. The item will be inserted in a position - * such that it will be the last item within the list returned by multiple - * calls to listGET_OWNER_OF_NEXT_ENTRY. - * - * The list member pvIndex is used to walk through a list. Calling - * listGET_OWNER_OF_NEXT_ENTRY increments pvIndex to the next item in the list. - * Placing an item in a list using vListInsertEnd effectively places the item - * in the list position pointed to by pvIndex. This means that every other - * item within the list will be returned by listGET_OWNER_OF_NEXT_ENTRY before - * the pvIndex parameter again points to the item being inserted. - * - * @param pxList The list into which the item is to be inserted. - * - * @param pxNewListItem The list item to be inserted into the list. - * - * \page vListInsertEnd vListInsertEnd - * \ingroup LinkedList - */ -void vListInsertEnd( xList *pxList, xListItem *pxNewListItem ); - -/* - * Remove an item from a list. The list item has a pointer to the list that - * it is in, so only the list item need be passed into the function. - * - * @param vListRemove The item to be removed. The item will remove itself from - * the list pointed to by it's pxContainer parameter. - * - * \page vListRemove vListRemove - * \ingroup LinkedList - */ -void vListRemove( xListItem *pxItemToRemove ); - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/mpu_wrappers.h b/TP1_labyrinth_etu/FreeRTOS_include/mpu_wrappers.h deleted file mode 100644 index b7371b9..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/mpu_wrappers.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef MPU_WRAPPERS_H -#define MPU_WRAPPERS_H - -/* This file redefines API functions to be called through a wrapper macro, but -only for ports that are using the MPU. */ -#ifdef portUSING_MPU_WRAPPERS - - /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE will be defined when this file is - included from queue.c or task.c to prevent it from having an effect within - those files. */ - #ifndef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - - #define xTaskGenericCreate MPU_xTaskGenericCreate - #define vTaskAllocateMPURegions MPU_vTaskAllocateMPURegions - #define vTaskDelete MPU_vTaskDelete - #define vTaskDelayUntil MPU_vTaskDelayUntil - #define vTaskDelay MPU_vTaskDelay - #define uxTaskPriorityGet MPU_uxTaskPriorityGet - #define vTaskPrioritySet MPU_vTaskPrioritySet - #define vTaskSuspend MPU_vTaskSuspend - #define xTaskIsTaskSuspended MPU_xTaskIsTaskSuspended - #define vTaskResume MPU_vTaskResume - #define vTaskSuspendAll MPU_vTaskSuspendAll - #define xTaskResumeAll MPU_xTaskResumeAll - #define xTaskGetTickCount MPU_xTaskGetTickCount - #define uxTaskGetNumberOfTasks MPU_uxTaskGetNumberOfTasks - #define vTaskList MPU_vTaskList - #define vTaskGetRunTimeStats MPU_vTaskGetRunTimeStats - #define vTaskStartTrace MPU_vTaskStartTrace - #define ulTaskEndTrace MPU_ulTaskEndTrace - #define vTaskSetApplicationTaskTag MPU_vTaskSetApplicationTaskTag - #define xTaskGetApplicationTaskTag MPU_xTaskGetApplicationTaskTag - #define xTaskCallApplicationTaskHook MPU_xTaskCallApplicationTaskHook - #define uxTaskGetStackHighWaterMark MPU_uxTaskGetStackHighWaterMark - #define xTaskGetCurrentTaskHandle MPU_xTaskGetCurrentTaskHandle - #define xTaskGetSchedulerState MPU_xTaskGetSchedulerState - - #define xQueueCreate MPU_xQueueCreate - #define xQueueCreateMutex MPU_xQueueCreateMutex - #define xQueueGiveMutexRecursive MPU_xQueueGiveMutexRecursive - #define xQueueTakeMutexRecursive MPU_xQueueTakeMutexRecursive - #define xQueueCreateCountingSemaphore MPU_xQueueCreateCountingSemaphore - #define xQueueGenericSend MPU_xQueueGenericSend - #define xQueueAltGenericSend MPU_xQueueAltGenericSend - #define xQueueAltGenericReceive MPU_xQueueAltGenericReceive - #define xQueueGenericReceive MPU_xQueueGenericReceive - #define uxQueueMessagesWaiting MPU_uxQueueMessagesWaiting - #define vQueueDelete MPU_vQueueDelete - - #define pvPortMalloc MPU_pvPortMalloc - #define vPortFree MPU_vPortFree - #define xPortGetFreeHeapSize MPU_xPortGetFreeHeapSize - #define vPortInitialiseBlocks MPU_vPortInitialiseBlocks - - #if configQUEUE_REGISTRY_SIZE > 0 - #define vQueueAddToRegistry MPU_vQueueAddToRegistry - #define vQueueUnregisterQueue MPU_vQueueUnregisterQueue - #endif - - /* Remove the privileged function macro. */ - #define PRIVILEGED_FUNCTION - - #else /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ - - /* Ensure API functions go in the privileged execution section. */ - #define PRIVILEGED_FUNCTION __attribute__((section("privileged_functions"))) - #define PRIVILEGED_DATA __attribute__((section("privileged_data"))) - //#define PRIVILEGED_DATA - - #endif /* MPU_WRAPPERS_INCLUDED_FROM_API_FILE */ - -#else /* portUSING_MPU_WRAPPERS */ - - #define PRIVILEGED_FUNCTION - #define PRIVILEGED_DATA - #define portUSING_MPU_WRAPPERS 0 - -#endif /* portUSING_MPU_WRAPPERS */ - - -#endif /* MPU_WRAPPERS_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/portable.h b/TP1_labyrinth_etu/FreeRTOS_include/portable.h deleted file mode 100644 index 5bb784d..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/portable.h +++ /dev/null @@ -1,396 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/*----------------------------------------------------------- - * Portable layer API. Each function must be defined for each port. - *----------------------------------------------------------*/ - -#ifndef PORTABLE_H -#define PORTABLE_H - -/* Include the macro file relevant to the port being used. */ - -#ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT - #include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef OPEN_WATCOM_FLASH_LITE_186_PORT - #include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef GCC_MEGA_AVR -#include "portmacro.h" -#endif - -#ifdef IAR_MEGA_AVR -#include "portmacro.h" -#endif - -#ifdef MPLAB_PIC24_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_DSPIC_PORT - #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" -#endif - -#ifdef MPLAB_PIC18F_PORT - #include "..\..\Source\portable\MPLAB\PIC18F\portmacro.h" -#endif - -#ifdef MPLAB_PIC32MX_PORT - #include "..\..\Source\portable\MPLAB\PIC32MX\portmacro.h" -#endif - -#ifdef _FEDPICC -#include "portmacro.h" -#endif - -#ifdef SDCC_CYGNAL -#include "portmacro.h" -#endif - -#ifdef GCC_ARM7 -#include "portmacro.h" -#endif - -#ifdef GCC_ARM7_ECLIPSE - #include "portmacro.h" -#endif - -#ifdef ROWLEY_LPC23xx -#include "portmacro.h" -#endif - -#ifdef IAR_MSP430 - #include "..\..\Source\portable\IAR\MSP430\portmacro.h" -#endif - -#ifdef GCC_MSP430 -#include "portmacro.h" -#endif - -#ifdef ROWLEY_MSP430 -#include "portmacro.h" -#endif - -#ifdef ARM7_LPC21xx_KEIL_RVDS - #include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h" -#endif - -#ifdef SAM7_GCC -#include "portmacro.h" -#endif - -#ifdef SAM7_IAR - #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h" -#endif - -#ifdef SAM9XE_IAR - #include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h" -#endif - -#ifdef LPC2000_IAR - #include "..\..\Source\portable\IAR\LPC2000\portmacro.h" -#endif - -#ifdef STR71X_IAR - #include "..\..\Source\portable\IAR\STR71x\portmacro.h" -#endif - -#ifdef STR75X_IAR - #include "..\..\Source\portable\IAR\STR75x\portmacro.h" -#endif - -#ifdef STR75X_GCC - #include "..\..\Source\portable\GCC\STR75x\portmacro.h" -#endif - -#ifdef STR91X_IAR - #include "..\..\Source\portable\IAR\STR91x\portmacro.h" -#endif - -#ifdef GCC_H8S -#include "portmacro.h" -#endif - -#ifdef GCC_AT91FR40008 -#include "portmacro.h" -#endif - -#ifdef RVDS_ARMCM3_LM3S102 -#include "portmacro.h" -#endif - -#ifdef GCC_ARMCM3_LM3S102 -#include "portmacro.h" -#endif - -#ifdef GCC_ARMCM3 -#include "portmacro.h" -#endif - -#ifdef IAR_ARM_CM3 -#include "portmacro.h" -#endif - -#ifdef IAR_ARMCM3_LM -#include "portmacro.h" -#endif - -#ifdef HCS12_CODE_WARRIOR -#include "portmacro.h" -#endif - -#ifdef MICROBLAZE_GCC -#include "portmacro.h" -#endif - -#ifdef TERN_EE - #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h" -#endif - -#ifdef GCC_HCS12 -#include "portmacro.h" -#endif - -#ifdef GCC_MCF5235 -#include "portmacro.h" -#endif - -#ifdef COLDFIRE_V2_GCC -#include "portmacro.h" -#endif - -#ifdef COLDFIRE_V2_CODEWARRIOR -#include "portmacro.h" -#endif - -#ifdef GCC_PPC405 -#include "portmacro.h" -#endif - -#ifdef GCC_PPC440 -#include "portmacro.h" -#endif - -#ifdef _16FX_SOFTUNE - #include "..\..\Source\portable\Softune\MB96340\portmacro.h" -#endif - -#ifdef BCC_INDUSTRIAL_PC_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\PC\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef BCC_FLASH_LITE_186_PORT - /* A short file name has to be used in place of the normal - FreeRTOSConfig.h when using the Borland compiler. */ - #include "frconfig.h" - #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h" - typedef void ( __interrupt __far *pxISR )(); -#endif - -#ifdef __GNUC__ - #ifdef __AVR32_AVR32A__ - #include "portmacro.h" - #endif -#endif - -#ifdef __ICCAVR32__ - #ifdef __CORE__ - #if __CORE__ == __AVR32A__ - #include "portmacro.h" - #endif - #endif -#endif - -#ifdef __91467D - #include "portmacro.h" -#endif - -#ifdef __96340 - #include "portmacro.h" -#endif - - -#ifdef __IAR_V850ES_Fx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx3_L__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Jx2__ -#include "portmacro.h" -#endif - -#ifdef __IAR_V850ES_Hx2__ -#include "portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3__ -#include "portmacro.h" -#endif - -#ifdef __IAR_78K0R_Kx3L__ -#include "portmacro.h" -#endif - -/* Catch all to ensure portmacro.h is included in the build. Newer demos -have the path as part of the project options, rather than as relative from -the project location. If portENTER_CRITICAL() has not been defined then -portmacro.h has not yet been included - as every portmacro.h provides a -portENTER_CRITICAL() definition. Check the demo application for your demo -to find the path to the correct portmacro.h file. */ -#ifndef portENTER_CRITICAL - #include "portmacro.h" -#endif - -#if portBYTE_ALIGNMENT == 8 - #define portBYTE_ALIGNMENT_MASK ( 0x0007 ) -#endif - -#if portBYTE_ALIGNMENT == 4 - #define portBYTE_ALIGNMENT_MASK ( 0x0003 ) -#endif - -#if portBYTE_ALIGNMENT == 2 - #define portBYTE_ALIGNMENT_MASK ( 0x0001 ) -#endif - -#if portBYTE_ALIGNMENT == 1 - #define portBYTE_ALIGNMENT_MASK ( 0x0000 ) -#endif - -#ifndef portBYTE_ALIGNMENT_MASK - #error "Invalid portBYTE_ALIGNMENT definition" -#endif - -#ifndef portNUM_CONFIGURABLE_REGIONS - #define portNUM_CONFIGURABLE_REGIONS 1 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include "mpu_wrappers.h" - -/* - * Setup the stack of a new task so it is ready to be placed under the - * scheduler control. The registers have to be placed on the stack in - * the order that the port expects to find them. - * - */ -#if( portUSING_MPU_WRAPPERS == 1 ) - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged ) PRIVILEGED_FUNCTION; -#else - portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ); -#endif - -/* - * Map to the memory management routines required for the port. - */ -void *pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION; -void vPortFree( void *pv ) PRIVILEGED_FUNCTION; -void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION; -size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION; - -/* - * Setup the hardware ready for the scheduler to take control. This generally - * sets up a tick interrupt and sets timers for the correct tick frequency. - */ -portBASE_TYPE xPortStartScheduler( void ) PRIVILEGED_FUNCTION; - -/* - * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so - * the hardware is left in its original condition after the scheduler stops - * executing. - */ -void vPortEndScheduler( void ) PRIVILEGED_FUNCTION; - -/* - * The structures and methods of manipulating the MPU are contained within the - * port layer. - * - * Fills the xMPUSettings structure with the memory region information - * contained in xRegions. - */ -#if( portUSING_MPU_WRAPPERS == 1 ) - struct xMEMORY_REGION; - void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* PORTABLE_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/projdefs.h b/TP1_labyrinth_etu/FreeRTOS_include/projdefs.h deleted file mode 100644 index bf118a8..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/projdefs.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef PROJDEFS_H -#define PROJDEFS_H - -/* Defines the prototype to which task functions must conform. */ -typedef void (*pdTASK_CODE)( void * ); - -#define pdTRUE ( 1 ) -#define pdFALSE ( 0 ) - -#define pdPASS ( 1 ) -#define pdFAIL ( 0 ) -#define errQUEUE_EMPTY ( 0 ) -#define errQUEUE_FULL ( 0 ) - -/* Error definitions. */ -#define errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY ( -1 ) -#define errNO_TASK_TO_RUN ( -2 ) -#define errQUEUE_BLOCKED ( -4 ) -#define errQUEUE_YIELD ( -5 ) - -#endif /* PROJDEFS_H */ - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/queue.h b/TP1_labyrinth_etu/FreeRTOS_include/queue.h deleted file mode 100644 index 47add26..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/queue.h +++ /dev/null @@ -1,1270 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef QUEUE_H -#define QUEUE_H - -#ifndef INC_FREERTOS_H - #error "#include FreeRTOS.h" must appear in source files before "#include queue.h" -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#include "mpu_wrappers.h" - -/** - * Type by which queues are referenced. For example, a call to xQueueCreate - * returns (via a pointer parameter) an xQueueHandle variable that can then - * be used as a parameter to xQueueSend(), xQueueReceive(), etc. - */ -typedef void * xQueueHandle; - - -/* For internal use only. */ -#define queueSEND_TO_BACK ( 0 ) -#define queueSEND_TO_FRONT ( 1 ) - - -/** - * queue. h - * <pre> - xQueueHandle xQueueCreate( - unsigned portBASE_TYPE uxQueueLength, - unsigned portBASE_TYPE uxItemSize - ); - * </pre> - * - * Creates a new queue instance. This allocates the storage required by the - * new queue and returns a handle for the queue. - * - * @param uxQueueLength The maximum number of items that the queue can contain. - * - * @param uxItemSize The number of bytes each item in the queue will require. - * Items are queued by copy, not by reference, so this is the number of bytes - * that will be copied for each posted item. Each item on the queue must be - * the same size. - * - * @return If the queue is successfully create then a handle to the newly - * created queue is returned. If the queue cannot be created then 0 is - * returned. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - }; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - if( xQueue1 == 0 ) - { - // Queue was not created and must not be used. - } - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue2 == 0 ) - { - // Queue was not created and must not be used. - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueCreate xQueueCreate - * \ingroup QueueManagement - */ -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToToFront( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). - * - * Post an item to the front of a queue. The item is queued by copy, not by - * reference. This function must not be called from an interrupt service - * routine. See xQueueSendFromISR () for an alternative which may be used - * in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSendToFront( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSendToFront( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToBack( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). - * - * Post an item to the back of a queue. The item is queued by copy, not by - * reference. This function must not be called from an interrupt service - * routine. See xQueueSendFromISR () for an alternative which may be used - * in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the queue - * is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSendToBack( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSendToBack( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSend( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - ); - * </pre> - * - * This is a macro that calls xQueueGenericSend(). It is included for - * backward compatibility with versions of FreeRTOS.org that did not - * include the xQueueSendToFront() and xQueueSendToBack() macros. It is - * equivalent to xQueueSendToBack(). - * - * Post an item on a queue. The item is queued by copy, not by reference. - * This function must not be called from an interrupt service routine. - * See xQueueSendFromISR () for an alternative which may be used in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10 ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0 ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -#define xQueueSend( xQueue, pvItemToQueue, xTicksToWait ) xQueueGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericSend( - xQueueHandle xQueue, - const void * pvItemToQueue, - portTickType xTicksToWait - portBASE_TYPE xCopyPosition - ); - * </pre> - * - * It is preferred that the macros xQueueSend(), xQueueSendToFront() and - * xQueueSendToBack() are used in place of calling this function directly. - * - * Post an item on a queue. The item is queued by copy, not by reference. - * This function must not be called from an interrupt service routine. - * See xQueueSendFromISR () for an alternative which may be used in an ISR. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for space to become available on the queue, should it already - * be full. The call will return immediately if this is set to 0 and the - * queue is full. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * - * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the - * item at the back of the queue, or queueSEND_TO_FRONT to place the item - * at the front of the queue (for high priority messages). - * - * @return pdTRUE if the item was successfully posted, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - unsigned long ulVar = 10UL; - - void vATask( void *pvParameters ) - { - xQueueHandle xQueue1, xQueue2; - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 unsigned long values. - xQueue1 = xQueueCreate( 10, sizeof( unsigned long ) ); - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue2 = xQueueCreate( 10, sizeof( struct AMessage * ) ); - - // ... - - if( xQueue1 != 0 ) - { - // Send an unsigned long. Wait for 10 ticks for space to become - // available if necessary. - if( xQueueGenericSend( xQueue1, ( void * ) &ulVar, ( portTickType ) 10, queueSEND_TO_BACK ) != pdPASS ) - { - // Failed to post the message, even after 10 ticks. - } - } - - if( xQueue2 != 0 ) - { - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueGenericSend( xQueue2, ( void * ) &pxMessage, ( portTickType ) 0, queueSEND_TO_BACK ); - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueSend xQueueSend - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueuePeek( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - );</pre> - * - * This is a macro that calls the xQueueGenericReceive() function. - * - * Receive an item from a queue without removing the item from the queue. - * The item is received by copy so a buffer of adequate size must be - * provided. The number of bytes copied into the buffer was defined when - * the queue was created. - * - * Successfully received items remain on the queue so will be returned again - * by the next call, or a call to xQueueReceive(). - * - * This macro must not be used in an interrupt service routine. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * xQueuePeek() will return immediately if xTicksToWait is 0 and the queue - * is empty. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to peek the data from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Peek a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueuePeek( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask, but the item still remains on the queue. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -#define xQueuePeek( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueReceive( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - );</pre> - * - * This is a macro that calls the xQueueGenericReceive() function. - * - * Receive an item from a queue. The item is received by copy so a buffer of - * adequate size must be provided. The number of bytes copied into the buffer - * was defined when the queue was created. - * - * Successfully received items are removed from the queue. - * - * This function must not be used in an interrupt service routine. See - * xQueueReceiveFromISR for an alternative that can. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. xQueueReceive() will return immediately if xTicksToWait - * is zero and the queue is empty. The time is defined in tick periods so the - * constant portTICK_RATE_MS should be used to convert to real time if this is - * required. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to receive from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Receive a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueueReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -#define xQueueReceive( xQueue, pvBuffer, xTicksToWait ) xQueueGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericReceive( - xQueueHandle xQueue, - void *pvBuffer, - portTickType xTicksToWait - portBASE_TYPE xJustPeek - );</pre> - * - * It is preferred that the macro xQueueReceive() be used rather than calling - * this function directly. - * - * Receive an item from a queue. The item is received by copy so a buffer of - * adequate size must be provided. The number of bytes copied into the buffer - * was defined when the queue was created. - * - * This function must not be used in an interrupt service routine. See - * xQueueReceiveFromISR for an alternative that can. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param xTicksToWait The maximum amount of time the task should block - * waiting for an item to receive should the queue be empty at the time - * of the call. The time is defined in tick periods so the constant - * portTICK_RATE_MS should be used to convert to real time if this is required. - * xQueueGenericReceive() will return immediately if the queue is empty and - * xTicksToWait is 0. - * - * @param xJustPeek When set to true, the item received from the queue is not - * actually removed from the queue - meaning a subsequent call to - * xQueueReceive() will return the same item. When set to false, the item - * being received from the queue is also removed from the queue. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - struct AMessage - { - char ucMessageID; - char ucData[ 20 ]; - } xMessage; - - xQueueHandle xQueue; - - // Task to create a queue and post a value. - void vATask( void *pvParameters ) - { - struct AMessage *pxMessage; - - // Create a queue capable of containing 10 pointers to AMessage structures. - // These should be passed by pointer as they contain a lot of data. - xQueue = xQueueCreate( 10, sizeof( struct AMessage * ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Send a pointer to a struct AMessage object. Don't block if the - // queue is already full. - pxMessage = & xMessage; - xQueueSend( xQueue, ( void * ) &pxMessage, ( portTickType ) 0 ); - - // ... Rest of task code. - } - - // Task to receive from the queue. - void vADifferentTask( void *pvParameters ) - { - struct AMessage *pxRxedMessage; - - if( xQueue != 0 ) - { - // Receive a message on the created queue. Block for 10 ticks if a - // message is not immediately available. - if( xQueueGenericReceive( xQueue, &( pxRxedMessage ), ( portTickType ) 10 ) ) - { - // pcRxedMessage now points to the struct AMessage variable posted - // by vATask. - } - } - - // ... Rest of task code. - } - </pre> - * \defgroup xQueueReceive xQueueReceive - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle xQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeek ); - -/** - * queue. h - * <pre>unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue );</pre> - * - * Return the number of messages stored in a queue. - * - * @param xQueue A handle to the queue being queried. - * - * @return The number of messages available in the queue. - * - * \page uxQueueMessagesWaiting uxQueueMessagesWaiting - * \ingroup QueueManagement - */ -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle xQueue ); - -/** - * queue. h - * <pre>void vQueueDelete( xQueueHandle xQueue );</pre> - * - * Delete a queue - freeing all the memory allocated for storing of items - * placed on the queue. - * - * @param xQueue A handle to the queue to be deleted. - * - * \page vQueueDelete vQueueDelete - * \ingroup QueueManagement - */ -void vQueueDelete( xQueueHandle pxQueue ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToFrontFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). - * - * Post an item to the front of a queue. It is safe to use this macro from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendToFrontFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendToFromFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPrioritTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendToFrontFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - taskYIELD (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendToFrontFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_FRONT ) - - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendToBackFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). - * - * Post an item to the back of a queue. It is safe to use this macro from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendToBackFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendToBackFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendToBackFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - taskYIELD (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendToBackFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueSendFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken - ); - </pre> - * - * This is a macro that calls xQueueGenericSendFromISR(). It is included - * for backward compatibility with versions of FreeRTOS.org that did not - * include the xQueueSendToBackFromISR() and xQueueSendToFrontFromISR() - * macros. - * - * Post an item to the back of a queue. It is safe to use this function from - * within an interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueSendFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueSendFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWoken; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWoken = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post the byte. - xQueueSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWoken ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. - if( xHigherPriorityTaskWoken ) - { - // Actual macro used here is port specific. - taskYIELD_FROM_ISR (); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -#define xQueueSendFromISR( pxQueue, pvItemToQueue, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( pxQueue ), ( pvItemToQueue ), ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueGenericSendFromISR( - xQueueHandle pxQueue, - const void *pvItemToQueue, - portBASE_TYPE *pxHigherPriorityTaskWoken, - portBASE_TYPE xCopyPosition - ); - </pre> - * - * It is preferred that the macros xQueueSendFromISR(), - * xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place - * of calling this function directly. - * - * Post an item on a queue. It is safe to use this function from within an - * interrupt service routine. - * - * Items are queued by copy not reference so it is preferable to only - * queue small items, especially when called from an ISR. In most cases - * it would be preferable to store a pointer to the item being queued. - * - * @param xQueue The handle to the queue on which the item is to be posted. - * - * @param pvItemToQueue A pointer to the item that is to be placed on the - * queue. The size of the items the queue will hold was defined when the - * queue was created, so this many bytes will be copied from pvItemToQueue - * into the queue storage area. - * - * @param pxHigherPriorityTaskWoken xQueueGenericSendFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if sending to the queue caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xQueueGenericSendFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @param xCopyPosition Can take the value queueSEND_TO_BACK to place the - * item at the back of the queue, or queueSEND_TO_FRONT to place the item - * at the front of the queue (for high priority messages). - * - * @return pdTRUE if the data was successfully sent to the queue, otherwise - * errQUEUE_FULL. - * - * Example usage for buffered IO (where the ISR can obtain more than one value - * per call): - <pre> - void vBufferISR( void ) - { - char cIn; - portBASE_TYPE xHigherPriorityTaskWokenByPost; - - // We have not woken a task at the start of the ISR. - xHigherPriorityTaskWokenByPost = pdFALSE; - - // Loop until the buffer is empty. - do - { - // Obtain a byte from the buffer. - cIn = portINPUT_BYTE( RX_REGISTER_ADDRESS ); - - // Post each byte. - xQueueGenericSendFromISR( xRxQueue, &cIn, &xHigherPriorityTaskWokenByPost, queueSEND_TO_BACK ); - - } while( portINPUT_BYTE( BUFFER_COUNT ) ); - - // Now the buffer is empty we can switch context if necessary. Note that the - // name of the yield function required is port specific. - if( xHigherPriorityTaskWokenByPost ) - { - taskYIELD_YIELD_FROM_ISR(); - } - } - </pre> - * - * \defgroup xQueueSendFromISR xQueueSendFromISR - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ); - -/** - * queue. h - * <pre> - portBASE_TYPE xQueueReceiveFromISR( - xQueueHandle pxQueue, - void *pvBuffer, - portBASE_TYPE *pxTaskWoken - ); - * </pre> - * - * Receive an item from a queue. It is safe to use this function from within an - * interrupt service routine. - * - * @param pxQueue The handle to the queue from which the item is to be - * received. - * - * @param pvBuffer Pointer to the buffer into which the received item will - * be copied. - * - * @param pxTaskWoken A task may be blocked waiting for space to become - * available on the queue. If xQueueReceiveFromISR causes such a task to - * unblock *pxTaskWoken will get set to pdTRUE, otherwise *pxTaskWoken will - * remain unchanged. - * - * @return pdTRUE if an item was successfully received from the queue, - * otherwise pdFALSE. - * - * Example usage: - <pre> - - xQueueHandle xQueue; - - // Function to create a queue and post some values. - void vAFunction( void *pvParameters ) - { - char cValueToPost; - const portTickType xBlockTime = ( portTickType )0xff; - - // Create a queue capable of containing 10 characters. - xQueue = xQueueCreate( 10, sizeof( char ) ); - if( xQueue == 0 ) - { - // Failed to create the queue. - } - - // ... - - // Post some characters that will be used within an ISR. If the queue - // is full then this task will block for xBlockTime ticks. - cValueToPost = 'a'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - cValueToPost = 'b'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - - // ... keep posting characters ... this task may block when the queue - // becomes full. - - cValueToPost = 'c'; - xQueueSend( xQueue, ( void * ) &cValueToPost, xBlockTime ); - } - - // ISR that outputs all the characters received on the queue. - void vISR_Routine( void ) - { - portBASE_TYPE xTaskWokenByReceive = pdFALSE; - char cRxedChar; - - while( xQueueReceiveFromISR( xQueue, ( void * ) &cRxedChar, &xTaskWokenByReceive) ) - { - // A character was received. Output the character now. - vOutputCharacter( cRxedChar ); - - // If removing the character from the queue woke the task that was - // posting onto the queue cTaskWokenByReceive will have been set to - // pdTRUE. No matter how many times this loop iterates only one - // task will be woken. - } - - if( cTaskWokenByPost != ( char ) pdFALSE; - { - taskYIELD (); - } - } - </pre> - * \defgroup xQueueReceiveFromISR xQueueReceiveFromISR - * \ingroup QueueManagement - */ -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ); - -/* - * Utilities to query queue that are safe to use from an ISR. These utilities - * should be used only from witin an ISR, or within a critical section. - */ -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ); -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ); -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ); - - -/* - * xQueueAltGenericSend() is an alternative version of xQueueGenericSend(). - * Likewise xQueueAltGenericReceive() is an alternative version of - * xQueueGenericReceive(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ); -signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ); -#define xQueueAltSendToFront( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_FRONT ) -#define xQueueAltSendToBack( xQueue, pvItemToQueue, xTicksToWait ) xQueueAltGenericSend( ( xQueue ), ( pvItemToQueue ), ( xTicksToWait ), queueSEND_TO_BACK ) -#define xQueueAltReceive( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdFALSE ) -#define xQueueAltPeek( xQueue, pvBuffer, xTicksToWait ) xQueueAltGenericReceive( ( xQueue ), ( pvBuffer ), ( xTicksToWait ), pdTRUE ) - -/* - * The functions defined above are for passing data to and from tasks. The - * functions below are the equivalents for passing data to and from - * co-routines. - * - * These functions are called from the co-routine macro implementation and - * should not be called directly from application code. Instead use the macro - * wrappers defined within croutine.h. - */ -signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ); -signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken ); -signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ); -signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ); - -/* - * For internal use only. Use xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting() instead of calling these functions directly. - */ -xQueueHandle xQueueCreateMutex( void ); -xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ); - -/* - * For internal use only. Use xSemaphoreTakeMutexRecursive() or - * xSemaphoreGiveMutexRecursive() instead of calling these functions directly. - */ -portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime ); -portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ); - -/* - * The registry is provided as a means for kernel aware debuggers to - * locate queues, semaphores and mutexes. Call vQueueAddToRegistry() add - * a queue, semaphore or mutex handle to the registry if you want the handle - * to be available to a kernel aware debugger. If you are not using a kernel - * aware debugger then this function can be ignored. - * - * configQUEUE_REGISTRY_SIZE defines the maximum number of handles the - * registry can hold. configQUEUE_REGISTRY_SIZE must be greater than 0 - * within FreeRTOSConfig.h for the registry to be available. Its value - * does not effect the number of queues, semaphores and mutexes that can be - * created - just the number that the registry can hold. - * - * @param xQueue The handle of the queue being added to the registry. This - * is the handle returned by a call to xQueueCreate(). Semaphore and mutex - * handles can also be passed in here. - * - * @param pcName The name to be associated with the handle. This is the - * name that the kernel aware debugger will display. - */ -#if configQUEUE_REGISTRY_SIZE > 0U - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcName ); -#endif - -/* Not a public API function, hence the 'Restricted' in the name. */ -void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ); - - -#ifdef __cplusplus -} -#endif - -#endif /* QUEUE_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/semphr.h b/TP1_labyrinth_etu/FreeRTOS_include/semphr.h deleted file mode 100644 index 0130f1d..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/semphr.h +++ /dev/null @@ -1,717 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef SEMAPHORE_H -#define SEMAPHORE_H - -#ifndef INC_FREERTOS_H - #error "#include FreeRTOS.h" must appear in source files before "#include semphr.h" -#endif - -#include "queue.h" - -typedef xQueueHandle xSemaphoreHandle; - -#define semBINARY_SEMAPHORE_QUEUE_LENGTH ( ( unsigned char ) 1U ) -#define semSEMAPHORE_QUEUE_ITEM_LENGTH ( ( unsigned char ) 0U ) -#define semGIVE_BLOCK_TIME ( ( portTickType ) 0U ) - - -/** - * semphr. h - * <pre>vSemaphoreCreateBinary( xSemaphoreHandle xSemaphore )</pre> - * - * <i>Macro</i> that implements a semaphore by using the existing queue mechanism. - * The queue length is 1 as this is a binary semaphore. The data size is 0 - * as we don't want to actually store any data - we just want to know if the - * queue is empty or full. - * - * This type of semaphore can be used for pure synchronisation between tasks or - * between an interrupt and a task. The semaphore need not be given back once - * obtained, so one task/interrupt can continuously 'give' the semaphore while - * another continuously 'takes' the semaphore. For this reason this type of - * semaphore does not use a priority inheritance mechanism. For an alternative - * that does use priority inheritance see xSemaphoreCreateMutex(). - * - * @param xSemaphore Handle to the created semaphore. Should be of type xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to vSemaphoreCreateBinary (). - // This is a macro so pass the variable in directly. - vSemaphoreCreateBinary( xSemaphore ); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateBinary vSemaphoreCreateBinary - * \ingroup Semaphores - */ -#define vSemaphoreCreateBinary( xSemaphore ) { \ - ( xSemaphore ) = xQueueCreate( ( unsigned portBASE_TYPE ) 1, semSEMAPHORE_QUEUE_ITEM_LENGTH ); \ - if( ( xSemaphore ) != NULL ) \ - { \ - xSemaphoreGive( ( xSemaphore ) ); \ - } \ - } - -/** - * semphr. h - * <pre>xSemaphoreTake( - * xSemaphoreHandle xSemaphore, - * portTickType xBlockTime - * )</pre> - * - * <i>Macro</i> to obtain a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting(). - * - * @param xSemaphore A handle to the semaphore being taken - obtained when - * the semaphore was created. - * - * @param xBlockTime The time in ticks to wait for the semaphore to become - * available. The macro portTICK_RATE_MS can be used to convert this to a - * real time. A block time of zero can be used to poll the semaphore. A block - * time of portMAX_DELAY can be used to block indefinitely (provided - * INCLUDE_vTaskSuspend is set to 1 in FreeRTOSConfig.h). - * - * @return pdTRUE if the semaphore was obtained. pdFALSE - * if xBlockTime expired without the semaphore becoming available. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore = NULL; - - // A task that creates a semaphore. - void vATask( void * pvParameters ) - { - // Create the semaphore to guard a shared resource. - vSemaphoreCreateBinary( xSemaphore ); - } - - // A task that uses the semaphore. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xSemaphore != NULL ) - { - // See if we can obtain the semaphore. If the semaphore is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTake( xSemaphore, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the semaphore and can now access the - // shared resource. - - // ... - - // We have finished accessing the shared resource. Release the - // semaphore. - xSemaphoreGive( xSemaphore ); - } - else - { - // We could not obtain the semaphore and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreTake xSemaphoreTake - * \ingroup Semaphores - */ -#define xSemaphoreTake( xSemaphore, xBlockTime ) xQueueGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE ) - -/** - * semphr. h - * xSemaphoreTakeRecursive( - * xSemaphoreHandle xMutex, - * portTickType xBlockTime - * ) - * - * <i>Macro</i> to recursively obtain, or 'take', a mutex type semaphore. - * The mutex must have previously been created using a call to - * xSemaphoreCreateRecursiveMutex(); - * - * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this - * macro to be available. - * - * This macro must not be used on mutexes created using xSemaphoreCreateMutex(). - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * @param xMutex A handle to the mutex being obtained. This is the - * handle returned by xSemaphoreCreateRecursiveMutex(); - * - * @param xBlockTime The time in ticks to wait for the semaphore to become - * available. The macro portTICK_RATE_MS can be used to convert this to a - * real time. A block time of zero can be used to poll the semaphore. If - * the task already owns the semaphore then xSemaphoreTakeRecursive() will - * return immediately no matter what the value of xBlockTime. - * - * @return pdTRUE if the semaphore was obtained. pdFALSE if xBlockTime - * expired without the semaphore becoming available. - * - * Example usage: - <pre> - xSemaphoreHandle xMutex = NULL; - - // A task that creates a mutex. - void vATask( void * pvParameters ) - { - // Create the mutex to guard a shared resource. - xMutex = xSemaphoreCreateRecursiveMutex(); - } - - // A task that uses the mutex. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xMutex != NULL ) - { - // See if we can obtain the mutex. If the mutex is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTakeRecursive( xSemaphore, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the mutex and can now access the - // shared resource. - - // ... - // For some reason due to the nature of the code further calls to - // xSemaphoreTakeRecursive() are made on the same mutex. In real - // code these would not be just sequential calls as this would make - // no sense. Instead the calls are likely to be buried inside - // a more complex call structure. - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - - // The mutex has now been 'taken' three times, so will not be - // available to another task until it has also been given back - // three times. Again it is unlikely that real code would have - // these calls sequentially, but instead buried in a more complex - // call structure. This is just for illustrative purposes. - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - - // Now the mutex can be taken by other tasks. - } - else - { - // We could not obtain the mutex and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreTakeRecursive xSemaphoreTakeRecursive - * \ingroup Semaphores - */ -#define xSemaphoreTakeRecursive( xMutex, xBlockTime ) xQueueTakeMutexRecursive( ( xMutex ), ( xBlockTime ) ) - - -/* - * xSemaphoreAltTake() is an alternative version of xSemaphoreTake(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -#define xSemaphoreAltTake( xSemaphore, xBlockTime ) xQueueAltGenericReceive( ( xQueueHandle ) ( xSemaphore ), NULL, ( xBlockTime ), pdFALSE ) - -/** - * semphr. h - * <pre>xSemaphoreGive( xSemaphoreHandle xSemaphore )</pre> - * - * <i>Macro</i> to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary(), xSemaphoreCreateMutex() or - * xSemaphoreCreateCounting(). and obtained using sSemaphoreTake(). - * - * This macro must not be used from an ISR. See xSemaphoreGiveFromISR () for - * an alternative which can be used from an ISR. - * - * This macro must also not be used on semaphores created using - * xSemaphoreCreateRecursiveMutex(). - * - * @param xSemaphore A handle to the semaphore being released. This is the - * handle returned when the semaphore was created. - * - * @return pdTRUE if the semaphore was released. pdFALSE if an error occurred. - * Semaphores are implemented using queues. An error can occur if there is - * no space on the queue to post a message - indicating that the - * semaphore was not first obtained correctly. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore = NULL; - - void vATask( void * pvParameters ) - { - // Create the semaphore to guard a shared resource. - vSemaphoreCreateBinary( xSemaphore ); - - if( xSemaphore != NULL ) - { - if( xSemaphoreGive( xSemaphore ) != pdTRUE ) - { - // We would expect this call to fail because we cannot give - // a semaphore without first "taking" it! - } - - // Obtain the semaphore - don't block if the semaphore is not - // immediately available. - if( xSemaphoreTake( xSemaphore, ( portTickType ) 0 ) ) - { - // We now have the semaphore and can access the shared resource. - - // ... - - // We have finished accessing the shared resource so can free the - // semaphore. - if( xSemaphoreGive( xSemaphore ) != pdTRUE ) - { - // We would not expect this call to fail because we must have - // obtained the semaphore to get here. - } - } - } - } - </pre> - * \defgroup xSemaphoreGive xSemaphoreGive - * \ingroup Semaphores - */ -#define xSemaphoreGive( xSemaphore ) xQueueGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre>xSemaphoreGiveRecursive( xSemaphoreHandle xMutex )</pre> - * - * <i>Macro</i> to recursively release, or 'give', a mutex type semaphore. - * The mutex must have previously been created using a call to - * xSemaphoreCreateRecursiveMutex(); - * - * configUSE_RECURSIVE_MUTEXES must be set to 1 in FreeRTOSConfig.h for this - * macro to be available. - * - * This macro must not be used on mutexes created using xSemaphoreCreateMutex(). - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * @param xMutex A handle to the mutex being released, or 'given'. This is the - * handle returned by xSemaphoreCreateMutex(); - * - * @return pdTRUE if the semaphore was given. - * - * Example usage: - <pre> - xSemaphoreHandle xMutex = NULL; - - // A task that creates a mutex. - void vATask( void * pvParameters ) - { - // Create the mutex to guard a shared resource. - xMutex = xSemaphoreCreateRecursiveMutex(); - } - - // A task that uses the mutex. - void vAnotherTask( void * pvParameters ) - { - // ... Do other things. - - if( xMutex != NULL ) - { - // See if we can obtain the mutex. If the mutex is not available - // wait 10 ticks to see if it becomes free. - if( xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ) == pdTRUE ) - { - // We were able to obtain the mutex and can now access the - // shared resource. - - // ... - // For some reason due to the nature of the code further calls to - // xSemaphoreTakeRecursive() are made on the same mutex. In real - // code these would not be just sequential calls as this would make - // no sense. Instead the calls are likely to be buried inside - // a more complex call structure. - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - xSemaphoreTakeRecursive( xMutex, ( portTickType ) 10 ); - - // The mutex has now been 'taken' three times, so will not be - // available to another task until it has also been given back - // three times. Again it is unlikely that real code would have - // these calls sequentially, it would be more likely that the calls - // to xSemaphoreGiveRecursive() would be called as a call stack - // unwound. This is just for demonstrative purposes. - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - xSemaphoreGiveRecursive( xMutex ); - - // Now the mutex can be taken by other tasks. - } - else - { - // We could not obtain the mutex and can therefore not access - // the shared resource safely. - } - } - } - </pre> - * \defgroup xSemaphoreGiveRecursive xSemaphoreGiveRecursive - * \ingroup Semaphores - */ -#define xSemaphoreGiveRecursive( xMutex ) xQueueGiveMutexRecursive( ( xMutex ) ) - -/* - * xSemaphoreAltGive() is an alternative version of xSemaphoreGive(). - * - * The source code that implements the alternative (Alt) API is much - * simpler because it executes everything from within a critical section. - * This is the approach taken by many other RTOSes, but FreeRTOS.org has the - * preferred fully featured API too. The fully featured API has more - * complex code that takes longer to execute, but makes much less use of - * critical sections. Therefore the alternative API sacrifices interrupt - * responsiveness to gain execution speed, whereas the fully featured API - * sacrifices execution speed to ensure better interrupt responsiveness. - */ -#define xSemaphoreAltGive( xSemaphore ) xQueueAltGenericSend( ( xQueueHandle ) ( xSemaphore ), NULL, semGIVE_BLOCK_TIME, queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre> - xSemaphoreGiveFromISR( - xSemaphoreHandle xSemaphore, - signed portBASE_TYPE *pxHigherPriorityTaskWoken - )</pre> - * - * <i>Macro</i> to release a semaphore. The semaphore must have previously been - * created with a call to vSemaphoreCreateBinary() or xSemaphoreCreateCounting(). - * - * Mutex type semaphores (those created using a call to xSemaphoreCreateMutex()) - * must not be used with this macro. - * - * This macro can be used from an ISR. - * - * @param xSemaphore A handle to the semaphore being released. This is the - * handle returned when the semaphore was created. - * - * @param pxHigherPriorityTaskWoken xSemaphoreGiveFromISR() will set - * *pxHigherPriorityTaskWoken to pdTRUE if giving the semaphore caused a task - * to unblock, and the unblocked task has a priority higher than the currently - * running task. If xSemaphoreGiveFromISR() sets this value to pdTRUE then - * a context switch should be requested before the interrupt is exited. - * - * @return pdTRUE if the semaphore was successfully given, otherwise errQUEUE_FULL. - * - * Example usage: - <pre> - \#define LONG_TIME 0xffff - \#define TICKS_TO_WAIT 10 - xSemaphoreHandle xSemaphore = NULL; - - // Repetitive task. - void vATask( void * pvParameters ) - { - for( ;; ) - { - // We want this task to run every 10 ticks of a timer. The semaphore - // was created before this task was started. - - // Block waiting for the semaphore to become available. - if( xSemaphoreTake( xSemaphore, LONG_TIME ) == pdTRUE ) - { - // It is time to execute. - - // ... - - // We have finished our task. Return to the top of the loop where - // we will block on the semaphore until it is time to execute - // again. Note when using the semaphore for synchronisation with an - // ISR in this manner there is no need to 'give' the semaphore back. - } - } - } - - // Timer ISR - void vTimerISR( void * pvParameters ) - { - static unsigned char ucLocalTickCount = 0; - static signed portBASE_TYPE xHigherPriorityTaskWoken; - - // A timer tick has occurred. - - // ... Do other time functions. - - // Is it time for vATask () to run? - xHigherPriorityTaskWoken = pdFALSE; - ucLocalTickCount++; - if( ucLocalTickCount >= TICKS_TO_WAIT ) - { - // Unblock the task by releasing the semaphore. - xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken ); - - // Reset the count so we release the semaphore again in 10 ticks time. - ucLocalTickCount = 0; - } - - if( xHigherPriorityTaskWoken != pdFALSE ) - { - // We can force a context switch here. Context switching from an - // ISR uses port specific syntax. Check the demo task for your port - // to find the syntax required. - } - } - </pre> - * \defgroup xSemaphoreGiveFromISR xSemaphoreGiveFromISR - * \ingroup Semaphores - */ -#define xSemaphoreGiveFromISR( xSemaphore, pxHigherPriorityTaskWoken ) xQueueGenericSendFromISR( ( xQueueHandle ) ( xSemaphore ), NULL, ( pxHigherPriorityTaskWoken ), queueSEND_TO_BACK ) - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateMutex( void )</pre> - * - * <i>Macro</i> that implements a mutex semaphore by using the existing queue - * mechanism. - * - * Mutexes created using this macro can be accessed using the xSemaphoreTake() - * and xSemaphoreGive() macros. The xSemaphoreTakeRecursive() and - * xSemaphoreGiveRecursive() macros should not be used. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. - * - * Mutex type semaphores cannot be used from within interrupt service routines. - * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt - * service routines. - * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to xSemaphoreCreateMutex(). - // This is a macro so pass the variable in directly. - xSemaphore = xSemaphoreCreateMutex(); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex - * \ingroup Semaphores - */ -#define xSemaphoreCreateMutex() xQueueCreateMutex() - - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateRecursiveMutex( void )</pre> - * - * <i>Macro</i> that implements a recursive mutex by using the existing queue - * mechanism. - * - * Mutexes created using this macro can be accessed using the - * xSemaphoreTakeRecursive() and xSemaphoreGiveRecursive() macros. The - * xSemaphoreTake() and xSemaphoreGive() macros should not be used. - * - * A mutex used recursively can be 'taken' repeatedly by the owner. The mutex - * doesn't become available again until the owner has called - * xSemaphoreGiveRecursive() for each successful 'take' request. For example, - * if a task successfully 'takes' the same mutex 5 times then the mutex will - * not be available to any other task until it has also 'given' the mutex back - * exactly five times. - * - * This type of semaphore uses a priority inheritance mechanism so a task - * 'taking' a semaphore MUST ALWAYS 'give' the semaphore back once the - * semaphore it is no longer required. - * - * Mutex type semaphores cannot be used from within interrupt service routines. - * - * See vSemaphoreCreateBinary() for an alternative implementation that can be - * used for pure synchronisation (where one task or interrupt always 'gives' the - * semaphore and another always 'takes' the semaphore) and from within interrupt - * service routines. - * - * @return xSemaphore Handle to the created mutex semaphore. Should be of type - * xSemaphoreHandle. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - // Semaphore cannot be used before a call to xSemaphoreCreateMutex(). - // This is a macro so pass the variable in directly. - xSemaphore = xSemaphoreCreateRecursiveMutex(); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup vSemaphoreCreateMutex vSemaphoreCreateMutex - * \ingroup Semaphores - */ -#define xSemaphoreCreateRecursiveMutex() xQueueCreateMutex() - -/** - * semphr. h - * <pre>xSemaphoreHandle xSemaphoreCreateCounting( unsigned portBASE_TYPE uxMaxCount, unsigned portBASE_TYPE uxInitialCount )</pre> - * - * <i>Macro</i> that creates a counting semaphore by using the existing - * queue mechanism. - * - * Counting semaphores are typically used for two things: - * - * 1) Counting events. - * - * In this usage scenario an event handler will 'give' a semaphore each time - * an event occurs (incrementing the semaphore count value), and a handler - * task will 'take' a semaphore each time it processes an event - * (decrementing the semaphore count value). The count value is therefore - * the difference between the number of events that have occurred and the - * number that have been processed. In this case it is desirable for the - * initial count value to be zero. - * - * 2) Resource management. - * - * In this usage scenario the count value indicates the number of resources - * available. To obtain control of a resource a task must first obtain a - * semaphore - decrementing the semaphore count value. When the count value - * reaches zero there are no free resources. When a task finishes with the - * resource it 'gives' the semaphore back - incrementing the semaphore count - * value. In this case it is desirable for the initial count value to be - * equal to the maximum count value, indicating that all resources are free. - * - * @param uxMaxCount The maximum count value that can be reached. When the - * semaphore reaches this value it can no longer be 'given'. - * - * @param uxInitialCount The count value assigned to the semaphore when it is - * created. - * - * @return Handle to the created semaphore. Null if the semaphore could not be - * created. - * - * Example usage: - <pre> - xSemaphoreHandle xSemaphore; - - void vATask( void * pvParameters ) - { - xSemaphoreHandle xSemaphore = NULL; - - // Semaphore cannot be used before a call to xSemaphoreCreateCounting(). - // The max value to which the semaphore can count should be 10, and the - // initial value assigned to the count should be 0. - xSemaphore = xSemaphoreCreateCounting( 10, 0 ); - - if( xSemaphore != NULL ) - { - // The semaphore was created successfully. - // The semaphore can now be used. - } - } - </pre> - * \defgroup xSemaphoreCreateCounting xSemaphoreCreateCounting - * \ingroup Semaphores - */ -#define xSemaphoreCreateCounting( uxMaxCount, uxInitialCount ) xQueueCreateCountingSemaphore( ( uxMaxCount ), ( uxInitialCount ) ) - - -#endif /* SEMAPHORE_H */ - - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/task.h b/TP1_labyrinth_etu/FreeRTOS_include/task.h deleted file mode 100644 index 3c44904..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/task.h +++ /dev/null @@ -1,1307 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef TASK_H -#define TASK_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include task.h" -#endif - -#include "portable.h" -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------- - * MACROS AND DEFINITIONS - *----------------------------------------------------------*/ - -#define tskKERNEL_VERSION_NUMBER "V7.0.1" - -/** - * task. h - * - * Type by which tasks are referenced. For example, a call to xTaskCreate - * returns (via a pointer parameter) an xTaskHandle variable that can then - * be used as a parameter to vTaskDelete to delete the task. - * - * \page xTaskHandle xTaskHandle - * \ingroup Tasks - */ -typedef void * xTaskHandle; - -/* - * Used internally only. - */ -typedef struct xTIME_OUT -{ - portBASE_TYPE xOverflowCount; - portTickType xTimeOnEntering; -} xTimeOutType; - -/* - * Defines the memory ranges allocated to the task when an MPU is used. - */ -typedef struct xMEMORY_REGION -{ - void *pvBaseAddress; - unsigned long ulLengthInBytes; - unsigned long ulParameters; -} xMemoryRegion; - -/* - * Parameters required to create an MPU protected task. - */ -typedef struct xTASK_PARAMTERS -{ - pdTASK_CODE pvTaskCode; - const signed char * const pcName; - unsigned short usStackDepth; - void *pvParameters; - unsigned portBASE_TYPE uxPriority; - portSTACK_TYPE *puxStackBuffer; - xMemoryRegion xRegions[ portNUM_CONFIGURABLE_REGIONS ]; -} xTaskParameters; - -/* - * Defines the priority used by the idle task. This must not be modified. - * - * \ingroup TaskUtils - */ -#define tskIDLE_PRIORITY ( ( unsigned portBASE_TYPE ) 0U ) - -/** - * task. h - * - * Macro for forcing a context switch. - * - * \page taskYIELD taskYIELD - * \ingroup SchedulerControl - */ -#define taskYIELD() portYIELD() - -/** - * task. h - * - * Macro to mark the start of a critical code region. Preemptive context - * switches cannot occur when in a critical region. - * - * NOTE: This may alter the stack (depending on the portable implementation) - * so must be used with care! - * - * \page taskENTER_CRITICAL taskENTER_CRITICAL - * \ingroup SchedulerControl - */ -#define taskENTER_CRITICAL() portENTER_CRITICAL() - -/** - * task. h - * - * Macro to mark the end of a critical code region. Preemptive context - * switches cannot occur when in a critical region. - * - * NOTE: This may alter the stack (depending on the portable implementation) - * so must be used with care! - * - * \page taskEXIT_CRITICAL taskEXIT_CRITICAL - * \ingroup SchedulerControl - */ -#define taskEXIT_CRITICAL() portEXIT_CRITICAL() - -/** - * task. h - * - * Macro to disable all maskable interrupts. - * - * \page taskDISABLE_INTERRUPTS taskDISABLE_INTERRUPTS - * \ingroup SchedulerControl - */ -#define taskDISABLE_INTERRUPTS() portDISABLE_INTERRUPTS() - -/** - * task. h - * - * Macro to enable microcontroller interrupts. - * - * \page taskENABLE_INTERRUPTS taskENABLE_INTERRUPTS - * \ingroup SchedulerControl - */ -#define taskENABLE_INTERRUPTS() portENABLE_INTERRUPTS() - -/* Definitions returned by xTaskGetSchedulerState(). */ -#define taskSCHEDULER_NOT_STARTED 0 -#define taskSCHEDULER_RUNNING 1 -#define taskSCHEDULER_SUSPENDED 2 - -/*----------------------------------------------------------- - * TASK CREATION API - *----------------------------------------------------------*/ - -/** - * task. h - *<pre> - portBASE_TYPE xTaskCreate( - pdTASK_CODE pvTaskCode, - const char * const pcName, - unsigned short usStackDepth, - void *pvParameters, - unsigned portBASE_TYPE uxPriority, - xTaskHandle *pvCreatedTask - );</pre> - * - * Create a new task and add it to the list of tasks that are ready to run. - * - * xTaskCreate() can only be used to create a task that has unrestricted - * access to the entire microcontroller memory map. Systems that include MPU - * support can alternatively create an MPU constrained task using - * xTaskCreateRestricted(). - * - * @param pvTaskCode Pointer to the task entry function. Tasks - * must be implemented to never return (i.e. continuous loop). - * - * @param pcName A descriptive name for the task. This is mainly used to - * facilitate debugging. Max length defined by tskMAX_TASK_NAME_LEN - default - * is 16. - * - * @param usStackDepth The size of the task stack specified as the number of - * variables the stack can hold - not the number of bytes. For example, if - * the stack is 16 bits wide and usStackDepth is defined as 100, 200 bytes - * will be allocated for stack storage. - * - * @param pvParameters Pointer that will be used as the parameter for the task - * being created. - * - * @param uxPriority The priority at which the task should run. Systems that - * include MPU support can optionally create tasks in a privileged (system) - * mode by setting bit portPRIVILEGE_BIT of the priority parameter. For - * example, to create a privileged task at priority 2 the uxPriority parameter - * should be set to ( 2 | portPRIVILEGE_BIT ). - * - * @param pvCreatedTask Used to pass back a handle by which the created task - * can be referenced. - * - * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h - * - * Example usage: - <pre> - // Task to be created. - void vTaskCode( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - } - } - - // Function that creates a task. - void vOtherFunction( void ) - { - static unsigned char ucParameterToPass; - xTaskHandle xHandle; - - // Create the task, storing the handle. Note that the passed parameter ucParameterToPass - // must exist for the lifetime of the task, so in this case is declared static. If it was just an - // an automatic stack variable it might no longer exist, or at least have been corrupted, by the time - // the new task attempts to access it. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, &ucParameterToPass, tskIDLE_PRIORITY, &xHandle ); - - // Use the handle to delete the task. - vTaskDelete( xHandle ); - } - </pre> - * \defgroup xTaskCreate xTaskCreate - * \ingroup Tasks - */ -#define xTaskCreate( pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask ) xTaskGenericCreate( ( pvTaskCode ), ( pcName ), ( usStackDepth ), ( pvParameters ), ( uxPriority ), ( pxCreatedTask ), ( NULL ), ( NULL ) ) - -/** - * task. h - *<pre> - portBASE_TYPE xTaskCreateRestricted( xTaskParameters *pxTaskDefinition, xTaskHandle *pxCreatedTask );</pre> - * - * xTaskCreateRestricted() should only be used in systems that include an MPU - * implementation. - * - * Create a new task and add it to the list of tasks that are ready to run. - * The function parameters define the memory regions and associated access - * permissions allocated to the task. - * - * @param pxTaskDefinition Pointer to a structure that contains a member - * for each of the normal xTaskCreate() parameters (see the xTaskCreate() API - * documentation) plus an optional stack buffer and the memory region - * definitions. - * - * @param pxCreatedTask Used to pass back a handle by which the created task - * can be referenced. - * - * @return pdPASS if the task was successfully created and added to a ready - * list, otherwise an error code defined in the file errors. h - * - * Example usage: - <pre> -// Create an xTaskParameters structure that defines the task to be created. -static const xTaskParameters xCheckTaskParameters = -{ - vATask, // pvTaskCode - the function that implements the task. - "ATask", // pcName - just a text name for the task to assist debugging. - 100, // usStackDepth - the stack size DEFINED IN WORDS. - NULL, // pvParameters - passed into the task function as the function parameters. - ( 1UL | portPRIVILEGE_BIT ),// uxPriority - task priority, set the portPRIVILEGE_BIT if the task should run in a privileged state. - cStackBuffer,// puxStackBuffer - the buffer to be used as the task stack. - - // xRegions - Allocate up to three separate memory regions for access by - // the task, with appropriate access permissions. Different processors have - // different memory alignment requirements - refer to the FreeRTOS documentation - // for full information. - { - // Base address Length Parameters - { cReadWriteArray, 32, portMPU_REGION_READ_WRITE }, - { cReadOnlyArray, 32, portMPU_REGION_READ_ONLY }, - { cPrivilegedOnlyAccessArray, 128, portMPU_REGION_PRIVILEGED_READ_WRITE } - } -}; - -int main( void ) -{ -xTaskHandle xHandle; - - // Create a task from the const structure defined above. The task handle - // is requested (the second parameter is not NULL) but in this case just for - // demonstration purposes as its not actually used. - xTaskCreateRestricted( &xRegTest1Parameters, &xHandle ); - - // Start the scheduler. - vTaskStartScheduler(); - - // Will only get here if there was insufficient memory to create the idle - // task. - for( ;; ); -} - </pre> - * \defgroup xTaskCreateRestricted xTaskCreateRestricted - * \ingroup Tasks - */ -#define xTaskCreateRestricted( x, pxCreatedTask ) xTaskGenericCreate( ((x)->pvTaskCode), ((x)->pcName), ((x)->usStackDepth), ((x)->pvParameters), ((x)->uxPriority), (pxCreatedTask), ((x)->puxStackBuffer), ((x)->xRegions) ) - -/** - * task. h - *<pre> - void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions );</pre> - * - * Memory regions are assigned to a restricted task when the task is created by - * a call to xTaskCreateRestricted(). These regions can be redefined using - * vTaskAllocateMPURegions(). - * - * @param xTask The handle of the task being updated. - * - * @param xRegions A pointer to an xMemoryRegion structure that contains the - * new memory region definitions. - * - * Example usage: - <pre> -// Define an array of xMemoryRegion structures that configures an MPU region -// allowing read/write access for 1024 bytes starting at the beginning of the -// ucOneKByte array. The other two of the maximum 3 definable regions are -// unused so set to zero. -static const xMemoryRegion xAltRegions[ portNUM_CONFIGURABLE_REGIONS ] = -{ - // Base address Length Parameters - { ucOneKByte, 1024, portMPU_REGION_READ_WRITE }, - { 0, 0, 0 }, - { 0, 0, 0 } -}; - -void vATask( void *pvParameters ) -{ - // This task was created such that it has access to certain regions of - // memory as defined by the MPU configuration. At some point it is - // desired that these MPU regions are replaced with that defined in the - // xAltRegions const struct above. Use a call to vTaskAllocateMPURegions() - // for this purpose. NULL is used as the task handle to indicate that this - // function should modify the MPU regions of the calling task. - vTaskAllocateMPURegions( NULL, xAltRegions ); - - // Now the task can continue its function, but from this point on can only - // access its stack and the ucOneKByte array (unless any other statically - // defined or shared regions have been declared elsewhere). -} - </pre> - * \defgroup xTaskCreateRestricted xTaskCreateRestricted - * \ingroup Tasks - */ -void vTaskAllocateMPURegions( xTaskHandle xTask, const xMemoryRegion * const pxRegions ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskDelete( xTaskHandle pxTask );</pre> - * - * INCLUDE_vTaskDelete must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Remove a task from the RTOS real time kernels management. The task being - * deleted will be removed from all ready, blocked, suspended and event lists. - * - * NOTE: The idle task is responsible for freeing the kernel allocated - * memory from tasks that have been deleted. It is therefore important that - * the idle task is not starved of microcontroller processing time if your - * application makes any calls to vTaskDelete (). Memory allocated by the - * task code is not automatically freed, and should be freed before the task - * is deleted. - * - * See the demo application file death.c for sample code that utilises - * vTaskDelete (). - * - * @param pxTask The handle of the task to be deleted. Passing NULL will - * cause the calling task to be deleted. - * - * Example usage: - <pre> - void vOtherFunction( void ) - { - xTaskHandle xHandle; - - // Create the task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // Use the handle to delete the task. - vTaskDelete( xHandle ); - } - </pre> - * \defgroup vTaskDelete vTaskDelete - * \ingroup Tasks - */ -void vTaskDelete( xTaskHandle pxTaskToDelete ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * TASK CONTROL API - *----------------------------------------------------------*/ - -/** - * task. h - * <pre>void vTaskDelay( portTickType xTicksToDelay );</pre> - * - * Delay a task for a given number of ticks. The actual time that the - * task remains blocked depends on the tick rate. The constant - * portTICK_RATE_MS can be used to calculate real time from the tick - * rate - with the resolution of one tick period. - * - * INCLUDE_vTaskDelay must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * - * vTaskDelay() specifies a time at which the task wishes to unblock relative to - * the time at which vTaskDelay() is called. For example, specifying a block - * period of 100 ticks will cause the task to unblock 100 ticks after - * vTaskDelay() is called. vTaskDelay() does not therefore provide a good method - * of controlling the frequency of a cyclical task as the path taken through the - * code, as well as other task and interrupt activity, will effect the frequency - * at which vTaskDelay() gets called and therefore the time at which the task - * next executes. See vTaskDelayUntil() for an alternative API function designed - * to facilitate fixed frequency execution. It does this by specifying an - * absolute time (rather than a relative time) at which the calling task should - * unblock. - * - * @param xTicksToDelay The amount of time, in tick periods, that - * the calling task should block. - * - * Example usage: - - void vTaskFunction( void * pvParameters ) - { - void vTaskFunction( void * pvParameters ) - { - // Block for 500ms. - const portTickType xDelay = 500 / portTICK_RATE_MS; - - for( ;; ) - { - // Simply toggle the LED every 500ms, blocking between each toggle. - vToggleLED(); - vTaskDelay( xDelay ); - } - } - - * \defgroup vTaskDelay vTaskDelay - * \ingroup TaskCtrl - */ -void vTaskDelay( portTickType xTicksToDelay ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );</pre> - * - * INCLUDE_vTaskDelayUntil must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Delay a task until a specified time. This function can be used by cyclical - * tasks to ensure a constant execution frequency. - * - * This function differs from vTaskDelay () in one important aspect: vTaskDelay () will - * cause a task to block for the specified number of ticks from the time vTaskDelay () is - * called. It is therefore difficult to use vTaskDelay () by itself to generate a fixed - * execution frequency as the time between a task starting to execute and that task - * calling vTaskDelay () may not be fixed [the task may take a different path though the - * code between calls, or may get interrupted or preempted a different number of times - * each time it executes]. - * - * Whereas vTaskDelay () specifies a wake time relative to the time at which the function - * is called, vTaskDelayUntil () specifies the absolute (exact) time at which it wishes to - * unblock. - * - * The constant portTICK_RATE_MS can be used to calculate real time from the tick - * rate - with the resolution of one tick period. - * - * @param pxPreviousWakeTime Pointer to a variable that holds the time at which the - * task was last unblocked. The variable must be initialised with the current time - * prior to its first use (see the example below). Following this the variable is - * automatically updated within vTaskDelayUntil (). - * - * @param xTimeIncrement The cycle time period. The task will be unblocked at - * time *pxPreviousWakeTime + xTimeIncrement. Calling vTaskDelayUntil with the - * same xTimeIncrement parameter value will cause the task to execute with - * a fixed interface period. - * - * Example usage: - <pre> - // Perform an action every 10 ticks. - void vTaskFunction( void * pvParameters ) - { - portTickType xLastWakeTime; - const portTickType xFrequency = 10; - - // Initialise the xLastWakeTime variable with the current time. - xLastWakeTime = xTaskGetTickCount (); - for( ;; ) - { - // Wait for the next cycle. - vTaskDelayUntil( &xLastWakeTime, xFrequency ); - - // Perform action here. - } - } - </pre> - * \defgroup vTaskDelayUntil vTaskDelayUntil - * \ingroup TaskCtrl - */ -void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask );</pre> - * - * INCLUDE_xTaskPriorityGet must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Obtain the priority of any task. - * - * @param pxTask Handle of the task to be queried. Passing a NULL - * handle results in the priority of the calling task being returned. - * - * @return The priority of pxTask. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to obtain the priority of the created task. - // It was created with tskIDLE_PRIORITY, but may have changed - // it itself. - if( uxTaskPriorityGet( xHandle ) != tskIDLE_PRIORITY ) - { - // The task has changed it's priority. - } - - // ... - - // Is our priority higher than the created task? - if( uxTaskPriorityGet( xHandle ) < uxTaskPriorityGet( NULL ) ) - { - // Our priority (obtained using NULL handle) is higher. - } - } - </pre> - * \defgroup uxTaskPriorityGet uxTaskPriorityGet - * \ingroup TaskCtrl - */ -unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority );</pre> - * - * INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Set the priority of any task. - * - * A context switch will occur before the function returns if the priority - * being set is higher than the currently executing task. - * - * @param pxTask Handle to the task for which the priority is being set. - * Passing a NULL handle results in the priority of the calling task being set. - * - * @param uxNewPriority The priority to which the task will be set. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to raise the priority of the created task. - vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 ); - - // ... - - // Use a NULL handle to raise our priority to the same value. - vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 ); - } - </pre> - * \defgroup vTaskPrioritySet vTaskPrioritySet - * \ingroup TaskCtrl - */ -void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskSuspend( xTaskHandle pxTaskToSuspend );</pre> - * - * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Suspend any task. When suspended a task will never get any microcontroller - * processing time, no matter what its priority. - * - * Calls to vTaskSuspend are not accumulative - - * i.e. calling vTaskSuspend () twice on the same task still only requires one - * call to vTaskResume () to ready the suspended task. - * - * @param pxTaskToSuspend Handle to the task being suspended. Passing a NULL - * handle will cause the calling task to be suspended. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to suspend the created task. - vTaskSuspend( xHandle ); - - // ... - - // The created task will not run during this period, unless - // another task calls vTaskResume( xHandle ). - - //... - - - // Suspend ourselves. - vTaskSuspend( NULL ); - - // We cannot get here unless another task calls vTaskResume - // with our handle as the parameter. - } - </pre> - * \defgroup vTaskSuspend vTaskSuspend - * \ingroup TaskCtrl - */ -void vTaskSuspend( xTaskHandle pxTaskToSuspend ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskResume( xTaskHandle pxTaskToResume );</pre> - * - * INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. - * See the configuration section for more information. - * - * Resumes a suspended task. - * - * A task that has been suspended by one of more calls to vTaskSuspend () - * will be made available for running again by a single call to - * vTaskResume (). - * - * @param pxTaskToResume Handle to the task being readied. - * - * Example usage: - <pre> - void vAFunction( void ) - { - xTaskHandle xHandle; - - // Create a task, storing the handle. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); - - // ... - - // Use the handle to suspend the created task. - vTaskSuspend( xHandle ); - - // ... - - // The created task will not run during this period, unless - // another task calls vTaskResume( xHandle ). - - //... - - - // Resume the suspended task ourselves. - vTaskResume( xHandle ); - - // The created task will once again get microcontroller processing - // time in accordance with it priority within the system. - } - </pre> - * \defgroup vTaskResume vTaskResume - * \ingroup TaskCtrl - */ -void vTaskResume( xTaskHandle pxTaskToResume ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void xTaskResumeFromISR( xTaskHandle pxTaskToResume );</pre> - * - * INCLUDE_xTaskResumeFromISR must be defined as 1 for this function to be - * available. See the configuration section for more information. - * - * An implementation of vTaskResume() that can be called from within an ISR. - * - * A task that has been suspended by one of more calls to vTaskSuspend () - * will be made available for running again by a single call to - * xTaskResumeFromISR (). - * - * @param pxTaskToResume Handle to the task being readied. - * - * \defgroup vTaskResumeFromISR vTaskResumeFromISR - * \ingroup TaskCtrl - */ -portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * SCHEDULER CONTROL - *----------------------------------------------------------*/ - -/** - * task. h - * <pre>void vTaskStartScheduler( void );</pre> - * - * Starts the real time kernel tick processing. After calling the kernel - * has control over which tasks are executed and when. This function - * does not return until an executing task calls vTaskEndScheduler (). - * - * At least one task should be created via a call to xTaskCreate () - * before calling vTaskStartScheduler (). The idle task is created - * automatically when the first application task is created. - * - * See the demo application file main.c for an example of creating - * tasks and starting the kernel. - * - * Example usage: - <pre> - void vAFunction( void ) - { - // Create at least one task before starting the kernel. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - - // Start the real time kernel with preemption. - vTaskStartScheduler (); - - // Will not get here unless a task calls vTaskEndScheduler () - } - </pre> - * - * \defgroup vTaskStartScheduler vTaskStartScheduler - * \ingroup SchedulerControl - */ -void vTaskStartScheduler( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskEndScheduler( void );</pre> - * - * Stops the real time kernel tick. All created tasks will be automatically - * deleted and multitasking (either preemptive or cooperative) will - * stop. Execution then resumes from the point where vTaskStartScheduler () - * was called, as if vTaskStartScheduler () had just returned. - * - * See the demo application file main. c in the demo/PC directory for an - * example that uses vTaskEndScheduler (). - * - * vTaskEndScheduler () requires an exit function to be defined within the - * portable layer (see vPortEndScheduler () in port. c for the PC port). This - * performs hardware specific operations such as stopping the kernel tick. - * - * vTaskEndScheduler () will cause all of the resources allocated by the - * kernel to be freed - but will not free resources allocated by application - * tasks. - * - * Example usage: - <pre> - void vTaskCode( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // At some point we want to end the real time kernel processing - // so call ... - vTaskEndScheduler (); - } - } - - void vAFunction( void ) - { - // Create at least one task before starting the kernel. - xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); - - // Start the real time kernel with preemption. - vTaskStartScheduler (); - - // Will only get here when the vTaskCode () task has called - // vTaskEndScheduler (). When we get here we are back to single task - // execution. - } - </pre> - * - * \defgroup vTaskEndScheduler vTaskEndScheduler - * \ingroup SchedulerControl - */ -void vTaskEndScheduler( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>void vTaskSuspendAll( void );</pre> - * - * Suspends all real time kernel activity while keeping interrupts (including the - * kernel tick) enabled. - * - * After calling vTaskSuspendAll () the calling task will continue to execute - * without risk of being swapped out until a call to xTaskResumeAll () has been - * made. - * - * API functions that have the potential to cause a context switch (for example, - * vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler - * is suspended. - * - * Example usage: - <pre> - void vTask1( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // ... - - // At some point the task wants to perform a long operation during - // which it does not want to get swapped out. It cannot use - // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the - // operation may cause interrupts to be missed - including the - // ticks. - - // Prevent the real time kernel swapping out the task. - vTaskSuspendAll (); - - // Perform the operation here. There is no need to use critical - // sections as we have all the microcontroller processing time. - // During this time interrupts will still operate and the kernel - // tick count will be maintained. - - // ... - - // The operation is complete. Restart the kernel. - xTaskResumeAll (); - } - } - </pre> - * \defgroup vTaskSuspendAll vTaskSuspendAll - * \ingroup SchedulerControl - */ -void vTaskSuspendAll( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>char xTaskResumeAll( void );</pre> - * - * Resumes real time kernel activity following a call to vTaskSuspendAll (). - * After a call to vTaskSuspendAll () the kernel will take control of which - * task is executing at any time. - * - * @return If resuming the scheduler caused a context switch then pdTRUE is - * returned, otherwise pdFALSE is returned. - * - * Example usage: - <pre> - void vTask1( void * pvParameters ) - { - for( ;; ) - { - // Task code goes here. - - // ... - - // At some point the task wants to perform a long operation during - // which it does not want to get swapped out. It cannot use - // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the - // operation may cause interrupts to be missed - including the - // ticks. - - // Prevent the real time kernel swapping out the task. - vTaskSuspendAll (); - - // Perform the operation here. There is no need to use critical - // sections as we have all the microcontroller processing time. - // During this time interrupts will still operate and the real - // time kernel tick count will be maintained. - - // ... - - // The operation is complete. Restart the kernel. We want to force - // a context switch - but there is no point if resuming the scheduler - // caused a context switch already. - if( !xTaskResumeAll () ) - { - taskYIELD (); - } - } - } - </pre> - * \defgroup xTaskResumeAll xTaskResumeAll - * \ingroup SchedulerControl - */ -signed portBASE_TYPE xTaskResumeAll( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <pre>signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask );</pre> - * - * Utility task that simply returns pdTRUE if the task referenced by xTask is - * currently in the Suspended state, or pdFALSE if the task referenced by xTask - * is in any other state. - * - */ -signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - -/*----------------------------------------------------------- - * TASK UTILITIES - *----------------------------------------------------------*/ - -/** - * task. h - * <PRE>portTickType xTaskGetTickCount( void );</PRE> - * - * @return The count of ticks since vTaskStartScheduler was called. - * - * \page xTaskGetTickCount xTaskGetTickCount - * \ingroup TaskUtils - */ -portTickType xTaskGetTickCount( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>portTickType xTaskGetTickCountFromISR( void );</PRE> - * - * @return The count of ticks since vTaskStartScheduler was called. - * - * This is a version of xTaskGetTickCount() that is safe to be called from an - * ISR - provided that portTickType is the natural word size of the - * microcontroller being used or interrupt nesting is either not supported or - * not being used. - * - * \page xTaskGetTickCount xTaskGetTickCount - * \ingroup TaskUtils - */ -portTickType xTaskGetTickCountFromISR( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>unsigned short uxTaskGetNumberOfTasks( void );</PRE> - * - * @return The number of tasks that the real time kernel is currently managing. - * This includes all ready, blocked and suspended tasks. A task that - * has been deleted but not yet freed by the idle task will also be - * included in the count. - * - * \page uxTaskGetNumberOfTasks uxTaskGetNumberOfTasks - * \ingroup TaskUtils - */ -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskList( char *pcWriteBuffer );</PRE> - * - * configUSE_TRACE_FACILITY must be defined as 1 for this function to be - * available. See the configuration section for more information. - * - * NOTE: This function will disable interrupts for its duration. It is - * not intended for normal application runtime use but as a debug aid. - * - * Lists all the current tasks, along with their current state and stack - * usage high water mark. - * - * Tasks are reported as blocked ('B'), ready ('R'), deleted ('D') or - * suspended ('S'). - * - * @param pcWriteBuffer A buffer into which the above mentioned details - * will be written, in ascii form. This buffer is assumed to be large - * enough to contain the generated report. Approximately 40 bytes per - * task should be sufficient. - * - * \page vTaskList vTaskList - * \ingroup TaskUtils - */ -void vTaskList( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskGetRunTimeStats( char *pcWriteBuffer );</PRE> - * - * configGENERATE_RUN_TIME_STATS must be defined as 1 for this function - * to be available. The application must also then provide definitions - * for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and - * portGET_RUN_TIME_COUNTER_VALUE to configure a peripheral timer/counter - * and return the timers current count value respectively. The counter - * should be at least 10 times the frequency of the tick count. - * - * NOTE: This function will disable interrupts for its duration. It is - * not intended for normal application runtime use but as a debug aid. - * - * Setting configGENERATE_RUN_TIME_STATS to 1 will result in a total - * accumulated execution time being stored for each task. The resolution - * of the accumulated time value depends on the frequency of the timer - * configured by the portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() macro. - * Calling vTaskGetRunTimeStats() writes the total execution time of each - * task into a buffer, both as an absolute count value and as a percentage - * of the total system execution time. - * - * @param pcWriteBuffer A buffer into which the execution times will be - * written, in ascii form. This buffer is assumed to be large enough to - * contain the generated report. Approximately 40 bytes per task should - * be sufficient. - * - * \page vTaskGetRunTimeStats vTaskGetRunTimeStats - * \ingroup TaskUtils - */ -void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>void vTaskStartTrace( char * pcBuffer, unsigned portBASE_TYPE uxBufferSize );</PRE> - * - * Starts a real time kernel activity trace. The trace logs the identity of - * which task is running when. - * - * The trace file is stored in binary format. A separate DOS utility called - * convtrce.exe is used to convert this into a tab delimited text file which - * can be viewed and plotted in a spread sheet. - * - * @param pcBuffer The buffer into which the trace will be written. - * - * @param ulBufferSize The size of pcBuffer in bytes. The trace will continue - * until either the buffer in full, or ulTaskEndTrace () is called. - * - * \page vTaskStartTrace vTaskStartTrace - * \ingroup TaskUtils - */ -void vTaskStartTrace( signed char * pcBuffer, unsigned long ulBufferSize ) PRIVILEGED_FUNCTION; - -/** - * task. h - * <PRE>unsigned long ulTaskEndTrace( void );</PRE> - * - * Stops a kernel activity trace. See vTaskStartTrace (). - * - * @return The number of bytes that have been written into the trace buffer. - * - * \page usTaskEndTrace usTaskEndTrace - * \ingroup TaskUtils - */ -unsigned long ulTaskEndTrace( void ) PRIVILEGED_FUNCTION; - -/** - * task.h - * <PRE>unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask );</PRE> - * - * INCLUDE_uxTaskGetStackHighWaterMark must be set to 1 in FreeRTOSConfig.h for - * this function to be available. - * - * Returns the high water mark of the stack associated with xTask. That is, - * the minimum free stack space there has been (in words, so on a 32 bit machine - * a value of 1 means 4 bytes) since the task started. The smaller the returned - * number the closer the task has come to overflowing its stack. - * - * @param xTask Handle of the task associated with the stack to be checked. - * Set xTask to NULL to check the stack of the calling task. - * - * @return The smallest amount of free stack space there has been (in bytes) - * since the task referenced by xTask was created. - */ -unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - -/* When using trace macros it is sometimes necessary to include tasks.h before -FreeRTOS.h. When this is done pdTASK_HOOK_CODE will not yet have been defined, -so the following two prototypes will cause a compilation error. This can be -fixed by simply guarding against the inclusion of these two prototypes unless -they are explicitly required by the configUSE_APPLICATION_TASK_TAG configuration -constant. */ -#ifdef configUSE_APPLICATION_TASK_TAG - #if configUSE_APPLICATION_TASK_TAG == 1 - /** - * task.h - * <pre>void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre> - * - * Sets pxHookFunction to be the task hook function used by the task xTask. - * Passing xTask as NULL has the effect of setting the calling tasks hook - * function. - */ - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) PRIVILEGED_FUNCTION; - - /** - * task.h - * <pre>void xTaskGetApplicationTaskTag( xTaskHandle xTask );</pre> - * - * Returns the pxHookFunction value assigned to the task xTask. - */ - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) PRIVILEGED_FUNCTION; - #endif /* configUSE_APPLICATION_TASK_TAG ==1 */ -#endif /* ifdef configUSE_APPLICATION_TASK_TAG */ - -/** - * task.h - * <pre>portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction );</pre> - * - * Calls the hook function associated with xTask. Passing xTask as NULL has - * the effect of calling the Running tasks (the calling task) hook function. - * - * pvParameter is passed to the hook function for the task to interpret as it - * wants. - */ -portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) PRIVILEGED_FUNCTION; - - -/*----------------------------------------------------------- - * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES - *----------------------------------------------------------*/ - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY - * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS - * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * Called from the real time kernel tick (either preemptive or cooperative), - * this increments the tick count and checks if any tasks that are blocked - * for a finite period required removing from a blocked list and placing on - * a ready list. - */ -void vTaskIncrementTick( void ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * Removes the calling task from the ready list and places it both - * on the list of tasks waiting for a particular event, and the - * list of delayed tasks. The task will be removed from both lists - * and replaced on the ready list should either the event occur (and - * there be no higher priority tasks waiting on the same event) or - * the delay period expires. - * - * @param pxEventList The list containing tasks that are blocked waiting - * for the event to occur. - * - * @param xTicksToWait The maximum amount of time that the task should wait - * for the event to occur. This is specified in kernel ticks,the constant - * portTICK_RATE_MS can be used to convert kernel ticks into a real time - * period. - */ -void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * This function performs nearly the same function as vTaskPlaceOnEventList(). - * The difference being that this function does not permit tasks to block - * indefinitely, whereas vTaskPlaceOnEventList() does. - * - * @return pdTRUE if the task being removed has a higher priority than the task - * making the call, otherwise pdFALSE. - */ -void vTaskPlaceOnEventListRestricted( const xList * const pxEventList, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED. - * - * Removes a task from both the specified event list and the list of blocked - * tasks, and places it on a ready queue. - * - * xTaskRemoveFromEventList () will be called if either an event occurs to - * unblock a task, or the block timeout period expires. - * - * @return pdTRUE if the task being removed has a higher priority than the task - * making the call, otherwise pdFALSE. - */ -signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS AN - * INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * INCLUDE_vTaskCleanUpResources and INCLUDE_vTaskSuspend must be defined as 1 - * for this function to be available. - * See the configuration section for more information. - * - * Empties the ready and delayed queues of task control blocks, freeing the - * memory allocated for the task control block and task stacks as it goes. - */ -void vTaskCleanUpResources( void ) PRIVILEGED_FUNCTION; - -/* - * THIS FUNCTION MUST NOT BE USED FROM APPLICATION CODE. IT IS ONLY - * INTENDED FOR USE WHEN IMPLEMENTING A PORT OF THE SCHEDULER AND IS - * AN INTERFACE WHICH IS FOR THE EXCLUSIVE USE OF THE SCHEDULER. - * - * Sets the pointer to the current TCB to the TCB of the highest priority task - * that is ready to run. - */ -void vTaskSwitchContext( void ) PRIVILEGED_FUNCTION; - -/* - * Return the handle of the calling task. - */ -xTaskHandle xTaskGetCurrentTaskHandle( void ) PRIVILEGED_FUNCTION; - -/* - * Capture the current time status for future reference. - */ -void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) PRIVILEGED_FUNCTION; - -/* - * Compare the time status now with that previously captured to see if the - * timeout has expired. - */ -portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * Shortcut used by the queue implementation to prevent unnecessary call to - * taskYIELD(); - */ -void vTaskMissedYield( void ) PRIVILEGED_FUNCTION; - -/* - * Returns the scheduler state as taskSCHEDULER_RUNNING, - * taskSCHEDULER_NOT_STARTED or taskSCHEDULER_SUSPENDED. - */ -portBASE_TYPE xTaskGetSchedulerState( void ) PRIVILEGED_FUNCTION; - -/* - * Raises the priority of the mutex holder to that of the calling task should - * the mutex holder have a priority less than the calling task. - */ -void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder ) PRIVILEGED_FUNCTION; - -/* - * Set the priority of a task back to its proper priority in the case that it - * inherited a higher priority while it was holding a semaphore. - */ -void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder ) PRIVILEGED_FUNCTION; - -/* - * Generic version of the task creation function which is in turn called by the - * xTaskCreate() and xTaskCreateRestricted() macros. - */ -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) PRIVILEGED_FUNCTION; - -#ifdef __cplusplus -} -#endif -#endif /* TASK_H */ - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_include/timers.h b/TP1_labyrinth_etu/FreeRTOS_include/timers.h deleted file mode 100644 index 3d78c0a..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_include/timers.h +++ /dev/null @@ -1,936 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef TIMERS_H -#define TIMERS_H - -#ifndef INC_FREERTOS_H - #error "include FreeRTOS.h must appear in source files before include timers.h" -#endif - -#include "portable.h" -#include "list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* IDs for commands that can be sent/received on the timer queue. These are to -be used solely through the macros that make up the public software timer API, -as defined below. */ -#define tmrCOMMAND_START 0 -#define tmrCOMMAND_STOP 1 -#define tmrCOMMAND_CHANGE_PERIOD 2 -#define tmrCOMMAND_DELETE 3 - -/*----------------------------------------------------------- - * MACROS AND DEFINITIONS - *----------------------------------------------------------*/ - - /** - * Type by which software timers are referenced. For example, a call to - * xTimerCreate() returns an xTimerHandle variable that can then be used to - * reference the subject timer in calls to other software timer API functions - * (for example, xTimerStart(), xTimerReset(), etc.). - */ -typedef void * xTimerHandle; - -/* Define the prototype to which timer callback functions must conform. */ -typedef void (*tmrTIMER_CALLBACK)( xTimerHandle xTimer ); - -/** - * xTimerHandle xTimerCreate( const signed char *pcTimerName, - * portTickType xTimerPeriod, - * unsigned portBASE_TYPE uxAutoReload, - * void * pvTimerID, - * tmrTIMER_CALLBACK pxCallbackFunction ); - * - * Creates a new software timer instance. This allocates the storage required - * by the new timer, initialises the new timers internal state, and returns a - * handle by which the new timer can be referenced. - * - * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), - * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and - * xTimerChangePeriodFromISR() API functions can all be used to transition a timer into the - * active state. - * - * @param pcTimerName A text name that is assigned to the timer. This is done - * purely to assist debugging. The kernel itself only ever references a timer by - * its handle, and never by its name. - * - * @param xTimerPeriod The timer period. The time is defined in tick periods so - * the constant portTICK_RATE_MS can be used to convert a time that has been - * specified in milliseconds. For example, if the timer must expire after 100 - * ticks, then xTimerPeriod should be set to 100. Alternatively, if the timer - * must expire after 500ms, then xPeriod can be set to ( 500 / portTICK_RATE_MS ) - * provided configTICK_RATE_HZ is less than or equal to 1000. - * - * @param uxAutoReload If uxAutoReload is set to pdTRUE then the timer will - * expire repeatedly with a frequency set by the xTimerPeriod parameter. If - * uxAutoReload is set to pdFALSE then the timer will be a one-shot timer and - * enter the dormant state after it expires. - * - * @param pvTimerID An identifier that is assigned to the timer being created. - * Typically this would be used in the timer callback function to identify which - * timer expired when the same callback function is assigned to more than one - * timer. - * - * @param pxCallbackFunction The function to call when the timer expires. - * Callback functions must have the prototype defined by tmrTIMER_CALLBACK, - * which is "void vCallbackFunction( xTIMER *xTimer );". - * - * @return If the timer is successfully create then a handle to the newly - * created timer is returned. If the timer cannot be created (because either - * there is insufficient FreeRTOS heap remaining to allocate the timer - * structures, or the timer period was set to 0) then 0 is returned. - * - * Example usage: - * - * - * #define NUM_TIMERS 5 - * - * // An array to hold handles to the created timers. - * xTimerHandle xTimers[ NUM_TIMERS ]; - * - * // An array to hold a count of the number of times each timer expires. - * long lExpireCounters[ NUM_TIMERS ] = { 0 }; - * - * // Define a callback function that will be used by multiple timer instances. - * // The callback function does nothing but count the number of times the - * // associated timer expires, and stop the timer once the timer has expired - * // 10 times. - * void vTimerCallback( xTIMER *pxTimer ) - * { - * long lArrayIndex; - * const long xMaxExpiryCountBeforeStopping = 10; - * - * // Optionally do something if the pxTimer parameter is NULL. - * configASSERT( pxTimer ); - * - * // Which timer expired? - * lArrayIndex = ( long ) pvTimerGetTimerID( pxTimer ); - * - * // Increment the number of times that pxTimer has expired. - * lExpireCounters[ lArrayIndex ] += 1; - * - * // If the timer has expired 10 times then stop it from running. - * if( lExpireCounters[ lArrayIndex ] == xMaxExpiryCountBeforeStopping ) - * { - * // Do not use a block time if calling a timer API function from a - * // timer callback function, as doing so could cause a deadlock! - * xTimerStop( pxTimer, 0 ); - * } - * } - * - * void main( void ) - * { - * long x; - * - * // Create then start some timers. Starting the timers before the scheduler - * // has been started means the timers will start running immediately that - * // the scheduler starts. - * for( x = 0; x < NUM_TIMERS; x++ ) - * { - * xTimers[ x ] = xTimerCreate( "Timer", // Just a text name, not used by the kernel. - * ( 100 * x ), // The timer period in ticks. - * pdTRUE, // The timers will auto-reload themselves when they expire. - * ( void * ) x, // Assign each timer a unique id equal to its array index. - * vTimerCallback // Each timer calls the same callback when it expires. - * ); - * - * if( xTimers[ x ] == NULL ) - * { - * // The timer was not created. - * } - * else - * { - * // Start the timer. No block time is specified, and even if one was - * // it would be ignored because the scheduler has not yet been - * // started. - * if( xTimerStart( xTimers[ x ], 0 ) != pdPASS ) - * { - * // The timer could not be set into the Active state. - * } - * } - * } - * - * // ... - * // Create tasks here. - * // ... - * - * // Starting the scheduler will start the timers running as they have already - * // been set into the active state. - * xTaskStartScheduler(); - * - * // Should not reach here. - * for( ;; ); - * } - */ -xTimerHandle xTimerCreate( const signed char *pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void * pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) PRIVILEGED_FUNCTION; - -/** - * void *pvTimerGetTimerID( xTimerHandle xTimer ); - * - * Returns the ID assigned to the timer. - * - * IDs are assigned to timers using the pvTimerID parameter of the call to - * xTimerCreated() that was used to create the timer. - * - * If the same callback function is assigned to multiple timers then the timer - * ID can be used within the callback function to identify which timer actually - * expired. - * - * @param xTimer The timer being queried. - * - * @return The ID assigned to the timer being queried. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - */ -void *pvTimerGetTimerID( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; - -/** - * portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ); - * - * Queries a timer to see if it is active or dormant. - * - * A timer will be dormant if: - * 1) It has been created but not started, or - * 2) It is an expired on-shot timer that has not been restarted. - * - * Timers are created in the dormant state. The xTimerStart(), xTimerReset(), - * xTimerStartFromISR(), xTimerResetFromISR(), xTimerChangePeriod() and - * xTimerChangePeriodFromISR() API functions can all be used to transition a timer into the - * active state. - * - * @param xTimer The timer being queried. - * - * @return pdFALSE will be returned if the timer is dormant. A value other than - * pdFALSE will be returned if the timer is active. - * - * Example usage: - * - * // This function assumes xTimer has already been created. - * void vAFunction( xTimerHandle xTimer ) - * { - * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" - * { - * // xTimer is active, do something. - * } - * else - * { - * // xTimer is not active, do something else. - * } - * } - */ -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) PRIVILEGED_FUNCTION; - -/** - * portBASE_TYPE xTimerStart( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerStart() starts a timer that was previously created using the - * xTimerCreate() API function. If the timer had already been started and was - * already in the active state, then xTimerStart() has equivalent functionality - * to the xTimerReset() API function. - * - * Starting a timer ensures the timer is in the active state. If the timer - * is not stopped, deleted, or reset in the mean time, the callback function - * associated with the timer will get called 'n' ticks after xTimerStart() was - * called, where 'n' is the timers defined period. - * - * It is valid to call xTimerStart() before the scheduler has been started, but - * when this is done the timer will not actually start until the scheduler is - * started, and the timers expiry time will be relative to when the scheduler is - * started, not relative to when xTimerStart() was called. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerStart() - * to be available. - * - * @param xTimer The handle of the timer being started/restarted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the start command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerStart() was called. xBlockTime is ignored if xTimerStart() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the start command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system, although the - * timers expiry time is relative to when xTimerStart() is actually called. The - * timer service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - * - */ -#define xTimerStart( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerStop( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerStop() stops a timer that was previously started using either of the - * The xTimerStart(), xTimerReset(), xTimerStartFromISR(), xTimerResetFromISR(), - * xTimerChangePeriod() or xTimerChangePeriodFromISR() API functions. - * - * Stopping a timer ensures the timer is not in the active state. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerStop() - * to be available. - * - * @param xTimer The handle of the timer being stopped. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the stop command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerStop() was called. xBlockTime is ignored if xTimerStop() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the stop command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system. The timer - * service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerCreate() API function example usage scenario. - * - */ -#define xTimerStop( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0U, NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerChangePeriod( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerChangePeriod() changes the period of a timer that was previously - * created using the xTimerCreate() API function. - * - * xTimerChangePeriod() can be called to change the period of an active or - * dormant state timer. - * - * The configUSE_TIMERS configuration constant must be set to 1 for - * xTimerChangePeriod() to be available. - * - * @param xTimer The handle of the timer that is having its period changed. - * - * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time - * that has been specified in milliseconds. For example, if the timer must - * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, - * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than - * or equal to 1000. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the change period command to be - * successfully sent to the timer command queue, should the queue already be - * full when xTimerChangePeriod() was called. xBlockTime is ignored if - * xTimerChangePeriod() is called before the scheduler is started. - * - * @return pdFAIL will be returned if the change period command could not be - * sent to the timer command queue even after xBlockTime ticks had passed. - * pdPASS will be returned if the command was successfully sent to the timer - * command queue. When the command is actually processed will depend on the - * priority of the timer service/daemon task relative to other tasks in the - * system. The timer service/daemon task priority is set by the - * configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This function assumes xTimer has already been created. If the timer - * // referenced by xTimer is already active when it is called, then the timer - * // is deleted. If the timer referenced by xTimer is not active when it is - * // called, then the period of the timer is set to 500ms and the timer is - * // started. - * void vAFunction( xTimerHandle xTimer ) - * { - * if( xTimerIsTimerActive( xTimer ) != pdFALSE ) // or more simply and equivalently "if( xTimerIsTimerActive( xTimer ) )" - * { - * // xTimer is already active - delete it. - * xTimerDelete( xTimer ); - * } - * else - * { - * // xTimer is not active, change its period to 500ms. This will also - * // cause the timer to start. Block for a maximum of 100 ticks if the - * // change period command cannot immediately be sent to the timer - * // command queue. - * if( xTimerChangePeriod( xTimer, 500 / portTICK_RATE_MS, 100 ) == pdPASS ) - * { - * // The command was successfully sent. - * } - * else - * { - * // The command could not be sent, even after waiting for 100 ticks - * // to pass. Take appropriate action here. - * } - * } - * } - */ - #define xTimerChangePeriod( xTimer, xNewPeriod, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerDelete( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerDelete() deletes a timer that was previously created using the - * xTimerCreate() API function. - * - * The configUSE_TIMERS configuration constant must be set to 1 for - * xTimerDelete() to be available. - * - * @param xTimer The handle of the timer being deleted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the delete command to be - * successfully sent to the timer command queue, should the queue already be - * full when xTimerDelete() was called. xBlockTime is ignored if xTimerDelete() - * is called before the scheduler is started. - * - * @return pdFAIL will be returned if the delete command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system. The timer - * service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * See the xTimerChangePeriod() API function example usage scenario. - */ -#define xTimerDelete( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_DELETE, 0U, NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerReset( xTimerHandle xTimer, portTickType xBlockTime ); - * - * Timer functionality is provided by a timer service/daemon task. Many of the - * public FreeRTOS timer API functions send commands to the timer service task - * though a queue called the timer command queue. The timer command queue is - * private to the kernel itself and is not directly accessible to application - * code. The length of the timer command queue is set by the - * configTIMER_QUEUE_LENGTH configuration constant. - * - * xTimerReset() re-starts a timer that was previously created using the - * xTimerCreate() API function. If the timer had already been started and was - * already in the active state, then xTimerReset() will cause the timer to - * re-evaluate its expiry time so that it is relative to when xTimerReset() was - * called. If the timer was in the dormant state then xTimerReset() has - * equivalent functionality to the xTimerStart() API function. - * - * Resetting a timer ensures the timer is in the active state. If the timer - * is not stopped, deleted, or reset in the mean time, the callback function - * associated with the timer will get called 'n' ticks after xTimerReset() was - * called, where 'n' is the timers defined period. - * - * It is valid to call xTimerReset() before the scheduler has been started, but - * when this is done the timer will not actually start until the scheduler is - * started, and the timers expiry time will be relative to when the scheduler is - * started, not relative to when xTimerReset() was called. - * - * The configUSE_TIMERS configuration constant must be set to 1 for xTimerReset() - * to be available. - * - * @param xTimer The handle of the timer being reset/started/restarted. - * - * @param xBlockTime Specifies the time, in ticks, that the calling task should - * be held in the Blocked state to wait for the reset command to be successfully - * sent to the timer command queue, should the queue already be full when - * xTimerReset() was called. xBlockTime is ignored if xTimerReset() is called - * before the scheduler is started. - * - * @return pdFAIL will be returned if the reset command could not be sent to - * the timer command queue even after xBlockTime ticks had passed. pdPASS will - * be returned if the command was successfully sent to the timer command queue. - * When the command is actually processed will depend on the priority of the - * timer service/daemon task relative to other tasks in the system, although the - * timers expiry time is relative to when xTimerStart() is actually called. The - * timer service/daemon task priority is set by the configTIMER_TASK_PRIORITY - * configuration constant. - * - * Example usage: - * - * // When a key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer. - * - * xTimerHandle xBacklightTimer = NULL; - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press event handler. - * void vKeyPressEventHandler( char cKey ) - * { - * // Ensure the LCD back-light is on, then reset the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. Wait 10 ticks for the command to be successfully sent - * // if it cannot be sent immediately. - * vSetBacklightState( BACKLIGHT_ON ); - * if( xTimerReset( xBacklightTimer, 100 ) != pdPASS ) - * { - * // The reset command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * } - * - * void main( void ) - * { - * long x; - * - * // Create then start the one-shot timer that is responsible for turning - * // the back-light off if no keys are pressed within a 5 second period. - * xBacklightTimer = xTimerCreate( "BacklightTimer", // Just a text name, not used by the kernel. - * ( 5000 / portTICK_RATE_MS), // The timer period in ticks. - * pdFALSE, // The timer is a one-shot timer. - * 0, // The id is not used by the callback so can take any value. - * vBacklightTimerCallback // The callback function that switches the LCD back-light off. - * ); - * - * if( xBacklightTimer == NULL ) - * { - * // The timer was not created. - * } - * else - * { - * // Start the timer. No block time is specified, and even if one was - * // it would be ignored because the scheduler has not yet been - * // started. - * if( xTimerStart( xBacklightTimer, 0 ) != pdPASS ) - * { - * // The timer could not be set into the Active state. - * } - * } - * - * // ... - * // Create tasks here. - * // ... - * - * // Starting the scheduler will start the timer running as it has already - * // been set into the active state. - * xTaskStartScheduler(); - * - * // Should not reach here. - * for( ;; ); - * } - */ -#define xTimerReset( xTimer, xBlockTime ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCount() ), NULL, ( xBlockTime ) ) - -/** - * portBASE_TYPE xTimerStartFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerStart() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer being started/restarted. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerStartFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerStartFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerStartFromISR() function. If - * xTimerStartFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the start command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system, although the timers expiry time is - * relative to when xTimerStartFromISR() is actually called. The timer service/daemon - * task priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xBacklightTimer has already been created. When a - * // key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer, and unlike the example given for - * // the xTimerReset() function, the key press event handler is an interrupt - * // service routine. - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press interrupt service routine. - * void vKeyPressEventInterruptHandler( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // Ensure the LCD back-light is on, then restart the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. This is an interrupt service routine so can only - * // call FreeRTOS API functions that end in "FromISR". - * vSetBacklightState( BACKLIGHT_ON ); - * - * // xTimerStartFromISR() or xTimerResetFromISR() could be called here - * // as both cause the timer to re-calculate its expiry time. - * // xHigherPriorityTaskWoken was initialised to pdFALSE when it was - * // declared (in this function). - * if( xTimerStartFromISR( xBacklightTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The start command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerStartFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerStopFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerStop() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer being stopped. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerStopFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerStopFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerStopFromISR() function. If - * xTimerStopFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the stop command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system. The timer service/daemon task - * priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xTimer has already been created and started. When - * // an interrupt occurs, the timer should be simply stopped. - * - * // The interrupt service routine that stops the timer. - * void vAnExampleInterruptServiceRoutine( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // The interrupt has occurred - simply stop the timer. - * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined - * // (within this function). As this is an interrupt service routine, only - * // FreeRTOS API functions that end in "FromISR" can be used. - * if( xTimerStopFromISR( xTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The stop command was not executed successfully. Take appropriate - * // action here. - * } - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerStopFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_STOP, 0, ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerChangePeriodFromISR( xTimerHandle xTimer, - * portTickType xNewPeriod, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerChangePeriod() that can be called from an interrupt - * service routine. - * - * @param xTimer The handle of the timer that is having its period changed. - * - * @param xNewPeriod The new period for xTimer. Timer periods are specified in - * tick periods, so the constant portTICK_RATE_MS can be used to convert a time - * that has been specified in milliseconds. For example, if the timer must - * expire after 100 ticks, then xNewPeriod should be set to 100. Alternatively, - * if the timer must expire after 500ms, then xNewPeriod can be set to - * ( 500 / portTICK_RATE_MS ) provided configTICK_RATE_HZ is less than - * or equal to 1000. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerChangePeriodFromISR() writes a message to the - * timer command queue, so has the potential to transition the timer service/ - * daemon task out of the Blocked state. If calling xTimerChangePeriodFromISR() - * causes the timer service/daemon task to leave the Blocked state, and the - * timer service/daemon task has a priority equal to or greater than the - * currently executing task (the task that was interrupted), then - * *pxHigherPriorityTaskWoken will get set to pdTRUE internally within the - * xTimerChangePeriodFromISR() function. If xTimerChangePeriodFromISR() sets - * this value to pdTRUE then a context switch should be performed before the - * interrupt exits. - * - * @return pdFAIL will be returned if the command to change the timers period - * could not be sent to the timer command queue. pdPASS will be returned if the - * command was successfully sent to the timer command queue. When the command - * is actually processed will depend on the priority of the timer service/daemon - * task relative to other tasks in the system. The timer service/daemon task - * priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xTimer has already been created and started. When - * // an interrupt occurs, the period of xTimer should be changed to 500ms. - * - * // The interrupt service routine that changes the period of xTimer. - * void vAnExampleInterruptServiceRoutine( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // The interrupt has occurred - change the period of xTimer to 500ms. - * // xHigherPriorityTaskWoken was set to pdFALSE where it was defined - * // (within this function). As this is an interrupt service routine, only - * // FreeRTOS API functions that end in "FromISR" can be used. - * if( xTimerChangePeriodFromISR( xTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The command to change the timers period was not executed - * // successfully. Take appropriate action here. - * } - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerChangePeriodFromISR( xTimer, xNewPeriod, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_CHANGE_PERIOD, ( xNewPeriod ), ( pxHigherPriorityTaskWoken ), 0U ) - -/** - * portBASE_TYPE xTimerResetFromISR( xTimerHandle xTimer, - * portBASE_TYPE *pxHigherPriorityTaskWoken ); - * - * A version of xTimerReset() that can be called from an interrupt service - * routine. - * - * @param xTimer The handle of the timer that is to be started, reset, or - * restarted. - * - * @param pxHigherPriorityTaskWoken The timer service/daemon task spends most - * of its time in the Blocked state, waiting for messages to arrive on the timer - * command queue. Calling xTimerResetFromISR() writes a message to the timer - * command queue, so has the potential to transition the timer service/daemon - * task out of the Blocked state. If calling xTimerResetFromISR() causes the - * timer service/daemon task to leave the Blocked state, and the timer service/ - * daemon task has a priority equal to or greater than the currently executing - * task (the task that was interrupted), then *pxHigherPriorityTaskWoken will - * get set to pdTRUE internally within the xTimerResetFromISR() function. If - * xTimerResetFromISR() sets this value to pdTRUE then a context switch should - * be performed before the interrupt exits. - * - * @return pdFAIL will be returned if the reset command could not be sent to - * the timer command queue. pdPASS will be returned if the command was - * successfully sent to the timer command queue. When the command is actually - * processed will depend on the priority of the timer service/daemon task - * relative to other tasks in the system, although the timers expiry time is - * relative to when xTimerResetFromISR() is actually called. The timer service/daemon - * task priority is set by the configTIMER_TASK_PRIORITY configuration constant. - * - * Example usage: - * - * // This scenario assumes xBacklightTimer has already been created. When a - * // key is pressed, an LCD back-light is switched on. If 5 seconds pass - * // without a key being pressed, then the LCD back-light is switched off. In - * // this case, the timer is a one-shot timer, and unlike the example given for - * // the xTimerReset() function, the key press event handler is an interrupt - * // service routine. - * - * // The callback function assigned to the one-shot timer. In this case the - * // parameter is not used. - * void vBacklightTimerCallback( xTIMER *pxTimer ) - * { - * // The timer expired, therefore 5 seconds must have passed since a key - * // was pressed. Switch off the LCD back-light. - * vSetBacklightState( BACKLIGHT_OFF ); - * } - * - * // The key press interrupt service routine. - * void vKeyPressEventInterruptHandler( void ) - * { - * portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - * - * // Ensure the LCD back-light is on, then reset the timer that is - * // responsible for turning the back-light off after 5 seconds of - * // key inactivity. This is an interrupt service routine so can only - * // call FreeRTOS API functions that end in "FromISR". - * vSetBacklightState( BACKLIGHT_ON ); - * - * // xTimerStartFromISR() or xTimerResetFromISR() could be called here - * // as both cause the timer to re-calculate its expiry time. - * // xHigherPriorityTaskWoken was initialised to pdFALSE when it was - * // declared (in this function). - * if( xTimerResetFromISR( xBacklightTimer, &xHigherPriorityTaskWoken ) != pdPASS ) - * { - * // The reset command was not executed successfully. Take appropriate - * // action here. - * } - * - * // Perform the rest of the key processing here. - * - * // If xHigherPriorityTaskWoken equals pdTRUE, then a context switch - * // should be performed. The syntax required to perform a context switch - * // from inside an ISR varies from port to port, and from compiler to - * // compiler. Inspect the demos for the port you are using to find the - * // actual syntax required. - * if( xHigherPriorityTaskWoken != pdFALSE ) - * { - * // Call the interrupt safe yield function here (actual function - * // depends on the FreeRTOS port being used. - * } - * } - */ -#define xTimerResetFromISR( xTimer, pxHigherPriorityTaskWoken ) xTimerGenericCommand( ( xTimer ), tmrCOMMAND_START, ( xTaskGetTickCountFromISR() ), ( pxHigherPriorityTaskWoken ), 0U ) - -/* - * Functions beyond this part are not part of the public API and are intended - * for use by the kernel only. - */ -portBASE_TYPE xTimerCreateTimerTask( void ) PRIVILEGED_FUNCTION; -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) PRIVILEGED_FUNCTION; - -#ifdef __cplusplus -} -#endif -#endif /* TIMERS_H */ - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_1.c b/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_1.c deleted file mode 100644 index f063be1..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_1.c +++ /dev/null @@ -1,152 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -/* - * The simplest possible implementation of pvPortMalloc(). Note that this - * implementation does NOT allow allocated memory to be freed again. - * - * See heap_2.c and heap_3.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* Allocate the memory for the heap. The struct is used to force byte -alignment without using any non-portable code. */ -static union xRTOS_HEAP -{ - #if portBYTE_ALIGNMENT == 8 - volatile portDOUBLE dDummy; - #else - volatile unsigned long ulDummy; - #endif - unsigned char ucHeap[ configTOTAL_HEAP_SIZE ]; -} xHeap; - -static size_t xNextFreeByte = ( size_t ) 0; -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn = NULL; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - #if portBYTE_ALIGNMENT != 1 - if( xWantedSize & portBYTE_ALIGNMENT_MASK ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - #endif - - vTaskSuspendAll(); - { - /* Check there is enough room left for the allocation. */ - if( ( ( xNextFreeByte + xWantedSize ) < configTOTAL_HEAP_SIZE ) && - ( ( xNextFreeByte + xWantedSize ) > xNextFreeByte ) )/* Check for overflow. */ - { - /* Return the next free byte then increment the index past this - block. */ - pvReturn = &( xHeap.ucHeap[ xNextFreeByte ] ); - xNextFreeByte += xWantedSize; - } - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - /* Memory cannot be freed using this scheme. See heap_2.c and heap_3.c - for alternative implementations, and the memory management pages of - http://www.FreeRTOS.org for more information. */ - ( void ) pv; -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* Only required when static memory is not cleared. */ - xNextFreeByte = ( size_t ) 0; -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return ( configTOTAL_HEAP_SIZE - xNextFreeByte ); -} - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_2.c b/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_2.c deleted file mode 100644 index 1d1c76a..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_2.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* - * A sample implementation of pvPortMalloc() and vPortFree() that permits - * allocated blocks to be freed, but does not combine adjacent free blocks - * into a single larger block. - * - * See heap_1.c and heap_3.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* Allocate the memory for the heap. The struct is used to force byte -alignment without using any non-portable code. */ -static union xRTOS_HEAP -{ - #if portBYTE_ALIGNMENT == 8 - volatile portDOUBLE dDummy; - #else - volatile unsigned long ulDummy; - #endif - unsigned char ucHeap[ configTOTAL_HEAP_SIZE ]; -} xHeap; - -/* Define the linked list structure. This is used to link free blocks in order -of their size. */ -typedef struct A_BLOCK_LINK -{ - struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */ - size_t xBlockSize; /*<< The size of the free block. */ -} xBlockLink; - - -static const unsigned short heapSTRUCT_SIZE = ( sizeof( xBlockLink ) + portBYTE_ALIGNMENT - ( sizeof( xBlockLink ) % portBYTE_ALIGNMENT ) ); -#define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) ) - -/* Create a couple of list links to mark the start and end of the list. */ -static xBlockLink xStart, xEnd; - -/* Keeps track of the number of free bytes remaining, but says nothing about -fragmentation. */ -static size_t xFreeBytesRemaining = configTOTAL_HEAP_SIZE; - -/* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */ - -/* - * Insert a block into the list of free blocks - which is ordered by size of - * the block. Small blocks at the start of the list and large blocks at the end - * of the list. - */ -#define prvInsertBlockIntoFreeList( pxBlockToInsert ) \ -{ \ -xBlockLink *pxIterator; \ -size_t xBlockSize; \ - \ - xBlockSize = pxBlockToInsert->xBlockSize; \ - \ - /* Iterate through the list until a block is found that has a larger size */ \ - /* than the block we are inserting. */ \ - for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock ) \ - { \ - /* There is nothing to do here - just iterate to the correct position. */ \ - } \ - \ - /* Update the list to include the block being inserted in the correct */ \ - /* position. */ \ - pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; \ - pxIterator->pxNextFreeBlock = pxBlockToInsert; \ -} -/*-----------------------------------------------------------*/ - -#define prvHeapInit() \ -{ \ -xBlockLink *pxFirstFreeBlock; \ - \ - /* xStart is used to hold a pointer to the first item in the list of free */ \ - /* blocks. The void cast is used to prevent compiler warnings. */ \ - xStart.pxNextFreeBlock = ( void * ) xHeap.ucHeap; \ - xStart.xBlockSize = ( size_t ) 0; \ - \ - /* xEnd is used to mark the end of the list of free blocks. */ \ - xEnd.xBlockSize = configTOTAL_HEAP_SIZE; \ - xEnd.pxNextFreeBlock = NULL; \ - \ - /* To start with there is a single free block that is sized to take up the \ - entire heap space. */ \ - pxFirstFreeBlock = ( void * ) xHeap.ucHeap; \ - pxFirstFreeBlock->xBlockSize = configTOTAL_HEAP_SIZE; \ - pxFirstFreeBlock->pxNextFreeBlock = &xEnd; \ -} -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -xBlockLink *pxBlock, *pxPreviousBlock, *pxNewBlockLink; -static portBASE_TYPE xHeapHasBeenInitialised = pdFALSE; -void *pvReturn = NULL; - - vTaskSuspendAll(); - { - /* If this is the first call to malloc then the heap will require - initialisation to setup the list of free blocks. */ - if( xHeapHasBeenInitialised == pdFALSE ) - { - prvHeapInit(); - xHeapHasBeenInitialised = pdTRUE; - } - - /* The wanted size is increased so it can contain a xBlockLink - structure in addition to the requested amount of bytes. */ - if( xWantedSize > 0 ) - { - xWantedSize += heapSTRUCT_SIZE; - - /* Ensure that blocks are always aligned to the required number of bytes. */ - if( xWantedSize & portBYTE_ALIGNMENT_MASK ) - { - /* Byte alignment required. */ - xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); - } - } - - if( ( xWantedSize > 0 ) && ( xWantedSize < configTOTAL_HEAP_SIZE ) ) - { - /* Blocks are stored in byte order - traverse the list from the start - (smallest) block until one of adequate size is found. */ - pxPreviousBlock = &xStart; - pxBlock = xStart.pxNextFreeBlock; - while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock ) ) - { - pxPreviousBlock = pxBlock; - pxBlock = pxBlock->pxNextFreeBlock; - } - - /* If we found the end marker then a block of adequate size was not found. */ - if( pxBlock != &xEnd ) - { - /* Return the memory space - jumping over the xBlockLink structure - at its start. */ - pvReturn = ( void * ) ( ( ( unsigned char * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE ); - - /* This block is being returned for use so must be taken our of the - list of free blocks. */ - pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; - - /* If the block is larger than required it can be split into two. */ - if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) - { - /* This block is to be split into two. Create a new block - following the number of bytes requested. The void cast is - used to prevent byte alignment warnings from the compiler. */ - pxNewBlockLink = ( void * ) ( ( ( unsigned char * ) pxBlock ) + xWantedSize ); - - /* Calculate the sizes of two blocks split from the single - block. */ - pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; - pxBlock->xBlockSize = xWantedSize; - - /* Insert the new block into the list of free blocks. */ - prvInsertBlockIntoFreeList( ( pxNewBlockLink ) ); - } - - xFreeBytesRemaining -= pxBlock->xBlockSize; - } - } - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ -unsigned char *puc = ( unsigned char * ) pv; -xBlockLink *pxLink; - - if( pv ) - { - /* The memory being freed will have an xBlockLink structure immediately - before it. */ - puc -= heapSTRUCT_SIZE; - - /* This casting is to keep the compiler from issuing warnings. */ - pxLink = ( void * ) puc; - - vTaskSuspendAll(); - { - /* Add this block to the list of free blocks. */ - prvInsertBlockIntoFreeList( ( ( xBlockLink * ) pxLink ) ); - xFreeBytesRemaining += pxLink->xBlockSize; - } - xTaskResumeAll(); - } -} -/*-----------------------------------------------------------*/ - -size_t xPortGetFreeHeapSize( void ) -{ - return xFreeBytesRemaining; -} -/*-----------------------------------------------------------*/ - -void vPortInitialiseBlocks( void ) -{ - /* This just exists to keep the linker quiet. */ -} diff --git a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_3.c b/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_3.c deleted file mode 100644 index fa799a0..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_portable/MemMang/heap_3.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -/* - * Implementation of pvPortMalloc() and vPortFree() that relies on the - * compilers own malloc() and free() implementations. - * - * This file can only be used if the linker is configured to to generate - * a heap memory area. - * - * See heap_2.c and heap_1.c for alternative implementations, and the memory - * management pages of http://www.FreeRTOS.org for more information. - */ - -#include <stdlib.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/*-----------------------------------------------------------*/ - -void *pvPortMalloc( size_t xWantedSize ) -{ -void *pvReturn; - - vTaskSuspendAll(); - { - pvReturn = malloc( xWantedSize ); - } - xTaskResumeAll(); - - #if( configUSE_MALLOC_FAILED_HOOK == 1 ) - { - if( pvReturn == NULL ) - { - extern void vApplicationMallocFailedHook( void ); - vApplicationMallocFailedHook(); - } - } - #endif - - return pvReturn; -} -/*-----------------------------------------------------------*/ - -void vPortFree( void *pv ) -{ - if( pv ) - { - vTaskSuspendAll(); - { - free( pv ); - } - xTaskResumeAll(); - } -} - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_portable/port.c b/TP1_labyrinth_etu/FreeRTOS_portable/port.c deleted file mode 100644 index 70c7491..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_portable/port.c +++ /dev/null @@ -1,283 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/*----------------------------------------------------------- - * Implementation of functions defined in portable.h for the ARM CM3 port. - *----------------------------------------------------------*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is -defined. The value should also ensure backward compatibility. -FreeRTOS.org versions prior to V4.4.0 did not include this definition. */ -#ifndef configKERNEL_INTERRUPT_PRIORITY - #define configKERNEL_INTERRUPT_PRIORITY 255 -#endif - -/* Constants required to manipulate the NVIC. */ -#define portNVIC_SYSTICK_CTRL ( ( volatile unsigned long *) 0xe000e010 ) -#define portNVIC_SYSTICK_LOAD ( ( volatile unsigned long *) 0xe000e014 ) -#define portNVIC_INT_CTRL ( ( volatile unsigned long *) 0xe000ed04 ) -#define portNVIC_SYSPRI2 ( ( volatile unsigned long *) 0xe000ed20 ) -#define portNVIC_SYSTICK_CLK 0x00000004 -#define portNVIC_SYSTICK_INT 0x00000002 -#define portNVIC_SYSTICK_ENABLE 0x00000001 -#define portNVIC_PENDSVSET 0x10000000 -#define portNVIC_PENDSV_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16 ) -#define portNVIC_SYSTICK_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24 ) - -/* Constants required to set up the initial stack. */ -#define portINITIAL_XPSR ( 0x01000000 ) - -/* The priority used by the kernel is assigned to a variable to make access -from inline assembler easier. */ -const unsigned long ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY; - -/* Each task maintains its own interrupt status in the critical nesting -variable. */ -static unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa; - -/* - * Setup the timer to generate the tick interrupts. - */ -static void prvSetupTimerInterrupt( void ); - -/* - * Exception handlers. - */ -void xPortPendSVHandler( void ) __attribute__ (( naked )); -void xPortSysTickHandler( void ); -void vPortSVCHandler( void ) __attribute__ (( naked )); - -/* - * Start first task is a separate function so it can be tested in isolation. - */ -void vPortStartFirstTask( void ) __attribute__ (( naked )); - -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ) -{ - /* Simulate the stack frame as it would be created by a context switch - interrupt. */ - pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */ - *pxTopOfStack = portINITIAL_XPSR; /* xPSR */ - pxTopOfStack--; - *pxTopOfStack = ( portSTACK_TYPE ) pxCode; /* PC */ - pxTopOfStack--; - *pxTopOfStack = 0; /* LR */ - pxTopOfStack -= 5; /* R12, R3, R2 and R1. */ - *pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */ - pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */ - - return pxTopOfStack; -} -/*-----------------------------------------------------------*/ - -void vPortSVCHandler( void ) -{ - __asm volatile ( - " ldr r3, pxCurrentTCBConst2 \n" /* Restore the context. */ - " ldr r1, [r3] \n" /* Use pxCurrentTCBConst to get the pxCurrentTCB address. */ - " ldr r0, [r1] \n" /* The first item in pxCurrentTCB is the task top of stack. */ - " ldmia r0!, {r4-r11} \n" /* Pop the registers that are not automatically saved on exception entry and the critical nesting count. */ - " msr psp, r0 \n" /* Restore the task stack pointer. */ - " mov r0, #0 \n" - " msr basepri, r0 \n" - " orr r14, #0xd \n" - " bx r14 \n" - " \n" - " .align 2 \n" - "pxCurrentTCBConst2: .word pxCurrentTCB \n" - ); -} -/*-----------------------------------------------------------*/ - -void vPortStartFirstTask( void ) -{ - __asm volatile( - " ldr r0, =0xE000ED08 \n" /* Use the NVIC offset register to locate the stack. */ - " ldr r0, [r0] \n" - " ldr r0, [r0] \n" - " msr msp, r0 \n" /* Set the msp back to the start of the stack. */ - " cpsie i \n" /* Globally enable interrupts. */ - " svc 0 \n" /* System call to start first task. */ - " nop \n" - ); -} -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -portBASE_TYPE xPortStartScheduler( void ) -{ - /* Make PendSV, CallSV and SysTick the same priroity as the kernel. */ - *(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI; - *(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI; - - /* Start the timer that generates the tick ISR. Interrupts are disabled - here already. */ - prvSetupTimerInterrupt(); - - /* Initialise the critical nesting count ready for the first task. */ - uxCriticalNesting = 0; - - /* Start the first task. */ - vPortStartFirstTask(); - - /* Should not get here! */ - return 0; -} -/*-----------------------------------------------------------*/ - -void vPortEndScheduler( void ) -{ - /* It is unlikely that the CM3 port will require this function as there - is nothing to return to. */ -} -/*-----------------------------------------------------------*/ - -void vPortYieldFromISR( void ) -{ - /* Set a PendSV to request a context switch. */ - *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET; -} -/*-----------------------------------------------------------*/ - -void vPortEnterCritical( void ) -{ - portDISABLE_INTERRUPTS(); - uxCriticalNesting++; -} -/*-----------------------------------------------------------*/ - -void vPortExitCritical( void ) -{ - uxCriticalNesting--; - if( uxCriticalNesting == 0 ) - { - portENABLE_INTERRUPTS(); - } -} -/*-----------------------------------------------------------*/ - -void xPortPendSVHandler( void ) -{ - /* This is a naked function. */ - - __asm volatile - ( - " mrs r0, psp \n" - " \n" - " ldr r3, pxCurrentTCBConst \n" /* Get the location of the current TCB. */ - " ldr r2, [r3] \n" - " \n" - " stmdb r0!, {r4-r11} \n" /* Save the remaining registers. */ - " str r0, [r2] \n" /* Save the new top of stack into the first member of the TCB. */ - " \n" - " stmdb sp!, {r3, r14} \n" - " mov r0, %0 \n" - " msr basepri, r0 \n" - " bl vTaskSwitchContext \n" - " mov r0, #0 \n" - " msr basepri, r0 \n" - " ldmia sp!, {r3, r14} \n" - " \n" /* Restore the context, including the critical nesting count. */ - " ldr r1, [r3] \n" - " ldr r0, [r1] \n" /* The first item in pxCurrentTCB is the task top of stack. */ - " ldmia r0!, {r4-r11} \n" /* Pop the registers. */ - " msr psp, r0 \n" - " bx r14 \n" - " \n" - " .align 2 \n" - "pxCurrentTCBConst: .word pxCurrentTCB \n" - ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY) - ); -} -/*-----------------------------------------------------------*/ - -void xPortSysTickHandler( void ) -{ -unsigned long ulDummy; - - /* If using preemption, also force a context switch. */ - #if configUSE_PREEMPTION == 1 - *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET; - #endif - - ulDummy = portSET_INTERRUPT_MASK_FROM_ISR(); - { - vTaskIncrementTick(); - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( ulDummy ); -} -/*-----------------------------------------------------------*/ - -/* - * Setup the systick timer to generate the tick interrupts at the required - * frequency. - */ -void prvSetupTimerInterrupt( void ) -{ - /* Configure SysTick to interrupt at the requested rate. */ - *(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL; - *(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE; -} -/*-----------------------------------------------------------*/ - diff --git a/TP1_labyrinth_etu/FreeRTOS_portable/portmacro.h b/TP1_labyrinth_etu/FreeRTOS_portable/portmacro.h deleted file mode 100644 index 461bf90..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_portable/portmacro.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#ifndef PORTMACRO_H -#define PORTMACRO_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------- - * Port specific definitions. - * - * The settings in this file configure FreeRTOS correctly for the - * given hardware and compiler. - * - * These settings should not be altered. - *----------------------------------------------------------- - */ - -/* Type definitions. */ -#define portCHAR char -#define portFLOAT float -#define portDOUBLE double -#define portLONG long -#define portSHORT short -#define portSTACK_TYPE unsigned portLONG -#define portBASE_TYPE long - -#if( configUSE_16_BIT_TICKS == 1 ) - typedef unsigned portSHORT portTickType; - #define portMAX_DELAY ( portTickType ) 0xffff -#else - typedef unsigned portLONG portTickType; - #define portMAX_DELAY ( portTickType ) 0xffffffff -#endif -/*-----------------------------------------------------------*/ - -/* Architecture specifics. */ -#define portSTACK_GROWTH ( -1 ) -#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) -#define portBYTE_ALIGNMENT 8 -/*-----------------------------------------------------------*/ - - -/* Scheduler utilities. */ -extern void vPortYieldFromISR( void ); - -#define portYIELD() vPortYieldFromISR() - -#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR() -/*-----------------------------------------------------------*/ - - -/* Critical section management. */ - -/* - * Set basepri to portMAX_SYSCALL_INTERRUPT_PRIORITY without effecting other - * registers. r0 is clobbered. - */ -#define portSET_INTERRUPT_MASK() \ - __asm volatile \ - ( \ - " mov r0, %0 \n" \ - " msr basepri, r0 \n" \ - ::"i"(configMAX_SYSCALL_INTERRUPT_PRIORITY):"r0" \ - ) - -/* - * Set basepri back to 0 without effective other registers. - * r0 is clobbered. - */ -#define portCLEAR_INTERRUPT_MASK() \ - __asm volatile \ - ( \ - " mov r0, #0 \n" \ - " msr basepri, r0 \n" \ - :::"r0" \ - ) - -#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK() -#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x - - -extern void vPortEnterCritical( void ); -extern void vPortExitCritical( void ); - -#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK() -#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK() -#define portENTER_CRITICAL() vPortEnterCritical() -#define portEXIT_CRITICAL() vPortExitCritical() -/*-----------------------------------------------------------*/ - -/* Task function macros as described on the FreeRTOS.org WEB site. */ -#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) -#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters ) - -#define portNOP() - -#ifdef __cplusplus -} -#endif - -#endif /* PORTMACRO_H */ - diff --git a/TP1_labyrinth_etu/FreeRTOS_src/croutine.c b/TP1_labyrinth_etu/FreeRTOS_src/croutine.c deleted file mode 100644 index 58fb1bf..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/croutine.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#include "FreeRTOS.h" -#include "task.h" -#include "croutine.h" - -/* - * Some kernel aware debuggers require data to be viewed to be global, rather - * than file scope. - */ -#ifdef portREMOVE_STATIC_QUALIFIER - #define static -#endif - - -/* Lists for ready and blocked co-routines. --------------------*/ -static xList pxReadyCoRoutineLists[ configMAX_CO_ROUTINE_PRIORITIES ]; /*< Prioritised ready co-routines. */ -static xList xDelayedCoRoutineList1; /*< Delayed co-routines. */ -static xList xDelayedCoRoutineList2; /*< Delayed co-routines (two lists are used - one for delays that have overflowed the current tick count. */ -static xList * pxDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used. */ -static xList * pxOverflowDelayedCoRoutineList; /*< Points to the delayed co-routine list currently being used to hold co-routines that have overflowed the current tick count. */ -static xList xPendingReadyCoRoutineList; /*< Holds co-routines that have been readied by an external event. They cannot be added directly to the ready lists as the ready lists cannot be accessed by interrupts. */ - -/* Other file private variables. --------------------------------*/ -corCRCB * pxCurrentCoRoutine = NULL; -static unsigned portBASE_TYPE uxTopCoRoutineReadyPriority = 0; -static portTickType xCoRoutineTickCount = 0, xLastTickCount = 0, xPassedTicks = 0; - -/* The initial state of the co-routine when it is created. */ -#define corINITIAL_STATE ( 0 ) - -/* - * Place the co-routine represented by pxCRCB into the appropriate ready queue - * for the priority. It is inserted at the end of the list. - * - * This macro accesses the co-routine ready lists and therefore must not be - * used from within an ISR. - */ -#define prvAddCoRoutineToReadyQueue( pxCRCB ) \ -{ \ - if( pxCRCB->uxPriority > uxTopCoRoutineReadyPriority ) \ - { \ - uxTopCoRoutineReadyPriority = pxCRCB->uxPriority; \ - } \ - vListInsertEnd( ( xList * ) &( pxReadyCoRoutineLists[ pxCRCB->uxPriority ] ), &( pxCRCB->xGenericListItem ) ); \ -} - -/* - * Utility to ready all the lists used by the scheduler. This is called - * automatically upon the creation of the first co-routine. - */ -static void prvInitialiseCoRoutineLists( void ); - -/* - * Co-routines that are readied by an interrupt cannot be placed directly into - * the ready lists (there is no mutual exclusion). Instead they are placed in - * in the pending ready list in order that they can later be moved to the ready - * list by the co-routine scheduler. - */ -static void prvCheckPendingReadyList( void ); - -/* - * Macro that looks at the list of co-routines that are currently delayed to - * see if any require waking. - * - * Co-routines are stored in the queue in the order of their wake time - - * meaning once one co-routine has been found whose timer has not expired - * we need not look any further down the list. - */ -static void prvCheckDelayedList( void ); - -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xCoRoutineCreate( crCOROUTINE_CODE pxCoRoutineCode, unsigned portBASE_TYPE uxPriority, unsigned portBASE_TYPE uxIndex ) -{ -signed portBASE_TYPE xReturn; -corCRCB *pxCoRoutine; - - /* Allocate the memory that will store the co-routine control block. */ - pxCoRoutine = ( corCRCB * ) pvPortMalloc( sizeof( corCRCB ) ); - if( pxCoRoutine ) - { - /* If pxCurrentCoRoutine is NULL then this is the first co-routine to - be created and the co-routine data structures need initialising. */ - if( pxCurrentCoRoutine == NULL ) - { - pxCurrentCoRoutine = pxCoRoutine; - prvInitialiseCoRoutineLists(); - } - - /* Check the priority is within limits. */ - if( uxPriority >= configMAX_CO_ROUTINE_PRIORITIES ) - { - uxPriority = configMAX_CO_ROUTINE_PRIORITIES - 1; - } - - /* Fill out the co-routine control block from the function parameters. */ - pxCoRoutine->uxState = corINITIAL_STATE; - pxCoRoutine->uxPriority = uxPriority; - pxCoRoutine->uxIndex = uxIndex; - pxCoRoutine->pxCoRoutineFunction = pxCoRoutineCode; - - /* Initialise all the other co-routine control block parameters. */ - vListInitialiseItem( &( pxCoRoutine->xGenericListItem ) ); - vListInitialiseItem( &( pxCoRoutine->xEventListItem ) ); - - /* Set the co-routine control block as a link back from the xListItem. - This is so we can get back to the containing CRCB from a generic item - in a list. */ - listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xGenericListItem ), pxCoRoutine ); - listSET_LIST_ITEM_OWNER( &( pxCoRoutine->xEventListItem ), pxCoRoutine ); - - /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxCoRoutine->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority ); - - /* Now the co-routine has been initialised it can be added to the ready - list at the correct priority. */ - prvAddCoRoutineToReadyQueue( pxCoRoutine ); - - xReturn = pdPASS; - } - else - { - xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vCoRoutineAddToDelayedList( portTickType xTicksToDelay, xList *pxEventList ) -{ -portTickType xTimeToWake; - - /* Calculate the time to wake - this may overflow but this is - not a problem. */ - xTimeToWake = xCoRoutineTickCount + xTicksToDelay; - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - - /* The list item will be inserted in wake time order. */ - listSET_LIST_ITEM_VALUE( &( pxCurrentCoRoutine->xGenericListItem ), xTimeToWake ); - - if( xTimeToWake < xCoRoutineTickCount ) - { - /* Wake time has overflowed. Place this item in the - overflow list. */ - vListInsert( ( xList * ) pxOverflowDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - } - else - { - /* The wake time has not overflowed, so we can use the - current block list. */ - vListInsert( ( xList * ) pxDelayedCoRoutineList, ( xListItem * ) &( pxCurrentCoRoutine->xGenericListItem ) ); - } - - if( pxEventList ) - { - /* Also add the co-routine to an event list. If this is done then the - function must be called with interrupts disabled. */ - vListInsert( pxEventList, &( pxCurrentCoRoutine->xEventListItem ) ); - } -} -/*-----------------------------------------------------------*/ - -static void prvCheckPendingReadyList( void ) -{ - /* Are there any co-routines waiting to get moved to the ready list? These - are co-routines that have been readied by an ISR. The ISR cannot access - the ready lists itself. */ - while( listLIST_IS_EMPTY( &xPendingReadyCoRoutineList ) == pdFALSE ) - { - corCRCB *pxUnblockedCRCB; - - /* The pending ready list can be accessed by an ISR. */ - portDISABLE_INTERRUPTS(); - { - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( (&xPendingReadyCoRoutineList) ); - vListRemove( &( pxUnblockedCRCB->xEventListItem ) ); - } - portENABLE_INTERRUPTS(); - - vListRemove( &( pxUnblockedCRCB->xGenericListItem ) ); - prvAddCoRoutineToReadyQueue( pxUnblockedCRCB ); - } -} -/*-----------------------------------------------------------*/ - -static void prvCheckDelayedList( void ) -{ -corCRCB *pxCRCB; - - xPassedTicks = xTaskGetTickCount() - xLastTickCount; - while( xPassedTicks ) - { - xCoRoutineTickCount++; - xPassedTicks--; - - /* If the tick count has overflowed we need to swap the ready lists. */ - if( xCoRoutineTickCount == 0 ) - { - xList * pxTemp; - - /* Tick count has overflowed so we need to swap the delay lists. If there are - any items in pxDelayedCoRoutineList here then there is an error! */ - pxTemp = pxDelayedCoRoutineList; - pxDelayedCoRoutineList = pxOverflowDelayedCoRoutineList; - pxOverflowDelayedCoRoutineList = pxTemp; - } - - /* See if this tick has made a timeout expire. */ - while( listLIST_IS_EMPTY( pxDelayedCoRoutineList ) == pdFALSE ) - { - pxCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedCoRoutineList ); - - if( xCoRoutineTickCount < listGET_LIST_ITEM_VALUE( &( pxCRCB->xGenericListItem ) ) ) - { - /* Timeout not yet expired. */ - break; - } - - portDISABLE_INTERRUPTS(); - { - /* The event could have occurred just before this critical - section. If this is the case then the generic list item will - have been moved to the pending ready list and the following - line is still valid. Also the pvContainer parameter will have - been set to NULL so the following lines are also valid. */ - vListRemove( &( pxCRCB->xGenericListItem ) ); - - /* Is the co-routine waiting on an event also? */ - if( pxCRCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxCRCB->xEventListItem ) ); - } - } - portENABLE_INTERRUPTS(); - - prvAddCoRoutineToReadyQueue( pxCRCB ); - } - } - - xLastTickCount = xCoRoutineTickCount; -} -/*-----------------------------------------------------------*/ - -void vCoRoutineSchedule( void ) -{ - /* See if any co-routines readied by events need moving to the ready lists. */ - prvCheckPendingReadyList(); - - /* See if any delayed co-routines have timed out. */ - prvCheckDelayedList(); - - /* Find the highest priority queue that contains ready co-routines. */ - while( listLIST_IS_EMPTY( &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) ) ) - { - if( uxTopCoRoutineReadyPriority == 0 ) - { - /* No more co-routines to check. */ - return; - } - --uxTopCoRoutineReadyPriority; - } - - /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the co-routines - of the same priority get an equal share of the processor time. */ - listGET_OWNER_OF_NEXT_ENTRY( pxCurrentCoRoutine, &( pxReadyCoRoutineLists[ uxTopCoRoutineReadyPriority ] ) ); - - /* Call the co-routine. */ - ( pxCurrentCoRoutine->pxCoRoutineFunction )( pxCurrentCoRoutine, pxCurrentCoRoutine->uxIndex ); - - return; -} -/*-----------------------------------------------------------*/ - -static void prvInitialiseCoRoutineLists( void ) -{ -unsigned portBASE_TYPE uxPriority; - - for( uxPriority = 0; uxPriority < configMAX_CO_ROUTINE_PRIORITIES; uxPriority++ ) - { - vListInitialise( ( xList * ) &( pxReadyCoRoutineLists[ uxPriority ] ) ); - } - - vListInitialise( ( xList * ) &xDelayedCoRoutineList1 ); - vListInitialise( ( xList * ) &xDelayedCoRoutineList2 ); - vListInitialise( ( xList * ) &xPendingReadyCoRoutineList ); - - /* Start with pxDelayedCoRoutineList using list1 and the - pxOverflowDelayedCoRoutineList using list2. */ - pxDelayedCoRoutineList = &xDelayedCoRoutineList1; - pxOverflowDelayedCoRoutineList = &xDelayedCoRoutineList2; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xCoRoutineRemoveFromEventList( const xList *pxEventList ) -{ -corCRCB *pxUnblockedCRCB; -signed portBASE_TYPE xReturn; - - /* This function is called from within an interrupt. It can only access - event lists and the pending ready list. This function assumes that a - check has already been made to ensure pxEventList is not empty. */ - pxUnblockedCRCB = ( corCRCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); - vListRemove( &( pxUnblockedCRCB->xEventListItem ) ); - vListInsertEnd( ( xList * ) &( xPendingReadyCoRoutineList ), &( pxUnblockedCRCB->xEventListItem ) ); - - if( pxUnblockedCRCB->uxPriority >= pxCurrentCoRoutine->uxPriority ) - { - xReturn = pdTRUE; - } - else - { - xReturn = pdFALSE; - } - - return xReturn; -} - diff --git a/TP1_labyrinth_etu/FreeRTOS_src/list.c b/TP1_labyrinth_etu/FreeRTOS_src/list.c deleted file mode 100644 index c3ef2a8..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/list.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#include <stdlib.h> -#include "FreeRTOS.h" -#include "list.h" - -/*----------------------------------------------------------- - * PUBLIC LIST API documented in list.h - *----------------------------------------------------------*/ - -void vListInitialise( xList *pxList ) -{ - /* The list structure contains a list item which is used to mark the - end of the list. To initialise the list the list end is inserted - as the only list entry. */ - pxList->pxIndex = ( xListItem * ) &( pxList->xListEnd ); - - /* The list end value is the highest possible value in the list to - ensure it remains at the end of the list. */ - pxList->xListEnd.xItemValue = portMAX_DELAY; - - /* The list end next and previous pointers point to itself so we know - when the list is empty. */ - pxList->xListEnd.pxNext = ( xListItem * ) &( pxList->xListEnd ); - pxList->xListEnd.pxPrevious = ( xListItem * ) &( pxList->xListEnd ); - - pxList->uxNumberOfItems = ( unsigned portBASE_TYPE ) 0U; -} -/*-----------------------------------------------------------*/ - -void vListInitialiseItem( xListItem *pxItem ) -{ - /* Make sure the list item is not recorded as being on a list. */ - pxItem->pvContainer = NULL; -} -/*-----------------------------------------------------------*/ - -void vListInsertEnd( xList *pxList, xListItem *pxNewListItem ) -{ -volatile xListItem * pxIndex; - - /* Insert a new list item into pxList, but rather than sort the list, - makes the new list item the last item to be removed by a call to - pvListGetOwnerOfNextEntry. This means it has to be the item pointed to by - the pxIndex member. */ - pxIndex = pxList->pxIndex; - - pxNewListItem->pxNext = pxIndex->pxNext; - pxNewListItem->pxPrevious = pxList->pxIndex; - pxIndex->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem; - pxIndex->pxNext = ( volatile xListItem * ) pxNewListItem; - pxList->pxIndex = ( volatile xListItem * ) pxNewListItem; - - /* Remember which list the item is in. */ - pxNewListItem->pvContainer = ( void * ) pxList; - - ( pxList->uxNumberOfItems )++; -} -/*-----------------------------------------------------------*/ - -void vListInsert( xList *pxList, xListItem *pxNewListItem ) -{ -volatile xListItem *pxIterator; -portTickType xValueOfInsertion; - - /* Insert the new list item into the list, sorted in ulListItem order. */ - xValueOfInsertion = pxNewListItem->xItemValue; - - /* If the list already contains a list item with the same item value then - the new list item should be placed after it. This ensures that TCB's which - are stored in ready lists (all of which have the same ulListItem value) - get an equal share of the CPU. However, if the xItemValue is the same as - the back marker the iteration loop below will not end. This means we need - to guard against this by checking the value first and modifying the - algorithm slightly if necessary. */ - if( xValueOfInsertion == portMAX_DELAY ) - { - pxIterator = pxList->xListEnd.pxPrevious; - } - else - { - /* *** NOTE *********************************************************** - If you find your application is crashing here then likely causes are: - 1) Stack overflow - - see http://www.freertos.org/Stacks-and-stack-overflow-checking.html - 2) Incorrect interrupt priority assignment, especially on Cortex-M3 - parts where numerically high priority values denote low actual - interrupt priories, which can seem counter intuitive. See - configMAX_SYSCALL_INTERRUPT_PRIORITY on http://www.freertos.org/a00110.html - 3) Calling an API function from within a critical section or when - the scheduler is suspended. - 4) Using a queue or semaphore before it has been initialised or - before the scheduler has been started (are interrupts firing - before vTaskStartScheduler() has been called?). - See http://www.freertos.org/FAQHelp.html for more tips. - **********************************************************************/ - - for( pxIterator = ( xListItem * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) - { - /* There is nothing to do here, we are just iterating to the - wanted insertion position. */ - } - } - - pxNewListItem->pxNext = pxIterator->pxNext; - pxNewListItem->pxNext->pxPrevious = ( volatile xListItem * ) pxNewListItem; - pxNewListItem->pxPrevious = pxIterator; - pxIterator->pxNext = ( volatile xListItem * ) pxNewListItem; - - /* Remember which list the item is in. This allows fast removal of the - item later. */ - pxNewListItem->pvContainer = ( void * ) pxList; - - ( pxList->uxNumberOfItems )++; -} -/*-----------------------------------------------------------*/ - -void vListRemove( xListItem *pxItemToRemove ) -{ -xList * pxList; - - pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; - pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; - - /* The list item knows which list it is in. Obtain the list from the list - item. */ - pxList = ( xList * ) pxItemToRemove->pvContainer; - - /* Make sure the index is left pointing to a valid item. */ - if( pxList->pxIndex == pxItemToRemove ) - { - pxList->pxIndex = pxItemToRemove->pxPrevious; - } - - pxItemToRemove->pvContainer = NULL; - ( pxList->uxNumberOfItems )--; -} -/*-----------------------------------------------------------*/ - diff --git a/TP1_labyrinth_etu/FreeRTOS_src/queue.c b/TP1_labyrinth_etu/FreeRTOS_src/queue.c deleted file mode 100644 index 2ae7c70..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/queue.c +++ /dev/null @@ -1,1539 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#include <stdlib.h> -#include <string.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "croutine.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/*----------------------------------------------------------- - * PUBLIC LIST API documented in list.h - *----------------------------------------------------------*/ - -/* Constants used with the cRxLock and cTxLock structure members. */ -#define queueUNLOCKED ( ( signed portBASE_TYPE ) -1 ) -#define queueLOCKED_UNMODIFIED ( ( signed portBASE_TYPE ) 0 ) - -#define queueERRONEOUS_UNBLOCK ( -1 ) - -/* For internal use only. */ -#define queueSEND_TO_BACK ( 0 ) -#define queueSEND_TO_FRONT ( 1 ) - -/* Effectively make a union out of the xQUEUE structure. */ -#define pxMutexHolder pcTail -#define uxQueueType pcHead -#define uxRecursiveCallCount pcReadFrom -#define queueQUEUE_IS_MUTEX NULL - -/* Semaphores do not actually store or copy data, so have an items size of -zero. */ -#define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( 0 ) -#define queueDONT_BLOCK ( ( portTickType ) 0 ) -#define queueMUTEX_GIVE_BLOCK_TIME ( ( portTickType ) 0 ) - -/* - * Definition of the queue used by the scheduler. - * Items are queued by copy, not reference. - */ -typedef struct QueueDefinition -{ - signed char *pcHead; /*< Points to the beginning of the queue storage area. */ - signed char *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ - - signed char *pcWriteTo; /*< Points to the free next place in the storage area. */ - signed char *pcReadFrom; /*< Points to the last place that a queued item was read from. */ - - xList xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ - xList xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */ - - volatile unsigned portBASE_TYPE uxMessagesWaiting;/*< The number of items currently in the queue. */ - unsigned portBASE_TYPE uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */ - unsigned portBASE_TYPE uxItemSize; /*< The size of each items that the queue will hold. */ - - signed portBASE_TYPE xRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - signed portBASE_TYPE xTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ - -} xQUEUE; -/*-----------------------------------------------------------*/ - -/* - * Inside this file xQueueHandle is a pointer to a xQUEUE structure. - * To keep the definition private the API header file defines it as a - * pointer to void. - */ -typedef xQUEUE * xQueueHandle; - -/* - * Prototypes for public functions are included here so we don't have to - * include the API header file (as it defines xQueueHandle differently). These - * functions are documented in the API header file. - */ -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericSend( xQueueHandle xQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -void vQueueDelete( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ) PRIVILEGED_FUNCTION; -xQueueHandle xQueueCreateMutex( void ) PRIVILEGED_FUNCTION; -xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) PRIVILEGED_FUNCTION; -portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle xMutex, portTickType xBlockTime ) PRIVILEGED_FUNCTION; -portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle xMutex ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; -void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - -/* - * Co-routine queue functions differ from task queue functions. Co-routines are - * an optional component. - */ -#if configUSE_CO_ROUTINES == 1 - signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxTaskWoken ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; - signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ) PRIVILEGED_FUNCTION; -#endif - -/* - * The queue registry is just a means for kernel aware debuggers to locate - * queue structures. It has no other purpose so is an optional component. - */ -#if configQUEUE_REGISTRY_SIZE > 0 - - /* The type stored within the queue registry array. This allows a name - to be assigned to each queue making kernel aware debugging a little - more user friendly. */ - typedef struct QUEUE_REGISTRY_ITEM - { - signed char *pcQueueName; - xQueueHandle xHandle; - } xQueueRegistryItem; - - /* The queue registry is simply an array of xQueueRegistryItem structures. - The pcQueueName member of a structure being NULL is indicative of the - array position being vacant. */ - xQueueRegistryItem xQueueRegistry[ configQUEUE_REGISTRY_SIZE ]; - - /* Removes a queue from the registry by simply setting the pcQueueName - member to NULL. */ - static void vQueueUnregisterQueue( xQueueHandle xQueue ) PRIVILEGED_FUNCTION; - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName ) PRIVILEGED_FUNCTION; -#endif - -/* - * Unlocks a queue locked by a call to prvLockQueue. Locking a queue does not - * prevent an ISR from adding or removing items to the queue, but does prevent - * an ISR from removing tasks from the queue event lists. If an ISR finds a - * queue is locked it will instead increment the appropriate queue lock count - * to indicate that a task may require unblocking. When the queue in unlocked - * these lock counts are inspected, and the appropriate action taken. - */ -static void prvUnlockQueue( xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Uses a critical section to determine if there is any data in a queue. - * - * @return pdTRUE if the queue contains no items, otherwise pdFALSE. - */ -static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Uses a critical section to determine if there is any space in a queue. - * - * @return pdTRUE if there is no space, otherwise pdFALSE; - */ -static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue ) PRIVILEGED_FUNCTION; - -/* - * Copies an item into the queue, either at the front of the queue or the - * back of the queue. - */ -static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) PRIVILEGED_FUNCTION; - -/* - * Copies an item out of a queue. - */ -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer ) PRIVILEGED_FUNCTION; -/*-----------------------------------------------------------*/ - -/* - * Macro to mark a queue as locked. Locking a queue prevents an ISR from - * accessing the queue event lists. - */ -#define prvLockQueue( pxQueue ) \ - taskENTER_CRITICAL(); \ - { \ - if( ( pxQueue )->xRxLock == queueUNLOCKED ) \ - { \ - ( pxQueue )->xRxLock = queueLOCKED_UNMODIFIED; \ - } \ - if( ( pxQueue )->xTxLock == queueUNLOCKED ) \ - { \ - ( pxQueue )->xTxLock = queueLOCKED_UNMODIFIED; \ - } \ - } \ - taskEXIT_CRITICAL() -/*-----------------------------------------------------------*/ - - -/*----------------------------------------------------------- - * PUBLIC QUEUE MANAGEMENT API documented in queue.h - *----------------------------------------------------------*/ - -xQueueHandle xQueueCreate( unsigned portBASE_TYPE uxQueueLength, unsigned portBASE_TYPE uxItemSize ) -{ -xQUEUE *pxNewQueue; -size_t xQueueSizeInBytes; -xQueueHandle xReturn = NULL; - - /* Allocate the new queue structure. */ - if( uxQueueLength > ( unsigned portBASE_TYPE ) 0 ) - { - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); - if( pxNewQueue != NULL ) - { - /* Create the list of pointers to queue items. The queue is one byte - longer than asked for to make wrap checking easier/faster. */ - xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; - - pxNewQueue->pcHead = ( signed char * ) pvPortMalloc( xQueueSizeInBytes ); - if( pxNewQueue->pcHead != NULL ) - { - /* Initialise the queue members as described above where the - queue type is defined. */ - pxNewQueue->pcTail = pxNewQueue->pcHead + ( uxQueueLength * uxItemSize ); - pxNewQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->pcWriteTo = pxNewQueue->pcHead; - pxNewQueue->pcReadFrom = pxNewQueue->pcHead + ( ( uxQueueLength - ( unsigned portBASE_TYPE ) 1U ) * uxItemSize ); - pxNewQueue->uxLength = uxQueueLength; - pxNewQueue->uxItemSize = uxItemSize; - pxNewQueue->xRxLock = queueUNLOCKED; - pxNewQueue->xTxLock = queueUNLOCKED; - - /* Likewise ensure the event queues start with the correct state. */ - vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); - vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); - - traceQUEUE_CREATE( pxNewQueue ); - xReturn = pxNewQueue; - } - else - { - traceQUEUE_CREATE_FAILED(); - vPortFree( pxNewQueue ); - } - } - } - - configASSERT( xReturn ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - xQueueHandle xQueueCreateMutex( void ) - { - xQUEUE *pxNewQueue; - - /* Allocate the new queue structure. */ - pxNewQueue = ( xQUEUE * ) pvPortMalloc( sizeof( xQUEUE ) ); - if( pxNewQueue != NULL ) - { - /* Information required for priority inheritance. */ - pxNewQueue->pxMutexHolder = NULL; - pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; - - /* Queues used as a mutex no data is actually copied into or out - of the queue. */ - pxNewQueue->pcWriteTo = NULL; - pxNewQueue->pcReadFrom = NULL; - - /* Each mutex has a length of 1 (like a binary semaphore) and - an item size of 0 as nothing is actually copied into or out - of the mutex. */ - pxNewQueue->uxMessagesWaiting = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->uxLength = ( unsigned portBASE_TYPE ) 1U; - pxNewQueue->uxItemSize = ( unsigned portBASE_TYPE ) 0U; - pxNewQueue->xRxLock = queueUNLOCKED; - pxNewQueue->xTxLock = queueUNLOCKED; - - /* Ensure the event queues start with the correct state. */ - vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); - vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); - - /* Start with the semaphore in the expected state. */ - xQueueGenericSend( pxNewQueue, NULL, ( portTickType ) 0U, queueSEND_TO_BACK ); - - traceCREATE_MUTEX( pxNewQueue ); - } - else - { - traceCREATE_MUTEX_FAILED(); - } - - configASSERT( pxNewQueue ); - return pxNewQueue; - } - -#endif /* configUSE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_RECURSIVE_MUTEXES == 1 - - portBASE_TYPE xQueueGiveMutexRecursive( xQueueHandle pxMutex ) - { - portBASE_TYPE xReturn; - - configASSERT( pxMutex ); - - /* If this is the task that holds the mutex then pxMutexHolder will not - change outside of this task. If this task does not hold the mutex then - pxMutexHolder can never coincidentally equal the tasks handle, and as - this is the only condition we are interested in it does not matter if - pxMutexHolder is accessed simultaneously by another task. Therefore no - mutual exclusion is required to test the pxMutexHolder variable. */ - if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() ) - { - traceGIVE_MUTEX_RECURSIVE( pxMutex ); - - /* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to - the task handle, therefore no underflow check is required. Also, - uxRecursiveCallCount is only modified by the mutex holder, and as - there can only be one, no mutual exclusion is required to modify the - uxRecursiveCallCount member. */ - ( pxMutex->uxRecursiveCallCount )--; - - /* Have we unwound the call count? */ - if( pxMutex->uxRecursiveCallCount == 0 ) - { - /* Return the mutex. This will automatically unblock any other - task that might be waiting to access the mutex. */ - xQueueGenericSend( pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK ); - } - - xReturn = pdPASS; - } - else - { - /* We cannot give the mutex because we are not the holder. */ - xReturn = pdFAIL; - - traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ); - } - - return xReturn; - } - -#endif /* configUSE_RECURSIVE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_RECURSIVE_MUTEXES == 1 - - portBASE_TYPE xQueueTakeMutexRecursive( xQueueHandle pxMutex, portTickType xBlockTime ) - { - portBASE_TYPE xReturn; - - configASSERT( pxMutex ); - - /* Comments regarding mutual exclusion as per those within - xQueueGiveMutexRecursive(). */ - - traceTAKE_MUTEX_RECURSIVE( pxMutex ); - - if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() ) - { - ( pxMutex->uxRecursiveCallCount )++; - xReturn = pdPASS; - } - else - { - xReturn = xQueueGenericReceive( pxMutex, NULL, xBlockTime, pdFALSE ); - - /* pdPASS will only be returned if we successfully obtained the mutex, - we may have blocked to reach here. */ - if( xReturn == pdPASS ) - { - ( pxMutex->uxRecursiveCallCount )++; - } - else - { - traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ); - } - } - - return xReturn; - } - -#endif /* configUSE_RECURSIVE_MUTEXES */ -/*-----------------------------------------------------------*/ - -#if configUSE_COUNTING_SEMAPHORES == 1 - - xQueueHandle xQueueCreateCountingSemaphore( unsigned portBASE_TYPE uxCountValue, unsigned portBASE_TYPE uxInitialCount ) - { - xQueueHandle pxHandle; - - pxHandle = xQueueCreate( ( unsigned portBASE_TYPE ) uxCountValue, queueSEMAPHORE_QUEUE_ITEM_LENGTH ); - - if( pxHandle != NULL ) - { - pxHandle->uxMessagesWaiting = uxInitialCount; - - traceCREATE_COUNTING_SEMAPHORE(); - } - else - { - traceCREATE_COUNTING_SEMAPHORE_FAILED(); - } - - configASSERT( pxHandle ); - return pxHandle; - } - -#endif /* configUSE_COUNTING_SEMAPHORES */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) -{ -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; - - configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there room on the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If there was a task waiting for data to arrive on the - queue then unblock it now. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) - { - /* The unblocked task has a priority higher than - our own so yield immediately. Yes it is ok to do - this from within the critical section - the kernel - takes care of that. */ - portYIELD_WITHIN_API(); - } - } - - taskEXIT_CRITICAL(); - - /* Return to the original privilege level before exiting the - function. */ - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - /* The queue was full and no block time is specified (or - the block time has expired) so leave now. */ - taskEXIT_CRITICAL(); - - /* Return to the original privilege level before exiting - the function. */ - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - else if( xEntryTimeSet == pdFALSE ) - { - /* The queue was full and a block time was specified so - configure the timeout structure. */ - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - /* Interrupts and other tasks can send to and receive from the queue - now the critical section has been exited. */ - - vTaskSuspendAll(); - prvLockQueue( pxQueue ); - - /* Update the timeout state to see if it has expired yet. */ - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueFull( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_SEND( pxQueue ); - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); - - /* Unlocking the queue means queue events can effect the - event list. It is possible that interrupts occurring now - remove this task from the event list again - but as the - scheduler is suspended the task will go onto the pending - ready last instead of the actual ready list. */ - prvUnlockQueue( pxQueue ); - - /* Resuming the scheduler will move tasks from the pending - ready list into the ready list - so it is feasible that this - task is already in a ready list before it yields - in which - case the yield will not cause a context switch unless there - is also a higher priority task in the pending ready list. */ - if( !xTaskResumeAll() ) - { - portYIELD_WITHIN_API(); - } - } - else - { - /* Try again. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - } - } - else - { - /* The timeout has expired. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - - /* Return to the original privilege level before exiting the - function. */ - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - } -} -/*-----------------------------------------------------------*/ - -#if configUSE_ALTERNATIVE_API == 1 - - signed portBASE_TYPE xQueueAltGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - - configASSERT( pxQueue ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there room on the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND( pxQueue ); - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If there was a task waiting for data to arrive on the - queue then unblock it now. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) - { - /* The unblocked task has a priority higher than - our own so yield immediately. */ - portYIELD_WITHIN_API(); - } - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - return errQUEUE_FULL; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueFull( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_SEND( pxQueue ); - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_SEND_FAILED( pxQueue ); - return errQUEUE_FULL; - } - } - taskEXIT_CRITICAL(); - } - } - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ - -#if configUSE_ALTERNATIVE_API == 1 - - signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) - { - signed portBASE_TYPE xEntryTimeSet = pdFALSE; - xTimeOutType xTimeOut; - signed char *pcOriginalReadPosition; - - configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - for( ;; ) - { - taskENTER_CRITICAL(); - { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Remember our read position in case we are just peeking. */ - pcOriginalReadPosition = pxQueue->pcReadFrom; - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - - if( xJustPeeking == pdFALSE ) - { - traceQUEUE_RECEIVE( pxQueue ); - - /* We are actually removing data. */ - --( pxQueue->uxMessagesWaiting ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* Record the information required to implement - priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle(); - } - } - #endif - - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - else - { - traceQUEUE_PEEK( pxQueue ); - - /* We are not removing the data, so reset our read - pointer. */ - pxQueue->pcReadFrom = pcOriginalReadPosition; - - /* The data is being left in the queue, so see if there are - any other tasks waiting for the data. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); - } - } - - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - else if( xEntryTimeSet == pdFALSE ) - { - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - taskENTER_CRITICAL(); - { - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueEmpty( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - portENTER_CRITICAL(); - vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); - portEXIT_CRITICAL(); - } - } - #endif - - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - portYIELD_WITHIN_API(); - } - } - else - { - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - } - taskEXIT_CRITICAL(); - } - } - - -#endif /* configUSE_ALTERNATIVE_API */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericSendFromISR( xQueueHandle pxQueue, const void * const pvItemToQueue, signed portBASE_TYPE *pxHigherPriorityTaskWoken, portBASE_TYPE xCopyPosition ) -{ -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - configASSERT( pxQueue ); - configASSERT( pxHigherPriorityTaskWoken ); - configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* Similar to xQueueGenericSend, except we don't block if there is no room - in the queue. Also we don't directly wake a task that was blocked on a - queue read, instead we return a flag to say whether a context switch is - required or not (i.e. has a task with a higher priority than us been woken - by this post). */ - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - { - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - traceQUEUE_SEND_FROM_ISR( pxQueue ); - - prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); - - /* If the queue is locked we do not alter the event list. This will - be done when the queue is unlocked later. */ - if( pxQueue->xTxLock == queueUNLOCKED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority so record that a - context switch is required. */ - *pxHigherPriorityTaskWoken = pdTRUE; - } - } - } - else - { - /* Increment the lock count so the task that unlocks the queue - knows that data was posted while it was locked. */ - ++( pxQueue->xTxLock ); - } - - xReturn = pdPASS; - } - else - { - traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); - xReturn = errQUEUE_FULL; - } - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueGenericReceive( xQueueHandle pxQueue, void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking ) -{ -signed portBASE_TYPE xEntryTimeSet = pdFALSE; -xTimeOutType xTimeOut; -signed char *pcOriginalReadPosition; - - configASSERT( pxQueue ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - /* This function relaxes the coding standard somewhat to allow return - statements within the function itself. This is done in the interest - of execution time efficiency. */ - - for( ;; ) - { - taskENTER_CRITICAL(); - { - /* Is there data in the queue now? To be running we must be - the highest priority task wanting to access the queue. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Remember our read position in case we are just peeking. */ - pcOriginalReadPosition = pxQueue->pcReadFrom; - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - - if( xJustPeeking == pdFALSE ) - { - traceQUEUE_RECEIVE( pxQueue ); - - /* We are actually removing data. */ - --( pxQueue->uxMessagesWaiting ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* Record the information required to implement - priority inheritance should it become necessary. */ - pxQueue->pxMutexHolder = xTaskGetCurrentTaskHandle(); - } - } - #endif - - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - else - { - traceQUEUE_PEEK( pxQueue ); - - /* We are not removing the data, so reset our read - pointer. */ - pxQueue->pcReadFrom = pcOriginalReadPosition; - - /* The data is being left in the queue, so see if there are - any other tasks waiting for the data. */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than this task. */ - portYIELD_WITHIN_API(); - } - } - - } - - taskEXIT_CRITICAL(); - return pdPASS; - } - else - { - if( xTicksToWait == ( portTickType ) 0 ) - { - /* The queue was empty and no block time is specified (or - the block time has expired) so leave now. */ - taskEXIT_CRITICAL(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - else if( xEntryTimeSet == pdFALSE ) - { - /* The queue was empty and a block time was specified so - configure the timeout structure. */ - vTaskSetTimeOutState( &xTimeOut ); - xEntryTimeSet = pdTRUE; - } - } - } - taskEXIT_CRITICAL(); - - /* Interrupts and other tasks can send to and receive from the queue - now the critical section has been exited. */ - - vTaskSuspendAll(); - prvLockQueue( pxQueue ); - - /* Update the timeout state to see if it has expired yet. */ - if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) - { - if( prvIsQueueEmpty( pxQueue ) ) - { - traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); - - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - portENTER_CRITICAL(); - { - vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); - } - portEXIT_CRITICAL(); - } - } - #endif - - vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - prvUnlockQueue( pxQueue ); - if( !xTaskResumeAll() ) - { - portYIELD_WITHIN_API(); - } - } - else - { - /* Try again. */ - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - } - } - else - { - prvUnlockQueue( pxQueue ); - ( void ) xTaskResumeAll(); - traceQUEUE_RECEIVE_FAILED( pxQueue ); - return errQUEUE_EMPTY; - } - } -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pvBuffer, signed portBASE_TYPE *pxTaskWoken ) -{ -signed portBASE_TYPE xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - configASSERT( pxQueue ); - configASSERT( pxTaskWoken ); - configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( unsigned portBASE_TYPE ) 0U ) ) ); - - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - { - /* We cannot block from an ISR, so check there is data available. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - traceQUEUE_RECEIVE_FROM_ISR( pxQueue ); - - prvCopyDataFromQueue( pxQueue, pvBuffer ); - --( pxQueue->uxMessagesWaiting ); - - /* If the queue is locked we will not modify the event list. Instead - we update the lock count so the task that unlocks the queue will know - that an ISR has removed data while the queue was locked. */ - if( pxQueue->xRxLock == queueUNLOCKED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - /* The task waiting has a higher priority than us so - force a context switch. */ - *pxTaskWoken = pdTRUE; - } - } - } - else - { - /* Increment the lock count so the task that unlocks the queue - knows that data was removed while it was locked. */ - ++( pxQueue->xRxLock ); - } - - xReturn = pdPASS; - } - else - { - xReturn = pdFAIL; - traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ); - } - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxQueueMessagesWaiting( const xQueueHandle pxQueue ) -{ -unsigned portBASE_TYPE uxReturn; - - configASSERT( pxQueue ); - - taskENTER_CRITICAL(); - uxReturn = pxQueue->uxMessagesWaiting; - taskEXIT_CRITICAL(); - - return uxReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue ) -{ -unsigned portBASE_TYPE uxReturn; - - configASSERT( pxQueue ); - - uxReturn = pxQueue->uxMessagesWaiting; - - return uxReturn; -} -/*-----------------------------------------------------------*/ - -void vQueueDelete( xQueueHandle pxQueue ) -{ - configASSERT( pxQueue ); - - traceQUEUE_DELETE( pxQueue ); - vQueueUnregisterQueue( pxQueue ); - vPortFree( pxQueue->pcHead ); - vPortFree( pxQueue ); -} -/*-----------------------------------------------------------*/ - -static void prvCopyDataToQueue( xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition ) -{ - if( pxQueue->uxItemSize == ( unsigned portBASE_TYPE ) 0 ) - { - #if ( configUSE_MUTEXES == 1 ) - { - if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) - { - /* The mutex is no longer being held. */ - vTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); - pxQueue->pxMutexHolder = NULL; - } - } - #endif - } - else if( xPosition == queueSEND_TO_BACK ) - { - memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize ); - pxQueue->pcWriteTo += pxQueue->uxItemSize; - if( pxQueue->pcWriteTo >= pxQueue->pcTail ) - { - pxQueue->pcWriteTo = pxQueue->pcHead; - } - } - else - { - memcpy( ( void * ) pxQueue->pcReadFrom, pvItemToQueue, ( unsigned ) pxQueue->uxItemSize ); - pxQueue->pcReadFrom -= pxQueue->uxItemSize; - if( pxQueue->pcReadFrom < pxQueue->pcHead ) - { - pxQueue->pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize ); - } - } - - ++( pxQueue->uxMessagesWaiting ); -} -/*-----------------------------------------------------------*/ - -static void prvCopyDataFromQueue( xQUEUE * const pxQueue, const void *pvBuffer ) -{ - if( pxQueue->uxQueueType != queueQUEUE_IS_MUTEX ) - { - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - } -} -/*-----------------------------------------------------------*/ - -static void prvUnlockQueue( xQueueHandle pxQueue ) -{ - /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */ - - /* The lock counts contains the number of extra data items placed or - removed from the queue while the queue was locked. When a queue is - locked items can be added or removed, but the event lists cannot be - updated. */ - taskENTER_CRITICAL(); - { - /* See if data was added to the queue while it was locked. */ - while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED ) - { - /* Data was posted while the queue was locked. Are any tasks - blocked waiting for data to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* Tasks that are removed from the event list will get added to - the pending ready list as the scheduler is still suspended. */ - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The task waiting has a higher priority so record that a - context switch is required. */ - vTaskMissedYield(); - } - - --( pxQueue->xTxLock ); - } - else - { - break; - } - } - - pxQueue->xTxLock = queueUNLOCKED; - } - taskEXIT_CRITICAL(); - - /* Do the same for the Rx lock. */ - taskENTER_CRITICAL(); - { - while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - vTaskMissedYield(); - } - - --( pxQueue->xRxLock ); - } - else - { - break; - } - } - - pxQueue->xRxLock = queueUNLOCKED; - } - taskEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -static signed portBASE_TYPE prvIsQueueEmpty( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - taskENTER_CRITICAL(); - xReturn = ( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ); - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - configASSERT( pxQueue ); - xReturn = ( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -static signed portBASE_TYPE prvIsQueueFull( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - taskENTER_CRITICAL(); - xReturn = ( pxQueue->uxMessagesWaiting == pxQueue->uxLength ); - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue ) -{ -signed portBASE_TYPE xReturn; - - configASSERT( pxQueue ); - xReturn = ( pxQueue->uxMessagesWaiting == pxQueue->uxLength ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait ) -{ -signed portBASE_TYPE xReturn; - - /* If the queue is already full we may have to block. A critical section - is required to prevent an interrupt removing something from the queue - between the check to see if the queue is full and blocking on the queue. */ - portDISABLE_INTERRUPTS(); - { - if( prvIsQueueFull( pxQueue ) ) - { - /* The queue is full - do we want to block or just leave without - posting? */ - if( xTicksToWait > ( portTickType ) 0 ) - { - /* As this is called from a coroutine we cannot block directly, but - return indicating that we need to block. */ - vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToSend ) ); - portENABLE_INTERRUPTS(); - return errQUEUE_BLOCKED; - } - else - { - portENABLE_INTERRUPTS(); - return errQUEUE_FULL; - } - } - } - portENABLE_INTERRUPTS(); - - portNOP(); - - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - /* There is room in the queue, copy the data into the queue. */ - prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); - xReturn = pdPASS; - - /* Were any co-routines waiting for data to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - /* In this instance the co-routine could be placed directly - into the ready list as we are within a critical section. - Instead the same pending ready list mechanism is used as if - the event were caused from within an interrupt. */ - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - /* The co-routine waiting has a higher priority so record - that a yield might be appropriate. */ - xReturn = errQUEUE_YIELD; - } - } - } - else - { - xReturn = errQUEUE_FULL; - } - } - portENABLE_INTERRUPTS(); - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait ) -{ -signed portBASE_TYPE xReturn; - - /* If the queue is already empty we may have to block. A critical section - is required to prevent an interrupt adding something to the queue - between the check to see if the queue is empty and blocking on the queue. */ - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0 ) - { - /* There are no messages in the queue, do we want to block or just - leave with nothing? */ - if( xTicksToWait > ( portTickType ) 0 ) - { - /* As this is a co-routine we cannot block directly, but return - indicating that we need to block. */ - vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToReceive ) ); - portENABLE_INTERRUPTS(); - return errQUEUE_BLOCKED; - } - else - { - portENABLE_INTERRUPTS(); - return errQUEUE_FULL; - } - } - } - portENABLE_INTERRUPTS(); - - portNOP(); - - portDISABLE_INTERRUPTS(); - { - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Data is available from the queue. */ - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - --( pxQueue->uxMessagesWaiting ); - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - - xReturn = pdPASS; - - /* Were any co-routines waiting for space to become available? */ - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - /* In this instance the co-routine could be placed directly - into the ready list as we are within a critical section. - Instead the same pending ready list mechanism is used as if - the event were caused from within an interrupt. */ - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - xReturn = errQUEUE_YIELD; - } - } - } - else - { - xReturn = pdFAIL; - } - } - portENABLE_INTERRUPTS(); - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - - - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRSendFromISR( xQueueHandle pxQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) -{ - /* Cannot block within an ISR so if there is no space on the queue then - exit without doing anything. */ - if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) - { - prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); - - /* We only want to wake one co-routine per ISR, so check that a - co-routine has not already been woken. */ - if( !xCoRoutinePreviouslyWoken ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) - { - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) - { - return pdTRUE; - } - } - } - } - - return xCoRoutinePreviouslyWoken; -} -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_CO_ROUTINES == 1 -signed portBASE_TYPE xQueueCRReceiveFromISR( xQueueHandle pxQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken ) -{ -signed portBASE_TYPE xReturn; - - /* We cannot block from an ISR, so check there is data available. If - not then just leave without doing anything. */ - if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 ) - { - /* Copy the data from the queue. */ - pxQueue->pcReadFrom += pxQueue->uxItemSize; - if( pxQueue->pcReadFrom >= pxQueue->pcTail ) - { - pxQueue->pcReadFrom = pxQueue->pcHead; - } - --( pxQueue->uxMessagesWaiting ); - memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); - - if( !( *pxCoRoutineWoken ) ) - { - if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) - { - if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) - { - *pxCoRoutineWoken = pdTRUE; - } - } - } - - xReturn = pdPASS; - } - else - { - xReturn = pdFAIL; - } - - return xReturn; -} -#endif -/*-----------------------------------------------------------*/ - -#if configQUEUE_REGISTRY_SIZE > 0 - - void vQueueAddToRegistry( xQueueHandle xQueue, signed char *pcQueueName ) - { - unsigned portBASE_TYPE ux; - - /* See if there is an empty space in the registry. A NULL name denotes - a free slot. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < configQUEUE_REGISTRY_SIZE; ux++ ) - { - if( xQueueRegistry[ ux ].pcQueueName == NULL ) - { - /* Store the information on this queue. */ - xQueueRegistry[ ux ].pcQueueName = pcQueueName; - xQueueRegistry[ ux ].xHandle = xQueue; - break; - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if configQUEUE_REGISTRY_SIZE > 0 - - static void vQueueUnregisterQueue( xQueueHandle xQueue ) - { - unsigned portBASE_TYPE ux; - - /* See if the handle of the queue being unregistered in actually in the - registry. */ - for( ux = ( unsigned portBASE_TYPE ) 0U; ux < configQUEUE_REGISTRY_SIZE; ux++ ) - { - if( xQueueRegistry[ ux ].xHandle == xQueue ) - { - /* Set the name to NULL to show that this slot if free again. */ - xQueueRegistry[ ux ].pcQueueName = NULL; - break; - } - } - - } - -#endif -/*-----------------------------------------------------------*/ - -#if configUSE_TIMERS == 1 - - void vQueueWaitForMessageRestricted( xQueueHandle pxQueue, portTickType xTicksToWait ) - { - /* This function should not be called by application code hence the - 'Restricted' in its name. It is not part of the public API. It is - designed for use by kernel code, and has special calling requirements. - It can result in vListInsert() being called on a list that can only - possibly ever have one item in it, so the list will be fast, but even - so it should be called with the scheduler locked and not from a critical - section. */ - - /* Only do anything if there are no messages in the queue. This function - will not actually cause the task to block, just place it on a blocked - list. It will not block until the scheduler is unlocked - at which - time a yield will be performed. If an item is added to the queue while - the queue is locked, and the calling task blocks on the queue, then the - calling task will be immediately unblocked when the queue is unlocked. */ - prvLockQueue( pxQueue ); - if( pxQueue->uxMessagesWaiting == ( unsigned portBASE_TYPE ) 0U ) - { - /* There is nothing in the queue, block for the specified period. */ - vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); - } - prvUnlockQueue( pxQueue ); - } - -#endif - diff --git a/TP1_labyrinth_etu/FreeRTOS_src/readme.txt b/TP1_labyrinth_etu/FreeRTOS_src/readme.txt deleted file mode 100644 index 81518ec..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/readme.txt +++ /dev/null @@ -1,17 +0,0 @@ -Each real time kernel port consists of three files that contain the core kernel -components and are common to every port, and one or more files that are -specific to a particular microcontroller and or compiler. - -+ The FreeRTOS/Source directory contains the three files that are common to -every port - list.c, queue.c and tasks.c. The kernel is contained within these -three files. croutine.c implements the optional co-routine functionality - which -is normally only used on very memory limited systems. - -+ The FreeRTOS/Source/Portable directory contains the files that are specific to -a particular microcontroller and or compiler. - -+ The FreeRTOS/Source/include directory contains the real time kernel header -files. - -See the readme file in the FreeRTOS/Source/Portable directory for more -information. \ No newline at end of file diff --git a/TP1_labyrinth_etu/FreeRTOS_src/tasks.c b/TP1_labyrinth_etu/FreeRTOS_src/tasks.c deleted file mode 100644 index 1d98570..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/tasks.c +++ /dev/null @@ -1,2542 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" -#include "StackMacros.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* - * Macro to define the amount of stack available to the idle task. - */ -#define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE - -/* - * Task control block. A task control block (TCB) is allocated to each task, - * and stores the context of the task. - */ -typedef struct tskTaskControlBlock -{ - volatile portSTACK_TYPE *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE STRUCT. */ - - #if ( portUSING_MPU_WRAPPERS == 1 ) - xMPU_SETTINGS xMPUSettings; /*< The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE STRUCT. */ - #endif - - xListItem xGenericListItem; /*< List item used to place the TCB in ready and blocked queues. */ - xListItem xEventListItem; /*< List item used to place the TCB in event lists. */ - unsigned portBASE_TYPE uxPriority; /*< The priority of the task where 0 is the lowest priority. */ - portSTACK_TYPE *pxStack; /*< Points to the start of the stack. */ - signed char pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */ - - #if ( portSTACK_GROWTH > 0 ) - portSTACK_TYPE *pxEndOfStack; /*< Used for stack overflow checking on architectures where the stack grows up from low memory. */ - #endif - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - unsigned portBASE_TYPE uxCriticalNesting; - #endif - - #if ( configUSE_TRACE_FACILITY == 1 ) - unsigned portBASE_TYPE uxTCBNumber; /*< This is used for tracing the scheduler and making debugging easier only. */ - #endif - #if ( configHEPIA_TRACING == 1 ) - unsigned char task_id; - #endif - #if ( configUSE_MUTEXES == 1 ) - unsigned portBASE_TYPE uxBasePriority; /*< The priority last assigned to the task - used by the priority inheritance mechanism. */ - #endif - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - pdTASK_HOOK_CODE pxTaskTag; - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - unsigned long ulRunTimeCounter; /*< Used for calculating how much CPU time each task is utilising. */ - #endif - -} tskTCB; - -#if ( configHEPIA_TRACING == 1 ) -void write_trace(unsigned char sig_idx, short val); -static unsigned previous_id_in=0xFF; -#endif - -/* - * Some kernel aware debuggers require data to be viewed to be global, rather - * than file scope. - */ -#ifdef portREMOVE_STATIC_QUALIFIER - #define static -#endif - -/*lint -e956 */ -PRIVILEGED_DATA tskTCB * volatile pxCurrentTCB = NULL; - -/* Lists for ready and blocked tasks. --------------------*/ - -PRIVILEGED_DATA static xList pxReadyTasksLists[ configMAX_PRIORITIES ]; /*< Prioritised ready tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList1; /*< Delayed tasks. */ -PRIVILEGED_DATA static xList xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList * volatile pxDelayedTaskList ; /*< Points to the delayed task list currently being used. */ -PRIVILEGED_DATA static xList * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ -PRIVILEGED_DATA static xList xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready queue when the scheduler is resumed. */ - -#if ( INCLUDE_vTaskDelete == 1 ) - - PRIVILEGED_DATA static volatile xList xTasksWaitingTermination; /*< Tasks that have been deleted - but the their memory not yet freed. */ - PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTasksDeleted = ( unsigned portBASE_TYPE ) 0; - -#endif - -#if ( INCLUDE_vTaskSuspend == 1 ) - - PRIVILEGED_DATA static xList xSuspendedTaskList; /*< Tasks that are currently suspended. */ - -#endif - -/* File private variables. --------------------------------*/ -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxCurrentNumberOfTasks = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static volatile portTickType xTickCount = ( portTickType ) 0; -PRIVILEGED_DATA static unsigned portBASE_TYPE uxTopUsedPriority = tskIDLE_PRIORITY; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxTopReadyPriority = tskIDLE_PRIORITY; -PRIVILEGED_DATA static volatile signed portBASE_TYPE xSchedulerRunning = pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxSchedulerSuspended = ( unsigned portBASE_TYPE ) pdFALSE; -PRIVILEGED_DATA static volatile unsigned portBASE_TYPE uxMissedTicks = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static volatile portBASE_TYPE xMissedYield = ( portBASE_TYPE ) pdFALSE; -PRIVILEGED_DATA static volatile portBASE_TYPE xNumOfOverflows = ( portBASE_TYPE ) 0; -PRIVILEGED_DATA static unsigned portBASE_TYPE uxTaskNumber = ( unsigned portBASE_TYPE ) 0; -PRIVILEGED_DATA static portTickType xNextTaskUnblockTime = ( portTickType ) portMAX_DELAY; - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - PRIVILEGED_DATA static char pcStatsString[ 50 ] ; - PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ - static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime ) PRIVILEGED_FUNCTION; - -#endif - -/* Debugging and trace facilities private variables and macros. ------------*/ - -/* - * The value used to fill the stack of a task when the task is created. This - * is used purely for checking the high water mark for tasks. - */ -#define tskSTACK_FILL_BYTE ( 0xa5U ) - -/* - * Macros used by vListTask to indicate which state a task is in. - */ -#define tskBLOCKED_CHAR ( ( signed char ) 'B' ) -#define tskREADY_CHAR ( ( signed char ) 'R' ) -#define tskDELETED_CHAR ( ( signed char ) 'D' ) -#define tskSUSPENDED_CHAR ( ( signed char ) 'S' ) - -/* - * Macros and private variables used by the trace facility. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - #define tskSIZE_OF_EACH_TRACE_LINE ( ( unsigned long ) ( sizeof( unsigned long ) + sizeof( unsigned long ) ) ) - PRIVILEGED_DATA static volatile signed char * volatile pcTraceBuffer; - PRIVILEGED_DATA static signed char *pcTraceBufferStart; - PRIVILEGED_DATA static signed char *pcTraceBufferEnd; - PRIVILEGED_DATA static signed portBASE_TYPE xTracing = pdFALSE; - static unsigned portBASE_TYPE uxPreviousTask = 255U; - PRIVILEGED_DATA static char pcStatusString[ 50 ]; - -#endif - -/*-----------------------------------------------------------*/ - -/* - * Macro that writes a trace of scheduler activity to a buffer. This trace - * shows which task is running when and is very useful as a debugging tool. - * As this macro is called each context switch it is a good idea to undefine - * it if not using the facility. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - #define vWriteTraceToBuffer() \ - { \ - if( xTracing ) \ - { \ - if( uxPreviousTask != pxCurrentTCB->uxTCBNumber ) \ - { \ - if( ( pcTraceBuffer + tskSIZE_OF_EACH_TRACE_LINE ) < pcTraceBufferEnd ) \ - { \ - uxPreviousTask = pxCurrentTCB->uxTCBNumber; \ - *( unsigned long * ) pcTraceBuffer = ( unsigned long ) xTickCount; \ - pcTraceBuffer += sizeof( unsigned long ); \ - *( unsigned long * ) pcTraceBuffer = ( unsigned long ) uxPreviousTask; \ - pcTraceBuffer += sizeof( unsigned long ); \ - } \ - else \ - { \ - xTracing = pdFALSE; \ - } \ - } \ - } \ - } - -#else - - #define vWriteTraceToBuffer() - -#endif -/*-----------------------------------------------------------*/ - -/* - * Place the task represented by pxTCB into the appropriate ready queue for - * the task. It is inserted at the end of the list. One quirk of this is - * that if the task being inserted is at the same priority as the currently - * executing task, then it will only be rescheduled after the currently - * executing task has been rescheduled. - */ -#define prvAddTaskToReadyQueue( pxTCB ) \ - if( ( pxTCB )->uxPriority > uxTopReadyPriority ) \ - { \ - uxTopReadyPriority = ( pxTCB )->uxPriority; \ - } \ - vListInsertEnd( ( xList * ) &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) ) -/*-----------------------------------------------------------*/ - -/* - * Macro that looks at the list of tasks that are currently delayed to see if - * any require waking. - * - * Tasks are stored in the queue in the order of their wake time - meaning - * once one tasks has been found whose timer has not expired we need not look - * any further down the list. - */ -#define prvCheckDelayedTasks() \ -{ \ -portTickType xItemValue; \ - \ - /* Is the tick count greater than or equal to the wake time of the first \ - task referenced from the delayed tasks list? */ \ - if( xTickCount >= xNextTaskUnblockTime ) \ - { \ - for( ;; ) \ - { \ - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) \ - { \ - /* The delayed list is empty. Set xNextTaskUnblockTime to the \ - maximum possible value so it is extremely unlikely that the \ - if( xTickCount >= xNextTaskUnblockTime ) test will pass next \ - time through. */ \ - xNextTaskUnblockTime = portMAX_DELAY; \ - break; \ - } \ - else \ - { \ - /* The delayed list is not empty, get the value of the item at \ - the head of the delayed list. This is the time at which the \ - task at the head of the delayed list should be removed from \ - the Blocked state. */ \ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); \ - xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); \ - \ - if( xTickCount < xItemValue ) \ - { \ - /* It is not time to unblock this item yet, but the item \ - value is the time at which the task at the head of the \ - blocked list should be removed from the Blocked state - \ - so record the item value in xNextTaskUnblockTime. */ \ - xNextTaskUnblockTime = xItemValue; \ - break; \ - } \ - \ - /* It is time to remove the item from the Blocked state. */ \ - vListRemove( &( pxTCB->xGenericListItem ) ); \ - \ - /* Is the task waiting on an event also? */ \ - if( pxTCB->xEventListItem.pvContainer ) \ - { \ - vListRemove( &( pxTCB->xEventListItem ) ); \ - } \ - prvAddTaskToReadyQueue( pxTCB ); \ - } \ - } \ - } \ -} -/*-----------------------------------------------------------*/ - -/* - * Several functions take an xTaskHandle parameter that can optionally be NULL, - * where NULL is used to indicate that the handle of the currently executing - * task should be used in place of the parameter. This macro simply checks to - * see if the parameter is NULL and returns a pointer to the appropriate TCB. - */ -#define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( tskTCB * ) pxCurrentTCB : ( tskTCB * ) ( pxHandle ) ) - -/* Callback function prototypes. --------------------------*/ -extern void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName ); -extern void vApplicationTickHook( void ); - -/* File private functions. --------------------------------*/ - -/* - * Utility to ready a TCB for a given task. Mainly just copies the parameters - * into the TCB structure. - */ -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; - -/* - * Utility to ready all the lists used by the scheduler. This is called - * automatically upon the creation of the first task. - */ -static void prvInitialiseTaskLists( void ) PRIVILEGED_FUNCTION; - -/* - * The idle task, which as all tasks is implemented as a never ending loop. - * The idle task is automatically created and added to the ready lists upon - * creation of the first user task. - * - * The portTASK_FUNCTION_PROTO() macro is used to allow port/compiler specific - * language extensions. The equivalent prototype for this function is: - * - * void prvIdleTask( void *pvParameters ); - * - */ -static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ); - -/* - * Utility to free all memory allocated by the scheduler to hold a TCB, - * including the stack pointed to by the TCB. - * - * This does not free memory allocated by the task itself (i.e. memory - * allocated by calls to pvPortMalloc from within the tasks application code). - */ -#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) ) - - static void prvDeleteTCB( tskTCB *pxTCB ) PRIVILEGED_FUNCTION; - -#endif - -/* - * Used only by the idle task. This checks to see if anything has been placed - * in the list of tasks waiting to be deleted. If so the task is cleaned up - * and its TCB deleted. - */ -static void prvCheckTasksWaitingTermination( void ) PRIVILEGED_FUNCTION; - -/* - * The currently executing task is entering the Blocked state. Add the task to - * either the current or the overflow delayed task list. - */ -static void prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) PRIVILEGED_FUNCTION; - -/* - * Allocates memory from the heap for a TCB and associated stack. Checks the - * allocation was successful. - */ -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) PRIVILEGED_FUNCTION; - -/* - * Called from vTaskList. vListTasks details all the tasks currently under - * control of the scheduler. The tasks may be in one of a number of lists. - * prvListTaskWithinSingleList accepts a list and details the tasks from - * within just that list. - * - * THIS FUNCTION IS INTENDED FOR DEBUGGING ONLY, AND SHOULD NOT BE CALLED FROM - * NORMAL APPLICATION CODE. - */ -#if ( configUSE_TRACE_FACILITY == 1 ) - - static void prvListTaskWithinSingleList( const signed char *pcWriteBuffer, xList *pxList, signed char cStatus ) PRIVILEGED_FUNCTION; - -#endif - -/* - * When a task is created, the stack of the task is filled with a known value. - * This function determines the 'high water mark' of the task stack by - * determining how much of the stack remains at the original preset value. - */ -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - - static unsigned short usTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) PRIVILEGED_FUNCTION; - -#endif - - -/*lint +e956 */ - - - -/*----------------------------------------------------------- - * TASK CREATION API documented in task.h - *----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask, portSTACK_TYPE *puxStackBuffer, const xMemoryRegion * const xRegions ) -{ -signed portBASE_TYPE xReturn; -tskTCB * pxNewTCB; - - configASSERT( pxTaskCode ); - configASSERT( ( uxPriority < configMAX_PRIORITIES ) ); - - /* Allocate the memory required by the TCB and stack for the new task, - checking that the allocation was successful. */ - pxNewTCB = prvAllocateTCBAndStack( usStackDepth, puxStackBuffer ); - - if( pxNewTCB != NULL ) - { - portSTACK_TYPE *pxTopOfStack; - - #if( portUSING_MPU_WRAPPERS == 1 ) - /* Should the task be created in privileged mode? */ - portBASE_TYPE xRunPrivileged; - if( ( uxPriority & portPRIVILEGE_BIT ) != 0x00 ) - { - xRunPrivileged = pdTRUE; - } - else - { - xRunPrivileged = pdFALSE; - } - uxPriority &= ~portPRIVILEGE_BIT; - #endif /* portUSING_MPU_WRAPPERS == 1 */ - - /* Calculate the top of stack address. This depends on whether the - stack grows from high memory to low (as per the 80x86) or visa versa. - portSTACK_GROWTH is used to make the result positive or negative as - required by the port. */ - #if( portSTACK_GROWTH < 0 ) - { - pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - ( unsigned short ) 1 ); - pxTopOfStack = ( portSTACK_TYPE * ) ( ( ( unsigned long ) pxTopOfStack ) & ( ( unsigned long ) ~portBYTE_ALIGNMENT_MASK ) ); - - /* Check the alignment of the calculated top of stack is correct. */ - configASSERT( ( ( ( unsigned long ) pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - } - #else - { - pxTopOfStack = pxNewTCB->pxStack; - - /* Check the alignment of the stack buffer is correct. */ - configASSERT( ( ( ( unsigned long ) pxNewTCB->pxStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - - /* If we want to use stack checking on architectures that use - a positive stack growth direction then we also need to store the - other extreme of the stack space. */ - pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 ); - } - #endif - - /* Setup the newly allocated TCB with the initial state of the task. */ - prvInitialiseTCBVariables( pxNewTCB, pcName, uxPriority, xRegions, usStackDepth ); - - /* Initialize the TCB stack to look as if the task was already running, - but had been interrupted by the scheduler. The return address is set - to the start of the task function. Once the stack has been initialised - the top of stack variable is updated. */ - #if( portUSING_MPU_WRAPPERS == 1 ) - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); - } - #else - { - pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); - } - #endif - - /* Check the alignment of the initialised stack. */ - configASSERT( ( ( ( unsigned long ) pxNewTCB->pxTopOfStack & ( unsigned long ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); - - if( ( void * ) pxCreatedTask != NULL ) - { - /* Pass the TCB out - in an anonymous way. The calling function/ - task can use this as a handle to delete the task later if - required.*/ - *pxCreatedTask = ( xTaskHandle ) pxNewTCB; - } - - /* We are going to manipulate the task queues to add this task to a - ready list, so must make sure no interrupts occur. */ - taskENTER_CRITICAL(); - { - uxCurrentNumberOfTasks++; - if( pxCurrentTCB == NULL ) - { - /* There are no other tasks, or all the other tasks are in - the suspended state - make this the current task. */ - pxCurrentTCB = pxNewTCB; - - if( uxCurrentNumberOfTasks == ( unsigned portBASE_TYPE ) 1 ) - { - /* This is the first task to be created so do the preliminary - initialisation required. We will not recover if this call - fails, but we will report the failure. */ - prvInitialiseTaskLists(); - } - } - else - { - /* If the scheduler is not already running, make this task the - current task if it is the highest priority task to be created - so far. */ - if( xSchedulerRunning == pdFALSE ) - { - if( pxCurrentTCB->uxPriority <= uxPriority ) - { - pxCurrentTCB = pxNewTCB; - } - } - } - - /* Remember the top priority to make context switching faster. Use - the priority in pxNewTCB as this has been capped to a valid value. */ - if( pxNewTCB->uxPriority > uxTopUsedPriority ) - { - uxTopUsedPriority = pxNewTCB->uxPriority; - } - - #if ( configUSE_TRACE_FACILITY == 1 ) - { - /* Add a counter into the TCB for tracing only. */ - pxNewTCB->uxTCBNumber = uxTaskNumber; - } - #endif - #if ( configHEPIA_TRACING == 1 ) - { - pxNewTCB->task_id = (unsigned char)uxTaskNumber; - } - #endif - uxTaskNumber++; - - prvAddTaskToReadyQueue( pxNewTCB ); - - xReturn = pdPASS; - traceTASK_CREATE( pxNewTCB ); - } - taskEXIT_CRITICAL(); - } - else - { - xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; - traceTASK_CREATE_FAILED(); - } - - if( xReturn == pdPASS ) - { - if( xSchedulerRunning != pdFALSE ) - { - /* If the created task is of a higher priority than the current task - then it should run now. */ - if( pxCurrentTCB->uxPriority < uxPriority ) - { - portYIELD_WITHIN_API(); - } - } - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelete == 1 ) - - void vTaskDelete( xTaskHandle pxTaskToDelete ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - /* Ensure a yield is performed if the current task is being - deleted. */ - if( pxTaskToDelete == pxCurrentTCB ) - { - pxTaskToDelete = NULL; - } - - /* If null is passed in here then we are deleting ourselves. */ - pxTCB = prvGetTCBFromHandle( pxTaskToDelete ); - - /* Remove task from the ready list and place in the termination list. - This will stop the task from be scheduled. The idle task will check - the termination list and free up any memory allocated by the - scheduler for the TCB and stack. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Is the task waiting on an event also? */ - if( pxTCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxTCB->xEventListItem ) ); - } - - vListInsertEnd( ( xList * ) &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) ); - - /* Increment the ucTasksDeleted variable so the idle task knows - there is a task that has been deleted and that it should therefore - check the xTasksWaitingTermination list. */ - ++uxTasksDeleted; - - /* Increment the uxTaskNumberVariable also so kernel aware debuggers - can detect that the task lists need re-generating. */ - uxTaskNumber++; - - traceTASK_DELETE( pxTCB ); - } - taskEXIT_CRITICAL(); - - /* Force a reschedule if we have just deleted the current task. */ - if( xSchedulerRunning != pdFALSE ) - { - if( ( void * ) pxTaskToDelete == NULL ) - { - portYIELD_WITHIN_API(); - } - } - } - -#endif - - - - - - -/*----------------------------------------------------------- - * TASK CONTROL API documented in task.h - *----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelayUntil == 1 ) - - void vTaskDelayUntil( portTickType * const pxPreviousWakeTime, portTickType xTimeIncrement ) - { - portTickType xTimeToWake; - portBASE_TYPE xAlreadyYielded, xShouldDelay = pdFALSE; - - configASSERT( pxPreviousWakeTime ); - configASSERT( ( xTimeIncrement > 0 ) ); - - vTaskSuspendAll(); - { - /* Generate the tick time at which the task wants to wake. */ - xTimeToWake = *pxPreviousWakeTime + xTimeIncrement; - - if( xTickCount < *pxPreviousWakeTime ) - { - /* The tick count has overflowed since this function was - lasted called. In this case the only time we should ever - actually delay is if the wake time has also overflowed, - and the wake time is greater than the tick time. When this - is the case it is as if neither time had overflowed. */ - if( ( xTimeToWake < *pxPreviousWakeTime ) && ( xTimeToWake > xTickCount ) ) - { - xShouldDelay = pdTRUE; - } - } - else - { - /* The tick time has not overflowed. In this case we will - delay if either the wake time has overflowed, and/or the - tick time is less than the wake time. */ - if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xTickCount ) ) - { - xShouldDelay = pdTRUE; - } - } - - /* Update the wake time ready for the next call. */ - *pxPreviousWakeTime = xTimeToWake; - - if( xShouldDelay != pdFALSE ) - { - traceTASK_DELAY_UNTIL(); - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - } - xAlreadyYielded = xTaskResumeAll(); - - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( !xAlreadyYielded ) - { - portYIELD_WITHIN_API(); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskDelay == 1 ) - - void vTaskDelay( portTickType xTicksToDelay ) - { - portTickType xTimeToWake; - signed portBASE_TYPE xAlreadyYielded = pdFALSE; - - /* A delay time of zero just forces a reschedule. */ - if( xTicksToDelay > ( portTickType ) 0 ) - { - vTaskSuspendAll(); - { - traceTASK_DELAY(); - - /* A task that is removed from the event list while the - scheduler is suspended will not get placed in the ready - list or removed from the blocked list until the scheduler - is resumed. - - This task cannot be in an event list as it is the currently - executing task. */ - - /* Calculate the time to wake - this may overflow but this is - not a problem. */ - xTimeToWake = xTickCount + xTicksToDelay; - - /* We must remove ourselves from the ready list before adding - ourselves to the blocked list as the same list item is used for - both lists. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - xAlreadyYielded = xTaskResumeAll(); - } - - /* Force a reschedule if xTaskResumeAll has not already done so, we may - have put ourselves to sleep. */ - if( !xAlreadyYielded ) - { - portYIELD_WITHIN_API(); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_uxTaskPriorityGet == 1 ) - - unsigned portBASE_TYPE uxTaskPriorityGet( xTaskHandle pxTask ) - { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxReturn; - - taskENTER_CRITICAL(); - { - /* If null is passed in here then we are changing the - priority of the calling function. */ - pxTCB = prvGetTCBFromHandle( pxTask ); - uxReturn = pxTCB->uxPriority; - } - taskEXIT_CRITICAL(); - - return uxReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskPrioritySet == 1 ) - - void vTaskPrioritySet( xTaskHandle pxTask, unsigned portBASE_TYPE uxNewPriority ) - { - tskTCB *pxTCB; - unsigned portBASE_TYPE uxCurrentPriority; - portBASE_TYPE xYieldRequired = pdFALSE; - - configASSERT( ( uxNewPriority < configMAX_PRIORITIES ) ); - - /* Ensure the new priority is valid. */ - if( uxNewPriority >= configMAX_PRIORITIES ) - { - uxNewPriority = configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; - } - - taskENTER_CRITICAL(); - { - if( pxTask == pxCurrentTCB ) - { - pxTask = NULL; - } - - /* If null is passed in here then we are changing the - priority of the calling function. */ - pxTCB = prvGetTCBFromHandle( pxTask ); - - traceTASK_PRIORITY_SET( pxTask, uxNewPriority ); - - #if ( configUSE_MUTEXES == 1 ) - { - uxCurrentPriority = pxTCB->uxBasePriority; - } - #else - { - uxCurrentPriority = pxTCB->uxPriority; - } - #endif - - if( uxCurrentPriority != uxNewPriority ) - { - /* The priority change may have readied a task of higher - priority than the calling task. */ - if( uxNewPriority > uxCurrentPriority ) - { - if( pxTask != NULL ) - { - /* The priority of another task is being raised. If we - were raising the priority of the currently running task - there would be no need to switch as it must have already - been the highest priority task. */ - xYieldRequired = pdTRUE; - } - } - else if( pxTask == NULL ) - { - /* Setting our own priority down means there may now be another - task of higher priority that is ready to execute. */ - xYieldRequired = pdTRUE; - } - - - - #if ( configUSE_MUTEXES == 1 ) - { - /* Only change the priority being used if the task is not - currently using an inherited priority. */ - if( pxTCB->uxBasePriority == pxTCB->uxPriority ) - { - pxTCB->uxPriority = uxNewPriority; - } - - /* The base priority gets set whatever. */ - pxTCB->uxBasePriority = uxNewPriority; - } - #else - { - pxTCB->uxPriority = uxNewPriority; - } - #endif - - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( configMAX_PRIORITIES - ( portTickType ) uxNewPriority ) ); - - /* If the task is in the blocked or suspended list we need do - nothing more than change it's priority variable. However, if - the task is in a ready list it needs to be removed and placed - in the queue appropriate to its new priority. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxCurrentPriority ] ), &( pxTCB->xGenericListItem ) ) ) - { - /* The task is currently in its ready list - remove before adding - it to it's new ready list. As we are in a critical section we - can do this even if the scheduler is suspended. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - } - - if( xYieldRequired == pdTRUE ) - { - portYIELD_WITHIN_API(); - } - } - } - taskEXIT_CRITICAL(); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - void vTaskSuspend( xTaskHandle pxTaskToSuspend ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - /* Ensure a yield is performed if the current task is being - suspended. */ - if( pxTaskToSuspend == pxCurrentTCB ) - { - pxTaskToSuspend = NULL; - } - - /* If null is passed in here then we are suspending ourselves. */ - pxTCB = prvGetTCBFromHandle( pxTaskToSuspend ); - - traceTASK_SUSPEND( pxTCB ); - - /* Remove task from the ready/delayed list and place in the suspended list. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Is the task waiting on an event also? */ - if( pxTCB->xEventListItem.pvContainer ) - { - vListRemove( &( pxTCB->xEventListItem ) ); - } - - vListInsertEnd( ( xList * ) &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ); - } - taskEXIT_CRITICAL(); - - if( ( void * ) pxTaskToSuspend == NULL ) - { - if( xSchedulerRunning != pdFALSE ) - { - /* We have just suspended the current task. */ - portYIELD_WITHIN_API(); - } - else - { - /* The scheduler is not running, but the task that was pointed - to by pxCurrentTCB has just been suspended and pxCurrentTCB - must be adjusted to point to a different task. */ - if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == uxCurrentNumberOfTasks ) - { - /* No other tasks are ready, so set pxCurrentTCB back to - NULL so when the next task is created pxCurrentTCB will - be set to point to it no matter what its relative priority - is. */ - pxCurrentTCB = NULL; - } - else - { - vTaskSwitchContext(); - } - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - signed portBASE_TYPE xTaskIsTaskSuspended( xTaskHandle xTask ) - { - portBASE_TYPE xReturn = pdFALSE; - const tskTCB * const pxTCB = ( tskTCB * ) xTask; - - /* It does not make sense to check if the calling task is suspended. */ - configASSERT( xTask ); - - /* Is the task we are attempting to resume actually in the - suspended list? */ - if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ) != pdFALSE ) - { - /* Has the task already been resumed from within an ISR? */ - if( listIS_CONTAINED_WITHIN( &xPendingReadyList, &( pxTCB->xEventListItem ) ) != pdTRUE ) - { - /* Is it in the suspended list because it is in the - Suspended state? It is possible to be in the suspended - list because it is blocked on a task with no timeout - specified. */ - if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) == pdTRUE ) - { - xReturn = pdTRUE; - } - } - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_vTaskSuspend == 1 ) - - void vTaskResume( xTaskHandle pxTaskToResume ) - { - tskTCB *pxTCB; - - /* It does not make sense to resume the calling task. */ - configASSERT( pxTaskToResume ); - - /* Remove the task from whichever list it is currently in, and place - it in the ready list. */ - pxTCB = ( tskTCB * ) pxTaskToResume; - - /* The parameter cannot be NULL as it is impossible to resume the - currently executing task. */ - if( ( pxTCB != NULL ) && ( pxTCB != pxCurrentTCB ) ) - { - taskENTER_CRITICAL(); - { - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) - { - traceTASK_RESUME( pxTCB ); - - /* As we are in a critical section we can access the ready - lists even if the scheduler is suspended. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - - /* We may have just resumed a higher priority task. */ - if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - /* This yield may not cause the task just resumed to run, but - will leave the lists in the correct state for the next yield. */ - portYIELD_WITHIN_API(); - } - } - } - taskEXIT_CRITICAL(); - } - } - -#endif - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) - - portBASE_TYPE xTaskResumeFromISR( xTaskHandle pxTaskToResume ) - { - portBASE_TYPE xYieldRequired = pdFALSE; - tskTCB *pxTCB; - - configASSERT( pxTaskToResume ); - - pxTCB = ( tskTCB * ) pxTaskToResume; - - if( xTaskIsTaskSuspended( pxTCB ) == pdTRUE ) - { - traceTASK_RESUME_FROM_ISR( pxTCB ); - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - xYieldRequired = ( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ); - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - } - else - { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed, at which point a - yield will be performed if necessary. */ - vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); - } - } - - return xYieldRequired; - } - -#endif - - - - -/*----------------------------------------------------------- - * PUBLIC SCHEDULER CONTROL documented in task.h - *----------------------------------------------------------*/ - - -void vTaskStartScheduler( void ) -{ -portBASE_TYPE xReturn; - - /* Add the idle task at the lowest priority. */ - xReturn = xTaskCreate( prvIdleTask, ( signed char * ) "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), ( xTaskHandle * ) NULL ); - - #if ( configUSE_TIMERS == 1 ) - { - if( xReturn == pdPASS ) - { - xReturn = xTimerCreateTimerTask(); - } - } - #endif - - if( xReturn == pdPASS ) - { - /* Interrupts are turned off here, to ensure a tick does not occur - before or during the call to xPortStartScheduler(). The stacks of - the created tasks contain a status word with interrupts switched on - so interrupts will automatically get re-enabled when the first task - starts to run. - - STEPPING THROUGH HERE USING A DEBUGGER CAN CAUSE BIG PROBLEMS IF THE - DEBUGGER ALLOWS INTERRUPTS TO BE PROCESSED. */ - portDISABLE_INTERRUPTS(); - - xSchedulerRunning = pdTRUE; - xTickCount = ( portTickType ) 0; - - /* If configGENERATE_RUN_TIME_STATS is defined then the following - macro must be defined to configure the timer/counter used to generate - the run time counter time base. */ - portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(); - - /* Setting up the timer tick is hardware specific and thus in the - portable interface. */ - if( xPortStartScheduler() ) - { - /* Should not reach here as if the scheduler is running the - function will not return. */ - } - else - { - /* Should only reach here if a task calls xTaskEndScheduler(). */ - } - } - - /* This line will only be reached if the kernel could not be started. */ - configASSERT( xReturn ); -} -/*-----------------------------------------------------------*/ - -void vTaskEndScheduler( void ) -{ - /* Stop the scheduler interrupts and call the portable scheduler end - routine so the original ISRs can be restored if necessary. The port - layer must ensure interrupts enable bit is left in the correct state. */ - portDISABLE_INTERRUPTS(); - xSchedulerRunning = pdFALSE; - vPortEndScheduler(); -} -/*----------------------------------------------------------*/ - -void vTaskSuspendAll( void ) -{ - /* A critical section is not required as the variable is of type - portBASE_TYPE. */ - ++uxSchedulerSuspended; -} -/*----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskResumeAll( void ) -{ -register tskTCB *pxTCB; -signed portBASE_TYPE xAlreadyYielded = pdFALSE; - - /* If uxSchedulerSuspended is zero then this function does not match a - previous call to vTaskSuspendAll(). */ - configASSERT( uxSchedulerSuspended ); - - /* It is possible that an ISR caused a task to be removed from an event - list while the scheduler was suspended. If this was the case then the - removed task will have been added to the xPendingReadyList. Once the - scheduler has been resumed it is safe to move all the pending ready - tasks from this list into their appropriate ready list. */ - taskENTER_CRITICAL(); - { - --uxSchedulerSuspended; - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - if( uxCurrentNumberOfTasks > ( unsigned portBASE_TYPE ) 0 ) - { - portBASE_TYPE xYieldRequired = pdFALSE; - - /* Move any readied tasks from the pending list into the - appropriate ready list. */ - while( listLIST_IS_EMPTY( ( xList * ) &xPendingReadyList ) == pdFALSE ) - { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xPendingReadyList ) ); - vListRemove( &( pxTCB->xEventListItem ) ); - vListRemove( &( pxTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxTCB ); - - /* If we have moved a task that has a priority higher than - the current task then we should yield. */ - if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - xYieldRequired = pdTRUE; - } - } - - /* If any ticks occurred while the scheduler was suspended then - they should be processed now. This ensures the tick count does not - slip, and that any delayed tasks are resumed at the correct time. */ - if( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 ) - { - while( uxMissedTicks > ( unsigned portBASE_TYPE ) 0 ) - { - vTaskIncrementTick(); - --uxMissedTicks; - } - - /* As we have processed some ticks it is appropriate to yield - to ensure the highest priority task that is ready to run is - the task actually running. */ - #if configUSE_PREEMPTION == 1 - { - xYieldRequired = pdTRUE; - } - #endif - } - - if( ( xYieldRequired == pdTRUE ) || ( xMissedYield == pdTRUE ) ) - { - xAlreadyYielded = pdTRUE; - xMissedYield = pdFALSE; - portYIELD_WITHIN_API(); - } - } - } - } - taskEXIT_CRITICAL(); - - return xAlreadyYielded; -} - - - - - - -/*----------------------------------------------------------- - * PUBLIC TASK UTILITIES documented in task.h - *----------------------------------------------------------*/ - - - -portTickType xTaskGetTickCount( void ) -{ -portTickType xTicks; - - /* Critical section required if running on a 16 bit processor. */ - taskENTER_CRITICAL(); - { - xTicks = xTickCount; - } - taskEXIT_CRITICAL(); - - return xTicks; -} -/*-----------------------------------------------------------*/ - -portTickType xTaskGetTickCountFromISR( void ) -{ -portTickType xReturn; -unsigned portBASE_TYPE uxSavedInterruptStatus; - - uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); - xReturn = xTickCount; - portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) -{ - /* A critical section is not required because the variables are of type - portBASE_TYPE. */ - return uxCurrentNumberOfTasks; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - void vTaskList( signed char *pcWriteBuffer ) - { - unsigned portBASE_TYPE uxQueue; - - /* This is a VERY costly function that should be used for debug only. - It leaves interrupts disabled for a LONG time. */ - - vTaskSuspendAll(); - { - /* Run through all the lists that could potentially contain a TCB and - report the task name, state and stack high water mark. */ - - *pcWriteBuffer = ( signed char ) 0x00; - strcat( ( char * ) pcWriteBuffer, ( const char * ) "\r\n" ); - - uxQueue = uxTopUsedPriority + ( unsigned portBASE_TYPE ) 1U; - - do - { - uxQueue--; - - if( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxQueue ] ) ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &( pxReadyTasksLists[ uxQueue ] ), tskREADY_CHAR ); - } - }while( uxQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxDelayedTaskList, tskBLOCKED_CHAR ); - } - - if( listLIST_IS_EMPTY( pxOverflowDelayedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) pxOverflowDelayedTaskList, tskBLOCKED_CHAR ); - } - - #if( INCLUDE_vTaskDelete == 1 ) - { - if( listLIST_IS_EMPTY( &xTasksWaitingTermination ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xTasksWaitingTermination, tskDELETED_CHAR ); - } - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - prvListTaskWithinSingleList( pcWriteBuffer, ( xList * ) &xSuspendedTaskList, tskSUSPENDED_CHAR ); - } - } - #endif - } - xTaskResumeAll(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - void vTaskGetRunTimeStats( signed char *pcWriteBuffer ) - { - unsigned portBASE_TYPE uxQueue; - unsigned long ulTotalRunTime; - - /* This is a VERY costly function that should be used for debug only. - It leaves interrupts disabled for a LONG time. */ - - vTaskSuspendAll(); - { - #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE - portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime ); - #else - ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); - #endif - - /* Divide ulTotalRunTime by 100 to make the percentage caluclations - simpler in the prvGenerateRunTimeStatsForTasksInList() function. */ - ulTotalRunTime /= 100UL; - - /* Run through all the lists that could potentially contain a TCB, - generating a table of run timer percentages in the provided - buffer. */ - - *pcWriteBuffer = ( signed char ) 0x00; - strcat( ( char * ) pcWriteBuffer, ( const char * ) "\r\n" ); - - uxQueue = uxTopUsedPriority + ( unsigned portBASE_TYPE ) 1U; - - do - { - uxQueue--; - - if( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxQueue ] ) ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &( pxReadyTasksLists[ uxQueue ] ), ulTotalRunTime ); - } - }while( uxQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) pxDelayedTaskList, ulTotalRunTime ); - } - - if( listLIST_IS_EMPTY( pxOverflowDelayedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) pxOverflowDelayedTaskList, ulTotalRunTime ); - } - - #if ( INCLUDE_vTaskDelete == 1 ) - { - if( listLIST_IS_EMPTY( &xTasksWaitingTermination ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &xTasksWaitingTermination, ulTotalRunTime ); - } - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - prvGenerateRunTimeStatsForTasksInList( pcWriteBuffer, ( xList * ) &xSuspendedTaskList, ulTotalRunTime ); - } - } - #endif - } - xTaskResumeAll(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - void vTaskStartTrace( signed char * pcBuffer, unsigned long ulBufferSize ) - { - configASSERT( pcBuffer ); - configASSERT( ulBufferSize ); - - taskENTER_CRITICAL(); - { - pcTraceBuffer = ( signed char * )pcBuffer; - pcTraceBufferStart = pcBuffer; - pcTraceBufferEnd = pcBuffer + ( ulBufferSize - tskSIZE_OF_EACH_TRACE_LINE ); - xTracing = pdTRUE; - } - taskEXIT_CRITICAL(); - } - -#endif -/*----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - unsigned long ulTaskEndTrace( void ) - { - unsigned long ulBufferLength; - - taskENTER_CRITICAL(); - xTracing = pdFALSE; - taskEXIT_CRITICAL(); - - ulBufferLength = ( unsigned long ) ( pcTraceBuffer - pcTraceBufferStart ); - - return ulBufferLength; - } - -#endif - - - -/*----------------------------------------------------------- - * SCHEDULER INTERNALS AVAILABLE FOR PORTING PURPOSES - * documented in task.h - *----------------------------------------------------------*/ - - -void vTaskIncrementTick( void ) -{ -tskTCB * pxTCB; - - /* Called by the portable layer each time a tick interrupt occurs. - Increments the tick then checks to see if the new tick value will cause any - tasks to be unblocked. */ - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - ++xTickCount; - if( xTickCount == ( portTickType ) 0 ) - { - xList *pxTemp; - - /* Tick count has overflowed so we need to swap the delay lists. - If there are any items in pxDelayedTaskList here then there is - an error! */ - configASSERT( ( listLIST_IS_EMPTY( pxDelayedTaskList ) ) ); - - pxTemp = pxDelayedTaskList; - pxDelayedTaskList = pxOverflowDelayedTaskList; - pxOverflowDelayedTaskList = pxTemp; - xNumOfOverflows++; - - if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) - { - /* The new current delayed list is empty. Set - xNextTaskUnblockTime to the maximum possible value so it is - extremely unlikely that the - if( xTickCount >= xNextTaskUnblockTime ) test will pass until - there is an item in the delayed list. */ - xNextTaskUnblockTime = portMAX_DELAY; - } - else - { - /* The new current delayed list is not empty, get the value of - the item at the head of the delayed list. This is the time at - which the task at the head of the delayed list should be removed - from the Blocked state. */ - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); - xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); - } - } - - /* See if this tick has made a timeout expire. */ - prvCheckDelayedTasks(); - } - else - { - ++uxMissedTicks; - - /* The tick hook gets called at regular intervals, even if the - scheduler is locked. */ - #if ( configUSE_TICK_HOOK == 1 ) - { - vApplicationTickHook(); - } - #endif - } - - #if ( configUSE_TICK_HOOK == 1 ) - { - /* Guard against the tick hook being called when the missed tick - count is being unwound (when the scheduler is being unlocked. */ - if( uxMissedTicks == ( unsigned portBASE_TYPE ) 0U ) - { - vApplicationTickHook(); - } - } - #endif - - traceTASK_INCREMENT_TICK( xTickCount ); -} -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_vTaskCleanUpResources == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) - - void vTaskCleanUpResources( void ) - { - unsigned short usQueue; - volatile tskTCB *pxTCB; - - usQueue = ( unsigned short ) uxTopUsedPriority + ( unsigned short ) 1; - - /* Remove any TCB's from the ready queues. */ - do - { - usQueue--; - - while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ usQueue ] ) ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &( pxReadyTasksLists[ usQueue ] ) ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - }while( usQueue > ( unsigned short ) tskIDLE_PRIORITY ); - - /* Remove any TCB's from the delayed queue. */ - while( listLIST_IS_EMPTY( &xDelayedTaskList1 ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList1 ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - - /* Remove any TCB's from the overflow delayed queue. */ - while( listLIST_IS_EMPTY( &xDelayedTaskList2 ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xDelayedTaskList2 ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - - while( listLIST_IS_EMPTY( &xSuspendedTaskList ) == pdFALSE ) - { - listGET_OWNER_OF_NEXT_ENTRY( pxTCB, &xSuspendedTaskList ); - vListRemove( ( xListItem * ) &( pxTCB->xGenericListItem ) ); - - prvDeleteTCB( ( tskTCB * ) pxTCB ); - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - void vTaskSetApplicationTaskTag( xTaskHandle xTask, pdTASK_HOOK_CODE pxHookFunction ) - { - tskTCB *xTCB; - - /* If xTask is NULL then we are setting our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - /* Save the hook function in the TCB. A critical section is required as - the value can be accessed from an interrupt. */ - taskENTER_CRITICAL(); - xTCB->pxTaskTag = pxHookFunction; - taskEXIT_CRITICAL(); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - pdTASK_HOOK_CODE xTaskGetApplicationTaskTag( xTaskHandle xTask ) - { - tskTCB *xTCB; - pdTASK_HOOK_CODE xReturn; - - /* If xTask is NULL then we are setting our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - /* Save the hook function in the TCB. A critical section is required as - the value can be accessed from an interrupt. */ - taskENTER_CRITICAL(); - xReturn = xTCB->pxTaskTag; - taskEXIT_CRITICAL(); - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_APPLICATION_TASK_TAG == 1 ) - - portBASE_TYPE xTaskCallApplicationTaskHook( xTaskHandle xTask, void *pvParameter ) - { - tskTCB *xTCB; - portBASE_TYPE xReturn; - - /* If xTask is NULL then we are calling our own task hook. */ - if( xTask == NULL ) - { - xTCB = ( tskTCB * ) pxCurrentTCB; - } - else - { - xTCB = ( tskTCB * ) xTask; - } - - if( xTCB->pxTaskTag != NULL ) - { - xReturn = xTCB->pxTaskTag( pvParameter ); - } - else - { - xReturn = pdFAIL; - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -void vTaskSwitchContext( void ) -{ - if( uxSchedulerSuspended != ( unsigned portBASE_TYPE ) pdFALSE ) - { - /* The scheduler is currently suspended - do not allow a context - switch. */ - xMissedYield = pdTRUE; - } - else - { - traceTASK_SWITCHED_OUT(); - //id_out=pxCurrentTCB->task_id; - - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - unsigned long ulTempCounter; - - #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE - portALT_GET_RUN_TIME_COUNTER_VALUE( ulTempCounter ); - #else - ulTempCounter = portGET_RUN_TIME_COUNTER_VALUE(); - #endif - - /* Add the amount of time the task has been running to the accumulated - time so far. The time the task started running was stored in - ulTaskSwitchedInTime. Note that there is no overflow protection here - so count values are only valid until the timer overflows. Generally - this will be about 1 hour assuming a 1uS timer increment. */ - pxCurrentTCB->ulRunTimeCounter += ( ulTempCounter - ulTaskSwitchedInTime ); - ulTaskSwitchedInTime = ulTempCounter; - } - #endif - - taskFIRST_CHECK_FOR_STACK_OVERFLOW(); - taskSECOND_CHECK_FOR_STACK_OVERFLOW(); - - /* Find the highest priority queue that contains ready tasks. */ - while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopReadyPriority ] ) ) ) - { - configASSERT( uxTopReadyPriority ); - --uxTopReadyPriority; - } - - /* listGET_OWNER_OF_NEXT_ENTRY walks through the list, so the tasks of the - same priority get an equal share of the processor time. */ - listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) ); - - traceTASK_SWITCHED_IN(); - /*if (previous_id_in!=pxCurrentTCB->task_id) - { - if (previous_id_in!=0xFF) - write_trace_vcd(previous_id_in, 0); - write_trace_vcd(pxCurrentTCB->task_id, 1); - previous_id_in=pxCurrentTCB->task_id; - }*/ - vWriteTraceToBuffer(); - } -} -/*-----------------------------------------------------------*/ - -void vTaskPlaceOnEventList( const xList * const pxEventList, portTickType xTicksToWait ) -{ -portTickType xTimeToWake; - - configASSERT( pxEventList ); - - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. */ - - /* Place the event list item of the TCB in the appropriate event list. - This is placed in the list in priority order so the highest priority task - is the first to be woken by the event. */ - vListInsert( ( xList * ) pxEventList, ( xListItem * ) &( pxCurrentTCB->xEventListItem ) ); - - /* We must remove ourselves from the ready list before adding ourselves - to the blocked list as the same list item is used for both lists. We have - exclusive access to the ready lists as the scheduler is locked. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - if( xTicksToWait == portMAX_DELAY ) - { - /* Add ourselves to the suspended task list instead of a delayed task - list to ensure we are not woken by a timing event. We will block - indefinitely. */ - vListInsertEnd( ( xList * ) &xSuspendedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - } - #else - { - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - #endif -} -/*-----------------------------------------------------------*/ - -#if configUSE_TIMERS == 1 - - void vTaskPlaceOnEventListRestricted( const xList * const pxEventList, portTickType xTicksToWait ) - { - portTickType xTimeToWake; - - configASSERT( pxEventList ); - - /* This function should not be called by application code hence the - 'Restricted' in its name. It is not part of the public API. It is - designed for use by kernel code, and has special calling requirements - - it should be called from a critical section. */ - - - /* Place the event list item of the TCB in the appropriate event list. - In this case it is assume that this is the only task that is going to - be waiting on this event list, so the faster vListInsertEnd() function - can be used in place of vListInsert. */ - vListInsertEnd( ( xList * ) pxEventList, ( xListItem * ) &( pxCurrentTCB->xEventListItem ) ); - - /* We must remove this task from the ready list before adding it to the - blocked list as the same list item is used for both lists. This - function is called form a critical section. */ - vListRemove( ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - /* Calculate the time at which the task should be woken if the event does - not occur. This may overflow but this doesn't matter. */ - xTimeToWake = xTickCount + xTicksToWait; - prvAddCurrentTaskToDelayedList( xTimeToWake ); - } - -#endif /* configUSE_TIMERS */ -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xTaskRemoveFromEventList( const xList * const pxEventList ) -{ -tskTCB *pxUnblockedTCB; -portBASE_TYPE xReturn; - - /* THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED OR THE - SCHEDULER SUSPENDED. It can also be called from within an ISR. */ - - /* The event list is sorted in priority order, so we can remove the - first in the list, remove the TCB from the delayed list, and add - it to the ready list. - - If an event is for a queue that is locked then this function will never - get called - the lock count on the queue will get modified instead. This - means we can always expect exclusive access to the event list here. - - This function assumes that a check has already been made to ensure that - pxEventList is not empty. */ - pxUnblockedTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); - configASSERT( pxUnblockedTCB ); - vListRemove( &( pxUnblockedTCB->xEventListItem ) ); - - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - vListRemove( &( pxUnblockedTCB->xGenericListItem ) ); - prvAddTaskToReadyQueue( pxUnblockedTCB ); - } - else - { - /* We cannot access the delayed or ready lists, so will hold this - task pending until the scheduler is resumed. */ - vListInsertEnd( ( xList * ) &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); - } - - if( pxUnblockedTCB->uxPriority >= pxCurrentTCB->uxPriority ) - { - /* Return true if the task removed from the event list has - a higher priority than the calling task. This allows - the calling task to know if it should force a context - switch now. */ - xReturn = pdTRUE; - } - else - { - xReturn = pdFALSE; - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vTaskSetTimeOutState( xTimeOutType * const pxTimeOut ) -{ - configASSERT( pxTimeOut ); - pxTimeOut->xOverflowCount = xNumOfOverflows; - pxTimeOut->xTimeOnEntering = xTickCount; -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTaskCheckForTimeOut( xTimeOutType * const pxTimeOut, portTickType * const pxTicksToWait ) -{ -portBASE_TYPE xReturn; - - configASSERT( pxTimeOut ); - configASSERT( pxTicksToWait ); - - taskENTER_CRITICAL(); - { - #if ( INCLUDE_vTaskSuspend == 1 ) - /* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is - the maximum block time then the task should block indefinitely, and - therefore never time out. */ - if( *pxTicksToWait == portMAX_DELAY ) - { - xReturn = pdFALSE; - } - else /* We are not blocking indefinitely, perform the checks below. */ - #endif - - if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( ( portTickType ) xTickCount >= ( portTickType ) pxTimeOut->xTimeOnEntering ) ) - { - /* The tick count is greater than the time at which vTaskSetTimeout() - was called, but has also overflowed since vTaskSetTimeOut() was called. - It must have wrapped all the way around and gone past us again. This - passed since vTaskSetTimeout() was called. */ - xReturn = pdTRUE; - } - else if( ( ( portTickType ) ( ( portTickType ) xTickCount - ( portTickType ) pxTimeOut->xTimeOnEntering ) ) < ( portTickType ) *pxTicksToWait ) - { - /* Not a genuine timeout. Adjust parameters for time remaining. */ - *pxTicksToWait -= ( ( portTickType ) xTickCount - ( portTickType ) pxTimeOut->xTimeOnEntering ); - vTaskSetTimeOutState( pxTimeOut ); - xReturn = pdFALSE; - } - else - { - xReturn = pdTRUE; - } - } - taskEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vTaskMissedYield( void ) -{ - xMissedYield = pdTRUE; -} - -/* - * ----------------------------------------------------------- - * The Idle task. - * ---------------------------------------------------------- - * - * The portTASK_FUNCTION() macro is used to allow port/compiler specific - * language extensions. The equivalent prototype for this function is: - * - * void prvIdleTask( void *pvParameters ); - * - */ -static portTASK_FUNCTION( prvIdleTask, pvParameters ) -{ - /* Stop warnings. */ - ( void ) pvParameters; - - for( ;; ) - { - /* See if any tasks have been deleted. */ - prvCheckTasksWaitingTermination(); - - #if ( configUSE_PREEMPTION == 0 ) - { - /* If we are not using preemption we keep forcing a task switch to - see if any other task has become available. If we are using - preemption we don't need to do this as any task becoming available - will automatically get the processor anyway. */ - taskYIELD(); - } - #endif - - #if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) - { - /* When using preemption tasks of equal priority will be - timesliced. If a task that is sharing the idle priority is ready - to run then the idle task should yield before the end of the - timeslice. - - A critical region is not required here as we are just reading from - the list, and an occasional incorrect value will not matter. If - the ready list at the idle priority contains more than one task - then a task other than the idle task is ready to execute. */ - if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( unsigned portBASE_TYPE ) 1 ) - { - taskYIELD(); - } - } - #endif - - #if ( configUSE_IDLE_HOOK == 1 ) - { - extern void vApplicationIdleHook( void ); - - /* Call the user defined function from within the idle task. This - allows the application designer to add background functionality - without the overhead of a separate task. - NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, - CALL A FUNCTION THAT MIGHT BLOCK. */ - vApplicationIdleHook(); - } - #endif - } -} /*lint !e715 pvParameters is not accessed but all task functions require the same prototype. */ - - - - - - - -/*----------------------------------------------------------- - * File private functions documented at the top of the file. - *----------------------------------------------------------*/ - - - -static void prvInitialiseTCBVariables( tskTCB *pxTCB, const signed char * const pcName, unsigned portBASE_TYPE uxPriority, const xMemoryRegion * const xRegions, unsigned short usStackDepth ) -{ - /* Store the function name in the TCB. */ - #if configMAX_TASK_NAME_LEN > 1 - { - /* Don't bring strncpy into the build unnecessarily. */ - strncpy( ( char * ) pxTCB->pcTaskName, ( const char * ) pcName, ( unsigned short ) configMAX_TASK_NAME_LEN ); - } - #endif - pxTCB->pcTaskName[ ( unsigned short ) configMAX_TASK_NAME_LEN - ( unsigned short ) 1 ] = ( signed char ) '\0'; - - /* This is used as an array index so must ensure it's not too large. First - remove the privilege bit if one is present. */ - if( uxPriority >= configMAX_PRIORITIES ) - { - uxPriority = configMAX_PRIORITIES - ( unsigned portBASE_TYPE ) 1U; - } - - pxTCB->uxPriority = uxPriority; - #if ( configUSE_MUTEXES == 1 ) - { - pxTCB->uxBasePriority = uxPriority; - } - #endif - - vListInitialiseItem( &( pxTCB->xGenericListItem ) ); - vListInitialiseItem( &( pxTCB->xEventListItem ) ); - - /* Set the pxTCB as a link back from the xListItem. This is so we can get - back to the containing TCB from a generic item in a list. */ - listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB ); - - /* Event lists are always in priority order. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) uxPriority ); - listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB ); - - #if ( portCRITICAL_NESTING_IN_TCB == 1 ) - { - pxTCB->uxCriticalNesting = ( unsigned portBASE_TYPE ) 0; - } - #endif - - #if ( configUSE_APPLICATION_TASK_TAG == 1 ) - { - pxTCB->pxTaskTag = NULL; - } - #endif - - #if ( configGENERATE_RUN_TIME_STATS == 1 ) - { - pxTCB->ulRunTimeCounter = 0UL; - } - #endif - - #if ( portUSING_MPU_WRAPPERS == 1 ) - { - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, pxTCB->pxStack, usStackDepth ); - } - #else - { - ( void ) xRegions; - ( void ) usStackDepth; - } - #endif -} -/*-----------------------------------------------------------*/ - -#if ( portUSING_MPU_WRAPPERS == 1 ) - - void vTaskAllocateMPURegions( xTaskHandle xTaskToModify, const xMemoryRegion * const xRegions ) - { - tskTCB *pxTCB; - - if( xTaskToModify == pxCurrentTCB ) - { - xTaskToModify = NULL; - } - - /* If null is passed in here then we are deleting ourselves. */ - pxTCB = prvGetTCBFromHandle( xTaskToModify ); - - vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, NULL, 0 ); - } - /*-----------------------------------------------------------*/ -#endif - -static void prvInitialiseTaskLists( void ) -{ -unsigned portBASE_TYPE uxPriority; - - for( uxPriority = ( unsigned portBASE_TYPE ) 0U; uxPriority < configMAX_PRIORITIES; uxPriority++ ) - { - vListInitialise( ( xList * ) &( pxReadyTasksLists[ uxPriority ] ) ); - } - - vListInitialise( ( xList * ) &xDelayedTaskList1 ); - vListInitialise( ( xList * ) &xDelayedTaskList2 ); - vListInitialise( ( xList * ) &xPendingReadyList ); - - #if ( INCLUDE_vTaskDelete == 1 ) - { - vListInitialise( ( xList * ) &xTasksWaitingTermination ); - } - #endif - - #if ( INCLUDE_vTaskSuspend == 1 ) - { - vListInitialise( ( xList * ) &xSuspendedTaskList ); - } - #endif - - /* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList - using list2. */ - pxDelayedTaskList = &xDelayedTaskList1; - pxOverflowDelayedTaskList = &xDelayedTaskList2; -} -/*-----------------------------------------------------------*/ - -static void prvCheckTasksWaitingTermination( void ) -{ - #if ( INCLUDE_vTaskDelete == 1 ) - { - portBASE_TYPE xListIsEmpty; - - /* ucTasksDeleted is used to prevent vTaskSuspendAll() being called - too often in the idle task. */ - if( uxTasksDeleted > ( unsigned portBASE_TYPE ) 0 ) - { - vTaskSuspendAll(); - xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination ); - xTaskResumeAll(); - - if( xListIsEmpty == pdFALSE ) - { - tskTCB *pxTCB; - - taskENTER_CRITICAL(); - { - pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( ( ( xList * ) &xTasksWaitingTermination ) ); - vListRemove( &( pxTCB->xGenericListItem ) ); - --uxCurrentNumberOfTasks; - --uxTasksDeleted; - } - taskEXIT_CRITICAL(); - - prvDeleteTCB( pxTCB ); - } - } - } - #endif -} -/*-----------------------------------------------------------*/ - -static void prvAddCurrentTaskToDelayedList( portTickType xTimeToWake ) -{ - /* The list item will be inserted in wake time order. */ - listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake ); - - if( xTimeToWake < xTickCount ) - { - /* Wake time has overflowed. Place this item in the overflow list. */ - vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - } - else - { - /* The wake time has not overflowed, so we can use the current block list. */ - vListInsert( ( xList * ) pxDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) ); - - /* If the task entering the blocked state was placed at the head of the - list of blocked tasks then xNextTaskUnblockTime needs to be updated - too. */ - if( xTimeToWake < xNextTaskUnblockTime ) - { - xNextTaskUnblockTime = xTimeToWake; - } - } -} -/*-----------------------------------------------------------*/ - -static tskTCB *prvAllocateTCBAndStack( unsigned short usStackDepth, portSTACK_TYPE *puxStackBuffer ) -{ -tskTCB *pxNewTCB; - - /* Allocate space for the TCB. Where the memory comes from depends on - the implementation of the port malloc function. */ - pxNewTCB = ( tskTCB * ) pvPortMalloc( sizeof( tskTCB ) ); - - if( pxNewTCB != NULL ) - { - /* Allocate space for the stack used by the task being created. - The base of the stack memory stored in the TCB so the task can - be deleted later if required. */ - pxNewTCB->pxStack = ( portSTACK_TYPE * ) pvPortMallocAligned( ( ( ( size_t )usStackDepth ) * sizeof( portSTACK_TYPE ) ), puxStackBuffer ); - - if( pxNewTCB->pxStack == NULL ) - { - /* Could not allocate the stack. Delete the allocated TCB. */ - vPortFree( pxNewTCB ); - pxNewTCB = NULL; - } - else - { - /* Just to help debugging. */ - memset( pxNewTCB->pxStack, tskSTACK_FILL_BYTE, usStackDepth * sizeof( portSTACK_TYPE ) ); - } - } - - return pxNewTCB; -} -/*-----------------------------------------------------------*/ - -#if ( configUSE_TRACE_FACILITY == 1 ) - - static void prvListTaskWithinSingleList( const signed char *pcWriteBuffer, xList *pxList, signed char cStatus ) - { - volatile tskTCB *pxNextTCB, *pxFirstTCB; - unsigned short usStackRemaining; - - /* Write the details of all the TCB's in pxList into the buffer. */ - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); - do - { - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); - #if ( portSTACK_GROWTH > 0 ) - { - usStackRemaining = usTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxEndOfStack ); - } - #else - { - usStackRemaining = usTaskCheckFreeStackSpace( ( unsigned char * ) pxNextTCB->pxStack ); - } - #endif - - sprintf( pcStatusString, ( char * ) "%s\t\t%c\t%u\t%u\t%u\r\n", pxNextTCB->pcTaskName, cStatus, ( unsigned int ) pxNextTCB->uxPriority, usStackRemaining, ( unsigned int ) pxNextTCB->uxTCBNumber ); - strcat( ( char * ) pcWriteBuffer, ( char * ) pcStatusString ); - - } while( pxNextTCB != pxFirstTCB ); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configGENERATE_RUN_TIME_STATS == 1 ) - - static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTime ) - { - volatile tskTCB *pxNextTCB, *pxFirstTCB; - unsigned long ulStatsAsPercentage; - - /* Write the run time stats of all the TCB's in pxList into the buffer. */ - listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); - do - { - /* Get next TCB in from the list. */ - listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); - - /* Divide by zero check. */ - if( ulTotalRunTime > 0UL ) - { - /* Has the task run at all? */ - if( pxNextTCB->ulRunTimeCounter == 0 ) - { - /* The task has used no CPU time at all. */ - sprintf( pcStatsString, ( char * ) "%s\t\t0\t\t0%%\r\n", pxNextTCB->pcTaskName ); - } - else - { - /* What percentage of the total run time has the task used? - This will always be rounded down to the nearest integer. - ulTotalRunTime has already been divided by 100. */ - ulStatsAsPercentage = pxNextTCB->ulRunTimeCounter / ulTotalRunTime; - - if( ulStatsAsPercentage > 0UL ) - { - #ifdef portLU_PRINTF_SPECIFIER_REQUIRED - { - sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter, ulStatsAsPercentage ); - } - #else - { - /* sizeof( int ) == sizeof( long ) so a smaller - printf() library can be used. */ - sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t%u%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); - } - #endif - } - else - { - /* If the percentage is zero here then the task has - consumed less than 1% of the total run time. */ - #ifdef portLU_PRINTF_SPECIFIER_REQUIRED - { - sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter ); - } - #else - { - /* sizeof( int ) == sizeof( long ) so a smaller - printf() library can be used. */ - sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t<1%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter ); - } - #endif - } - } - - strcat( ( char * ) pcWriteBuffer, ( char * ) pcStatsString ); - } - - } while( pxNextTCB != pxFirstTCB ); - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) - - static unsigned short usTaskCheckFreeStackSpace( const unsigned char * pucStackByte ) - { - register unsigned short usCount = 0; - - while( *pucStackByte == tskSTACK_FILL_BYTE ) - { - pucStackByte -= portSTACK_GROWTH; - usCount++; - } - - usCount /= sizeof( portSTACK_TYPE ); - - return usCount; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) - - unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask ) - { - tskTCB *pxTCB; - unsigned char *pcEndOfStack; - unsigned portBASE_TYPE uxReturn; - - pxTCB = prvGetTCBFromHandle( xTask ); - - #if portSTACK_GROWTH < 0 - { - pcEndOfStack = ( unsigned char * ) pxTCB->pxStack; - } - #else - { - pcEndOfStack = ( unsigned char * ) pxTCB->pxEndOfStack; - } - #endif - - uxReturn = ( unsigned portBASE_TYPE ) usTaskCheckFreeStackSpace( pcEndOfStack ); - - return uxReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_vTaskDelete == 1 ) || ( INCLUDE_vTaskCleanUpResources == 1 ) ) - - static void prvDeleteTCB( tskTCB *pxTCB ) - { - /* Free up the memory allocated by the scheduler for the task. It is up to - the task to free any memory allocated at the application level. */ - vPortFreeAligned( pxTCB->pxStack ); - vPortFree( pxTCB ); - } - -#endif - - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) - - xTaskHandle xTaskGetCurrentTaskHandle( void ) - { - xTaskHandle xReturn; - - /* A critical section is not required as this is not called from - an interrupt and the current TCB will always be the same for any - individual execution thread. */ - xReturn = pxCurrentTCB; - - return xReturn; - } - -#endif - -/*-----------------------------------------------------------*/ - -#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) - - portBASE_TYPE xTaskGetSchedulerState( void ) - { - portBASE_TYPE xReturn; - - if( xSchedulerRunning == pdFALSE ) - { - xReturn = taskSCHEDULER_NOT_STARTED; - } - else - { - if( uxSchedulerSuspended == ( unsigned portBASE_TYPE ) pdFALSE ) - { - xReturn = taskSCHEDULER_RUNNING; - } - else - { - xReturn = taskSCHEDULER_SUSPENDED; - } - } - - return xReturn; - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - void vTaskPriorityInherit( xTaskHandle * const pxMutexHolder ) - { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; - - configASSERT( pxMutexHolder ); - - if( pxTCB->uxPriority < pxCurrentTCB->uxPriority ) - { - /* Adjust the mutex holder state to account for its new priority. */ - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxCurrentTCB->uxPriority ); - - /* If the task being modified is in the ready state it will need to - be moved in to a new list. */ - if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) ) - { - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Inherit the priority before being moved into the new list. */ - pxTCB->uxPriority = pxCurrentTCB->uxPriority; - prvAddTaskToReadyQueue( pxTCB ); - } - else - { - /* Just inherit the priority. */ - pxTCB->uxPriority = pxCurrentTCB->uxPriority; - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( configUSE_MUTEXES == 1 ) - - void vTaskPriorityDisinherit( xTaskHandle * const pxMutexHolder ) - { - tskTCB * const pxTCB = ( tskTCB * ) pxMutexHolder; - - if( pxMutexHolder != NULL ) - { - if( pxTCB->uxPriority != pxTCB->uxBasePriority ) - { - /* We must be the running task to be able to give the mutex back. - Remove ourselves from the ready list we currently appear in. */ - vListRemove( &( pxTCB->xGenericListItem ) ); - - /* Disinherit the priority before adding ourselves into the new - ready list. */ - pxTCB->uxPriority = pxTCB->uxBasePriority; - listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), configMAX_PRIORITIES - ( portTickType ) pxTCB->uxPriority ); - prvAddTaskToReadyQueue( pxTCB ); - } - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( portCRITICAL_NESTING_IN_TCB == 1 ) - - void vTaskEnterCritical( void ) - { - portDISABLE_INTERRUPTS(); - - if( xSchedulerRunning != pdFALSE ) - { - ( pxCurrentTCB->uxCriticalNesting )++; - } - } - -#endif -/*-----------------------------------------------------------*/ - -#if ( portCRITICAL_NESTING_IN_TCB == 1 ) - -void vTaskExitCritical( void ) -{ - if( xSchedulerRunning != pdFALSE ) - { - if( pxCurrentTCB->uxCriticalNesting > 0 ) - { - ( pxCurrentTCB->uxCriticalNesting )--; - - if( pxCurrentTCB->uxCriticalNesting == 0 ) - { - portENABLE_INTERRUPTS(); - } - } - } -} - -#endif -/*-----------------------------------------------------------*/ - - - - diff --git a/TP1_labyrinth_etu/FreeRTOS_src/timers.c b/TP1_labyrinth_etu/FreeRTOS_src/timers.c deleted file mode 100644 index 7e5ef22..0000000 --- a/TP1_labyrinth_etu/FreeRTOS_src/timers.c +++ /dev/null @@ -1,649 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - FreeRTOS supports many tools and architectures. V7.0.0 is sponsored by: - Atollic AB - Atollic provides professional embedded systems development - tools for C/C++ development, code analysis and test automation. - See http://www.atollic.com - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -/* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -all the API functions to use the MPU wrappers. That should only be done when -task.h is included from an application file. */ -#define MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "timers.h" - -#undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE - -/* This entire source file will be skipped if the application is not configured -to include software timer functionality. This #if is closed at the very bottom -of this file. If you want to include software timer functionality then ensure -configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -#if ( configUSE_TIMERS == 1 ) - -/* Misc definitions. */ -#define tmrNO_DELAY ( portTickType ) 0U - -/* The definition of the timers themselves. */ -typedef struct tmrTimerControl -{ - const signed char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ - xListItem xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ - portTickType xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ - unsigned portBASE_TYPE uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one shot timer. */ - void *pvTimerID; /*<< An ID to identify the timer. This allows the timer to be identified when the same callback is used for multiple timers. */ - tmrTIMER_CALLBACK pxCallbackFunction; /*<< The function that will be called when the timer expires. */ -} xTIMER; - -/* The definition of messages that can be sent and received on the timer -queue. */ -typedef struct tmrTimerQueueMessage -{ - portBASE_TYPE xMessageID; /*<< The command being sent to the timer service task. */ - portTickType xMessageValue; /*<< An optional value used by a subset of commands, for example, when changing the period of a timer. */ - xTIMER * pxTimer; /*<< The timer to which the command will be applied. */ -} xTIMER_MESSAGE; - - -/* The list in which active timers are stored. Timers are referenced in expire -time order, with the nearest expiry time at the front of the list. Only the -timer service task is allowed to access xActiveTimerList. */ -PRIVILEGED_DATA static xList xActiveTimerList1; -PRIVILEGED_DATA static xList xActiveTimerList2; -PRIVILEGED_DATA static xList *pxCurrentTimerList; -PRIVILEGED_DATA static xList *pxOverflowTimerList; - -/* A queue that is used to send commands to the timer service task. */ -PRIVILEGED_DATA static xQueueHandle xTimerQueue = NULL; - -/*-----------------------------------------------------------*/ - -/* - * Initialise the infrastructure used by the timer service task if it has not - * been initialised already. - */ -static void prvCheckForValidListAndQueue( void ) PRIVILEGED_FUNCTION; - -/* - * The timer service task (daemon). Timer functionality is controlled by this - * task. Other tasks communicate with the timer service task using the - * xTimerQueue queue. - */ -static void prvTimerTask( void *pvParameters ) PRIVILEGED_FUNCTION; - -/* - * Called by the timer service task to interpret and process a command it - * received on the timer queue. - */ -static void prvProcessReceivedCommands( void ) PRIVILEGED_FUNCTION; - -/* - * Insert the timer into either xActiveTimerList1, or xActiveTimerList2, - * depending on if the expire time causes a timer counter overflow. - */ -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) PRIVILEGED_FUNCTION; - -/* - * An active timer has reached its expire time. Reload the timer if it is an - * auto reload timer, then call its callback. - */ -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) PRIVILEGED_FUNCTION; - -/* - * The tick count has overflowed. Switch the timer lists after ensuring the - * current timer list does not still reference some timers. - */ -static void prvSwitchTimerLists( portTickType xLastTime ) PRIVILEGED_FUNCTION; - -/* - * Obtain the current tick count, setting *pxTimerListsWereSwitched to pdTRUE - * if a tick count overflow occurred since prvSampleTimeNow() was last called. - */ -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) PRIVILEGED_FUNCTION; - -/* - * If the timer list contains any active timers then return the expire time of - * the timer that will expire first and set *pxListWasEmpty to false. If the - * timer list does not contain any timers then return 0 and set *pxListWasEmpty - * to pdTRUE. - */ -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) PRIVILEGED_FUNCTION; - -/* - * If a timer has expired, process it. Otherwise, block the timer service task - * until either a timer does expire or a command is received. - */ -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) PRIVILEGED_FUNCTION; - -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerCreateTimerTask( void ) -{ -portBASE_TYPE xReturn = pdFAIL; - - /* This function is called when the scheduler is started if - configUSE_TIMERS is set to 1. Check that the infrastructure used by the - timer service task has been created/initialised. If timers have already - been created then the initialisation will already have been performed. */ - prvCheckForValidListAndQueue(); - - if( xTimerQueue != NULL ) - { - xReturn = xTaskCreate( prvTimerTask, ( const signed char * ) "Tmr Svc", ( unsigned short ) configTIMER_TASK_STACK_DEPTH, NULL, ( unsigned portBASE_TYPE ) configTIMER_TASK_PRIORITY, NULL); - } - - configASSERT( xReturn ); - return xReturn; -} -/*-----------------------------------------------------------*/ - -xTimerHandle xTimerCreate( const signed char *pcTimerName, portTickType xTimerPeriodInTicks, unsigned portBASE_TYPE uxAutoReload, void *pvTimerID, tmrTIMER_CALLBACK pxCallbackFunction ) -{ -xTIMER *pxNewTimer; - - /* Allocate the timer structure. */ - if( xTimerPeriodInTicks == ( portTickType ) 0U ) - { - pxNewTimer = NULL; - configASSERT( ( xTimerPeriodInTicks > 0 ) ); - } - else - { - pxNewTimer = ( xTIMER * ) pvPortMalloc( sizeof( xTIMER ) ); - if( pxNewTimer != NULL ) - { - /* Ensure the infrastructure used by the timer service task has been - created/initialised. */ - prvCheckForValidListAndQueue(); - - /* Initialise the timer structure members using the function parameters. */ - pxNewTimer->pcTimerName = pcTimerName; - pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; - pxNewTimer->uxAutoReload = uxAutoReload; - pxNewTimer->pvTimerID = pvTimerID; - pxNewTimer->pxCallbackFunction = pxCallbackFunction; - vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); - - traceTIMER_CREATE( pxNewTimer ); - } - else - { - traceTIMER_CREATE_FAILED(); - } - } - - return ( xTimerHandle ) pxNewTimer; -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerGenericCommand( xTimerHandle xTimer, portBASE_TYPE xCommandID, portTickType xOptionalValue, portBASE_TYPE *pxHigherPriorityTaskWoken, portTickType xBlockTime ) -{ -portBASE_TYPE xReturn = pdFAIL; -xTIMER_MESSAGE xMessage; - - /* Send a message to the timer service task to perform a particular action - on a particular timer definition. */ - if( xTimerQueue != NULL ) - { - /* Send a command to the timer service task to start the xTimer timer. */ - xMessage.xMessageID = xCommandID; - xMessage.xMessageValue = xOptionalValue; - xMessage.pxTimer = ( xTIMER * ) xTimer; - - if( pxHigherPriorityTaskWoken == NULL ) - { - if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) - { - xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xBlockTime ); - } - else - { - xReturn = xQueueSendToBack( xTimerQueue, &xMessage, tmrNO_DELAY ); - } - } - else - { - xReturn = xQueueSendToBackFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); - } - - traceTIMER_COMMAND_SEND( xTimer, xCommandID, xOptionalValue, xReturn ); - } - - return xReturn; -} -/*-----------------------------------------------------------*/ - -static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow ) -{ -xTIMER *pxTimer; -portBASE_TYPE xResult; - - /* Remove the timer from the list of active timers. A check has already - been performed to ensure the list is not empty. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); - vListRemove( &( pxTimer->xTimerListItem ) ); - traceTIMER_EXPIRED( pxTimer ); - - /* If the timer is an auto reload timer then calculate the next - expiry time and re-insert the timer in the list of active timers. */ - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - /* This is the only time a timer is inserted into a list using - a time relative to anything other than the current time. It - will therefore be inserted into the correct list relative to - the time this task thinks it is now, even if a command to - switch lists due to a tick count overflow is already waiting in - the timer queue. */ - if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) == pdTRUE ) - { - /* The timer expired before it was added to the active timer - list. Reload it now. */ - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - - /* Call the timer callback. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); -} -/*-----------------------------------------------------------*/ - -static void prvTimerTask( void *pvParameters ) -{ -portTickType xNextExpireTime; -portBASE_TYPE xListWasEmpty; - - /* Just to avoid compiler warnings. */ - ( void ) pvParameters; - - for( ;; ) - { - /* Query the timers list to see if it contains any timers, and if so, - obtain the time at which the next timer will expire. */ - xNextExpireTime = prvGetNextExpireTime( &xListWasEmpty ); - - /* If a timer has expired, process it. Otherwise, block this task - until either a timer does expire, or a command is received. */ - prvProcessTimerOrBlockTask( xNextExpireTime, xListWasEmpty ); - - /* Empty the command queue. */ - prvProcessReceivedCommands(); - } -} -/*-----------------------------------------------------------*/ - -static void prvProcessTimerOrBlockTask( portTickType xNextExpireTime, portBASE_TYPE xListWasEmpty ) -{ -portTickType xTimeNow; -portBASE_TYPE xTimerListsWereSwitched; - - vTaskSuspendAll(); - { - /* Obtain the time now to make an assessment as to whether the timer - has expired or not. If obtaining the time causes the lists to switch - then don't process this timer as any timers that remained in the list - when the lists were switched will have been processed within the - prvSampelTimeNow() function. */ - xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); - if( xTimerListsWereSwitched == pdFALSE ) - { - /* The tick count has not overflowed, has the timer expired? */ - if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) ) - { - xTaskResumeAll(); - prvProcessExpiredTimer( xNextExpireTime, xTimeNow ); - } - else - { - /* The tick count has not overflowed, and the next expire - time has not been reached yet. This task should therefore - block to wait for the next expire time or a command to be - received - whichever comes first. The following line cannot - be reached unless xNextExpireTime > xTimeNow, except in the - case when the current timer list is empty. */ - vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ) ); - - if( xTaskResumeAll() == pdFALSE ) - { - /* Yield to wait for either a command to arrive, or the block time - to expire. If a command arrived between the critical section being - exited and this yield then the yield will not cause the task - to block. */ - portYIELD_WITHIN_API(); - } - } - } - else - { - xTaskResumeAll(); - } - } -} -/*-----------------------------------------------------------*/ - -static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) -{ -portTickType xNextExpireTime; - - /* Timers are listed in expiry time order, with the head of the list - referencing the task that will expire first. Obtain the time at which - the timer with the nearest expiry time will expire. If there are no - active timers then just set the next expire time to 0. That will cause - this task to unblock when the tick count overflows, at which point the - timer lists will be switched and the next expiry time can be - re-assessed. */ - *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); - if( *pxListWasEmpty == pdFALSE ) - { - xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); - } - else - { - /* Ensure the task unblocks when the tick count rolls over. */ - xNextExpireTime = ( portTickType ) 0U; - } - - return xNextExpireTime; -} -/*-----------------------------------------------------------*/ - -static portTickType prvSampleTimeNow( portBASE_TYPE *pxTimerListsWereSwitched ) -{ -portTickType xTimeNow; -static portTickType xLastTime = ( portTickType ) 0U; - - xTimeNow = xTaskGetTickCount(); - - if( xTimeNow < xLastTime ) - { - prvSwitchTimerLists( xLastTime ); - *pxTimerListsWereSwitched = pdTRUE; - } - else - { - *pxTimerListsWereSwitched = pdFALSE; - } - - xLastTime = xTimeNow; - - return xTimeNow; -} -/*-----------------------------------------------------------*/ - -static portBASE_TYPE prvInsertTimerInActiveList( xTIMER *pxTimer, portTickType xNextExpiryTime, portTickType xTimeNow, portTickType xCommandTime ) -{ -portBASE_TYPE xProcessTimerNow = pdFALSE; - - listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime ); - listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); - - if( xNextExpiryTime <= xTimeNow ) - { - /* Has the expiry time elapsed between the command to start/reset a - timer was issued, and the time the command was processed? */ - if( ( ( portTickType ) ( xTimeNow - xCommandTime ) ) >= pxTimer->xTimerPeriodInTicks ) - { - /* The time between a command being issued and the command being - processed actually exceeds the timers period. */ - xProcessTimerNow = pdTRUE; - } - else - { - vListInsert( pxOverflowTimerList, &( pxTimer->xTimerListItem ) ); - } - } - else - { - if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) ) - { - /* If, since the command was issued, the tick count has overflowed - but the expiry time has not, then the timer must have already passed - its expiry time and should be processed immediately. */ - xProcessTimerNow = pdTRUE; - } - else - { - vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); - } - } - - return xProcessTimerNow; -} -/*-----------------------------------------------------------*/ - -static void prvProcessReceivedCommands( void ) -{ -xTIMER_MESSAGE xMessage; -xTIMER *pxTimer; -portBASE_TYPE xTimerListsWereSwitched, xResult; -portTickType xTimeNow; - - /* In this case the xTimerListsWereSwitched parameter is not used, but it - must be present in the function call. */ - xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); - - while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) - { - pxTimer = xMessage.pxTimer; - - /* Is the timer already in a list of active timers? When the command - is trmCOMMAND_PROCESS_TIMER_OVERFLOW, the timer will be NULL as the - command is to the task rather than to an individual timer. */ - if( pxTimer != NULL ) - { - if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) - { - /* The timer is in a list, remove it. */ - vListRemove( &( pxTimer->xTimerListItem ) ); - } - } - - traceTIMER_COMMAND_RECEIVED( pxTimer, xMessage.xMessageID, xMessage.xMessageValue ); - - switch( xMessage.xMessageID ) - { - case tmrCOMMAND_START : - /* Start or restart a timer. */ - if( prvInsertTimerInActiveList( pxTimer, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.xMessageValue ) == pdTRUE ) - { - /* The timer expired before it was added to the active timer - list. Process it now. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); - - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - break; - - case tmrCOMMAND_STOP : - /* The timer has already been removed from the active list. - There is nothing to do here. */ - break; - - case tmrCOMMAND_CHANGE_PERIOD : - pxTimer->xTimerPeriodInTicks = xMessage.xMessageValue; - configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); - prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); - break; - - case tmrCOMMAND_DELETE : - /* The timer has already been removed from the active list, - just free up the memory. */ - vPortFree( pxTimer ); - break; - - default : - /* Don't expect to get here. */ - break; - } - } -} -/*-----------------------------------------------------------*/ - -static void prvSwitchTimerLists( portTickType xLastTime ) -{ -portTickType xNextExpireTime, xReloadTime; -xList *pxTemp; -xTIMER *pxTimer; -portBASE_TYPE xResult; - - /* Remove compiler warnings if configASSERT() is not defined. */ - ( void ) xLastTime; - - /* The tick count has overflowed. The timer lists must be switched. - If there are any timers still referenced from the current timer list - then they must have expired and should be processed before the lists - are switched. */ - while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE ) - { - xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); - - /* Remove the timer from the list. */ - pxTimer = ( xTIMER * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); - vListRemove( &( pxTimer->xTimerListItem ) ); - - /* Execute its callback, then send a command to restart the timer if - it is an auto-reload timer. It cannot be restarted here as the lists - have not yet been switched. */ - pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer ); - - if( pxTimer->uxAutoReload == ( unsigned portBASE_TYPE ) pdTRUE ) - { - /* Calculate the reload value, and if the reload value results in - the timer going into the same timer list then it has already expired - and the timer should be re-inserted into the current list so it is - processed again within this loop. Otherwise a command should be sent - to restart the timer to ensure it is only inserted into a list after - the lists have been swapped. */ - xReloadTime = ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ); - if( xReloadTime > xNextExpireTime ) - { - listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xReloadTime ); - listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); - vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); - } - else - { - xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY ); - configASSERT( xResult ); - ( void ) xResult; - } - } - } - - pxTemp = pxCurrentTimerList; - pxCurrentTimerList = pxOverflowTimerList; - pxOverflowTimerList = pxTemp; -} -/*-----------------------------------------------------------*/ - -static void prvCheckForValidListAndQueue( void ) -{ - /* Check that the list from which active timers are referenced, and the - queue used to communicate with the timer service, have been - initialised. */ - taskENTER_CRITICAL(); - { - if( xTimerQueue == NULL ) - { - vListInitialise( &xActiveTimerList1 ); - vListInitialise( &xActiveTimerList2 ); - pxCurrentTimerList = &xActiveTimerList1; - pxOverflowTimerList = &xActiveTimerList2; - xTimerQueue = xQueueCreate( ( unsigned portBASE_TYPE ) configTIMER_QUEUE_LENGTH, sizeof( xTIMER_MESSAGE ) ); - } - } - taskEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xTimerIsTimerActive( xTimerHandle xTimer ) -{ -portBASE_TYPE xTimerIsInActiveList; -xTIMER *pxTimer = ( xTIMER * ) xTimer; - - /* Is the timer in the list of active timers? */ - taskENTER_CRITICAL(); - { - /* Checking to see if it is in the NULL list in effect checks to see if - it is referenced from either the current or the overflow timer lists in - one go, but the logic has to be reversed, hence the '!'. */ - xTimerIsInActiveList = !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); - } - taskEXIT_CRITICAL(); - - return xTimerIsInActiveList; -} -/*-----------------------------------------------------------*/ - -void *pvTimerGetTimerID( xTimerHandle xTimer ) -{ -xTIMER *pxTimer = ( xTIMER * ) xTimer; - - return pxTimer->pvTimerID; -} -/*-----------------------------------------------------------*/ - -/* This entire source file will be skipped if the application is not configured -to include software timer functionality. If you want to include software timer -functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -#endif /* configUSE_TIMERS == 1 */ diff --git a/TP1_labyrinth_etu/TP1_labyrinth_etu Debug.launch b/TP1_labyrinth_etu/TP1_labyrinth_etu Debug.launch deleted file mode 100644 index 6d409ca..0000000 --- a/TP1_labyrinth_etu/TP1_labyrinth_etu Debug.launch +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> - <stringAttribute key="com.crt.ctrlcenter.OFSemuDetails" value="LinkServer"/> - <booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> - <stringAttribute key="com.crt.ctrlcenter.currentWireType" value="SWD"/> - <stringAttribute key="com.crt.ctrlcenter.serialNumber" value="LinkServerNXPNXP CMSIS-DAP"/> - <stringAttribute key="com.crt.ctrlcenter.targetbase" value="NXP LPC17xx"/> - <stringAttribute key="com.crt.ctrlcenter.targetconfig" value="<?xml version="1.0" encoding="UTF-8"?> <config chipvendor="NXP" genname="NXP LPC17xx" id="config.gdb.stub"><parameters><params><param default="true" description="Vector catch" name="Vector catch" value="false" var="vector.catch"><enum value="True"/> <enum value="False"/> </param> </params> <initValue value="false" var="vector.catch"/> <params><param default="On" description="Enablement of semihosting support" name="Semihosting support" value="On" var="internal.semihost"><enum value="On"/> <enum value="Off"/> <enum value="Auto"/> </param> </params> <params><param default="" description="Maximum wire speed in KHz (leave blank to Auto-detect). Not all values are supported by all targets" name="Maximum wire speed" probe="^(?!Redlink Server|LinkServer$).*$" type="nullString" value="" var="emu.speed"><enum value=""/> <enum value="30000"/> <enum value="15000"/> <enum value="10000"/> <enum value="7500"/> <enum value="6000"/> <enum value="5000"/> <enum value="3750"/> <enum value="3000"/> <enum value="2500"/> <enum value="2000"/> <enum value="1500"/> <enum value="1250"/> <enum value="1200"/> <enum value="1000"/> <enum value="750"/> <enum value="600"/> <enum value="500"/> <enum value="400"/> <enum value="300"/> <enum value="250"/> <enum value="200"/> <enum value="150"/> </param> </params> <params><param content="serverScript" description="Connect script" name="Connect Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.reset.script"/> <param default="" description="Select the reset handling type for this debug connection" name="Reset Handling" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="VECTRESET" var="internal.resethandling"><enum value="SYSRESETREQ"/> <enum value="VECTRESET"/> <enum value="Default"/> <enum value=""/> </param> <param default="" description="Additional options" name="Additional options" value="" var="misc.options"/> <param default="2" description="Set stub debug level (1-4)" name="Debug Level " value="2" var="debug.level"/> <param default="False" description="when True, attach to running target only (without loading image)" name="Attach only" required="true" value="False" var="attach"><enum value="True"/> <enum value="False"/> </param> <param default="True" description="Deprecated. Functionality superseded by &apos;Attach only&apos;" name="Load image" type="boolean" value="True" var="load"><enum value="True"/> <enum value="False"/> </param> <param default="cont" description="Run, continue or (do nothing)" name="Run/Continue image" value="cont" var="run"><enum value="run"/> <enum value="cont"/> <enum value=""/> </param> <param default="off" description="If on is specified, make the debugger treat unknown memory as non-existent and refuse \naccesses to such memory. If off is specified, treat the memory as RAM" name="Memory Access Checking" value="off" var="mem.access"><enum value="on"/> <enum value="off"/> </param> <param default="cont" description="choose the disconnect behavior for the target" name="Disconnect behavior" value="cont" var="ondisconnect"><enum value="nochange"/> <enum value="stop"/> <enum value="cont"/> <enum value="run_cont"/> </param> <param default="" description="Command to run before starting the debugger" name="Pre launch command" value="" var="internal.prelaunch.command"/> <param default="" description="Target Wirespeed in Hz" name="Wirespeed (Hz)" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="" var="internal.wirespeed"/> </params> <initvalue value="VECTRESET" var="internal.resethandling"/> <params><param default="SWD" description="Internal wiretypes" mode="hidden" name="Wiretype" probe="NEVER" value="SWD*,JTAG" var="internal.wiretype"></param> <param default="false" description="Chip supports SWO" mode="hidden" name="Has SWO" probe="NEVER" value="true" var="internal.has_swo"></param> </params> <initvalue value="SWD*,JTAG" var="internal.wiretype"/> <initvalue value="true" var="internal.has_swo"/> </parameters> <script emulators="${gdb.stub} -mi -info-emu" silent="false" swv="true" type="init">set remotetimeout 60000&#x0A;##target_extended_remote##&#x0A;set mem inaccessible-by-default ${mem.access}&#x0A;mon ondisconnect ${ondisconnect}&#x0A;set arm force-mode thumb&#x0A;${load}</script> <script silent="false" type="run">${run}</script> </config> "/> - <intAttribute key="com.crt.ctrlcenter.version" value="3"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=""/> - <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> - <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> - <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\TP1_labyrinth_etu.axf"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="G3_TP1_labyrinth_etu"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.debug.215110136"/> - <booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> - <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/> - <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> -</launchConfiguration> diff --git a/TP1_labyrinth_etu/TP1_labyrinth_etu Release.launch b/TP1_labyrinth_etu/TP1_labyrinth_etu Release.launch deleted file mode 100644 index 234e363..0000000 --- a/TP1_labyrinth_etu/TP1_labyrinth_etu Release.launch +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> - <booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> - <stringAttribute key="com.crt.ctrlcenter.targetbase" value="NXP LPC17xx"/> - <stringAttribute key="com.crt.ctrlcenter.targetconfig" value="<?xml version="1.0" encoding="UTF-8"?> <config chipvendor="NXP" genname="NXP LPC17xx" id="config.gdb.stub"><parameters><params><param default="true" description="Vector catch" name="Vector catch" value="false" var="vector.catch"><enum value="True"/> <enum value="False"/> </param> </params> <initValue value="false" var="vector.catch"/> <params><param default="On" description="Enablement of semihosting support" name="Semihosting support" value="On" var="internal.semihost"><enum value="On"/> <enum value="Off"/> <enum value="Auto"/> </param> </params> <params><param default="" description="Maximum wire speed in KHz (leave blank to Auto-detect). Not all values are supported by all targets" name="Maximum wire speed" probe="^(?!Redlink Server|LinkServer$).*$" type="nullString" value="" var="emu.speed"><enum value=""/> <enum value="30000"/> <enum value="15000"/> <enum value="10000"/> <enum value="7500"/> <enum value="6000"/> <enum value="5000"/> <enum value="3750"/> <enum value="3000"/> <enum value="2500"/> <enum value="2000"/> <enum value="1500"/> <enum value="1250"/> <enum value="1200"/> <enum value="1000"/> <enum value="750"/> <enum value="600"/> <enum value="500"/> <enum value="400"/> <enum value="300"/> <enum value="250"/> <enum value="200"/> <enum value="150"/> </param> </params> <params><param content="serverScript" description="Connect script" name="Connect Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.reset.script"/> <param default="" description="Select the reset handling type for this debug connection" name="Reset Handling" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="VECTRESET" var="internal.resethandling"><enum value="SYSRESETREQ"/> <enum value="VECTRESET"/> <enum value="Default"/> <enum value=""/> </param> <param default="" description="Additional options" name="Additional options" value="" var="misc.options"/> <param default="2" description="Set stub debug level (1-4)" name="Debug Level " value="2" var="debug.level"/> <param default="False" description="when True, attach to running target only (without loading image)" name="Attach only" required="true" value="False" var="attach"><enum value="True"/> <enum value="False"/> </param> <param default="True" description="Deprecated. Functionality superseded by &apos;Attach only&apos;" name="Load image" type="boolean" value="True" var="load"><enum value="True"/> <enum value="False"/> </param> <param default="cont" description="Run, continue or (do nothing)" name="Run/Continue image" value="cont" var="run"><enum value="run"/> <enum value="cont"/> <enum value=""/> </param> <param default="off" description="If on is specified, make the debugger treat unknown memory as non-existent and refuse \naccesses to such memory. If off is specified, treat the memory as RAM" name="Memory Access Checking" value="off" var="mem.access"><enum value="on"/> <enum value="off"/> </param> <param default="cont" description="choose the disconnect behavior for the target" name="Disconnect behavior" value="cont" var="ondisconnect"><enum value="nochange"/> <enum value="stop"/> <enum value="cont"/> <enum value="run_cont"/> </param> <param default="" description="Command to run before starting the debugger" name="Pre launch command" value="" var="internal.prelaunch.command"/> <param default="" description="Target Wirespeed in Hz" name="Wirespeed (Hz)" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="" var="internal.wirespeed"/> </params> <initvalue value="VECTRESET" var="internal.resethandling"/> <params><param default="SWD" description="Internal wiretypes" mode="hidden" name="Wiretype" probe="NEVER" value="SWD*,JTAG" var="internal.wiretype"></param> <param default="false" description="Chip supports SWO" mode="hidden" name="Has SWO" probe="NEVER" value="true" var="internal.has_swo"></param> </params> <initvalue value="SWD*,JTAG" var="internal.wiretype"/> <initvalue value="true" var="internal.has_swo"/> </parameters> <script emulators="${gdb.stub} -mi -info-emu" silent="false" swv="true" type="init">set remotetimeout 60000&#x0A;##target_extended_remote##&#x0A;set mem inaccessible-by-default ${mem.access}&#x0A;mon ondisconnect ${ondisconnect}&#x0A;set arm force-mode thumb&#x0A;${load}</script> <script silent="false" type="run">${run}</script> </config> "/> - <intAttribute key="com.crt.ctrlcenter.version" value="3"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=""/> - <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> - <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> - <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Release\TP1_labyrinth_etu.axf"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="G3_TP1_labyrinth_etu"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.release.888357251"/> - <booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> -</launchConfiguration> diff --git a/TP1_labyrinth_etu/src/FreeRTOSConfig.h b/TP1_labyrinth_etu/src/FreeRTOSConfig.h deleted file mode 100644 index cd81ddd..0000000 --- a/TP1_labyrinth_etu/src/FreeRTOSConfig.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd. - - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - http://www.FreeRTOS.org - Documentation, latest information, license and - contact details. - - http://www.SafeRTOS.com - A version that is certified for use in safety - critical systems. - - http://www.OpenRTOS.com - Commercial support, development, porting, - licensing and training services. -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - - - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - *----------------------------------------------------------*/ - -#define configUSE_PREEMPTION 0 -#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 ) -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( ( unsigned long ) 100000000 ) -#define configTICK_RATE_HZ ( ( portTickType ) 200 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 200 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 19 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 12 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_MUTEXES 0 -#define configHEPIA_TRACING 1 -#define configUSE_IDLE_HOOK 0 - - -#if configHEPIA_TRACING -// TRACE WITHOUT TRACING TASK: -// condition task_id!=uxTaskNumber-1 can be useful to avoid tracing the tracing task itself! -#define traceTASK_SWITCHED_IN() {if (previous_id_in!=pxCurrentTCB->task_id) {\ - if (previous_id_in!=0xFF && previous_id_in!=uxTaskNumber-1) \ - write_trace(previous_id_in, 0); \ - if (pxCurrentTCB->task_id!=uxTaskNumber-1) \ - write_trace(pxCurrentTCB->task_id, 1); \ - previous_id_in=pxCurrentTCB->task_id;}} - -// TRACE INCLUDING TRACING TASK: -/*#define traceTASK_SWITCHED_IN() {if (previous_id_in!=pxCurrentTCB->task_id) {\ - if (previous_id_in!=0xFF) \ - write_trace(previous_id_in, 0); \ - write_trace(pxCurrentTCB->task_id, 1); \ - previous_id_in=pxCurrentTCB->task_id;}}*/ -#endif - - -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_ALTERNATIVE_API 0 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 10 -#define configGENERATE_RUN_TIME_STATS 0 - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ - -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 1 - -/*----------------------------------------------------------- - * Ethernet configuration. - *-----------------------------------------------------------*/ - -/* MAC address configuration. */ -#define configMAC_ADDR0 0x00 -#define configMAC_ADDR1 0x12 -#define configMAC_ADDR2 0x13 -#define configMAC_ADDR3 0x10 -#define configMAC_ADDR4 0x15 -#define configMAC_ADDR5 0x11 - -/* IP address configuration. */ -#define configIP_ADDR0 192 -#define configIP_ADDR1 168 -#define configIP_ADDR2 0 -#define configIP_ADDR3 201 - -/* Netmask configuration. */ -#define configNET_MASK0 255 -#define configNET_MASK1 255 -#define configNET_MASK2 255 -#define configNET_MASK3 0 - -/* Use the system definition, if there is one */ -#ifdef __NVIC_PRIO_BITS - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 5 /* 32 priority levels */ -#endif - -/* The lowest priority. */ -#define configKERNEL_INTERRUPT_PRIORITY ( 31 << (8 - configPRIO_BITS) ) -/* Priority 5, or 160 as only the top three bits are implemented. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( 5 << (8 - configPRIO_BITS) ) - -/* Priorities passed to NVIC_SetPriority() do not require shifting as the -function does the shifting itself. Note these priorities need to be equal to -or lower than configMAX_SYSCALL_INTERRUPT_PRIORITY - therefore the numeric -value needs to be equal to or greater than 5 (on the Cortex-M3 the lower the -numeric value the higher the interrupt priority). */ -#define configEMAC_INTERRUPT_PRIORITY 5 -#define configUSB_INTERRUPT_PRIORITY 6 - - - -/*----------------------------------------------------------- - * Macros required to setup the timer for the run time stats. - *-----------------------------------------------------------*/ -extern void vConfigureTimerForRunTimeStats( void ); - -#define portGET_RUN_TIME_COUNTER_VALUE() LPC_TIM0->TC - - -#endif /* FREERTOS_CONFIG_H */ diff --git a/TP1_labyrinth_etu/src/accelerometer.h b/TP1_labyrinth_etu/src/accelerometer.h deleted file mode 100644 index b064741..0000000 --- a/TP1_labyrinth_etu/src/accelerometer.h +++ /dev/null @@ -1,89 +0,0 @@ -/***************************************************************************** - -This software is released under the LGPL-3.0 license: http://www.opensource.org/licenses/lgpl-3.0.html - -Copyright (c) 2013, hepia (ITI) http://www.hepialight.ch - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 3.0 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*****************************************************************************/ - - -#ifndef ACCELEROMETER_H_ -#define ACCELEROMETER_H_ - -#include <stdint.h> - -#define accel_addr_X 0x00 -#define accel_addr_Y 0x01 -#define accel_addr_Z 0x02 -#define accel_mode_reg 0x07 - -#define ACCEL_INT_PIN 11 -#define ACCEL_I2C_ADDR 0x1D<<1 - -#define LSM303D_REG_WHOAMI 0x0F -#define LSM303D_REG_CTRL0 0x1F -#define LSM303D_REG_CTRL1 0x20 -#define LSM303D_REG_CTRL2 0x21 -#define LSM303D_REG_CTRL3 0x22 -#define LSM303D_REG_CTRL4 0x23 -#define LSM303D_REG_CTRL5 0x24 -#define LSM303D_REG_CTRL6 0x25 -#define LSM303D_REG_CTRL7 0x26 -#define LSM303D_REG_TEMP_OUT_L 0x05 -#define LSM303D_REG_TEMP_OUT_H 0x06 -#define LSM303D_REG_STATUS_M 0x07 -#define LSM303D_REG_OUT_X_L_M 0x08 -#define LSM303D_REG_OUT_X_H_M 0x09 -#define LSM303D_REG_OUT_Y_L_M 0x0a -#define LSM303D_REG_OUT_Y_H_M 0x0b -#define LSM303D_REG_OUT_Z_L_M 0x0c -#define LSM303D_REG_OUT_Z_H_M 0x0d -#define LSM303D_REG_STATUS_A 0x27 -#define LSM303D_REG_OUT_X_L_A 0x28 -#define LSM303D_REG_OUT_X_H_A 0x29 -#define LSM303D_REG_OUT_Y_L_A 0x2a -#define LSM303D_REG_OUT_Y_H_A 0x2b -#define LSM303D_REG_OUT_Z_L_A 0x2c -#define LSM303D_REG_OUT_Z_H_A 0x2d - -#define ACC_NOT_INITIALISED -21 -#define ACC_INIT_I2C_FAILED -22 -#define ACC_NOERROR 0 - - -typedef struct -{ - float accel_x; - float accel_y; - float accel_z; - int16_t magneto_x; - int16_t magneto_y; - int16_t magneto_z; - int16_t temperature; -} accel_t; - -int accel_init(void); - -/* - * Accelerometer reading. each component read has a value in the range [-1, 1] - * Parameter: accel: pointer on (x,y,z) acceleration to be returned - * Return: ACC_NOERROR if no error or error code - */ -int accel_read(accel_t *accel); - - -#endif /* ACCELEROMETER_H_ */ diff --git a/TP1_labyrinth_etu/src/cr_startup_lpc17.c b/TP1_labyrinth_etu/src/cr_startup_lpc17.c deleted file mode 100644 index ec9b3f7..0000000 --- a/TP1_labyrinth_etu/src/cr_startup_lpc17.c +++ /dev/null @@ -1,403 +0,0 @@ -//***************************************************************************** -// +--+ -// | ++----+ -// +-++ | -// | | -// +-+--+ | -// | +--+--+ -// +----+ Copyright (c) 2009-10 Code Red Technologies Ltd. -// -// Microcontroller Startup code for use with Red Suite -// -// Software License Agreement -// -// The software is owned by Code Red Technologies and/or its suppliers, and is -// protected under applicable copyright laws. All rights are reserved. Any -// use in violation of the foregoing restrictions may subject the user to criminal -// sanctions under applicable laws, as well as to civil liability for the breach -// of the terms and conditions of this license. -// -// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED -// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. -// USE OF THIS SOFTWARE FOR COMMERCIAL DEVELOPMENT AND/OR EDUCATION IS SUBJECT -// TO A CURRENT END USER LICENSE AGREEMENT (COMMERCIAL OR EDUCATIONAL) WITH -// CODE RED TECHNOLOGIES LTD. -// -//***************************************************************************** -#if defined (__cplusplus) -#ifdef __REDLIB__ -#error Redlib does not support C++ -#else -//***************************************************************************** -// -// The entry point for the C++ library startup -// -//***************************************************************************** -extern "C" { - extern void __libc_init_array(void); -} -#endif -#endif - -#define WEAK __attribute__ ((weak)) -#define ALIAS(f) __attribute__ ((weak, alias (#f))) - -// Code Red - if CMSIS is being used, then SystemInit() routine -// will be called by startup code rather than in application's main() -#if defined (__USE_CMSIS) -#include "system_LPC17xx.h" -#endif - -//***************************************************************************** -#if defined (__cplusplus) -extern "C" { -#endif - -//***************************************************************************** -// -// Forward declaration of the default handlers. These are aliased. -// When the application defines a handler (with the same name), this will -// automatically take precedence over these weak definitions -// -//***************************************************************************** - void ResetISR(void); -WEAK void NMI_Handler(void); -WEAK void HardFault_Handler(void); -WEAK void MemManage_Handler(void); -WEAK void BusFault_Handler(void); -WEAK void UsageFault_Handler(void); -WEAK void SVCall_Handler(void); -WEAK void DebugMon_Handler(void); -WEAK void PendSV_Handler(void); -WEAK void SysTick_Handler(void); -WEAK void IntDefaultHandler(void); - -//***************************************************************************** -// -// Forward declaration of the specific IRQ handlers. These are aliased -// to the IntDefaultHandler, which is a 'forever' loop. When the application -// defines a handler (with the same name), this will automatically take -// precedence over these weak definitions -// -//***************************************************************************** -void WDT_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER0_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER1_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER2_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER3_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART0_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART1_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART2_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART3_IRQHandler(void) ALIAS(IntDefaultHandler); -void PWM1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C0_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C2_IRQHandler(void) ALIAS(IntDefaultHandler); -void SPI_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP0_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP1_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL0_IRQHandler(void) ALIAS(IntDefaultHandler); -void RTC_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT0_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT1_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT2_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT3_IRQHandler(void) ALIAS(IntDefaultHandler); -void ADC_IRQHandler(void) ALIAS(IntDefaultHandler); -void BOD_IRQHandler(void) ALIAS(IntDefaultHandler); -void USB_IRQHandler(void) ALIAS(IntDefaultHandler); -void CAN_IRQHandler(void) ALIAS(IntDefaultHandler); -void DMA_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2S_IRQHandler(void) ALIAS(IntDefaultHandler); -void ENET_IRQHandler(void) ALIAS(IntDefaultHandler); -void RIT_IRQHandler(void) ALIAS(IntDefaultHandler); -void MCPWM_IRQHandler(void) ALIAS(IntDefaultHandler); -void QEI_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL1_IRQHandler(void) ALIAS(IntDefaultHandler); -void USBActivity_IRQHandler(void) ALIAS(IntDefaultHandler); -void CANActivity_IRQHandler(void) ALIAS(IntDefaultHandler); - -extern void xPortSysTickHandler(void); -extern void xPortPendSVHandler(void); -extern void vPortSVCHandler( void ); -extern void vEMAC_ISR( void ); - -//***************************************************************************** -// -// The entry point for the application. -// __main() is the entry point for Redlib based applications -// main() is the entry point for Newlib based applications -// -//***************************************************************************** -#if defined (__REDLIB__) -extern void __main(void); -#endif -extern int main(void); -//***************************************************************************** -// -// External declaration for the pointer to the stack top from the Linker Script -// -//***************************************************************************** -extern void _vStackTop(void); - -//***************************************************************************** -#if defined (__cplusplus) -} // extern "C" -#endif -//***************************************************************************** -// -// The vector table. -// This relies on the linker script to place at correct location in memory. -// -//***************************************************************************** -extern void (* const g_pfnVectors[])(void); -__attribute__ ((section(".isr_vector"))) -void (* const g_pfnVectors[])(void) = -{ - // Core Level - CM3 - (void *)&_vStackTop, // The initial stack pointer - ResetISR, // The reset handler - NMI_Handler, // The NMI handler - HardFault_Handler, // The hard fault handler - MemManage_Handler, // The MPU fault handler - BusFault_Handler, // The bus fault handler - UsageFault_Handler, // The usage fault handler - 0, // Reserved - 0, // Reserved - 0, // Reserved - 0, // Reserved - vPortSVCHandler, // SVCall handler - DebugMon_Handler, // Debug monitor handler - 0, // Reserved - xPortPendSVHandler, // The PendSV handler - xPortSysTickHandler, // The SysTick handler - - // Chip Level - LPC17 - WDT_IRQHandler, // 16, 0x40 - WDT - TIMER0_IRQHandler, // 17, 0x44 - TIMER0 - TIMER1_IRQHandler, // 18, 0x48 - TIMER1 - TIMER2_IRQHandler, // 19, 0x4c - TIMER2 - TIMER3_IRQHandler, // 20, 0x50 - TIMER3 - UART0_IRQHandler, // 21, 0x54 - UART0 - UART1_IRQHandler, // 22, 0x58 - UART1 - UART2_IRQHandler, // 23, 0x5c - UART2 - UART3_IRQHandler, // 24, 0x60 - UART3 - PWM1_IRQHandler, // 25, 0x64 - PWM1 - I2C0_IRQHandler, // 26, 0x68 - I2C0 - I2C1_IRQHandler, // 27, 0x6c - I2C1 - I2C2_IRQHandler, // 28, 0x70 - I2C2 - SPI_IRQHandler, // 29, 0x74 - SPI - SSP0_IRQHandler, // 30, 0x78 - SSP0 - SSP1_IRQHandler, // 31, 0x7c - SSP1 - PLL0_IRQHandler, // 32, 0x80 - PLL0 (Main PLL) - RTC_IRQHandler, // 33, 0x84 - RTC - EINT0_IRQHandler, // 34, 0x88 - EINT0 - EINT1_IRQHandler, // 35, 0x8c - EINT1 - EINT2_IRQHandler, // 36, 0x90 - EINT2 - EINT3_IRQHandler, // 37, 0x94 - EINT3 - ADC_IRQHandler, // 38, 0x98 - ADC - BOD_IRQHandler, // 39, 0x9c - BOD - USB_IRQHandler, // 40, 0xA0 - USB - CAN_IRQHandler, // 41, 0xa4 - CAN - DMA_IRQHandler, // 42, 0xa8 - GP DMA - I2S_IRQHandler, // 43, 0xac - I2S - ENET_IRQHandler, // Ethernet. - RIT_IRQHandler, // 45, 0xb4 - RITINT - MCPWM_IRQHandler, // 46, 0xb8 - Motor Control PWM - QEI_IRQHandler, // 47, 0xbc - Quadrature Encoder - PLL1_IRQHandler, // 48, 0xc0 - PLL1 (USB PLL) - USBActivity_IRQHandler, // 49, 0xc4 - USB Activity interrupt to wakeup - CANActivity_IRQHandler, // 50, 0xc8 - CAN Activity interrupt to wakeup -}; - -//***************************************************************************** -// Functions to carry out the initialization of RW and BSS data sections. These -// are written as separate functions rather than being inlined within the -// ResetISR() function in order to cope with MCUs with multiple banks of -// memory. -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void data_init(unsigned int romstart, unsigned int start, unsigned int len) { - unsigned int *pulDest = (unsigned int*) start; - unsigned int *pulSrc = (unsigned int*) romstart; - unsigned int loop; - for (loop = 0; loop < len; loop = loop + 4) - *pulDest++ = *pulSrc++; -} - -__attribute__ ((section(".after_vectors"))) -void bss_init(unsigned int start, unsigned int len) { - unsigned int *pulDest = (unsigned int*) start; - unsigned int loop; - for (loop = 0; loop < len; loop = loop + 4) - *pulDest++ = 0; -} - - -//***************************************************************************** -// -// The following are constructs created by the linker, indicating where the -// the "data" and "bss" segments reside in memory. The initializers for the -// for the "data" segment resides immediately following the "text" segment. -// -//***************************************************************************** -extern unsigned long _etext; -extern unsigned long _data; -extern unsigned long _edata; -extern unsigned long _bss; -extern unsigned long _ebss; - -extern unsigned int __data_section_table; -extern unsigned int __data_section_table_end; -extern unsigned int __bss_section_table; -extern unsigned int __bss_section_table_end; - - -//***************************************************************************** -// Reset entry point for your code. -// Sets up a simple runtime environment and initializes the C/C++ -// library. -// -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void -ResetISR(void) { - unsigned int LoadAddr, ExeAddr, SectionLen; - unsigned int *SectionTableAddr; - - // Load base address of Global Section Table - SectionTableAddr = &__data_section_table; - - // Copy the data sections from flash to SRAM. - while (SectionTableAddr < &__data_section_table_end) { - LoadAddr = *SectionTableAddr++; - ExeAddr = *SectionTableAddr++; - SectionLen = *SectionTableAddr++; - data_init(LoadAddr, ExeAddr, SectionLen); - } - // At this point, SectionTableAddr = &__bss_section_table; - // Zero fill the bss segment - while (SectionTableAddr < &__bss_section_table_end) { - ExeAddr = *SectionTableAddr++; - SectionLen = *SectionTableAddr++; - bss_init(ExeAddr, SectionLen); - } -/* unsigned long *pulSrc, *pulDest; - - // - // Copy the data segment initializers from flash to SRAM. - // - pulSrc = &_etext; - for(pulDest = &_data; pulDest < &_edata; ) - { - *pulDest++ = *pulSrc++; - } - - // - // Zero fill the bss segment. This is done with inline assembly since this - // will clear the value of pulDest if it is not kept in a register. - // - __asm(" ldr r0, =_bss\n" - " ldr r1, =_ebss\n" - " mov r2, #0\n" - " .thumb_func\n" - "zero_loop:\n" - " cmp r0, r1\n" - " it lt\n" - " strlt r2, [r0], #4\n" - " blt zero_loop");*/ - -#ifdef __USE_CMSIS - SystemInit(); -#endif - -#if defined (__cplusplus) - // - // Call C++ library initialisation - // - __libc_init_array(); -#endif - -#if defined (__REDLIB__) - // Call the Redlib library, which in turn calls main() - __main() ; -#else - main(); -#endif - - // - // main() shouldn't return, but if it does, we'll just enter an infinite loop - // - while (1) { - ; - } -} - -//***************************************************************************** -// -// This is the code that gets called when the processor receives a NMI. This -// simply enters an infinite loop, preserving the system state for examination -// by a debugger. -// -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void NMI_Handler(void) -{ - while(1) - { - } -} - -__attribute__ ((section(".after_vectors"))) -void HardFault_Handler(void) -{ - while(1) - { - } -} -__attribute__ ((section(".after_vectors"))) -void MemManage_Handler(void) -{ - while(1) - { - } -} -__attribute__ ((section(".after_vectors"))) -void BusFault_Handler(void) -{ - while(1) - { - } -} -__attribute__ ((section(".after_vectors"))) -void UsageFault_Handler(void) -{ - while(1) - { - } -} - -__attribute__ ((section(".after_vectors"))) -void DebugMon_Handler(void) -{ - while(1) - { - } -} - -//***************************************************************************** -// -// Processor ends up here if an unexpected interrupt occurs or a handler -// is not present in the application code. -// -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void IntDefaultHandler(void) -{ - // - // Go into an infinite loop. - // - while(1) - { - } -} diff --git a/TP1_labyrinth_etu/src/custom_rand.h b/TP1_labyrinth_etu/src/custom_rand.h deleted file mode 100644 index 08d1f79..0000000 --- a/TP1_labyrinth_etu/src/custom_rand.h +++ /dev/null @@ -1,20 +0,0 @@ -//--------------------------------------------------------------------------- - -#ifndef custom_randH -#define custom_randH -//--------------------------------------------------------------------------- - -#include <stdint.h> - -/* Pseudo-random generator intialisation. - * Parameter: seed: random-generator starting point - */ -void init_rnd32(uint32_t seed); - -/* Generate a new random sample based on the last call of this function - * Return: random value - * */ -uint32_t rnd32(void); - - -#endif diff --git a/TP1_labyrinth_etu/src/ethernet_mgt.h b/TP1_labyrinth_etu/src/ethernet_mgt.h deleted file mode 100644 index c7ba8bc..0000000 --- a/TP1_labyrinth_etu/src/ethernet_mgt.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * ethernet_mgt.h - * - * Description: Ethernet driver. Note: RX/TX buffers must be in RAM2 - * since SRAM is deactivated during WFI (the DMA can not copy data during a WFI in SRAM) - * Created on: 13.4.2018 - * Author: Pilloux V. - */ - -#ifndef ETHERNET_MGT_H_ -#define ETHERNET_MGT_H_ - -/* Description: callback prototype for ethernet_init() - * - * Parameter: data: pointer on data to be received - * length: data length [bytes] - */ -typedef void (*rx_eth_callback_t)(void *data, int len); - -/* Description: initialise Ethernet connection. RX/TX buffers MUST be declared in RAM2 - * since SRAM is deactivated during WFI (the DMA can not copy data during a WFI in SRAM) - * - * Parameters: - * tx_double_buf: pointer on the transmission double buffer (can be NULL if not used) - * rx_double_buf: pointer on the receiving double buffer (can be NULL if not used) - * double_len_tx: maximum length of the transmission double buffers - * double_len_rx: maximum length of the receiving double buffers - * rx_callback: pointer on a callback function which is called - * each time data is received by Ethernet. If rx_callback==NULL, - * no callback is used. - * Return: pointer on the data frame to be filled for transmission - */ -unsigned char *ethernet_init(unsigned char *tx_double_buf, int double_len_tx, unsigned char *rx_double_buf, - int double_len_rx, rx_eth_callback_t rx_callback); - -/* Description: send raw data to Ethernet (no address management) - * - * Parameter: length: data length [bytes]. Note that length can be lower than double_len/2 - * but not bigger - * blocking: if true, waits the frame transmission - * Return: pointer on the next data frame to transmit - */ -unsigned char *send_eth(int length, bool blocking); - -/* Description: receive raw data from Ethernet (no address management). - * This function blocks until data is received. - * - * Parameter: length: pointer on the received data length [bytes] - * Return: pointer on the received data - */ -unsigned char *rec_eth(int *length); - -#endif /* ETHERNET_MGT_H_ */ diff --git a/TP1_labyrinth_etu/src/ethmac.h b/TP1_labyrinth_etu/src/ethmac.h deleted file mode 100644 index 86c0018..0000000 --- a/TP1_labyrinth_etu/src/ethmac.h +++ /dev/null @@ -1,347 +0,0 @@ -/****************************************************************** - ***** ***** - ***** Name: cs8900.h ***** - ***** Ver.: 1.0 ***** - ***** Date: 07/05/2001 ***** - ***** Auth: Andreas Dannenberg ***** - ***** HTWK Leipzig ***** - ***** university of applied sciences ***** - ***** Germany ***** - ***** adannenb@et.htwk-leipzig.de ***** - ***** Func: header-file for cs8900.c ***** - ***** ***** - ******************************************************************/ - -// Modifications by Code Red Technologies for NXP LPC1768 -// Filename changed to ethmac.h as no longer for cs8900 - -// CodeRed - update for new header filename - -#ifndef __ETHMAC_H -#define __ETHMAC_H - -#define MYMAC_1 1 // our ethernet (MAC) address -#define MYMAC_2 2 // (MUST be unique in LAN!) -#define MYMAC_3 3 -#define MYMAC_4 4 -#define MYMAC_5 5 -#define MYMAC_6 6 - - -// ******* -// CodeRed - defines for LPC1768 ethernet -// ******* - -/* EMAC Memory Buffer configuration for 16K Ethernet RAM. */ -#define NUM_RX_FRAG 4 /* Num.of RX Fragments 4*1536= 6.0kB */ -#define NUM_TX_FRAG 2 /* Num.of TX Fragments 3*1536= 4.6kB */ -#define ETH_FRAG_SIZE 1536 /* Packet Fragment size 1536 Bytes */ - -#define ETH_MAX_FLEN 1536 /* Max. Ethernet Frame Size */ - -/* EMAC variables located in AHB SRAM bank 1*/ -// Below is base address for first silicon -//#define RX_DESC_BASE 0x20004000 -// Below is base address for production silicon -#define RX_DESC_BASE 0x2007c000 -#define RX_STAT_BASE (RX_DESC_BASE + NUM_RX_FRAG*8) -#define TX_DESC_BASE (RX_STAT_BASE + NUM_RX_FRAG*8) -#define TX_STAT_BASE (TX_DESC_BASE + NUM_TX_FRAG*8) -#define RX_BUF_BASE (TX_STAT_BASE + NUM_TX_FRAG*4) -#define TX_BUF_BASE (RX_BUF_BASE + NUM_RX_FRAG*ETH_FRAG_SIZE) - -/* RX and TX descriptor and status definitions. */ -#define RX_DESC_PACKET(i) (*(unsigned int *)(RX_DESC_BASE + 8*i)) -#define RX_DESC_CTRL(i) (*(unsigned int *)(RX_DESC_BASE+4 + 8*i)) -#define RX_STAT_INFO(i) (*(unsigned int *)(RX_STAT_BASE + 8*i)) -#define RX_STAT_HASHCRC(i) (*(unsigned int *)(RX_STAT_BASE+4 + 8*i)) -#define TX_DESC_PACKET(i) (*(unsigned int *)(TX_DESC_BASE + 8*i)) -#define TX_DESC_CTRL(i) (*(unsigned int *)(TX_DESC_BASE+4 + 8*i)) -#define TX_STAT_INFO(i) (*(unsigned int *)(TX_STAT_BASE + 4*i)) -#define RX_BUF(i) (RX_BUF_BASE + ETH_FRAG_SIZE*i) -#define TX_BUF(i) (TX_BUF_BASE + ETH_FRAG_SIZE*i) - -/* MAC Configuration Register 1 */ -#define MAC1_REC_EN 0x00000001 /* Receive Enable */ -#define MAC1_PASS_ALL 0x00000002 /* Pass All Receive Frames */ -#define MAC1_RX_FLOWC 0x00000004 /* RX Flow Control */ -#define MAC1_TX_FLOWC 0x00000008 /* TX Flow Control */ -#define MAC1_LOOPB 0x00000010 /* Loop Back Mode */ -#define MAC1_RES_TX 0x00000100 /* Reset TX Logic */ -#define MAC1_RES_MCS_TX 0x00000200 /* Reset MAC TX Control Sublayer */ -#define MAC1_RES_RX 0x00000400 /* Reset RX Logic */ -#define MAC1_RES_MCS_RX 0x00000800 /* Reset MAC RX Control Sublayer */ -#define MAC1_SIM_RES 0x00004000 /* Simulation Reset */ -#define MAC1_SOFT_RES 0x00008000 /* Soft Reset MAC */ - -/* MAC Configuration Register 2 */ -#define MAC2_FULL_DUP 0x00000001 /* Full Duplex Mode */ -#define MAC2_FRM_LEN_CHK 0x00000002 /* Frame Length Checking */ -#define MAC2_HUGE_FRM_EN 0x00000004 /* Huge Frame Enable */ -#define MAC2_DLY_CRC 0x00000008 /* Delayed CRC Mode */ -#define MAC2_CRC_EN 0x00000010 /* Append CRC to every Frame */ -#define MAC2_PAD_EN 0x00000020 /* Pad all Short Frames */ -#define MAC2_VLAN_PAD_EN 0x00000040 /* VLAN Pad Enable */ -#define MAC2_ADET_PAD_EN 0x00000080 /* Auto Detect Pad Enable */ -#define MAC2_PPREAM_ENF 0x00000100 /* Pure Preamble Enforcement */ -#define MAC2_LPREAM_ENF 0x00000200 /* Long Preamble Enforcement */ -#define MAC2_NO_BACKOFF 0x00001000 /* No Backoff Algorithm */ -#define MAC2_BACK_PRESSURE 0x00002000 /* Backoff Presurre / No Backoff */ -#define MAC2_EXCESS_DEF 0x00004000 /* Excess Defer */ - -/* Back-to-Back Inter-Packet-Gap Register */ -#define IPGT_FULL_DUP 0x00000015 /* Recommended value for Full Duplex */ -#define IPGT_HALF_DUP 0x00000012 /* Recommended value for Half Duplex */ - -/* Non Back-to-Back Inter-Packet-Gap Register */ -#define IPGR_DEF 0x00000012 /* Recommended value */ - -/* Collision Window/Retry Register */ -#define CLRT_DEF 0x0000370F /* Default value */ - -/* PHY Support Register */ -#define SUPP_SPEED 0x00000100 /* Reduced MII Logic Current Speed */ - -/* Test Register */ -#define TEST_SHCUT_PQUANTA 0x00000001 /* Shortcut Pause Quanta */ -#define TEST_TST_PAUSE 0x00000002 /* Test Pause */ -#define TEST_TST_BACKP 0x00000004 /* Test Back Pressure */ - -/* MII Management Configuration Register */ -#define MCFG_SCAN_INC 0x00000001 /* Scan Increment PHY Address */ -#define MCFG_SUPP_PREAM 0x00000002 /* Suppress Preamble */ -#define MCFG_CLK_SEL 0x0000001C /* Clock Select Mask */ -#define MCFG_RES_MII 0x00008000 /* Reset MII Management Hardware */ - -#define MCFG_CLK_DIV28 0x0000001C /* MDC = hclk / 28 */ -#define MCFG_CLK_DIV36 0x00000020 -#define MCFG_CLK_DIV64 0x0000003c - -/* MII Management Command Register */ -#define MCMD_READ 0x00000001 /* MII Read */ -#define MCMD_SCAN 0x00000002 /* MII Scan continuously */ - -#define MII_WR_TOUT 0x00050000 /* MII Write timeout count */ -#define MII_RD_TOUT 0x00050000 /* MII Read timeout count */ - -/* MII Management Address Register */ -#define MADR_REG_ADR 0x0000001F /* MII Register Address Mask */ -#define MADR_PHY_ADR 0x00001F00 /* PHY Address Mask */ - -/* MII Management Indicators Register */ -#define MIND_BUSY 0x00000001 /* MII is Busy */ -#define MIND_SCAN 0x00000002 /* MII Scanning in Progress */ -#define MIND_NOT_VAL 0x00000004 /* MII Read Data not valid */ -#define MIND_MII_LINK_FAIL 0x00000008 /* MII Link Failed */ - -/* Command Register */ -#define CR_RX_EN 0x00000001 /* Enable Receive */ -#define CR_TX_EN 0x00000002 /* Enable Transmit */ -#define CR_REG_RES 0x00000008 /* Reset Host Registers */ -#define CR_TX_RES 0x00000010 /* Reset Transmit Datapath */ -#define CR_RX_RES 0x00000020 /* Reset Receive Datapath */ -#define CR_PASS_RUNT_FRM 0x00000040 /* Pass Runt Frames */ -#define CR_PASS_RX_FILT 0x00000080 /* Pass RX Filter */ -#define CR_TX_FLOW_CTRL 0x00000100 /* TX Flow Control */ -#define CR_RMII 0x00000200 /* Reduced MII Interface */ -#define CR_FULL_DUP 0x00000400 /* Full Duplex */ - -/* Status Register */ -#define SR_RX_EN 0x00000001 /* Enable Receive */ -#define SR_TX_EN 0x00000002 /* Enable Transmit */ - -/* Transmit Status Vector 0 Register */ -#define TSV0_CRC_ERR 0x00000001 /* CRC error */ -#define TSV0_LEN_CHKERR 0x00000002 /* Length Check Error */ -#define TSV0_LEN_OUTRNG 0x00000004 /* Length Out of Range */ -#define TSV0_DONE 0x00000008 /* Tramsmission Completed */ -#define TSV0_MCAST 0x00000010 /* Multicast Destination */ -#define TSV0_BCAST 0x00000020 /* Broadcast Destination */ -#define TSV0_PKT_DEFER 0x00000040 /* Packet Deferred */ -#define TSV0_EXC_DEFER 0x00000080 /* Excessive Packet Deferral */ -#define TSV0_EXC_COLL 0x00000100 /* Excessive Collision */ -#define TSV0_LATE_COLL 0x00000200 /* Late Collision Occured */ -#define TSV0_GIANT 0x00000400 /* Giant Frame */ -#define TSV0_UNDERRUN 0x00000800 /* Buffer Underrun */ -#define TSV0_BYTES 0x0FFFF000 /* Total Bytes Transferred */ -#define TSV0_CTRL_FRAME 0x10000000 /* Control Frame */ -#define TSV0_PAUSE 0x20000000 /* Pause Frame */ -#define TSV0_BACK_PRESS 0x40000000 /* Backpressure Method Applied */ -#define TSV0_VLAN 0x80000000 /* VLAN Frame */ - -/* Transmit Status Vector 1 Register */ -#define TSV1_BYTE_CNT 0x0000FFFF /* Transmit Byte Count */ -#define TSV1_COLL_CNT 0x000F0000 /* Transmit Collision Count */ - -/* Receive Status Vector Register */ -#define RSV_BYTE_CNT 0x0000FFFF /* Receive Byte Count */ -#define RSV_PKT_IGNORED 0x00010000 /* Packet Previously Ignored */ -#define RSV_RXDV_SEEN 0x00020000 /* RXDV Event Previously Seen */ -#define RSV_CARR_SEEN 0x00040000 /* Carrier Event Previously Seen */ -#define RSV_REC_CODEV 0x00080000 /* Receive Code Violation */ -#define RSV_CRC_ERR 0x00100000 /* CRC Error */ -#define RSV_LEN_CHKERR 0x00200000 /* Length Check Error */ -#define RSV_LEN_OUTRNG 0x00400000 /* Length Out of Range */ -#define RSV_REC_OK 0x00800000 /* Frame Received OK */ -#define RSV_MCAST 0x01000000 /* Multicast Frame */ -#define RSV_BCAST 0x02000000 /* Broadcast Frame */ -#define RSV_DRIB_NIBB 0x04000000 /* Dribble Nibble */ -#define RSV_CTRL_FRAME 0x08000000 /* Control Frame */ -#define RSV_PAUSE 0x10000000 /* Pause Frame */ -#define RSV_UNSUPP_OPC 0x20000000 /* Unsupported Opcode */ -#define RSV_VLAN 0x40000000 /* VLAN Frame */ - -/* Flow Control Counter Register */ -#define FCC_MIRR_CNT 0x0000FFFF /* Mirror Counter */ -#define FCC_PAUSE_TIM 0xFFFF0000 /* Pause Timer */ - -/* Flow Control Status Register */ -#define FCS_MIRR_CNT 0x0000FFFF /* Mirror Counter Current */ - -/* Receive Filter Control Register */ -#define RFC_UCAST_EN 0x00000001 /* Accept Unicast Frames Enable */ -#define RFC_BCAST_EN 0x00000002 /* Accept Broadcast Frames Enable */ -#define RFC_MCAST_EN 0x00000004 /* Accept Multicast Frames Enable */ -#define RFC_UCAST_HASH_EN 0x00000008 /* Accept Unicast Hash Filter Frames */ -#define RFC_MCAST_HASH_EN 0x00000010 /* Accept Multicast Hash Filter Fram.*/ -#define RFC_PERFECT_EN 0x00000020 /* Accept Perfect Match Enable */ -#define RFC_MAGP_WOL_EN 0x00001000 /* Magic Packet Filter WoL Enable */ -#define RFC_PFILT_WOL_EN 0x00002000 /* Perfect Filter WoL Enable */ - -/* Receive Filter WoL Status/Clear Registers */ -#define WOL_UCAST 0x00000001 /* Unicast Frame caused WoL */ -#define WOL_BCAST 0x00000002 /* Broadcast Frame caused WoL */ -#define WOL_MCAST 0x00000004 /* Multicast Frame caused WoL */ -#define WOL_UCAST_HASH 0x00000008 /* Unicast Hash Filter Frame WoL */ -#define WOL_MCAST_HASH 0x00000010 /* Multicast Hash Filter Frame WoL */ -#define WOL_PERFECT 0x00000020 /* Perfect Filter WoL */ -#define WOL_RX_FILTER 0x00000080 /* RX Filter caused WoL */ -#define WOL_MAG_PACKET 0x00000100 /* Magic Packet Filter caused WoL */ - -/* Interrupt Status/Enable/Clear/Set Registers */ -#define INT_RX_OVERRUN 0x00000001 /* Overrun Error in RX Queue */ -#define INT_RX_ERR 0x00000002 /* Receive Error */ -#define INT_RX_FIN 0x00000004 /* RX Finished Process Descriptors */ -#define INT_RX_DONE 0x00000008 /* Receive Done */ -#define INT_TX_UNDERRUN 0x00000010 /* Transmit Underrun */ -#define INT_TX_ERR 0x00000020 /* Transmit Error */ -#define INT_TX_FIN 0x00000040 /* TX Finished Process Descriptors */ -#define INT_TX_DONE 0x00000080 /* Transmit Done */ -#define INT_SOFT_INT 0x00001000 /* Software Triggered Interrupt */ -#define INT_WAKEUP 0x00002000 /* Wakeup Event Interrupt */ - -/* Power Down Register */ -#define PD_POWER_DOWN 0x80000000 /* Power Down MAC */ - -/* RX Descriptor Control Word */ -#define RCTRL_SIZE 0x000007FF /* Buffer size mask */ -#define RCTRL_INT 0x80000000 /* Generate RxDone Interrupt */ - -/* RX Status Hash CRC Word */ -#define RHASH_SA 0x000001FF /* Hash CRC for Source Address */ -#define RHASH_DA 0x001FF000 /* Hash CRC for Destination Address */ - -/* RX Status Information Word */ -#define RINFO_SIZE 0x000007FF /* Data size in bytes */ -#define RINFO_CTRL_FRAME 0x00040000 /* Control Frame */ -#define RINFO_VLAN 0x00080000 /* VLAN Frame */ -#define RINFO_FAIL_FILT 0x00100000 /* RX Filter Failed */ -#define RINFO_MCAST 0x00200000 /* Multicast Frame */ -#define RINFO_BCAST 0x00400000 /* Broadcast Frame */ -#define RINFO_CRC_ERR 0x00800000 /* CRC Error in Frame */ -#define RINFO_SYM_ERR 0x01000000 /* Symbol Error from PHY */ -#define RINFO_LEN_ERR 0x02000000 /* Length Error */ -#define RINFO_RANGE_ERR 0x04000000 /* Range Error (exceeded max. size) */ -#define RINFO_ALIGN_ERR 0x08000000 /* Alignment Error */ -#define RINFO_OVERRUN 0x10000000 /* Receive overrun */ -#define RINFO_NO_DESCR 0x20000000 /* No new Descriptor available */ -#define RINFO_LAST_FLAG 0x40000000 /* Last Fragment in Frame */ -#define RINFO_ERR 0x80000000 /* Error Occured (OR of all errors) */ - -#define RINFO_ERR_MASK (RINFO_FAIL_FILT | RINFO_CRC_ERR | RINFO_SYM_ERR | \ - RINFO_LEN_ERR | RINFO_ALIGN_ERR | RINFO_OVERRUN) - -/* TX Descriptor Control Word */ -#define TCTRL_SIZE 0x000007FF /* Size of data buffer in bytes */ -#define TCTRL_OVERRIDE 0x04000000 /* Override Default MAC Registers */ -#define TCTRL_HUGE 0x08000000 /* Enable Huge Frame */ -#define TCTRL_PAD 0x10000000 /* Pad short Frames to 64 bytes */ -#define TCTRL_CRC 0x20000000 /* Append a hardware CRC to Frame */ -#define TCTRL_LAST 0x40000000 /* Last Descriptor for TX Frame */ -#define TCTRL_INT 0x80000000 /* Generate TxDone Interrupt */ - -/* TX Status Information Word */ -#define TINFO_COL_CNT 0x01E00000 /* Collision Count */ -#define TINFO_DEFER 0x02000000 /* Packet Deferred (not an error) */ -#define TINFO_EXCESS_DEF 0x04000000 /* Excessive Deferral */ -#define TINFO_EXCESS_COL 0x08000000 /* Excessive Collision */ -#define TINFO_LATE_COL 0x10000000 /* Late Collision Occured */ -#define TINFO_UNDERRUN 0x20000000 /* Transmit Underrun */ -#define TINFO_NO_DESCR 0x40000000 /* No new Descriptor available */ -#define TINFO_ERR 0x80000000 /* Error Occured (OR of all errors) */ - -/* ENET Device Revision ID */ -#define OLD_EMAC_MODULE_ID 0x39022000 /* Rev. ID for first rev '-' */ - -/* DP83848C PHY Registers */ -#define PHY_REG_BMCR 0x00 /* Basic Mode Control Register */ -#define PHY_REG_BMSR 0x01 /* Basic Mode Status Register */ -#define PHY_REG_IDR1 0x02 /* PHY Identifier 1 */ -#define PHY_REG_IDR2 0x03 /* PHY Identifier 2 */ -#define PHY_REG_ANAR 0x04 /* Auto-Negotiation Advertisement */ -#define PHY_REG_ANLPAR 0x05 /* Auto-Neg. Link Partner Abitily */ -#define PHY_REG_ANER 0x06 /* Auto-Neg. Expansion Register */ -#define PHY_REG_ANNPTR 0x07 /* Auto-Neg. Next Page TX */ - -/* PHY Extended Registers */ -#define PHY_REG_STS 0x10 /* Status Register */ -#define PHY_REG_MICR 0x11 /* MII Interrupt Control Register */ -#define PHY_REG_MISR 0x12 /* MII Interrupt Status Register */ -#define PHY_REG_FCSCR 0x14 /* False Carrier Sense Counter */ -#define PHY_REG_RECR 0x15 /* Receive Error Counter */ -#define PHY_REG_PCSR 0x16 /* PCS Sublayer Config. and Status */ -#define PHY_REG_RBR 0x17 /* RMII and Bypass Register */ -#define PHY_REG_LEDCR 0x18 /* LED Direct Control Register */ -#define PHY_REG_PHYCR 0x19 /* PHY Control Register */ -#define PHY_REG_10BTSCR 0x1A /* 10Base-T Status/Control Register */ -#define PHY_REG_CDCTRL1 0x1B /* CD Test Control and BIST Extens. */ -#define PHY_REG_EDCR 0x1D /* Energy Detect Control Register */ - -#define PHY_FULLD_100M 0x2100 /* Full Duplex 100Mbit */ -#define PHY_HALFD_100M 0x2000 /* Half Duplex 100Mbit */ -#define PHY_FULLD_10M 0x0100 /* Full Duplex 10Mbit */ -#define PHY_HALFD_10M 0x0000 /* Half Duplex 10MBit */ -#define PHY_AUTO_NEG 0x3000 /* Select Auto Negotiation */ - -#define DP83848C_DEF_ADR 0x0100 /* Default PHY device address */ -#define DP83848C_ID 0x20005C90 /* PHY Identifier */ - -// Ethernet power/clock control bit in PCONP register -#define PCENET 0x40000000 -// Ethernet configuration for PINSEL2, as per user guide section 5.3 -#define ENET_PINSEL2_CONFIG 0x50150105 -// Ethernet configuration for PINSEL3, as per user guide section 5.4 -#define ENET_PINSEL3_CONFIG 0x00000005 -// Only bottom byte of PINSEL3 relevant to Ethernet -#define ENET_PINSEL3_MASK 0x0000000F - - -/************************************************* - * CodeRed - PHY definitions for RDB1768 rev 2 - * which uses SMSC LAN8720 PHY instead of DP83848C - *************************************************/ -#define LAN8720_ID 0x0007C0F0 /* PHY Identifier */ - - -void Init_EthMAC(void); -void RequestSend(unsigned short FrameSize); -unsigned short StartReadingFrame(void); -void StopReadingFrame(void); -unsigned int CheckIfFrameReceived(void); -void WriteFrame_EthMAC(unsigned char Data); -unsigned char ReadFrame_EthMAC(void); -void ethernet_power_down(void); - - -#endif - diff --git a/TP1_labyrinth_etu/src/fonts.h b/TP1_labyrinth_etu/src/fonts.h deleted file mode 100644 index 602ae77..0000000 --- a/TP1_labyrinth_etu/src/fonts.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * fonts.h - * - * Created on: 19 avr. 2016 - * Author: cma - */ - -#ifndef INC_FONTS_H_ -#define INC_FONTS_H_ - -#define fontdatatype const unsigned char -extern fontdatatype SmallFont[]; -extern fontdatatype BigFont[]; - -#define SMALLFONT 0 -#define BIGFONT 1 - -#endif /* INC_FONTS_H_ */ diff --git a/TP1_labyrinth_etu/src/labyrinth.c b/TP1_labyrinth_etu/src/labyrinth.c deleted file mode 100644 index 9e0d083..0000000 --- a/TP1_labyrinth_etu/src/labyrinth.c +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Name : tp1_labyrinth.c - * Author : VP - * Date : 23.10.2017 - * Description : Labyrinth (TP1). Master implementation must contain: - * - 5 balls management, 1 of the master controlled by the local accelerometer - * - 1 ball controlled by the slave (accelerometer of the slave board) - * - 3 balls with random accelerations - * - FreeRTOS used in cooperative mode - * - use of global variables allowed - * Only the slave acceleration is given by the slave. All ball positions are - * managed by the master. - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <stdbool.h> -#include <math.h> -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" -#include "lcd.h" -#include "accelerometer.h" -#include "ethernet_mgt.h" -#include "tools.h" -#include "custom_rand.h" -#include "traces_ref.h" - -#define NUMBER_OF_BALLS 5 // min 1 -#define BALL_DISP_PERIOD 20 // ms -#define BOT1_BALL_DISP_PERIOD 30 // ms -#define BOT2_BALL_DISP_PERIOD 50 // ms -#define BOT3_BALL_DISP_PERIOD 45 // ms -#define SPEED_MAX 5. -#define BALL_RADIUS 5 -#define BOT1_BALL_RADIUS 7 -#define BOT2_BALL_RADIUS 8 -#define BOT3_BALL_RADIUS 8 -#define REBOUND_FACTOR 0.9 // speed ratio after a rebound -#define PI 3.141592 -#define LCD_YELLOW (LCD_GREEN | LCD_RED) - -#define GOAL_H_WALL (LCD_MAX_WIDTH-(2*BALL_RADIUS+1+WALL_WIDTH)) -#define GOAL_V_WALL (LCD_MAX_HEIGHT-(2*BALL_RADIUS+1+WALL_WIDTH)-1) - -// Ball identifiers -enum { - NONE = -1, // NONE is used if ball has reached the goal (winner field) - MASTER_BALL, - SLAVE_BALL, - BOT1_BALL, - BOT2_BALL, - BOT3_BALL -}; - -// ball descriptor -typedef struct { - int thread_id; - object_t ball; -} ball_param_th_t; - -static coord_fx_t labyrinth_points[]={ - {80,280},{40,280},{40,190},{END_OF_LINE,LCD_WHITE}, - {40,100},{150,100},{150,160},{70,160},{END_OF_LINE,LCD_WHITE}, - {0,160},{40,160},{END_OF_LINE,LCD_WHITE}, - {70,190},{180,190},{180,80},{END_OF_LINE,LCD_WHITE}, - {210,100},{238,100},{END_OF_LINE,LCD_WHITE}, - {180,220},{238,220},{END_OF_LINE,LCD_WHITE}, - {0,40},{100,40},{END_OF_LINE,LCD_WHITE}, - {140,40},{237,40},{END_OF_LINE,LCD_WHITE}, - {120,220},{120,300},{END_OF_LINE,LCD_GREEN}, - {GOAL_H_WALL-2*BALL_RADIUS,GOAL_V_WALL},{LCD_MAX_WIDTH-1,GOAL_V_WALL},{END_OF_LINE,LCD_GREEN}, - {GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,LCD_MAX_HEIGHT-WALL_WIDTH},{GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,GOAL_V_WALL},{END_OF_WALLS,END_OF_WALLS} -}; - - -/* Description: Callback of ethernet module. This function is called when a message is received - * Parameters: data: pointer on data received - * len: length of the data [bytes] - */ -void slave_info_rx(void *data, int len) -{ - // code executed when the slave sends an ethernet frame -} - -int main(void) -{ - accel_t ball_accel; - static ball_param_th_t ball_param_th[NUMBER_OF_BALLS]={ // balls description - {MASTER_BALL,{{10,10}, {0, 0}, BALL_RADIUS, LCD_YELLOW, BALL_DISP_PERIOD}}, - {SLAVE_BALL,{{30,10}, {0, 0}, BALL_RADIUS, LCD_GREEN, BALL_DISP_PERIOD}}, - {BOT1_BALL,{{200,10}, {0, 0}, BOT1_BALL_RADIUS, LCD_RED| (LCD_BLUE>>2), BOT1_BALL_DISP_PERIOD}}, - {BOT2_BALL,{{70,70}, {0, 0}, BOT2_BALL_RADIUS, LCD_RED | (LCD_BLUE>>1), BOT2_BALL_DISP_PERIOD}}, - {BOT3_BALL,{{200,280}, {0, 0}, BOT3_BALL_RADIUS, LCD_RED | LCD_BLUE, BOT3_BALL_DISP_PERIOD}} - }; - - init_rnd32(0); // initialise random generator - init_lcd(); // initialise screen - if(accel_init() != 0) // initialise accelerometer - { - printf("Accelerometer initialisation failed!\n"); - return 1; - } - //ethernet_init(..., slave_info_rx); // initialise ethernet and determine its callback function - - draw_labyrinth(labyrinth_points); - init_traces(115200, 1, true); // initialise traces. Line to be removed if you implement your own traces - - accel_read(&ball_accel); // example: reading of the accelerometer - - // creating tasks... - // xTaskCreate(...); - // vTaskStartScheduler(); // launch scheduler - while(1); - - return 1; -} diff --git a/TP1_labyrinth_etu/src/lcd.h b/TP1_labyrinth_etu/src/lcd.h deleted file mode 100644 index b07e4d8..0000000 --- a/TP1_labyrinth_etu/src/lcd.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - * lcd.h - * - * Created on: 27 févr. 2014 - * Updated on: 28.9.2016 - * Authors: F. Vannel, V. Pilloux - * - * Note: the RGB screen colors (if coded with 16 bits) have the following format: - * blue: bits 4..0 - * green: bits 10..5 - * red: bits 15..11 - */ - -#ifndef LCD_H_ -#define LCD_H_ - -#ifdef __USE_CMSIS -#include "LPC17xx.h" -#endif - -#include <stdarg.h> -#include <stdbool.h> -#include <stdint.h> -#include "ssp.h" -#include "fonts.h" - -// LCD predefined colors -#define LCD_BLUE (0xF<<1) -#define LCD_GREEN (0x3f<<5) -#define LCD_RED (0x1f<<11) -#define LCD_WHITE 0xFFFF -#define LCD_BLACK 0 - -// screen size -#define LCD_MAX_HEIGHT (320) -#define LCD_MAX_WIDTH (240) - - -#define DISPLAY_ON() Write_Instruction(0xaf) // Display on -#define DISPLAY_OFF() Write_Instruction(0xae) // Display off -#define SET_ADC() Write_Instruction(0xa1) // Reverse disrect (SEG128-SEG0) -#define CLEAR_ADC() Write_Instruction(0xa0) // Normal disrect (SEG0-SEG128) -#define REVERSE_DISPLAY_ON() Write_Instruction(0xa7) // Reverse display : 0 illuminated -#define REVERSE_DISPLAY_OFF() Write_Instruction(0xa6) // Normal display : 1 illuminated -#define ENTIRE_DISPLAY_ON() Write_Instruction(0xa5) // Entire display Force whole LCD point -#define ENTIRE_DISPLAY_OFF() Write_Instruction(0xa4) // Normal display -#define SET_BIAS() Write_Instruction(0xa3) // bias 1 1/7 bias -#define CLEAR_BIAS() Write_Instruction(0xa2) // bias 0 1/9 bias -#define SET_MODIFY_READ() Write_Instruction(0xe0) // Stop automatic increment of the column address by the read instruction -#define RESET_MODIFY_READ() Write_Instruction(0xee) // Cancel Modify_read, column address return to its initial value just before the Set Modify Read instruction is started -#define RESET() Write_Instruction(0xe2) -#define SET_SHL() Write_Instruction(0xc8) // SHL 1,COM33-COM0 -#define CLEAR_SHL() Write_Instruction(0xc0) // SHL 0,COM0-COM33 - -#define LCD_CS_PIN 16 -#define LCD_RS_PORT 1 // D/C DATA/COMMAND SELECT -#define LCD_RS_PIN 30 - -// sck, mosi, miso is setup within ssp_init -// LCD_RS = D/Cx line. Must be 0 for a command, 1 for data. -// WARNING: LCD_CS_ENA() is called by lcd_init() only. If another peripheral uses SSP, LCD_CS_DIS() must be called. -// If the screen is required again, LCD_CS_ENA() must be called again! -#define LCD_CS_ENA() {LPC_GPIO0->FIOCLR=(1<<LCD_CS_PIN);} -#define LCD_CS_DIS() { while ((LPC_SSP0->SR & SSPSR_BSY)); \ - LPC_GPIO0->FIOSET=(1<<LCD_CS_PIN);} - - -/* Description: LCD initialisation. Must be called before any other function. */ -void init_lcd(void); - -/* Description: fill the screen with the defined color in RGB format (see above) - * Parameter: color: RGB 16 bits color (see format description above) - */ -void clear_screen(unsigned int color); - -/* Description: print text (with printf equivalent formatting) at the last line of screen with - * specified color. Automatic line wrapping is implemented, as \n and \r characters. - * Parameters: color: RGB 16 bits color of the text - * back_color: RGB 16 bits color of the text backround - * st: string in "printf format" followed by any parameter - * Return: string length [pixels] - */ -uint16_t lcd_printf(int color, int back_color, char *st, ...); - -/* Description: print text (with printf equivalent formatting) at the specified position and color - * Parameters: x: horizontal position of the text to print - * y: vertical position of the text to print - * font_size: BIGFONT or SMALLFONT - * color: RGB 16 bits color of the text - * back_color: RGB 16 bits color of the text backround - * st: string in "printf format" followed by any parameter - * Return: string length [char] - */ -uint16_t lcd_print(int x, int y, int font_size, int color, int back_color, char *st, ...); - -/* Description: setup scroll type - * Parameter: top_fixed_lines: number of the first lines that are fixed (not scrolled) - * scroll_lines: number of lines to scroll - * bottom_fixed_lines: number of the last lines that are fixed (not scrolled) - */ -void setup_scroll(uint16_t top_fixed_lines, uint16_t scroll_lines, uint16_t bottom_fixed_lines); - -/* Description: scroll the screen vertically - * Parameter: offset: scroll length [pixels] - */ -void lcd_scroll(int offset); - -/* Description: print one character at any position - * Parameter: c: character to print - * x: horizontal position of the character to print - * y: vertical position of the character to print - * color:RGB 16 bits color of the text - * font_size: BIGFONT or SMALLFONT - */ -void lcd_print_char(char c, int x, int y, int color, int back_color, int font_size); - -/* Description: draw an empty circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits color of the text - */ -void lcd_circle(int x_centre, int y_centre, int r, unsigned int color); - -/* Description: draw a filled circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits color of the circle - */ -void lcd_filled_circle(int x_centre, int y_centre, int r, unsigned int color); - -/* Description: draw a filled circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits foreground color of the circle - * background_color: background color of the square around the circle - */ -void lcd_filled_circle_on_square(int x_centre, int y_centre, int r, - unsigned int color, unsigned int background_color); - -/* Description: draw a line - * Parameter: x1: horizontal position of one line extremity - * y1: vertical position of one line extremity - * x2: horizontal position of the second line extremity - * y2: vertical position of the second line extremity - * color:RGB 16 bits color of the text - */ -void lcd_line(int x1, int y1, int x2, int y2, unsigned int color); - -/* Description: draw an horizontal line - * Parameter: x1: left horizontal position of one the line - * y1: vertical position of the line - * l: line length - * color:RGB 16 bits color of the text - */ -void lcd_lineH(int x, int y, int l, unsigned int color) ; - -/* Description: draw an vertical line - * Parameter: x1: left horizontal position of one the line - * y1: vertical position of the line - * l: line length - * color:RGB 16 bits color of the text - */ -void lcd_lineV(int x, int y, int l, unsigned int color); - -/* Description: draw an empty rectangle - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * color:RGB 16 bits color of the text - */ -void lcd_empty_rectangle(int x1, int y1, int x2, int y2, int color); - -/* Description: draw plain rectangle - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * color:RGB 16 bits color of the text - */ -void lcd_filled_rectangle(int x1, int y1, int x2, int y2, int color); - -/* Description: read an image in a file of BMP format, adapts it to the LCD format and - * put it in memory. The number of pixel of the image width must be a multiple of 4. - * Parameter: filename: filename of a BMP file - * - * Return: width: image width [pixels] - * height: image height [pixels] - * return value: pointer on the image in memory or NULL if an error occurred - */ -uint16_t *read_bmp_file(char *filename, uint16_t *width, uint16_t *height); - -/* Description: display an image stored in memory - * Parameter: bitmap: pointer on the image in memory. Each word of 16 bits represents the - * color of one pixel. The pixel are stored from left to right line by - * line from top to bottom. - * x: horizontal position of the top left corner - * y: vertical position of the top left corner - * width: image width - * height: image height - */ -void display_bitmap16(uint16_t *bitmap, uint16_t x, uint16_t y, uint16_t width, uint16_t height); - -/* Description: get pixel colors in a rectangle (16 bits format) - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * out: pointer on the 16 bits colors of the pixels in the rectangle - */ -void read_pixels(uint8_t x1, uint16_t y1, uint8_t x2, uint16_t y2, uint16_t *out); - - -/* Description: reads data of any command that gets data on LCD - * Parameter: read_cmd: LCD command word - * data_read: pointer on data to be read - * len: data length - */ -void read_cmd(uint8_t read_cmd, uint8_t *data_read, uint16_t len); - -// macro utilities -#define swap(type, i, j) {type t = i; i = j; j = t;} -#define MAX(x,y) (((x)>(y))?(x):(y)) -#define MIN(x,y) (((x)<(y))?(x):(y)) -#define ABS(x) (((x)<0)?-(x):(x)) - - -#endif /* LCD_H_ */ diff --git a/TP1_labyrinth_etu/src/ssp.h b/TP1_labyrinth_etu/src/ssp.h deleted file mode 100644 index 5584d85..0000000 --- a/TP1_labyrinth_etu/src/ssp.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * ssp.h - * - * Created on: 12 mars 2014 - * Author: christian - */ - -#ifndef SSP_H_ -#define SSP_H_ - -#include "LPC17xx.h" - -#define SSPSR_TFE (1 << 0) -#define SSPSR_TNF (1 << 1) -#define SSPSR_RNE (1 << 2) -#define SSPSR_RFF (1 << 3) -#define SSPSR_BSY (1 << 4) - - -void ssp_init_custom(uint8_t data_size_select, uint8_t scr); -void ssp_send_buf(uint8_t *buf, uint32_t length); -void ssp_receive_buf(uint8_t *buf, uint32_t length); - -#endif /* SSP_H_ */ diff --git a/TP1_labyrinth_etu/src/tools.c b/TP1_labyrinth_etu/src/tools.c deleted file mode 100644 index eda7a0d..0000000 --- a/TP1_labyrinth_etu/src/tools.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * tools.c - * - * Created on: 22 oct. 2017 - * Author: vince - */ - -#include <math.h> -#include "tools.h" -#include "lcd.h" - -int round(float x) -{ - if (x>=.5) - return (int)ceil(x); - if (x<=-.5) - return (int)floor(x); - return 0; -} - - -void draw_labyrinth(coord_fx_t *labyrinth_points) -{ - int i=0, color=LCD_WHITE; - - clear_screen(LCD_BLACK); - do { - while (labyrinth_points[++i].x>=0) - { - lcd_filled_rectangle( - labyrinth_points[i-1].x>labyrinth_points[i].x?labyrinth_points[i-1].x+WALL_WIDTH-1:labyrinth_points[i-1].x, - labyrinth_points[i-1].y>labyrinth_points[i].y?labyrinth_points[i-1].y+WALL_WIDTH-1:labyrinth_points[i-1].y, - labyrinth_points[i-1].x==labyrinth_points[i].x?labyrinth_points[i].x+WALL_WIDTH-1:labyrinth_points[i].x, - labyrinth_points[i-1].y==labyrinth_points[i].y?labyrinth_points[i].y+WALL_WIDTH-1:labyrinth_points[i].y, - color); - } - color=labyrinth_points[i].y; - } while (labyrinth_points[i++].x!=END_OF_WALLS); -} - - - -/* detect all collisions among all object in every direction - * Return: collision vector index or NO_COLLISION - */ -int test_collision(object_t *object) -{ - uint16_t tp[2*MAX_RADIUS+1], i, k; - int offset_x, offset_y; - int col_dir_idx=0; // keep track of collision points around max_dir - coord_fx_t speed, pos; - float speed_max; - - // test collision at next position of the object. ! to rounding ! - pos.x=round(object->pos.x+object->speed.x); - pos.y=round(object->pos.y+object->speed.y); - speed.x=pos.x-round(object->pos.x); - speed.y=pos.y-round(object->pos.y); - // test screen bounds: - if (pos.x<object->radius) - col_dir_idx|=TOUCH_LEFT; - if (pos.x>LCD_MAX_WIDTH-object->radius-1) - col_dir_idx|=TOUCH_RIGHT; - if (pos.y<object->radius) - col_dir_idx|=TOUCH_UP; - if (pos.y>LCD_MAX_HEIGHT-object->radius-1) - col_dir_idx|=TOUCH_DOWN; - if (col_dir_idx) - return col_dir_idx; - - speed_max=MAX(ABS(speed.x), ABS(speed.y)); - for (k=1; k<=speed_max; k++) // test line by line if there is a collision, going forward of 1 pixel - { - pos.x=round(object->pos.x+object->speed.x*(float)k/speed_max); - pos.y=round(object->pos.y+object->speed.y*(float)k/speed_max); - speed.x=pos.x-round(object->pos.x); - speed.y=pos.y-round(object->pos.y); - offset_x=speed.x?1:0; // to adjust size of the front detection line - offset_y=speed.y?1:0; - if (speed.y>0) // test low horizontal line of pixel of the object width (on new position), except pixel on corner! - { - read_pixels((uint8_t)(pos.x-object->radius+offset_x), (uint16_t)(pos.y+object->radius), - (uint8_t)(pos.x+object->radius-offset_x), (uint16_t)(pos.y+object->radius), tp); - for (i=0; i<=2*(object->radius-offset_x); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_DOWN; - break; - } - } - if (speed.y<0) - { - read_pixels((uint8_t)(pos.x-object->radius+offset_x), (uint16_t)(pos.y-object->radius), - (uint8_t)(pos.x+object->radius-offset_x), (uint16_t)(pos.y-object->radius), tp); - for (i=0; i<=2*(object->radius-offset_x); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_UP; - break; - } - } - if (speed.x>0) // test right vertical line of pixel of the object width (on new position) except corner pixel - { - read_pixels((uint8_t)(pos.x+object->radius), (uint16_t)(pos.y-object->radius+offset_y), - (uint8_t)(pos.x+object->radius), (uint16_t)(pos.y+object->radius-offset_y), tp); - for (i=0; i<=2*(object->radius-offset_y); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_RIGHT; - break; - } - } - if (speed.x<0) - { - read_pixels((uint8_t)(pos.x-object->radius), (uint16_t)(pos.y-object->radius+offset_y), - (uint8_t)(pos.x-object->radius), (uint16_t)(pos.y+object->radius-offset_y), tp); - for (i=0; i<=2*(object->radius-offset_y); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_LEFT; - break; - } - } - if (col_dir_idx) - break; - } - return col_dir_idx; -} diff --git a/TP1_labyrinth_etu/src/tools.h b/TP1_labyrinth_etu/src/tools.h deleted file mode 100644 index 701c2d9..0000000 --- a/TP1_labyrinth_etu/src/tools.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Name : tools.h - * Author : VP - * Date : 23.10.2017 - * Description : utility functions to draw the labyrinth and to test object collisions - */ - -#ifndef TOOLS_H_ -#define TOOLS_H_ - -#include <stdint.h> - -#define MAX_RADIUS 15 // maximum radius of an object -#define WALL_WIDTH 3 // labyrinth wall width -#define END_OF_LINE -1 // 'x' coordinate of labyrinth indicating the end of a wall -#define END_OF_WALLS -2 // ^y' coordinate of labyrinth indicating the end of the point table - -// constants used to build the collision vector (see function test_collision) -enum { - NO_COLLISION=0, - TOUCH_LEFT=(1<<2), - TOUCH_RIGHT=(1<<0), - TOUCH_UP=(1<<1), - TOUCH_DOWN=(1<<3), -}; - -typedef struct -{ - float x; - float y; -} coord_t; - -typedef struct -{ - int x; - int y; -} coord_fx_t; - -// defines a "squared" object. "pos" defines the position of the center of the object -// and radius is the number of pixels considered around pos in x and y directions -typedef struct -{ - coord_t pos; - coord_t speed; - uint8_t radius; - uint16_t color; - uint16_t period; // display period [ms] -} object_t; - -typedef struct { - int ball_id; - coord_fx_t ball_coord; - uint16_t color; - uint8_t radius; - int8_t winner; -} master_tx_t; - -// rounds a float on an integer, whatever its sign -int round(float x); - - -/* draw the labyrinth. The wall description is an array of points. 2 successive points must have at least - * one common coordinate, either x or y since only vertical or horizontal lines are allowed. To end a line, - * END_OF_LINE must replace the x coordinate, while feeding y with the line color of the next line. The end of the array - * is marked with the point {END_OF_WALLS,END_OF_WALLS} - * Parameter: labyrinth_points: pointer on the array of points - * */ -void draw_labyrinth(coord_fx_t *labyrinth_points); - -/* detect all collisions among all objects in every direction. - * Parameter: object: object that tests collisions - * Return: collision vector index or NO_COLLISION. The vector is a bit vector indicating where the object touched - * an obstacle. Example of value returned: TOUCH_RIGHT | TOUCH_UP. - */ -int test_collision(object_t *object); - -#endif /* TOOLS_H_ */ diff --git a/TP1_labyrinth_etu/src/trace_mgt.c b/TP1_labyrinth_etu/src/trace_mgt.c deleted file mode 100644 index 4f6d5d4..0000000 --- a/TP1_labyrinth_etu/src/trace_mgt.c +++ /dev/null @@ -1,39 +0,0 @@ - -/* - * Description: trace management using UART - * Created on : 23.3.2017 - * Author : VP - */ -#ifdef __USE_CMSIS -#include "LPC17xx.h" -#endif -#include <traces_ref.h> -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" -#include "uart.h" - -/* Description: write a trace to a memory buffer. Note that this function is - * automatically called by FreeRTOS in privileged mode. - * - * Parameters: trace_id: trace ID. Usually the task number in FreeRTOS. - * val: 1 if task becomes active, 0 otherwise - */ -void write_trace(uint8_t trace_id, short val) -{ - write_trace_ref(trace_id, val); // to be replaced by your own implementation -} - - - -/*void vApplicationIdleHook( void ) -{ - while (1) - { - // implement trace sending here after having set configUSE_IDLE_HOOK to 1 in FreeRTOSConfig.h - taskYIELD(); // force changement de contexte - } -}*/ - - diff --git a/TP1_labyrinth_etu/src/traces_ref.h b/TP1_labyrinth_etu/src/traces_ref.h deleted file mode 100644 index 814d3d1..0000000 --- a/TP1_labyrinth_etu/src/traces_ref.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Description: trace management using UART (and FreeRTOS) - * Created on : 30 sept. 2013 - * Author : VP - */ -#ifndef TRACES_REF_H_ -#define TRACES_REF_H_ - -#include <stdio.h> -#include <stdint.h> -#include <stdbool.h> - -// definition of the synchronisation word defining the start of each trace -#define SYNCHRO_WORD 0x55 - -/* Description: initialize UART0 and specified timer for traces. If enabled, - * the interrupts occur after each trace sending. - * DO NOT CALL send_traces_to_uart0() but only write_trace_ref() - * if interrupts are enabled. - * Parameters: baudrate: valid UART baudrate [bit/s] - * timer_id: 0 to 3 to identify the timer used as a free running counter - * interrupt_enabled: enable UART0 interrupt if true - */ -void init_traces(uint32_t baudrate, int timer_id, bool interrupt_enabled); - -/* Description: store a trace in a memory buffer - * - * Parameters: trace_id: trace ID. Usually the task number in FreeRTOS. - * val: 1 if task becomes active, 0 otherwise - */ -void write_trace_ref(uint8_t trace_id, short val); - -/* Description: if new traces are available, send them to UART. - * Polling is used here instead of interrupts */ -void send_traces_to_uart0(void); - -// trace structure -typedef struct { - uint8_t synchro; - uint8_t sig_idx; /* bit 8 indicates other traces than VCD */ - short val; - uint32_t time; -} trace_t; - -#endif diff --git a/TP1_labyrinth_etu/src/uart.h b/TP1_labyrinth_etu/src/uart.h deleted file mode 100644 index ccd49ea..0000000 --- a/TP1_labyrinth_etu/src/uart.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Description: UART 0 driver - * Created on : 30 sept. 2013 - * Author : VP - */ -#ifndef __UART_H -#define __UART_H - -#define IER_RX 0x1 // interrupt enable flags -#define IER_TX 0x2 - -#define IIR_TX 0x2 // interrupt identification flags -#define IIR_RX 0x4 -#define IS_TX_EMPTY (1<<5) // status flags on LSR register -#define IS_RX_NOT_EMPTY (1<<2) - -/* Callback function prototype for UART interrupt */ -typedef void (*uart_callback_t)(int int_status); - -/* Description: UART 0 initialisation. Callbacks can be used, but at most once for TX and once for RX data. - * Note that only the first call of uart0_init_ref is setting up the baudrate, which can't be - * modified during further calls. - * - * Parameters: baudrate [bit/s] - * tx_callback: pointer on callback function called by interrupt at the end of TX character - * transmission. Note that calling uart0_init_ref() does NOT activate IER_THRE to avoid - * continuous calls of tx_callback when the transmission buffer is empty. It is up to - * the user to enable it when necessary (LPC_UART0->IER |= IER_THRE) and to disable it at - * the end of the transmission (LPC_UART0->IER &= ~IER_THRE). Once IER configured to enable - * the interrupt, the first interrupt can be provoked either by sending a character on the UART - * or by forcing the VIC to rise it with NVIC_SetPendingIRQ(UART0_IRQn). Note that if this last - * method is used, the int_flags of the callback parameter are not significant. In this case, - * LPC_UART0->LSR must be read to know if a transmission has been done. - * rx_callback: pointer on callback function called by interrupt on RX character - * receiving. if NULL is given, no interrupt is configured. The callback - * will be called each time a character is received. - */ -void uart0_init_ref(uint32_t baudrate, uart_callback_t tx_callback, uart_callback_t rx_callback); - -/* Description: UART 0 initialisation - * - * Parameters: data: pointer on data to be sent - * length: data length [bytes] - */ -void uart0_send_ref(uint8_t *data, uint32_t length); - -/* Description: stop UART0 interrupts. The switch off is only managed by the VIC. */ -void uart0_stop_interrupt(); - -#endif diff --git a/TP1_labyrinth_slave_etu/.DS_Store b/TP1_labyrinth_slave_etu/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**<q8>++&mCkOWA81W14cNZ<zv;LbK1Poaz?KmsK2CSc!( z0ynLxE!0092;Krf2c+FF_Fe*7ECH>lEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0<F0fCPF1$Cyrb|F7^5{eNG?83~ZUUlGt@xh*qZDeu<Z%US-OSsOPv j)R!Z4KLME7ReXlK;d!wEw5GODWMKRea10D2@KpjYNUI8I diff --git a/TP1_labyrinth_slave_etu/.cproject b/TP1_labyrinth_slave_etu/.cproject deleted file mode 100644 index d28f6de..0000000 --- a/TP1_labyrinth_slave_etu/.cproject +++ /dev/null @@ -1,452 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> - <storageModule moduleId="org.eclipse.cdt.core.settings"> - <cconfiguration id="com.crt.advproject.config.exe.debug.1961788077"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.1961788077" moduleId="org.eclipse.cdt.core.settings" name="Debug"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Debug build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.debug.1961788077" name="Debug" parent="com.crt.advproject.config.exe.debug" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -v -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; # checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; "> - <folderInfo id="com.crt.advproject.config.exe.debug.1961788077." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.exe.debug.830538228" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.debug"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.debug.1482556786" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/> - <builder buildPath="${workspace_loc:/Labo1}/Debug" id="com.crt.advproject.builder.exe.debug.766322327" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/> - <tool id="com.crt.advproject.cpp.exe.debug.2114699748" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug"> - <option id="com.crt.advproject.cpp.hdrlib.1106606720" name="Library headers" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> - <option id="com.crt.advproject.cpp.fpu.1220277842" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="true"/> - <option id="gnu.cpp.compiler.option.preprocessor.def.1794799165" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def"/> - </tool> - <tool id="com.crt.advproject.gcc.exe.debug.504230289" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug"> - <option id="com.crt.advproject.gcc.arch.1052075906" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="true" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.559004851" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1212555079" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__REDLIB__"/> - <listOptionValue builtIn="false" value="DEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="CORE_M3"/> - <listOptionValue builtIn="false" value="__USE_CMSIS=CMSIS_CORE_LPC17xx"/> - <listOptionValue builtIn="false" value="__LPC17XX__"/> - </option> - <option id="gnu.c.compiler.option.misc.other.2130493681" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.hdrlib.1230238397" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" useByScannerDiscovery="false" value="com.crt.advproject.gcc.hdrlib.codered" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.587235853" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/inc}""/> - </option> - <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.1584171154" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" useByScannerDiscovery="true" value="gnu.c.optimization.level.none" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.fpu.1873243863" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="true"/> - <option id="com.crt.advproject.c.misc.dialect.212859432" superClass="com.crt.advproject.c.misc.dialect"/> - <option id="gnu.c.compiler.option.dialect.flags.1080770511" superClass="gnu.c.compiler.option.dialect.flags"/> - <option id="gnu.c.compiler.option.preprocessor.nostdinc.2082398808" superClass="gnu.c.compiler.option.preprocessor.nostdinc"/> - <option id="gnu.c.compiler.option.preprocessor.preprocess.743629636" superClass="gnu.c.compiler.option.preprocessor.preprocess"/> - <option id="gnu.c.compiler.option.preprocessor.undef.symbol.641111392" superClass="gnu.c.compiler.option.preprocessor.undef.symbol"/> - <option id="gnu.c.compiler.option.include.files.1472444986" superClass="gnu.c.compiler.option.include.files"/> - <option id="gnu.c.compiler.option.optimization.flags.352947553" superClass="gnu.c.compiler.option.optimization.flags"/> - <option id="com.crt.advproject.gcc.exe.debug.option.debugging.level.843160025" superClass="com.crt.advproject.gcc.exe.debug.option.debugging.level"/> - <option id="com.crt.advproject.gcc.exe.debug.option.debugging.other.1896819087" superClass="com.crt.advproject.gcc.exe.debug.option.debugging.other"/> - <option id="gnu.c.compiler.option.debugging.prof.261512085" superClass="gnu.c.compiler.option.debugging.prof"/> - <option id="gnu.c.compiler.option.debugging.gprof.1330368846" superClass="gnu.c.compiler.option.debugging.gprof"/> - <option id="gnu.c.compiler.option.debugging.codecov.1460994237" superClass="gnu.c.compiler.option.debugging.codecov"/> - <option id="gnu.c.compiler.option.debugging.sanitaddress.1119479454" superClass="gnu.c.compiler.option.debugging.sanitaddress"/> - <option id="gnu.c.compiler.option.debugging.sanitpointers.406978287" superClass="gnu.c.compiler.option.debugging.sanitpointers"/> - <option id="gnu.c.compiler.option.debugging.sanitthread.1314943295" superClass="gnu.c.compiler.option.debugging.sanitthread"/> - <option id="gnu.c.compiler.option.debugging.sanitleak.2098103840" superClass="gnu.c.compiler.option.debugging.sanitleak"/> - <option id="gnu.c.compiler.option.debugging.sanitundef.2124419132" superClass="gnu.c.compiler.option.debugging.sanitundef"/> - <option id="gnu.c.compiler.option.warnings.syntax.893949196" superClass="gnu.c.compiler.option.warnings.syntax"/> - <option id="gnu.c.compiler.option.warnings.pedantic.1142978064" superClass="gnu.c.compiler.option.warnings.pedantic"/> - <option id="gnu.c.compiler.option.warnings.pedantic.error.1786649479" superClass="gnu.c.compiler.option.warnings.pedantic.error"/> - <option id="gnu.c.compiler.option.warnings.nowarn.193309012" superClass="gnu.c.compiler.option.warnings.nowarn"/> - <option id="gnu.c.compiler.option.warnings.allwarn.62983781" superClass="gnu.c.compiler.option.warnings.allwarn"/> - <option id="gnu.c.compiler.option.warnings.extrawarn.1297218361" superClass="gnu.c.compiler.option.warnings.extrawarn"/> - <option id="gnu.c.compiler.option.warnings.toerrors.276803479" superClass="gnu.c.compiler.option.warnings.toerrors"/> - <option id="gnu.c.compiler.option.warnings.wconversion.121940104" superClass="gnu.c.compiler.option.warnings.wconversion"/> - <option id="gnu.c.compiler.option.warnings.wcastalign.1889928897" superClass="gnu.c.compiler.option.warnings.wcastalign"/> - <option id="gnu.c.compiler.option.warnings.wcastqual.2140312266" superClass="gnu.c.compiler.option.warnings.wcastqual"/> - <option id="gnu.c.compiler.option.warnings.wdisabledopt.1820687211" superClass="gnu.c.compiler.option.warnings.wdisabledopt"/> - <option id="gnu.c.compiler.option.warnings.wlogicalop.108675229" superClass="gnu.c.compiler.option.warnings.wlogicalop"/> - <option id="gnu.c.compiler.option.warnings.wmissingdecl.673777409" superClass="gnu.c.compiler.option.warnings.wmissingdecl"/> - <option id="gnu.c.compiler.option.warnings.wmissingincdir.258076549" superClass="gnu.c.compiler.option.warnings.wmissingincdir"/> - <option id="gnu.c.compiler.option.warnings.wredundantdecl.1450296174" superClass="gnu.c.compiler.option.warnings.wredundantdecl"/> - <option id="gnu.c.compiler.option.warnings.wshadow.1776975034" superClass="gnu.c.compiler.option.warnings.wshadow"/> - <option id="gnu.c.compiler.option.warnings.wsignconv.1997676441" superClass="gnu.c.compiler.option.warnings.wsignconv"/> - <option id="gnu.c.compiler.option.warnings.wswitchdef.2048862804" superClass="gnu.c.compiler.option.warnings.wswitchdef"/> - <option id="gnu.c.compiler.option.warnings.wundef.1128659655" superClass="gnu.c.compiler.option.warnings.wundef"/> - <option id="gnu.c.compiler.option.warnings.wwritestrings.673661680" superClass="gnu.c.compiler.option.warnings.wwritestrings"/> - <option id="gnu.c.compiler.option.warnings.wfloatequal.1560169584" superClass="gnu.c.compiler.option.warnings.wfloatequal"/> - <option id="gnu.c.compiler.option.misc.otherExcludedFromScannerDiscovery.1041014446" superClass="gnu.c.compiler.option.misc.otherExcludedFromScannerDiscovery"/> - <option id="gnu.c.compiler.option.misc.verbose.1085434083" superClass="gnu.c.compiler.option.misc.verbose"/> - <option id="gnu.c.compiler.option.misc.ansi.468634775" superClass="gnu.c.compiler.option.misc.ansi"/> - <option id="gnu.c.compiler.option.misc.pic.1868935770" superClass="gnu.c.compiler.option.misc.pic"/> - <option id="gnu.c.compiler.option.misc.hardening.1244798856" superClass="gnu.c.compiler.option.misc.hardening"/> - <option id="gnu.c.compiler.option.misc.randomization.127537950" superClass="gnu.c.compiler.option.misc.randomization"/> - <option id="com.crt.advproject.gcc.lto.289456021" superClass="com.crt.advproject.gcc.lto"/> - <option id="com.crt.advproject.gcc.lto.fat.634968473" superClass="com.crt.advproject.gcc.lto.fat"/> - <option id="com.crt.advproject.gcc.merge.constants.484659083" superClass="com.crt.advproject.gcc.merge.constants"/> - <option id="com.crt.advproject.gcc.prefixmap.1337261328" superClass="com.crt.advproject.gcc.prefixmap"/> - <option id="com.crt.advproject.gcc.thumbinterwork.1817253953" superClass="com.crt.advproject.gcc.thumbinterwork"/> - <option id="com.crt.advproject.gcc.securestate.226004134" superClass="com.crt.advproject.gcc.securestate"/> - <option id="com.crt.advproject.gcc.stackusage.756961377" superClass="com.crt.advproject.gcc.stackusage"/> - <option id="com.crt.advproject.gcc.specs.1273884146" superClass="com.crt.advproject.gcc.specs"/> - <option id="com.crt.advproject.gcc.config.1932083671" superClass="com.crt.advproject.gcc.config"/> - <option id="com.crt.advproject.gcc.store.356933426" superClass="com.crt.advproject.gcc.store"/> - <inputType id="com.crt.advproject.compiler.input.2000624862" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.exe.debug.1415986929" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug"> - <option id="com.crt.advproject.gas.arch.548681547" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.1661478602" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.572280974" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DDEBUG -D__CODE_RED" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.2076415884" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.codered" valueType="enumerated"/> - <option id="com.crt.advproject.gas.fpu.825612267" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> - <option id="gnu.both.asm.option.include.paths.1612024380" superClass="gnu.both.asm.option.include.paths"/> - <option id="gnu.both.asm.option.warnings.nowarn.1074328171" superClass="gnu.both.asm.option.warnings.nowarn"/> - <option id="gnu.both.asm.option.version.1143601199" superClass="gnu.both.asm.option.version"/> - <option id="com.crt.advproject.gas.exe.debug.option.debugging.level.1840766617" superClass="com.crt.advproject.gas.exe.debug.option.debugging.level"/> - <option id="com.crt.advproject.gas.exe.debug.option.debugging.other.1204369552" superClass="com.crt.advproject.gas.exe.debug.option.debugging.other"/> - <option id="com.crt.advproject.gas.thumbinterwork.1645768106" superClass="com.crt.advproject.gas.thumbinterwork"/> - <option id="com.crt.advproject.gas.specs.1178881900" superClass="com.crt.advproject.gas.specs"/> - <option id="com.crt.advproject.gas.config.425247602" superClass="com.crt.advproject.gas.config"/> - <option id="com.crt.advproject.gas.store.784561583" superClass="com.crt.advproject.gas.store"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.248721909" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.968568522" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.debug.753747237" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug"> - <option id="com.crt.advproject.link.cpp.hdrlib.1422832063" name="Library" superClass="com.crt.advproject.link.cpp.hdrlib"/> - <option id="com.crt.advproject.link.cpp.fpu.1444411157" name="Floating point" superClass="com.crt.advproject.link.cpp.fpu"/> - </tool> - <tool id="com.crt.advproject.link.exe.debug.183992099" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.1782236783" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <option id="com.crt.advproject.link.arch.563245846" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.1587210223" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.1660719451" name="Linker script" superClass="com.crt.advproject.link.script" value=""G3_TP1_labyrinth_slave_etu_Debug.ld"" valueType="string"/> - <option id="com.crt.advproject.link.manage.212894868" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.1735300984" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.other.681311213" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.1667564543" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.codered.semihost" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.libs.73205768" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> - <listOptionValue builtIn="false" value="MyLab_lib"/> - <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> - </option> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.1697219173" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> - <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/Debug}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Debug}""/> - </option> - <option id="com.crt.advproject.link.crpenable.899096388" name="Enable automatic placement of Code Read Protection field in image" superClass="com.crt.advproject.link.crpenable" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.gcc.multicore.slave.241458873" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> - <option id="com.crt.advproject.link.memory.load.image.645908871" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> - <option id="com.crt.advproject.link.memory.heapAndStack.408591348" name="Heap and Stack options" superClass="com.crt.advproject.link.memory.heapAndStack" value="&Heap:Default;Post Data;Default&Stack:Default;End;Default" valueType="string"/> - <option id="com.crt.advproject.link.memory.data.1066803441" name="Global data placement" superClass="com.crt.advproject.link.memory.data" value="" valueType="string"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.1615005549" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> - <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.783823828" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> - <option id="com.crt.advproject.link.fpu.885739244" name="Floating point" superClass="com.crt.advproject.link.fpu"/> - <option id="com.crt.advproject.link.gcc.multicore.master.731921425" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> - <option id="gnu.c.link.option.nostart.963420229" superClass="gnu.c.link.option.nostart"/> - <option id="gnu.c.link.option.nodeflibs.73843965" superClass="gnu.c.link.option.nodeflibs"/> - <option id="gnu.c.link.option.strip.249205435" superClass="gnu.c.link.option.strip"/> - <option id="gnu.c.link.option.noshared.1439526050" superClass="gnu.c.link.option.noshared"/> - <option id="gnu.c.link.option.group.1096237269" superClass="gnu.c.link.option.group"/> - <option id="gnu.c.link.option.ldflags.688619435" superClass="gnu.c.link.option.ldflags"/> - <option id="gnu.c.link.option.userobjs.1048719719" superClass="gnu.c.link.option.userobjs"/> - <option id="gnu.c.link.option.shared.1691458274" superClass="gnu.c.link.option.shared"/> - <option id="gnu.c.link.option.soname.211452493" superClass="gnu.c.link.option.soname"/> - <option id="gnu.c.link.option.implname.1359745156" superClass="gnu.c.link.option.implname"/> - <option id="gnu.c.link.option.defname.1576342734" superClass="gnu.c.link.option.defname"/> - <option id="gnu.c.link.option.debugging.prof.915039448" superClass="gnu.c.link.option.debugging.prof"/> - <option id="gnu.c.link.option.debugging.gprof.1359698914" superClass="gnu.c.link.option.debugging.gprof"/> - <option id="gnu.c.link.option.debugging.codecov.693080836" superClass="gnu.c.link.option.debugging.codecov"/> - <option id="com.crt.advproject.link.gcc.lto.1578113178" superClass="com.crt.advproject.link.gcc.lto"/> - <option id="com.crt.advproject.link.gcc.lto.optmization.level.1012766093" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> - <option id="com.crt.advproject.link.scriptdir.1387194381" superClass="com.crt.advproject.link.scriptdir"/> - <option id="com.crt.advproject.link.flashconfigenable.677426598" superClass="com.crt.advproject.link.flashconfigenable"/> - <option id="com.crt.advproject.link.ecrp.133392161" superClass="com.crt.advproject.link.ecrp"/> - <option id="com.crt.advproject.link.gcc.nanofloat.820692955" superClass="com.crt.advproject.link.gcc.nanofloat"/> - <option id="com.crt.advproject.link.gcc.nanofloat.scanf.1171748401" superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> - <option id="com.crt.advproject.link.toram.336708945" superClass="com.crt.advproject.link.toram"/> - <option id="com.crt.advproject.link.stackOffset.388898913" superClass="com.crt.advproject.link.stackOffset"/> - <option id="com.crt.advproject.link.gcc.multicore.empty.831331150" superClass="com.crt.advproject.link.gcc.multicore.empty"/> - <option id="com.crt.advproject.link.config.2126779497" superClass="com.crt.advproject.link.config"/> - <option id="com.crt.advproject.link.store.2146783864" superClass="com.crt.advproject.link.store"/> - <option id="com.crt.advproject.link.securestate.15463612" superClass="com.crt.advproject.link.securestate"/> - <option id="com.crt.advproject.link.sgstubs.placement.1769457772" superClass="com.crt.advproject.link.sgstubs.placement"/> - <option id="com.crt.advproject.link.sgstubenable.1054396086" superClass="com.crt.advproject.link.sgstubenable"/> - <option id="com.crt.advproject.link.nonsecureobject.1658277719" superClass="com.crt.advproject.link.nonsecureobject"/> - <option id="com.crt.advproject.link.inimplib.381169523" superClass="com.crt.advproject.link.inimplib"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1851823283" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - <tool id="com.crt.advproject.tool.debug.debug.790069747" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.debug"> - <option id="com.crt.advproject.linkserver.debug.prevent.debug.1283260286" superClass="com.crt.advproject.linkserver.debug.prevent.debug"/> - <option id="com.crt.advproject.miscellaneous.end_of_heap.673369381" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> - <option id="com.crt.advproject.miscellaneous.pvHeapStart.223552775" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> - <option id="com.crt.advproject.miscellaneous.pvHeapLimit.1482330908" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> - <option id="com.crt.advproject.debugger.security.nonsecureimageenable.1778411552" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> - <option id="com.crt.advproject.debugger.security.nonsecureimage.1919209840" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> - </tool> - </toolChain> - </folderInfo> - <sourceEntries> - <entry excluding="Labo4.c|Labo_mylab1.c|Labo2_mylab1_correction.c|Labo1.c|Labo1_mylab1_correction.c|Labo1_correction.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - <cconfiguration id="com.crt.advproject.config.exe.release.955237986"> - <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.955237986" moduleId="org.eclipse.cdt.core.settings" name="Release"> - <externalSettings/> - <extensions> - <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> - <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> - </extensions> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <configuration artifactExtension="axf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="Release build" errorParsers="org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser" id="com.crt.advproject.config.exe.release.955237986" name="Release" parent="com.crt.advproject.config.exe.release" postannouncebuildStep="Performing post-build steps" postbuildStep="arm-none-eabi-size "${BuildArtifactFileName}"; # arm-none-eabi-objcopy -v -O binary "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" ; # checksum -p ${TargetChip} -d "${BuildArtifactFileBaseName}.bin"; "> - <folderInfo id="com.crt.advproject.config.exe.release.955237986." name="/" resourcePath=""> - <toolChain id="com.crt.advproject.toolchain.exe.release.2026634147" name="Code Red MCU Tools" superClass="com.crt.advproject.toolchain.exe.release"> - <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.GNU_ELF" id="com.crt.advproject.platform.exe.release.392374634" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/> - <builder buildPath="${workspace_loc:/Labo1}/Release" id="com.crt.advproject.builder.exe.release.927746786" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/> - <tool id="com.crt.advproject.cpp.exe.release.1901145628" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release"/> - <tool id="com.crt.advproject.gcc.exe.release.1579904955" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release"> - <option id="com.crt.advproject.gcc.arch.1766743211" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="true" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gcc.thumb.1007793482" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.preprocessor.def.symbols.1279704342" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" useByScannerDiscovery="false" valueType="definedSymbols"> - <listOptionValue builtIn="false" value="__REDLIB__"/> - <listOptionValue builtIn="false" value="NDEBUG"/> - <listOptionValue builtIn="false" value="__CODE_RED"/> - <listOptionValue builtIn="false" value="CORE_M3"/> - <listOptionValue builtIn="false" value="__USE_CMSIS=CMSIS_CORE_LPC17xx"/> - <listOptionValue builtIn="false" value="__LPC17XX__"/> - </option> - <option id="gnu.c.compiler.option.misc.other.58542398" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> - <option id="com.crt.advproject.gcc.hdrlib.1441429566" name="Library headers" superClass="com.crt.advproject.gcc.hdrlib" useByScannerDiscovery="false" value="Redlib" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.compiler.option.include.paths.225061442" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSIS_CORE_LPC17xx/inc}""/> - </option> - <option id="com.crt.advproject.c.misc.dialect.396650423" superClass="com.crt.advproject.c.misc.dialect"/> - <option id="gnu.c.compiler.option.dialect.flags.652277891" superClass="gnu.c.compiler.option.dialect.flags"/> - <option id="gnu.c.compiler.option.preprocessor.nostdinc.1819708808" superClass="gnu.c.compiler.option.preprocessor.nostdinc"/> - <option id="gnu.c.compiler.option.preprocessor.preprocess.19225182" superClass="gnu.c.compiler.option.preprocessor.preprocess"/> - <option id="gnu.c.compiler.option.preprocessor.undef.symbol.1364019695" superClass="gnu.c.compiler.option.preprocessor.undef.symbol"/> - <option id="gnu.c.compiler.option.include.files.1230205286" superClass="gnu.c.compiler.option.include.files"/> - <option id="com.crt.advproject.gcc.exe.release.option.optimization.level.1260077974" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level"/> - <option id="gnu.c.compiler.option.optimization.flags.1619583420" superClass="gnu.c.compiler.option.optimization.flags"/> - <option id="com.crt.advproject.gcc.exe.release.option.debugging.level.1741100871" superClass="com.crt.advproject.gcc.exe.release.option.debugging.level"/> - <option id="com.crt.advproject.gcc.exe.release.option.debugging.other.1037500992" superClass="com.crt.advproject.gcc.exe.release.option.debugging.other"/> - <option id="gnu.c.compiler.option.debugging.prof.949866655" superClass="gnu.c.compiler.option.debugging.prof"/> - <option id="gnu.c.compiler.option.debugging.gprof.346748430" superClass="gnu.c.compiler.option.debugging.gprof"/> - <option id="gnu.c.compiler.option.debugging.codecov.1302898960" superClass="gnu.c.compiler.option.debugging.codecov"/> - <option id="gnu.c.compiler.option.debugging.sanitaddress.888675301" superClass="gnu.c.compiler.option.debugging.sanitaddress"/> - <option id="gnu.c.compiler.option.debugging.sanitpointers.1663199225" superClass="gnu.c.compiler.option.debugging.sanitpointers"/> - <option id="gnu.c.compiler.option.debugging.sanitthread.2024186233" superClass="gnu.c.compiler.option.debugging.sanitthread"/> - <option id="gnu.c.compiler.option.debugging.sanitleak.1079043289" superClass="gnu.c.compiler.option.debugging.sanitleak"/> - <option id="gnu.c.compiler.option.debugging.sanitundef.1910670421" superClass="gnu.c.compiler.option.debugging.sanitundef"/> - <option id="gnu.c.compiler.option.warnings.syntax.1692746054" superClass="gnu.c.compiler.option.warnings.syntax"/> - <option id="gnu.c.compiler.option.warnings.pedantic.28945290" superClass="gnu.c.compiler.option.warnings.pedantic"/> - <option id="gnu.c.compiler.option.warnings.pedantic.error.1458271019" superClass="gnu.c.compiler.option.warnings.pedantic.error"/> - <option id="gnu.c.compiler.option.warnings.nowarn.61378977" superClass="gnu.c.compiler.option.warnings.nowarn"/> - <option id="gnu.c.compiler.option.warnings.allwarn.1715185535" superClass="gnu.c.compiler.option.warnings.allwarn"/> - <option id="gnu.c.compiler.option.warnings.extrawarn.1300939716" superClass="gnu.c.compiler.option.warnings.extrawarn"/> - <option id="gnu.c.compiler.option.warnings.toerrors.1844509815" superClass="gnu.c.compiler.option.warnings.toerrors"/> - <option id="gnu.c.compiler.option.warnings.wconversion.1561298968" superClass="gnu.c.compiler.option.warnings.wconversion"/> - <option id="gnu.c.compiler.option.warnings.wcastalign.2118540598" superClass="gnu.c.compiler.option.warnings.wcastalign"/> - <option id="gnu.c.compiler.option.warnings.wcastqual.44869381" superClass="gnu.c.compiler.option.warnings.wcastqual"/> - <option id="gnu.c.compiler.option.warnings.wdisabledopt.1915303746" superClass="gnu.c.compiler.option.warnings.wdisabledopt"/> - <option id="gnu.c.compiler.option.warnings.wlogicalop.1844330651" superClass="gnu.c.compiler.option.warnings.wlogicalop"/> - <option id="gnu.c.compiler.option.warnings.wmissingdecl.1952431119" superClass="gnu.c.compiler.option.warnings.wmissingdecl"/> - <option id="gnu.c.compiler.option.warnings.wmissingincdir.800849181" superClass="gnu.c.compiler.option.warnings.wmissingincdir"/> - <option id="gnu.c.compiler.option.warnings.wredundantdecl.1317613058" superClass="gnu.c.compiler.option.warnings.wredundantdecl"/> - <option id="gnu.c.compiler.option.warnings.wshadow.53362204" superClass="gnu.c.compiler.option.warnings.wshadow"/> - <option id="gnu.c.compiler.option.warnings.wsignconv.54268100" superClass="gnu.c.compiler.option.warnings.wsignconv"/> - <option id="gnu.c.compiler.option.warnings.wswitchdef.1693649651" superClass="gnu.c.compiler.option.warnings.wswitchdef"/> - <option id="gnu.c.compiler.option.warnings.wundef.269941104" superClass="gnu.c.compiler.option.warnings.wundef"/> - <option id="gnu.c.compiler.option.warnings.wwritestrings.466351166" superClass="gnu.c.compiler.option.warnings.wwritestrings"/> - <option id="gnu.c.compiler.option.warnings.wfloatequal.1646488088" superClass="gnu.c.compiler.option.warnings.wfloatequal"/> - <option id="gnu.c.compiler.option.misc.otherExcludedFromScannerDiscovery.1657411440" superClass="gnu.c.compiler.option.misc.otherExcludedFromScannerDiscovery"/> - <option id="gnu.c.compiler.option.misc.verbose.508903606" superClass="gnu.c.compiler.option.misc.verbose"/> - <option id="gnu.c.compiler.option.misc.ansi.430864913" superClass="gnu.c.compiler.option.misc.ansi"/> - <option id="gnu.c.compiler.option.misc.pic.1314898791" superClass="gnu.c.compiler.option.misc.pic"/> - <option id="gnu.c.compiler.option.misc.hardening.856509941" superClass="gnu.c.compiler.option.misc.hardening"/> - <option id="gnu.c.compiler.option.misc.randomization.850281066" superClass="gnu.c.compiler.option.misc.randomization"/> - <option id="com.crt.advproject.gcc.lto.1163696638" superClass="com.crt.advproject.gcc.lto"/> - <option id="com.crt.advproject.gcc.lto.fat.1419620690" superClass="com.crt.advproject.gcc.lto.fat"/> - <option id="com.crt.advproject.gcc.merge.constants.728453486" superClass="com.crt.advproject.gcc.merge.constants"/> - <option id="com.crt.advproject.gcc.prefixmap.1747010168" superClass="com.crt.advproject.gcc.prefixmap"/> - <option id="com.crt.advproject.gcc.fpu.1547780127" superClass="com.crt.advproject.gcc.fpu"/> - <option id="com.crt.advproject.gcc.thumbinterwork.285530876" superClass="com.crt.advproject.gcc.thumbinterwork"/> - <option id="com.crt.advproject.gcc.securestate.1265849914" superClass="com.crt.advproject.gcc.securestate"/> - <option id="com.crt.advproject.gcc.stackusage.1556996176" superClass="com.crt.advproject.gcc.stackusage"/> - <option id="com.crt.advproject.gcc.specs.2143077831" superClass="com.crt.advproject.gcc.specs"/> - <option id="com.crt.advproject.gcc.config.809724935" superClass="com.crt.advproject.gcc.config"/> - <option id="com.crt.advproject.gcc.store.58736271" superClass="com.crt.advproject.gcc.store"/> - <inputType id="com.crt.advproject.compiler.input.347615753" superClass="com.crt.advproject.compiler.input"/> - </tool> - <tool id="com.crt.advproject.gas.exe.release.532066257" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release"> - <option id="com.crt.advproject.gas.arch.1319352587" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.gas.thumb.755379561" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> - <option id="gnu.both.asm.option.flags.crt.1760599231" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/> - <option id="com.crt.advproject.gas.hdrlib.2083300418" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="Redlib" valueType="enumerated"/> - <option id="gnu.both.asm.option.include.paths.1024917219" superClass="gnu.both.asm.option.include.paths"/> - <option id="gnu.both.asm.option.warnings.nowarn.1348352035" superClass="gnu.both.asm.option.warnings.nowarn"/> - <option id="gnu.both.asm.option.version.2082717335" superClass="gnu.both.asm.option.version"/> - <option id="com.crt.advproject.gas.debug.1579968222" superClass="com.crt.advproject.gas.debug"/> - <option id="com.crt.advproject.gas.option.debugging.other.1602742806" superClass="com.crt.advproject.gas.option.debugging.other"/> - <option id="com.crt.advproject.gas.fpu.1611129959" superClass="com.crt.advproject.gas.fpu"/> - <option id="com.crt.advproject.gas.thumbinterwork.93474345" superClass="com.crt.advproject.gas.thumbinterwork"/> - <option id="com.crt.advproject.gas.specs.1235513787" superClass="com.crt.advproject.gas.specs"/> - <option id="com.crt.advproject.gas.config.414045165" superClass="com.crt.advproject.gas.config"/> - <option id="com.crt.advproject.gas.store.1147849878" superClass="com.crt.advproject.gas.store"/> - <inputType id="cdt.managedbuild.tool.gnu.assembler.input.143327671" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> - <inputType id="com.crt.advproject.assembler.input.1888299321" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> - </tool> - <tool id="com.crt.advproject.link.cpp.exe.release.814798268" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release"/> - <tool id="com.crt.advproject.link.exe.release.1858913969" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.1718464634" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/> - <option id="com.crt.advproject.link.arch.159478323" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> - <option id="com.crt.advproject.link.thumb.1244812174" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.script.576834230" name="Linker script" superClass="com.crt.advproject.link.script" value=""G3_TP1_labyrinth_slave_etu_Release.ld"" valueType="string"/> - <option id="com.crt.advproject.link.manage.1650657076" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> - <option id="gnu.c.link.option.nostdlibs.654698344" name="No startup or default libs (-nostdlib)" superClass="gnu.c.link.option.nostdlibs" value="true" valueType="boolean"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.other.1132050710" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList"> - <listOptionValue builtIn="false" value="-Map="${BuildArtifactFileBaseName}.map""/> - <listOptionValue builtIn="false" value="--gc-sections"/> - </option> - <option id="com.crt.advproject.link.gcc.hdrlib.192956249" name="Library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.codered.none" valueType="enumerated"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.libs.1765968732" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> - <listOptionValue builtIn="false" value="CMSIS_CORE_LPC17xx"/> - </option> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.1367035601" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSIS_CORE_LPC17xx/Release}""/> - </option> - <option id="com.crt.advproject.link.crpenable.1792752219" name="Enable automatic placement of Code Read Protection field in image" superClass="com.crt.advproject.link.crpenable" value="true" valueType="boolean"/> - <option id="com.crt.advproject.link.memory.load.image.821269017" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> - <option id="com.crt.advproject.link.memory.heapAndStack.474272577" name="Heap and Stack options" superClass="com.crt.advproject.link.memory.heapAndStack" value="&Heap:Default;Post Data;Default&Stack:Default;End;Default" valueType="string"/> - <option id="com.crt.advproject.link.memory.data.823306993" name="Global data placement" superClass="com.crt.advproject.link.memory.data" value="" valueType="string"/> - <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.1470075254" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> - <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.576799723" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> - <option id="com.crt.advproject.link.gcc.multicore.slave.1233359699" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> - <option id="gnu.c.link.option.nostart.138726486" superClass="gnu.c.link.option.nostart"/> - <option id="gnu.c.link.option.nodeflibs.1728794029" superClass="gnu.c.link.option.nodeflibs"/> - <option id="gnu.c.link.option.strip.164744094" superClass="gnu.c.link.option.strip"/> - <option id="gnu.c.link.option.noshared.699557635" superClass="gnu.c.link.option.noshared"/> - <option id="gnu.c.link.option.group.844075704" superClass="gnu.c.link.option.group"/> - <option id="gnu.c.link.option.ldflags.976311119" superClass="gnu.c.link.option.ldflags"/> - <option id="gnu.c.link.option.userobjs.68839717" superClass="gnu.c.link.option.userobjs"/> - <option id="gnu.c.link.option.shared.182169029" superClass="gnu.c.link.option.shared"/> - <option id="gnu.c.link.option.soname.786177708" superClass="gnu.c.link.option.soname"/> - <option id="gnu.c.link.option.implname.1846051581" superClass="gnu.c.link.option.implname"/> - <option id="gnu.c.link.option.defname.235182799" superClass="gnu.c.link.option.defname"/> - <option id="gnu.c.link.option.debugging.prof.57898115" superClass="gnu.c.link.option.debugging.prof"/> - <option id="gnu.c.link.option.debugging.gprof.1880445247" superClass="gnu.c.link.option.debugging.gprof"/> - <option id="gnu.c.link.option.debugging.codecov.458840169" superClass="gnu.c.link.option.debugging.codecov"/> - <option id="com.crt.advproject.link.gcc.lto.130033546" superClass="com.crt.advproject.link.gcc.lto"/> - <option id="com.crt.advproject.link.gcc.lto.optmization.level.1132249663" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> - <option id="com.crt.advproject.link.fpu.2019355832" superClass="com.crt.advproject.link.fpu"/> - <option id="com.crt.advproject.link.scriptdir.1042785005" superClass="com.crt.advproject.link.scriptdir"/> - <option id="com.crt.advproject.link.flashconfigenable.28030382" superClass="com.crt.advproject.link.flashconfigenable"/> - <option id="com.crt.advproject.link.ecrp.1267858684" superClass="com.crt.advproject.link.ecrp"/> - <option id="com.crt.advproject.link.gcc.nanofloat.1478820694" superClass="com.crt.advproject.link.gcc.nanofloat"/> - <option id="com.crt.advproject.link.gcc.nanofloat.scanf.132568867" superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> - <option id="com.crt.advproject.link.toram.1744628404" superClass="com.crt.advproject.link.toram"/> - <option id="com.crt.advproject.link.stackOffset.1671761502" superClass="com.crt.advproject.link.stackOffset"/> - <option id="com.crt.advproject.link.gcc.multicore.master.128612043" superClass="com.crt.advproject.link.gcc.multicore.master"/> - <option id="com.crt.advproject.link.gcc.multicore.empty.2062295463" superClass="com.crt.advproject.link.gcc.multicore.empty"/> - <option id="com.crt.advproject.link.config.2106753047" superClass="com.crt.advproject.link.config"/> - <option id="com.crt.advproject.link.store.1107867756" superClass="com.crt.advproject.link.store"/> - <option id="com.crt.advproject.link.securestate.302695904" superClass="com.crt.advproject.link.securestate"/> - <option id="com.crt.advproject.link.sgstubs.placement.449495761" superClass="com.crt.advproject.link.sgstubs.placement"/> - <option id="com.crt.advproject.link.sgstubenable.1386051293" superClass="com.crt.advproject.link.sgstubenable"/> - <option id="com.crt.advproject.link.nonsecureobject.1854539173" superClass="com.crt.advproject.link.nonsecureobject"/> - <option id="com.crt.advproject.link.inimplib.508852462" superClass="com.crt.advproject.link.inimplib"/> - <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1616302402" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> - <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> - <additionalInput kind="additionalinput" paths="$(LIBS)"/> - </inputType> - </tool> - <tool id="com.crt.advproject.tool.debug.release.846881125" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.release"> - <option id="com.crt.advproject.linkserver.debug.prevent.release.1464290855" superClass="com.crt.advproject.linkserver.debug.prevent.release"/> - <option id="com.crt.advproject.miscellaneous.end_of_heap.714041070" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> - <option id="com.crt.advproject.miscellaneous.pvHeapStart.2098724613" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> - <option id="com.crt.advproject.miscellaneous.pvHeapLimit.984646605" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> - <option id="com.crt.advproject.debugger.security.nonsecureimageenable.552721161" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> - <option id="com.crt.advproject.debugger.security.nonsecureimage.709435662" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> - </tool> - </toolChain> - </folderInfo> - <sourceEntries> - <entry excluding="Labo4.c|Labo_mylab1.c|Labo2_mylab1_correction.c|Labo1.c|Labo1_mylab1_correction.c|Labo1_correction.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/> - </sourceEntries> - </configuration> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> - </cconfiguration> - </storageModule> - <storageModule moduleId="cdtBuildSystem" version="4.0.0"> - <project id="Labo1.com.crt.advproject.projecttype.exe.1063722119" name="Executable" projectType="com.crt.advproject.projecttype.exe"/> - </storageModule> - <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> - <storageModule moduleId="com.crt.config"> - <projectStorage><?xml version="1.0" encoding="UTF-8"?> -<TargetConfig> -<Properties property_2="LPC175x_6x_512.cfx" property_3="NXP" property_4="LPC1769" property_count="5" version="100300"/> -<infoList vendor="NXP"> -<info chip="LPC1769" flash_driver="LPC175x_6x_512.cfx" match_id="0x26113F37" name="LPC1769" package="lpc17_lqfp100.xml" stub="crt_emu_cm3_nxp"> -<chip> -<name>LPC1769</name> -<family>LPC17xx</family> -<vendor>NXP (formerly Philips)</vendor> -<reset board="None" core="Real" sys="Real"/> -<clock changeable="TRUE" freq="20MHz" is_accurate="TRUE"/> -<memory can_program="true" id="Flash" is_ro="true" type="Flash"/> -<memory id="RAM" type="RAM"/> -<memory id="Periph" is_volatile="true" type="Peripheral"/> -<memoryInstance derived_from="Flash" id="MFlash512" location="0x00000000" size="0x80000"/> -<memoryInstance derived_from="RAM" id="RamLoc32" location="0x10000000" size="0x8000"/> -<memoryInstance derived_from="RAM" id="RamAHB32" location="0x2007c000" size="0x8000"/> -<prog_flash blocksz="0x1000" location="0" maxprgbuff="0x1000" progwithcode="TRUE" size="0x10000"/> -<prog_flash blocksz="0x8000" location="0x10000" maxprgbuff="0x1000" progwithcode="TRUE" size="0x70000"/> -</chip> -<processor> -<name gcc_name="cortex-m3">Cortex-M3</name> -<family>Cortex-M</family> -</processor> -</info> -</infoList> -</TargetConfig></projectStorage> - </storageModule> - <storageModule moduleId="refreshScope" versionNumber="2"> - <configuration configurationName="Release"> - <resource resourceType="PROJECT" workspacePath="/Labo1"/> - </configuration> - <configuration configurationName="Debug"> - <resource resourceType="PROJECT" workspacePath="/Labo1"/> - </configuration> - </storageModule> - <storageModule moduleId="scannerConfiguration"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> - <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.1961788077;com.crt.advproject.config.exe.debug.1961788077.;com.crt.advproject.gas.exe.debug.1415986929;com.crt.advproject.assembler.input.968568522"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/> - </scannerConfigBuildInfo> - <scannerConfigBuildInfo instanceId="com.crt.advproject.config.exe.debug.1961788077;com.crt.advproject.config.exe.debug.1961788077.;com.crt.advproject.gcc.exe.debug.504230289;com.crt.advproject.compiler.input.2000624862"> - <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.crt.advproject.GCCManagedMakePerProjectProfile"/> - </scannerConfigBuildInfo> - </storageModule> - <storageModule moduleId="com.crt.advproject"/> - <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> -</cproject> \ No newline at end of file diff --git a/TP1_labyrinth_slave_etu/.project b/TP1_labyrinth_slave_etu/.project deleted file mode 100644 index db97447..0000000 --- a/TP1_labyrinth_slave_etu/.project +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>G3_TP1_labyrinth_slave_etu</name> - <comment></comment> - <projects> - <project>CMSISv2p00_LPC17xx</project> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <triggers>full,incremental,</triggers> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.cnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - </natures> -</projectDescription> diff --git a/TP1_labyrinth_slave_etu/.settings/language.settings.xml b/TP1_labyrinth_slave_etu/.settings/language.settings.xml deleted file mode 100644 index 90f6c3a..0000000 --- a/TP1_labyrinth_slave_etu/.settings/language.settings.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<project> - <configuration id="com.crt.advproject.config.exe.debug.1961788077" name="Debug"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1421239171053619650" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> - <configuration id="com.crt.advproject.config.exe.release.955237986" name="Release"> - <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> - <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> - <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1467668262890638690" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> - <language-scope id="org.eclipse.cdt.core.gcc"/> - <language-scope id="org.eclipse.cdt.core.g++"/> - </provider> - <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> - </extension> - </configuration> -</project> \ No newline at end of file diff --git a/TP1_labyrinth_slave_etu/.settings/org.eclipse.core.resources.prefs b/TP1_labyrinth_slave_etu/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/TP1_labyrinth_slave_etu/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/<project>=UTF-8 diff --git a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug.ld b/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug.ld deleted file mode 100644 index 65f700f..0000000 --- a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug.ld +++ /dev/null @@ -1,158 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from linkscript.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:16 - */ - -INCLUDE "Labo4_langton_Debug_library.ld" -INCLUDE "Labo4_langton_Debug_memory.ld" - -ENTRY(ResetISR) - -SECTIONS -{ - /* MAIN TEXT SECTION */ - .text : ALIGN(4) - { - FILL(0xff) - __vectors_start__ = ABSOLUTE(.) ; - KEEP(*(.isr_vector)) - /* Global Section Table */ - . = ALIGN(4) ; - __section_table_start = .; - __data_section_table = .; - LONG(LOADADDR(.data)); - LONG( ADDR(.data)); - LONG( SIZEOF(.data)); - LONG(LOADADDR(.data_RAM2)); - LONG( ADDR(.data_RAM2)); - LONG( SIZEOF(.data_RAM2)); - __data_section_table_end = .; - __bss_section_table = .; - LONG( ADDR(.bss)); - LONG( SIZEOF(.bss)); - LONG( ADDR(.bss_RAM2)); - LONG( SIZEOF(.bss_RAM2)); - __bss_section_table_end = .; - __section_table_end = . ; - /* End of Global Section Table */ - - *(.after_vectors*) - - /* Code Read Protection data */ - . = 0x000002FC ; - PROVIDE(__CRP_WORD_START__ = .) ; - KEEP(*(.crp)) - PROVIDE(__CRP_WORD_END__ = .) ; - ASSERT(!(__CRP_WORD_START__ == __CRP_WORD_END__), "Linker CRP Enabled, but no CRP_WORD provided within application"); - /* End of Code Read Protection */ - } >MFlash512 - - .text : ALIGN(4) - { - *(.text*) - *(.rodata .rodata.* .constdata .constdata.*) - . = ALIGN(4); - } > MFlash512 - /* - * for exception handling/unwind - some Newlib functions (in common - * with C++ and STDC++) use this. - */ - .ARM.extab : ALIGN(4) - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > MFlash512 - __exidx_start = .; - - .ARM.exidx : ALIGN(4) - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > MFlash512 - __exidx_end = .; - - _etext = .; - - /* DATA section for RamAHB32 */ - .data_RAM2 : ALIGN(4) - { - FILL(0xff) - PROVIDE(__start_data_RAM2 = .) ; - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - . = ALIGN(4) ; - PROVIDE(__end_data_RAM2 = .) ; - } > RamAHB32 AT>MFlash512 - - /* MAIN DATA SECTION */ - .uninit_RESERVED : ALIGN(4) - { - KEEP(*(.bss.$RESERVED*)) - . = ALIGN(4) ; - _end_uninit_RESERVED = .; - } > RamLoc32 - /* Main DATA section (RamLoc32) */ - .data : ALIGN(4) - { - FILL(0xff) - _data = . ; - *(vtable) - *(.ramfunc*) - *(.data*) - . = ALIGN(4) ; - _edata = . ; - } > RamLoc32 AT>MFlash512 - /* BSS section for RamAHB32 */ - .bss_RAM2 : ALIGN(4) - { - PROVIDE(__start_bss_RAM2 = .) ; - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */ - PROVIDE(__end_bss_RAM2 = .) ; - } > RamAHB32 - /* MAIN BSS SECTION */ - .bss : ALIGN(4) - { - _bss = .; - *(.bss*) - *(COMMON) - . = ALIGN(4) ; - _ebss = .; - PROVIDE(end = .); - } > RamLoc32 - /* NOINIT section for RamAHB32 */ - .noinit_RAM2 (NOLOAD) : ALIGN(4) - { - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - . = ALIGN(4) ; - } > RamAHB32 - /* DEFAULT NOINIT SECTION */ - .noinit (NOLOAD): ALIGN(4) - { - _noinit = .; - *(.noinit*) - . = ALIGN(4) ; - _end_noinit = .; - } > RamLoc32 - - PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .); - PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc32 - 0); - - /* ## Create checksum value (used in startup) ## */ - PROVIDE(__valid_user_code_checksum = 0 - - (_vStackTop - + (ResetISR + 1) - + (NMI_Handler + 1) - + (HardFault_Handler + 1) - + (( DEFINED(MemManage_Handler) ? MemManage_Handler : 0 ) + 1) /* MemManage_Handler may not be defined */ - + (( DEFINED(BusFault_Handler) ? BusFault_Handler : 0 ) + 1) /* BusFault_Handler may not be defined */ - + (( DEFINED(UsageFault_Handler) ? UsageFault_Handler : 0 ) + 1) /* UsageFault_Handler may not be defined */ - ) ); -} \ No newline at end of file diff --git a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_library.ld b/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_library.ld deleted file mode 100644 index 1b030c7..0000000 --- a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_library.ld +++ /dev/null @@ -1,15 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from library.ldt by FMCreateLinkLibraries - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:16 - */ - -GROUP ( - libcr_semihost.a - libcr_c.a - libcr_eabihelpers.a -) diff --git a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_memory.ld b/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_memory.ld deleted file mode 100644 index 4de804e..0000000 --- a/TP1_labyrinth_slave_etu/Debug/Labo4_langton_Debug_memory.ld +++ /dev/null @@ -1,31 +0,0 @@ -/* - * GENERATED FILE - DO NOT EDIT - * (c) Code Red Technologies Ltd, 2008-2013 - * (c) NXP Semiconductors 2013-2018 - * Generated linker script file for LPC1769 - * Created from memory.ldt by FMCreateLinkMemory - * Using Freemarker v2.3.23 - * LPCXpresso v8.2.2 [Build 650] [2016-09-09] on 11 juin 2018 18:05:16 - */ - -MEMORY -{ - /* Define each memory region */ - MFlash512 (rx) : ORIGIN = 0x0, LENGTH = 0x80000 /* 512K bytes (alias Flash) */ - RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32K bytes (alias RAM) */ - RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32K bytes (alias RAM2) */ -} - - /* Define a symbol for the top of each memory region */ - __base_MFlash512 = 0x0 ; /* MFlash512 */ - __base_Flash = 0x0 ; /* Flash */ - __top_MFlash512 = 0x0 + 0x80000 ; /* 512K bytes */ - __top_Flash = 0x0 + 0x80000 ; /* 512K bytes */ - __base_RamLoc32 = 0x10000000 ; /* RamLoc32 */ - __base_RAM = 0x10000000 ; /* RAM */ - __top_RamLoc32 = 0x10000000 + 0x8000 ; /* 32K bytes */ - __top_RAM = 0x10000000 + 0x8000 ; /* 32K bytes */ - __base_RamAHB32 = 0x2007c000 ; /* RamAHB32 */ - __base_RAM2 = 0x2007c000 ; /* RAM2 */ - __top_RamAHB32 = 0x2007c000 + 0x8000 ; /* 32K bytes */ - __top_RAM2 = 0x2007c000 + 0x8000 ; /* 32K bytes */ diff --git a/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave.map b/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave.map deleted file mode 100644 index abdc8f8..0000000 --- a/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave.map +++ /dev/null @@ -1,1719 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - ./src/labyrinth_slave.o (accel_init) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - ./src/labyrinth_slave.o (ethernet_init) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) (Init_EthMAC) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - ./src/labyrinth_slave.o (init_lcd) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (ssp_init_custom) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) (init_i2c) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (SmallFont) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - ./src/cr_startup_lpc175x_6x.o (SystemInit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - ./src/cr_startup_lpc175x_6x.o (__main) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) (memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - ./src/labyrinth_slave.o (memset) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (malloc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - ./src/tools.o (ceil) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (fclose) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - ./src/tools.o (floor) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (fopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (vsprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (fread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) (freopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (fseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (ftell) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) (_initio) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (__vfprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (setvbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (sqrt) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (__Ciob) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (exit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) (strlen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) (__filbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__heaps) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (_sbrk) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_deferredlazyseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (_do_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (_fdopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_frexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) (__huge_val) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_ldexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) (_Cread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_Cwritebuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) (errno) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) (raise) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) (__check_heap_overflow) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) (__aeabi_idiv0) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (__aeabi_dmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - ./src/tools.o (__aeabi_fmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) (__aeabi_memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_appexit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_close) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_flen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_istty) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) (__sys_open) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_read) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_readc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_rename) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_seek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_tmpnam) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_write) - -Allocating common symbols -Common symbol size file - -last_ball_coord 0x28 ./src/labyrinth_slave.o -master_tx 0x50 ./src/labyrinth_slave.o - -Discarded input sections - - .group 0x00000000 0x8 ./src/cr_startup_lpc175x_6x.o - .text 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .data 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .bss 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .group 0x00000000 0x8 ./src/crp.o - .group 0x00000000 0x8 ./src/crp.o - .text 0x00000000 0x0 ./src/crp.o - .data 0x00000000 0x0 ./src/crp.o - .bss 0x00000000 0x0 ./src/crp.o - .debug_macro 0x00000000 0x892 ./src/crp.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .text 0x00000000 0x0 ./src/labyrinth_slave.o - .data 0x00000000 0x0 ./src/labyrinth_slave.o - .bss 0x00000000 0x0 ./src/labyrinth_slave.o - .bss.winner 0x00000000 0x1 ./src/labyrinth_slave.o - .debug_macro 0x00000000 0x892 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .group 0x00000000 0x8 ./src/timer.o - .text 0x00000000 0x0 ./src/timer.o - .data 0x00000000 0x0 ./src/timer.o - .bss 0x00000000 0x0 ./src/timer.o - .text.delay_ms - 0x00000000 0x48 ./src/timer.o - .debug_macro 0x00000000 0x892 ./src/timer.o - .debug_macro 0x00000000 0x10 ./src/timer.o - .debug_macro 0x00000000 0x12d ./src/timer.o - .debug_macro 0x00000000 0x1c ./src/timer.o - .debug_macro 0x00000000 0x2e ./src/timer.o - .debug_macro 0x00000000 0x5b2 ./src/timer.o - .debug_macro 0x00000000 0x18 ./src/timer.o - .debug_macro 0x00000000 0x7af ./src/timer.o - .debug_macro 0x00000000 0x2c7 ./src/timer.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .text 0x00000000 0x0 ./src/tools.o - .data 0x00000000 0x0 ./src/tools.o - .bss 0x00000000 0x0 ./src/tools.o - .text.round 0x00000000 0x78 ./src/tools.o - .text.test_collision - 0x00000000 0x450 ./src/tools.o - .debug_macro 0x00000000 0x892 ./src/tools.o - .debug_macro 0x00000000 0x10 ./src/tools.o - .debug_macro 0x00000000 0x12d ./src/tools.o - .debug_macro 0x00000000 0x5b2 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x2e ./src/tools.o - .debug_macro 0x00000000 0x18 ./src/tools.o - .debug_macro 0x00000000 0x7af ./src/tools.o - .debug_macro 0x00000000 0x2c7 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x22 ./src/tools.o - .debug_macro 0x00000000 0x28 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0xc2 ./src/tools.o - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0xd6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .text.rec_eth 0x00000000 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x82 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .text.ethernet_power_down - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .text.CheckIfFrameReceived - 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x5c3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.LCD_SetPosR - 0x00000000 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.read_pixels - 0x00000000 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.read_cmd - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.setup_scroll - 0x00000000 0x68 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_scroll - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_set_fenetre_pixel - 0x00000000 0x24 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.Ecran_Croix - 0x00000000 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_lineH - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_lineV - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_line - 0x00000000 0x158 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_circle - 0x00000000 0x1ac C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_filled_circle_on_square - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_empty_rectangle - 0x00000000 0x80 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_printf - 0x00000000 0x254 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.read_bmp_file - 0x00000000 0x1d0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.display_bitmap16 - 0x00000000 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .bss.is_scroll_setup.5886 - 0x00000000 0x1 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .bss.x.5883 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .data.offset.5885 - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .data.y.5884 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0xc2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .text.ssp_receive_buf - 0x00000000 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .text.I2C_slave_read - 0x00000000 0x1c8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .text.I2C_slave_write - 0x00000000 0x168 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x52 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .rodata.SevenSegNumFont - 0x00000000 0x7d4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text.SystemCoreClockUpdate - 0x00000000 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data.SystemCoreClock - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text.memcpy 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.calloc 0x00000000 0x50 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.realloc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .text.ceil 0x00000000 0x90 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .text.floor 0x00000000 0x94 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text.fopen 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.fprintf 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vfprintf - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vprintf 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text.fread 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text.freopen 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text.no_fp_display - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._fprintf - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._sprintf - 0x00000000 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vfprintf - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vprintf - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsnprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text.rename 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getc 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fgetc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getchar 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fputc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putchar 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.feof 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.ferror 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.clearerr - 0x00000000 0xe c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__rand 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__srand 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.rand 0x00000000 0x3c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.srand 0x00000000 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text._exit_init - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.atexit 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abort 0x00000000 0x12 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.labs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.div 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.ldiv 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data.next 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_number_seed - 0x00000000 0xdc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_j - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_k - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._Csys_read_ - 0x00000000 0x22 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text.__filbuf - 0x00000000 0x178 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._fillb2 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text._init_alloc - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text._Cread 0x00000000 0x8c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text.raise 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_ldivmod - 0x00000000 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_uldivmod - 0x00000000 0x174 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text.__aeabi_division_idiv0 - 0x00000000 0x2 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_drsub - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dneg - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2f - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2uiz - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2lz - 0x00000000 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2ulz - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__bhs_ul2d - 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ui2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_l2d - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ul2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpgt - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdcmple - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdrcmple - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fmul - 0x00000000 0xb0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fsub - 0x00000000 0xe0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fadd - 0x00000000 0xac c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_frsub - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fneg - 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2iz - 0x00000000 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2uiz - 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2lz - 0x00000000 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2ulz - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__bhs_ul2f - 0x00000000 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_ui2f - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_l2f - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_ul2f - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2d - 0x00000000 0x38 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpeq - 0x00000000 0x1e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmplt - 0x00000000 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpgt - 0x00000000 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmple - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpge - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfcmple - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfrcmple - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memcpy - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memmove - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memclr - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memset - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text.__sys_open - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text.__sys_read - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text.__sys_readc - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text.__sys_rename - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -Memory Configuration - -Name Origin Length Attributes -MFlash512 0x00000000 0x00080000 xr -RamLoc32 0x10000000 0x00008000 xrw -RamAHB32 0x2007c000 0x00008000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./src/cr_startup_lpc175x_6x.o -LOAD ./src/crp.o -LOAD ./src/labyrinth_slave.o -LOAD ./src/timer.o -LOAD ./src/tools.o -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a -START GROUP -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a -END GROUP - 0x00000000 __base_MFlash512 = 0x0 - 0x00000000 __base_Flash = 0x0 - 0x00080000 __top_MFlash512 = 0x80000 - 0x00080000 __top_Flash = 0x80000 - 0x10000000 __base_RamLoc32 = 0x10000000 - 0x10000000 __base_RAM = 0x10000000 - 0x10008000 __top_RamLoc32 = 0x10008000 - 0x10008000 __top_RAM = 0x10008000 - 0x2007c000 __base_RamAHB32 = 0x2007c000 - 0x2007c000 __base_RAM2 = 0x2007c000 - 0x20084000 __top_RamAHB32 = 0x20084000 - 0x20084000 __top_RAM2 = 0x20084000 - -.text 0x00000000 0x5ae0 - FILL mask 0xff - 0x00000000 __vectors_start__ = ABSOLUTE (.) - *(.isr_vector) - .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc175x_6x.o - 0x00000000 g_pfnVectors - 0x000000cc . = ALIGN (0x4) - 0x000000cc __section_table_start = . - 0x000000cc __data_section_table = . - 0x000000cc 0x4 LONG 0x5ae0 LOADADDR (.data) - 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) - 0x000000d4 0x4 LONG 0x128 SIZEOF (.data) - 0x000000d8 0x4 LONG 0x5ae0 LOADADDR (.data_RAM2) - 0x000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) - 0x000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) - 0x000000e4 __data_section_table_end = . - 0x000000e4 __bss_section_table = . - 0x000000e4 0x4 LONG 0x10000128 ADDR (.bss) - 0x000000e8 0x4 LONG 0x2a4 SIZEOF (.bss) - 0x000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) - 0x000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) - 0x000000f4 __bss_section_table_end = . - 0x000000f4 __section_table_end = . - *(.after_vectors*) - .after_vectors - 0x000000f4 0x144 ./src/cr_startup_lpc175x_6x.o - 0x000000f4 data_init - 0x00000138 bss_init - 0x00000170 ResetISR - 0x000001e8 NMI_Handler - 0x000001f0 HardFault_Handler - 0x000001f8 MemManage_Handler - 0x00000200 BusFault_Handler - 0x00000208 UsageFault_Handler - 0x00000210 SVC_Handler - 0x00000218 DebugMon_Handler - 0x00000220 PendSV_Handler - 0x00000228 SysTick_Handler - 0x00000230 EINT3_IRQHandler - 0x00000230 CANActivity_IRQHandler - 0x00000230 TIMER3_IRQHandler - 0x00000230 UART0_IRQHandler - 0x00000230 UART1_IRQHandler - 0x00000230 EINT2_IRQHandler - 0x00000230 USBActivity_IRQHandler - 0x00000230 IntDefaultHandler - 0x00000230 PLL0_IRQHandler - 0x00000230 I2C0_IRQHandler - 0x00000230 I2C1_IRQHandler - 0x00000230 SSP0_IRQHandler - 0x00000230 I2S_IRQHandler - 0x00000230 I2C2_IRQHandler - 0x00000230 RTC_IRQHandler - 0x00000230 SPI_IRQHandler - 0x00000230 RIT_IRQHandler - 0x00000230 EINT1_IRQHandler - 0x00000230 TIMER1_IRQHandler - 0x00000230 UART2_IRQHandler - 0x00000230 ADC_IRQHandler - 0x00000230 SSP1_IRQHandler - 0x00000230 USB_IRQHandler - 0x00000230 BOD_IRQHandler - 0x00000230 PLL1_IRQHandler - 0x00000230 WDT_IRQHandler - 0x00000230 PWM1_IRQHandler - 0x00000230 QEI_IRQHandler - 0x00000230 EINT0_IRQHandler - 0x00000230 CAN_IRQHandler - 0x00000230 DMA_IRQHandler - 0x00000230 TIMER2_IRQHandler - 0x00000230 UART3_IRQHandler - 0x00000230 MCPWM_IRQHandler - 0x000002fc . = 0x2fc - *fill* 0x00000238 0xc4 ff - 0x000002fc PROVIDE (__CRP_WORD_START__, .) - *(.crp) - .crp 0x000002fc 0x4 ./src/crp.o - 0x000002fc CRP_WORD - 0x00000300 PROVIDE (__CRP_WORD_END__, .) - 0x00000001 ASSERT (! ((__CRP_WORD_START__ == __CRP_WORD_END__)), Linker CRP Enabled, but no CRP_WORD provided within application) - *(.text*) - .text.NVIC_EnableIRQ - 0x00000300 0x30 ./src/labyrinth_slave.o - .text.NVIC_DisableIRQ - 0x00000330 0x34 ./src/labyrinth_slave.o - .text.master_info_rx - 0x00000364 0x30 ./src/labyrinth_slave.o - 0x00000364 master_info_rx - .text.main 0x00000394 0x1a8 ./src/labyrinth_slave.o - 0x00000394 main - .text.NVIC_EnableIRQ - 0x0000053c 0x30 ./src/timer.o - .text.TIMER0_IRQHandler - 0x0000056c 0x24 ./src/timer.o - 0x0000056c TIMER0_IRQHandler - .text.get_tick - 0x00000590 0x14 ./src/timer.o - 0x00000590 get_tick - .text.init_timer0 - 0x000005a4 0x38 ./src/timer.o - 0x000005a4 init_timer0 - .text.draw_labyrinth - 0x000005dc 0x150 ./src/tools.o - 0x000005dc draw_labyrinth - .text.accel_write_byte - 0x0000072c 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - 0x0000072c accel_write_byte - .text.accel_read_byte - 0x00000770 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - 0x00000770 accel_read_byte - .text.accel_init - 0x000007c4 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - 0x000007c4 accel_init - .text.accel_read - 0x00000878 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - 0x00000878 accel_read - .text.NVIC_EnableIRQ - 0x00000944 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .text.ENET_IRQHandler - 0x00000974 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - 0x00000974 ENET_IRQHandler - .text.ethernet_init - 0x000009ec 0x4c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - 0x000009ec ethernet_init - .text.send_eth - 0x00000a38 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - 0x00000a38 send_eth - .text.WriteToPHY - 0x00000a9c 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000a9c WriteToPHY - .text.ReadFromPHY - 0x00000aec 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000aec ReadFromPHY - .text.Init_EthMAC - 0x00000b4c 0x3e0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000b4c Init_EthMAC - .text.WriteFrame_EthMAC - 0x00000f2c 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000f2c WriteFrame_EthMAC - .text.ReadFrame_EthMAC - 0x00000f54 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000f54 ReadFrame_EthMAC - .text.RequestSend - 0x00000f70 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000f70 RequestSend - .text.StartReadingFrame - 0x00000fc0 0x50 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00000fc0 StartReadingFrame - .text.StopReadingFrame - 0x00001010 0x34 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x00001010 StopReadingFrame - .text.LCD_RS_ENA - 0x00001044 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.LCD_RS_DIS - 0x0000107c 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .text.Write_Cmd_Data - 0x000010b4 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x000010b4 Write_Cmd_Data - .text.Write_Cmd - 0x000010dc 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x000010dc Write_Cmd - .text.Write_Data - 0x00001104 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x00001104 Write_Data - .text.Write_Data_U16 - 0x00001134 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x00001134 Write_Data_U16 - .text.Delay 0x0000115c 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x0000115c Delay - .text.ILI9341_Initial - 0x0000118c 0x220 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x0000118c ILI9341_Initial - .text.init_lcd - 0x000013ac 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x000013ac init_lcd - .text.LCD_SetPos - 0x00001400 0xb8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x00001400 LCD_SetPos - .text.clear_screen - 0x000014b8 0x4c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x000014b8 clear_screen - .text.lcd_filled_circle - 0x00001504 0xd8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x00001504 lcd_filled_circle - .text.lcd_filled_rectangle - 0x000015dc 0xa4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x000015dc lcd_filled_rectangle - .text.lcd_print_char - 0x00001680 0x10c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x00001680 lcd_print_char - .text.lcd_print - 0x0000178c 0xf4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x0000178c lcd_print - .text.ssp_init_custom - 0x00001880 0x84 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - 0x00001880 ssp_init_custom - .text.ssp_send_buf - 0x00001904 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - 0x00001904 ssp_send_buf - .text.init_i2c - 0x0000194c 0xfc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - 0x0000194c init_i2c - .text.wait_SI 0x00001a48 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - 0x00001a48 wait_SI - .text.I2C_master_write - 0x00001a8c 0xec C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - 0x00001a8c I2C_master_write - .text.I2C_master_read - 0x00001b78 0x120 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - 0x00001b78 I2C_master_read - .text.SystemInit - 0x00001c98 0xe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x00001c98 SystemInit - .text.__main 0x00001d7c 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x00001d7c __CR_SEMIHOST - 0x00001d7c __main - .text.memset 0x00001d90 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - 0x00001d90 memset - .text.malloc 0x00001d94 0xc8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00001d94 malloc - .text.free 0x00001e5c 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00001e5c free - .text._Csys_alloc - 0x00001e8c 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00001e8c _Csys_alloc - .text.fclose 0x00001eac 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - 0x00001eac fclose - .text.fflush 0x00001f18 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - 0x00001f18 fflush - .text.fp_round - 0x00001f48 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.pr_dec.constprop.1 - 0x00001f94 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - *fill* 0x00001fba 0x2 ff - .text.sprintf 0x00001fbc 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00001fbc sprintf - .text.fp_display - 0x00002028 0x8ec c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vsprintf - 0x00002914 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00002914 vsprintf - .text.vsnprintf - 0x00002970 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00002970 vsnprintf - .text.printf 0x000029cc 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x000029cc printf - .text.fseek 0x00002a20 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - 0x00002a20 fseek - .text.ftell 0x00002b30 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - 0x00002b30 ftell - .text._initio 0x00002b7c 0xa4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00002b7c _initio - .text._terminateio - 0x00002c20 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00002c20 _terminateio - .text.__vfprintf - 0x00002c64 0xd28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x00002c64 __vfprintf - .text.remove 0x0000398c 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - 0x0000398c remove - .text.setvbuf 0x000039a0 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - 0x000039a0 setvbuf - .text.sqrt 0x000039e0 0x11c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - 0x000039e0 sqrt - .text.exit 0x00003afc 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x00003afc exit - .text.strlen 0x00003b28 0x4a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - 0x00003b28 strlen - *fill* 0x00003b72 0x2 ff - .text._sbrk 0x00003b74 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - 0x00003b74 _sbrk - .text._deferredlazyseek - 0x00003bb4 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00003bb4 _deferredlazyseek - .text.__flsbuf - 0x00003bf8 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00003bf8 __flsbuf - .text._do_fflush - 0x00003d38 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - 0x00003d38 _do_fflush - .text._fdopen 0x00003d7c 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - 0x00003d7c _fdopen - .text._fflush 0x00003de6 0x58 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - 0x00003de6 _fflush - .text._frexpl 0x00003e3e 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - 0x00003e3e _frexpl - .text._ldexpl 0x00003e98 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - 0x00003e98 _ldexpl - .text._Cwritebuf - 0x00003ee4 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - 0x00003ee4 _Cwritebuf - .text.__check_heap_overflow - 0x00003f4c 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - 0x00003f4c __check_heap_overflow - .text.__aeabi_dmul - 0x00003f64 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003f64 __aeabi_dmul - .text.__aeabi_ddiv - 0x00004074 0x138 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00004074 __aeabi_ddiv - .text.__aeabi_dsub - 0x000041ac 0x1a0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000041ac __aeabi_dsub - .text.__aeabi_dadd - 0x0000434c 0x10c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000434c __aeabi_dadd - .text.__aeabi_d2iz - 0x00004458 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00004458 __aeabi_d2iz - .text.__bhs_ui2d - 0x00004498 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00004498 __bhs_ui2d - .text.__aeabi_i2d - 0x000044de 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000044de __aeabi_i2d - .text.__aeabi_dcmpeq - 0x000044ee 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000044ee __aeabi_dcmpeq - .text.__aeabi_dcmplt - 0x0000451a 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000451a __aeabi_dcmplt - .text.__aeabi_dcmple - 0x0000456e 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000456e __aeabi_dcmple - .text.__aeabi_dcmpge - 0x000045c2 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000045c2 __aeabi_dcmpge - *fill* 0x00004616 0x2 ff - .text.__aeabi_fdiv - 0x00004618 0xc0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x00004618 __aeabi_fdiv - .text.__bhs_ui2f - 0x000046d8 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000046d8 __bhs_ui2f - .text.__aeabi_i2f - 0x000046fe 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - 0x000046fe __aeabi_i2f - .text.__aeabi_memset_lowlevel - 0x0000470e 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - 0x0000470e __aeabi_lowlevel_memset - .text.__sys_appexit - 0x00004740 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - 0x00004740 __sys_appexit - 0x00004740 __exit - .text.__sys_close - 0x0000474c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - 0x0000474c __sys_close - .text.__sys_flen - 0x00004758 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - 0x00004758 __sys_flen - .text.__sys_istty - 0x00004764 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - 0x00004764 __sys_istty - .text.__sys_remove - 0x00004770 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - 0x00004770 __sys_remove - .text.__sys_seek - 0x0000477c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - 0x0000477c __sys_seek - .text.__sys_tmpnam - 0x00004788 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - 0x00004788 __sys_tmpnam - .text.__sys_write - 0x00004794 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - 0x00004794 __sys_write - 0x00004794 __write - *(.rodata .rodata.* .constdata .constdata.*) - .rodata 0x000047a0 0x52 ./src/labyrinth_slave.o - *fill* 0x000047f2 0x2 ff - .rodata 0x000047f4 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .rodata 0x0000481c 0x37 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - *fill* 0x00004853 0x1 ff - .rodata 0x00004854 0x19b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - *fill* 0x000049ef 0x1 ff - .rodata.SmallFont - 0x000049f0 0x478 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - 0x000049f0 SmallFont - .rodata.BigFont - 0x00004e68 0xbe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - 0x00004e68 BigFont - .rodata.str1.1 - 0x00005a4c 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .rodata.str1.1 - 0x00005a64 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x35 (size before relaxing) - .rodata.str1.1 - 0x00005a98 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .rodata.str1.1 - 0x00005a9c 0x31 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x38 (size before relaxing) - *fill* 0x00005acd 0x3 ff - .rodata.__huge_val - 0x00005ad0 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - 0x00005ad0 __huge_val - .rodata.__huge_vall - 0x00005ad8 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - 0x00005ad8 __huge_vall - 0x00005ae0 . = ALIGN (0x4) - -.glue_7 0x00005ae0 0x0 - .glue_7 0x00005ae0 0x0 linker stubs - -.glue_7t 0x00005ae0 0x0 - .glue_7t 0x00005ae0 0x0 linker stubs - -.vfp11_veneer 0x00005ae0 0x0 - .vfp11_veneer 0x00005ae0 0x0 linker stubs - -.v4_bx 0x00005ae0 0x0 - .v4_bx 0x00005ae0 0x0 linker stubs - -.iplt 0x00005ae0 0x0 - .iplt 0x00005ae0 0x0 ./src/cr_startup_lpc175x_6x.o - -.rel.dyn 0x00005ae0 0x0 - .rel.iplt 0x00005ae0 0x0 ./src/cr_startup_lpc175x_6x.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x00005ae0 __exidx_start = . - -.ARM.exidx - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x00005ae0 __exidx_end = . - 0x00005ae0 _etext = . - -.data_RAM2 0x2007c000 0x0 load address 0x00005ae0 - FILL mask 0xff - [!provide] PROVIDE (__start_data_RAM2, .) - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_data_RAM2, .) - -.uninit_RESERVED - 0x10000000 0x0 - *(.bss.$RESERVED*) - 0x10000000 . = ALIGN (0x4) - 0x10000000 _end_uninit_RESERVED = . - -.data 0x10000000 0x128 load address 0x00005ae0 - FILL mask 0xff - 0x10000000 _data = . - *(vtable) - *(.ramfunc*) - *(.data*) - .data.labyrinth_points - 0x10000000 0x128 ./src/labyrinth_slave.o - 0x10000128 . = ALIGN (0x4) - 0x10000128 _edata = . - -.igot.plt 0x10000128 0x0 load address 0x00005c08 - .igot.plt 0x10000128 0x0 ./src/cr_startup_lpc175x_6x.o - -.bss_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_bss_RAM2, .) - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) - [!provide] PROVIDE (__end_bss_RAM2, .) - -.bss 0x10000128 0x2a4 - 0x10000128 _bss = . - *(.bss*) - .bss.timer_count - 0x10000128 0x4 ./src/timer.o - .bss.i2c_h 0x1000012c 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .bss.rx_irq_callback - 0x10000130 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .bss.dat 0x10000134 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .bss.rx 0x10000170 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - 0x10000170 rx - .bss.rxptr 0x10000174 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .bss.txptr 0x10000178 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .bss._extra 0x1000017c 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x1000017c _extra - .bss.__Ciob 0x10000180 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - 0x10000180 __Ciob - .bss._exitvector - 0x100002c0 0x84 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x100002c0 _exitvector - .bss._number_of_exit_functions - 0x10000344 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x10000344 _number_of_exit_functions - .bss.__heaps 0x10000348 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x10000348 __heaps - .bss.__end_of_heap - 0x1000034c 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x1000034c __end_of_heap - .bss.errno 0x10000350 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - 0x10000350 errno - *(COMMON) - COMMON 0x10000354 0x78 ./src/labyrinth_slave.o - 0x10000354 last_ball_coord - 0x1000037c master_tx - 0x100003cc . = ALIGN (0x4) - 0x100003cc _ebss = . - [!provide] PROVIDE (end, .) - -.noinit_RAM2 0x2007c000 0x0 - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - -.noinit 0x100003cc 0x0 - 0x100003cc _noinit = . - *(.noinit*) - 0x100003cc . = ALIGN (0x4) - 0x100003cc _end_noinit = . - 0x100003cc PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) - 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) - [!provide] PROVIDE (__valid_user_code_checksum, (0x0 - ((((((_vStackTop + (ResetISR + 0x1)) + (NMI_Handler + 0x1)) + (HardFault_Handler + 0x1)) + (DEFINED (MemManage_Handler)?MemManage_Handler:0x0 + 0x1)) + (DEFINED (BusFault_Handler)?BusFault_Handler:0x0 + 0x1)) + (DEFINED (UsageFault_Handler)?UsageFault_Handler:0x0 + 0x1)))) -OUTPUT(TP1_labyrinth_slave.axf elf32-littlearm) - -.debug_info 0x00000000 0x48a3 - .debug_info 0x00000000 0x250 ./src/cr_startup_lpc175x_6x.o - .debug_info 0x00000250 0x3f ./src/crp.o - .debug_info 0x0000028f 0x581 ./src/labyrinth_slave.o - .debug_info 0x00000810 0x4d9 ./src/timer.o - .debug_info 0x00000ce9 0x2a0 ./src/tools.o - .debug_info 0x00000f89 0x362 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_info 0x000012eb 0x7d8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_info 0x00001ac3 0x9cb C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_info 0x0000248e 0x129f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_info 0x0000372d 0x5ab C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_info 0x00003cd8 0x809 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_info 0x000044e1 0xaa C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_info 0x0000458b 0x318 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_abbrev 0x00000000 0x1109 - .debug_abbrev 0x00000000 0xf5 ./src/cr_startup_lpc175x_6x.o - .debug_abbrev 0x000000f5 0x36 ./src/crp.o - .debug_abbrev 0x0000012b 0x1b5 ./src/labyrinth_slave.o - .debug_abbrev 0x000002e0 0x1c3 ./src/timer.o - .debug_abbrev 0x000004a3 0x122 ./src/tools.o - .debug_abbrev 0x000005c5 0x111 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_abbrev 0x000006d6 0x1fc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_abbrev 0x000008d2 0x205 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_abbrev 0x00000ad7 0x274 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_abbrev 0x00000d4b 0x13a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_abbrev 0x00000e85 0x156 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_abbrev 0x00000fdb 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_abbrev 0x00001023 0xe6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_aranges 0x00000000 0x3e8 - .debug_aranges - 0x00000000 0x80 ./src/cr_startup_lpc175x_6x.o - .debug_aranges - 0x00000080 0x18 ./src/crp.o - .debug_aranges - 0x00000098 0x38 ./src/labyrinth_slave.o - .debug_aranges - 0x000000d0 0x40 ./src/timer.o - .debug_aranges - 0x00000110 0x30 ./src/tools.o - .debug_aranges - 0x00000140 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_aranges - 0x00000178 0x40 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_aranges - 0x000001b8 0x68 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_aranges - 0x00000220 0x110 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_aranges - 0x00000330 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_aranges - 0x00000360 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_aranges - 0x000003a8 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_aranges - 0x000003c0 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_ranges 0x00000000 0x338 - .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc175x_6x.o - .debug_ranges 0x00000070 0x28 ./src/labyrinth_slave.o - .debug_ranges 0x00000098 0x30 ./src/timer.o - .debug_ranges 0x000000c8 0x20 ./src/tools.o - .debug_ranges 0x000000e8 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_ranges 0x00000110 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_ranges 0x00000140 0x58 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_ranges 0x00000198 0x130 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_ranges 0x000002c8 0x20 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_ranges 0x000002e8 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_ranges 0x00000320 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_macro 0x00000000 0x4085 - .debug_macro 0x00000000 0x1d ./src/cr_startup_lpc175x_6x.o - .debug_macro 0x0000001d 0x892 ./src/cr_startup_lpc175x_6x.o - .debug_macro 0x000008af 0x1a ./src/crp.o - .debug_macro 0x000008c9 0x34 ./src/crp.o - .debug_macro 0x000008fd 0x122 ./src/labyrinth_slave.o - .debug_macro 0x00000a1f 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00000a3b 0x2e ./src/labyrinth_slave.o - .debug_macro 0x00000a69 0x10 ./src/labyrinth_slave.o - .debug_macro 0x00000a79 0x12d ./src/labyrinth_slave.o - .debug_macro 0x00000ba6 0x5b2 ./src/labyrinth_slave.o - .debug_macro 0x00001158 0x18 ./src/labyrinth_slave.o - .debug_macro 0x00001170 0x7af ./src/labyrinth_slave.o - .debug_macro 0x0000191f 0x2c7 ./src/labyrinth_slave.o - .debug_macro 0x00001be6 0x22 ./src/labyrinth_slave.o - .debug_macro 0x00001c08 0xa0 ./src/labyrinth_slave.o - .debug_macro 0x00001ca8 0x82 ./src/labyrinth_slave.o - .debug_macro 0x00001d2a 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00001d46 0x28 ./src/labyrinth_slave.o - .debug_macro 0x00001d6e 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00001d8a 0xc2 ./src/labyrinth_slave.o - .debug_macro 0x00001e4c 0xd6 ./src/labyrinth_slave.o - .debug_macro 0x00001f22 0x22 ./src/labyrinth_slave.o - .debug_macro 0x00001f44 0x92 ./src/timer.o - .debug_macro 0x00001fd6 0x28 ./src/timer.o - .debug_macro 0x00001ffe 0xc0 ./src/tools.o - .debug_macro 0x000020be 0xc4 ./src/tools.o - .debug_macro 0x00002182 0x1c ./src/tools.o - .debug_macro 0x0000219e 0xaf C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x0000224d 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002ae5 0x52 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002b37 0xd4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00002c0b 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00002ca5 0x7c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x00002d21 0x5c3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_macro 0x000032e4 0xa9 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_macro 0x0000338d 0x108 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00003495 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x000034b7 0xc4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x0000357b 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x0000360b 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x0000362d 0x8d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x000036ba 0x1a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x000036d4 0x12b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x000037ff 0x886 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_line 0x00000000 0x2363 - .debug_line 0x00000000 0xd5 ./src/cr_startup_lpc175x_6x.o - .debug_line 0x000000d5 0x78 ./src/crp.o - .debug_line 0x0000014d 0x324 ./src/labyrinth_slave.o - .debug_line 0x00000471 0x212 ./src/timer.o - .debug_line 0x00000683 0x32f ./src/tools.o - .debug_line 0x000009b2 0x299 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_line 0x00000c4b 0x320 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_line 0x00000f6b 0x3db C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_line 0x00001346 0x80d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_line 0x00001b53 0x25a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_line 0x00001dad 0x360 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_line 0x0000210d 0x83 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .debug_line 0x00002190 0x1d3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_str 0x00000000 0xc443 - .debug_str 0x00000000 0x26ab ./src/cr_startup_lpc175x_6x.o - 0x26be (size before relaxing) - .debug_str 0x000026ab 0xe9 ./src/crp.o - 0x25d6 (size before relaxing) - .debug_str 0x00002794 0x6bc4 ./src/labyrinth_slave.o - 0x916a (size before relaxing) - .debug_str 0x00009358 0x111 ./src/timer.o - 0x80e8 (size before relaxing) - .debug_str 0x00009469 0x58f ./src/tools.o - 0x88a8 (size before relaxing) - .debug_str 0x000099f8 0x230 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - 0x8393 (size before relaxing) - .debug_str 0x00009c28 0x1a14 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - 0xa130 (size before relaxing) - .debug_str 0x0000b63c 0x317 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - 0x9a75 (size before relaxing) - .debug_str 0x0000b953 0x548 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - 0x9006 (size before relaxing) - .debug_str 0x0000be9b 0xa7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - 0x80e2 (size before relaxing) - .debug_str 0x0000bf42 0xda C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - 0x823f (size before relaxing) - .debug_str 0x0000c01c 0x1f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - 0x2587 (size before relaxing) - .debug_str 0x0000c03b 0x408 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x814e (size before relaxing) - -.comment 0x00000000 0xdc - .comment 0x00000000 0x6e ./src/cr_startup_lpc175x_6x.o - 0x6f (size before relaxing) - .comment 0x0000006e 0x6f ./src/crp.o - .comment 0x0000006e 0x6f ./src/labyrinth_slave.o - .comment 0x0000006e 0x6f ./src/timer.o - .comment 0x0000006e 0x6f ./src/tools.o - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .comment 0x0000006e 0x6e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x6f (size before relaxing) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x33 ./src/cr_startup_lpc175x_6x.o - .ARM.attributes - 0x00000033 0x33 ./src/crp.o - .ARM.attributes - 0x00000066 0x33 ./src/labyrinth_slave.o - .ARM.attributes - 0x00000099 0x33 ./src/timer.o - .ARM.attributes - 0x000000cc 0x33 ./src/tools.o - .ARM.attributes - 0x000000ff 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .ARM.attributes - 0x00000132 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .ARM.attributes - 0x00000165 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .ARM.attributes - 0x00000198 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .ARM.attributes - 0x000001cb 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .ARM.attributes - 0x000001fe 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .ARM.attributes - 0x00000231 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(fonts.o) - .ARM.attributes - 0x00000264 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .ARM.attributes - 0x00000297 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .ARM.attributes - 0x000002ca 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .ARM.attributes - 0x000002fd 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .ARM.attributes - 0x00000330 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .ARM.attributes - 0x00000363 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .ARM.attributes - 0x00000396 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .ARM.attributes - 0x000003c9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .ARM.attributes - 0x000003fc 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .ARM.attributes - 0x0000042f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .ARM.attributes - 0x00000462 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .ARM.attributes - 0x00000495 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .ARM.attributes - 0x000004c8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .ARM.attributes - 0x000004fb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .ARM.attributes - 0x0000052e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .ARM.attributes - 0x00000561 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .ARM.attributes - 0x00000594 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .ARM.attributes - 0x000005c7 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .ARM.attributes - 0x000005fa 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .ARM.attributes - 0x0000062d 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .ARM.attributes - 0x00000660 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .ARM.attributes - 0x00000693 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .ARM.attributes - 0x000006c6 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .ARM.attributes - 0x000006f9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .ARM.attributes - 0x0000072c 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .ARM.attributes - 0x0000075f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .ARM.attributes - 0x00000792 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .ARM.attributes - 0x000007c5 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .ARM.attributes - 0x000007f8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .ARM.attributes - 0x0000082b 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .ARM.attributes - 0x0000085e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .ARM.attributes - 0x00000891 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .ARM.attributes - 0x000008b2 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .ARM.attributes - 0x000008d3 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .ARM.attributes - 0x000008f4 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .ARM.attributes - 0x00000915 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .ARM.attributes - 0x00000936 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .ARM.attributes - 0x00000957 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .ARM.attributes - 0x00000978 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .ARM.attributes - 0x00000999 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -.debug_frame 0x00000000 0xcb4 - .debug_frame 0x00000000 0x170 ./src/cr_startup_lpc175x_6x.o - .debug_frame 0x00000170 0xb0 ./src/labyrinth_slave.o - .debug_frame 0x00000220 0xc4 ./src/timer.o - .debug_frame 0x000002e4 0x90 ./src/tools.o - .debug_frame 0x00000374 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(accelerometer.o) - .debug_frame 0x00000414 0xc8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethernet_mgt.o) - .debug_frame 0x000004dc 0x18c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ethmac.o) - .debug_frame 0x00000668 0x490 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(lcd.o) - .debug_frame 0x00000af8 0x88 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(ssp.o) - .debug_frame 0x00000b80 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\TP1_labyrinth_slave\Debug\libMyLab_lib.a(I2C.o) - .debug_frame 0x00000c78 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\w_exercices\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_etu.map b/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_etu.map deleted file mode 100644 index 9cfa862..0000000 --- a/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_etu.map +++ /dev/null @@ -1,1505 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - ./src/labyrinth_slave.o (accel_init) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - ./src/labyrinth_slave.o (init_lcd) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (ssp_init_custom) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) (init_i2c) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (SmallFont) -C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - ./src/cr_startup_lpc175x_6x.o (SystemInit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - ./src/cr_startup_lpc175x_6x.o (__main) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (malloc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - ./src/tools.o (ceil) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (fclose) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - ./src/tools.o (floor) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (fopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (vsprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (fread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) (freopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (fseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (ftell) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) (_initio) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (__vfprintf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (setvbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (sqrt) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (__Ciob) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (exit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) (strlen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (memset) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) (__filbuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__heaps) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (_sbrk) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_deferredlazyseek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) (_do_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) (_fdopen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (_fflush) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_frexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) (__huge_val) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (_ldexpl) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) (_Cread) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) (_Cwritebuf) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) (errno) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) (raise) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) (__check_heap_overflow) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) (__aeabi_idiv0) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) (__aeabi_dmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - ./src/tools.o (__aeabi_fmul) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) (__aeabi_memcpy) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_appexit) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_close) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_flen) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) (__sys_istty) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) (__sys_open) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_read) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_readc) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_remove) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) (__sys_rename) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) (__sys_seek) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) (__sys_tmpnam) -c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) (__sys_write) - -Discarded input sections - - .group 0x00000000 0x8 ./src/cr_startup_lpc175x_6x.o - .text 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .data 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .bss 0x00000000 0x0 ./src/cr_startup_lpc175x_6x.o - .group 0x00000000 0x8 ./src/crp.o - .group 0x00000000 0x8 ./src/crp.o - .text 0x00000000 0x0 ./src/crp.o - .data 0x00000000 0x0 ./src/crp.o - .bss 0x00000000 0x0 ./src/crp.o - .debug_macro 0x00000000 0x892 ./src/crp.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/labyrinth_slave.o - .text 0x00000000 0x0 ./src/labyrinth_slave.o - .data 0x00000000 0x0 ./src/labyrinth_slave.o - .bss 0x00000000 0x0 ./src/labyrinth_slave.o - .text.master_info_rx - 0x00000000 0x14 ./src/labyrinth_slave.o - .debug_macro 0x00000000 0x892 ./src/labyrinth_slave.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .group 0x00000000 0x8 ./src/tools.o - .text 0x00000000 0x0 ./src/tools.o - .data 0x00000000 0x0 ./src/tools.o - .bss 0x00000000 0x0 ./src/tools.o - .text.round 0x00000000 0x78 ./src/tools.o - .text.test_collision - 0x00000000 0x450 ./src/tools.o - .debug_macro 0x00000000 0x892 ./src/tools.o - .debug_macro 0x00000000 0x10 ./src/tools.o - .debug_macro 0x00000000 0x12d ./src/tools.o - .debug_macro 0x00000000 0x5b2 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x2e ./src/tools.o - .debug_macro 0x00000000 0x18 ./src/tools.o - .debug_macro 0x00000000 0x7af ./src/tools.o - .debug_macro 0x00000000 0x2c7 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0x22 ./src/tools.o - .debug_macro 0x00000000 0x28 ./src/tools.o - .debug_macro 0x00000000 0x1c ./src/tools.o - .debug_macro 0x00000000 0xc2 ./src/tools.o - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .text.accel_read - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0xd6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .bss.str 0x00000000 0x30c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.LCD_SetPosR - 0x00000000 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.read_pixels - 0x00000000 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.read_cmd - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.setup_scroll - 0x00000000 0x68 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_scroll - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_set_fenetre_pixel - 0x00000000 0x24 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.Ecran_Croix - 0x00000000 0x78 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_lineH - 0x00000000 0x64 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_lineV - 0x00000000 0x60 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_line - 0x00000000 0x158 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_circle - 0x00000000 0x1ac C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_filled_circle - 0x00000000 0xd8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_filled_circle_on_square - 0x00000000 0xcc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_empty_rectangle - 0x00000000 0x80 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_print_char - 0x00000000 0x10c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_print - 0x00000000 0xe0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.lcd_printf - 0x00000000 0x20c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.read_bmp_file - 0x00000000 0x1d0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.display_bitmap16 - 0x00000000 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .bss.is_scroll_setup.5885 - 0x00000000 0x1 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .bss.x.5882 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .data.offset.5884 - 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .data.y.5883 0x00000000 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00000000 0xc2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .text.ssp_receive_buf - 0x00000000 0x70 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .text.I2C_slave_read - 0x00000000 0x1c8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .text.I2C_slave_write - 0x00000000 0x168 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00000000 0x58 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .rodata.SmallFont - 0x00000000 0x478 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .rodata.BigFont - 0x00000000 0xbe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .rodata.SevenSegNumFont - 0x00000000 0x7d4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_info 0x00000000 0xaa C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_abbrev 0x00000000 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_aranges - 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_line 0x00000000 0x7b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .debug_str 0x00000000 0x257f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .comment 0x00000000 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .ARM.attributes - 0x00000000 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(fonts.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .group 0x00000000 0x8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .data 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .bss 0x00000000 0x0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text.SystemCoreClockUpdate - 0x00000000 0xb4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x10 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x12d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x5b2 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x1c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2e C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x7af C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00000000 0x2c7 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.calloc 0x00000000 0x50 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text.realloc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .text.ceil 0x00000000 0x90 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ceil.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .text.floor 0x00000000 0x94 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(floor.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text.fopen 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.fprintf 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vfprintf - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vprintf 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vsprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text.fread 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fread.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text.freopen 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(freopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text.no_fp_display - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._fprintf - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf_char - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._sprintf - 0x00000000 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._snprintf - 0x00000000 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vfprintf - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vprintf - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._vsnprintf - 0x00000000 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text._printf 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text.rename 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .text.sqrt 0x00000000 0x11c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(sqrt.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getc 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fgetc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.getchar 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putc 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.fputc 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.putchar 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.feof 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.ferror 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text.clearerr - 0x00000000 0xe c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__rand 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.__srand 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.rand 0x00000000 0x3c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.srand 0x00000000 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text._exit_init - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.atexit 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abort 0x00000000 0x12 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.abs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.labs 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.div 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text.ldiv 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data.next 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_number_seed - 0x00000000 0xdc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_j - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .data._random_k - 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text.memcpy 0x00000000 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._Csys_read_ - 0x00000000 0x22 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text.__filbuf - 0x00000000 0x178 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text._fillb2 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__fillbuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text._init_alloc - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .rodata.__huge_val - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text._Cread 0x00000000 0x8c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text.raise 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(raise.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_ldivmod - 0x00000000 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text.__aeabi_division_uldivmod - 0x00000000 0x174 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_64.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text.__aeabi_division_idiv0 - 0x00000000 0x2 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(division_idiv0.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_drsub - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dneg - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2f - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2uiz - 0x00000000 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2lz - 0x00000000 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_d2ulz - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__bhs_ul2d - 0x00000000 0x88 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ui2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_l2d - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_ul2d - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpgt - 0x00000000 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_dcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdcmple - 0x00000000 0x24 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text.__aeabi_cdrcmple - 0x00000000 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fmul - 0x00000000 0xb0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fdiv - 0x00000000 0xc0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fsub - 0x00000000 0xe0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fadd - 0x00000000 0xac c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_frsub - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fneg - 0x00000000 0x6 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2iz - 0x00000000 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2uiz - 0x00000000 0x28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2lz - 0x00000000 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2ulz - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__bhs_ui2f - 0x00000000 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__bhs_ul2f - 0x00000000 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_i2f - 0x00000000 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_ui2f - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_l2f - 0x00000000 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_ul2f - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_f2d - 0x00000000 0x38 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpeq - 0x00000000 0x1e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmplt - 0x00000000 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpgt - 0x00000000 0x3a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmple - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpge - 0x00000000 0x3e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_fcmpun - 0x00000000 0x1a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfcmple - 0x00000000 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text.__aeabi_cfrcmple - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .comment 0x00000000 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .ARM.attributes - 0x00000000 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(float.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memcpy - 0x00000000 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memmove - 0x00000000 0x1c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memclr - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text.__aeabi_memset - 0x00000000 0xa c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text.__sys_open - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_open.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text.__sys_read - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_read.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text.__sys_readc - 0x00000000 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_readc.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text.__sys_rename - 0x00000000 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .ARM.attributes - 0x00000000 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_rename.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -Memory Configuration - -Name Origin Length Attributes -MFlash512 0x00000000 0x00080000 xr -RamLoc32 0x10000000 0x00008000 xrw -RamAHB32 0x2007c000 0x00008000 xrw -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ./src/cr_startup_lpc175x_6x.o -LOAD ./src/crp.o -LOAD ./src/labyrinth_slave.o -LOAD ./src/tools.o -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a -LOAD C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a -START GROUP -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a -LOAD c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a -END GROUP - 0x00000000 __base_MFlash512 = 0x0 - 0x00000000 __base_Flash = 0x0 - 0x00080000 __top_MFlash512 = 0x80000 - 0x00080000 __top_Flash = 0x80000 - 0x10000000 __base_RamLoc32 = 0x10000000 - 0x10000000 __base_RAM = 0x10000000 - 0x10008000 __top_RamLoc32 = 0x10008000 - 0x10008000 __top_RAM = 0x10008000 - 0x2007c000 __base_RamAHB32 = 0x2007c000 - 0x2007c000 __base_RAM2 = 0x2007c000 - 0x20084000 __top_RamAHB32 = 0x20084000 - 0x20084000 __top_RAM2 = 0x20084000 - -.text 0x00000000 0x3ab8 - FILL mask 0xff - 0x00000000 __vectors_start__ = ABSOLUTE (.) - *(.isr_vector) - .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc175x_6x.o - 0x00000000 g_pfnVectors - 0x000000cc . = ALIGN (0x4) - 0x000000cc __section_table_start = . - 0x000000cc __data_section_table = . - 0x000000cc 0x4 LONG 0x3ab8 LOADADDR (.data) - 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) - 0x000000d4 0x4 LONG 0x12c SIZEOF (.data) - 0x000000d8 0x4 LONG 0x3ab8 LOADADDR (.data_RAM2) - 0x000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) - 0x000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) - 0x000000e4 __data_section_table_end = . - 0x000000e4 __bss_section_table = . - 0x000000e4 0x4 LONG 0x1000012c ADDR (.bss) - 0x000000e8 0x4 LONG 0x1dc SIZEOF (.bss) - 0x000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) - 0x000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) - 0x000000f4 __bss_section_table_end = . - 0x000000f4 __section_table_end = . - *(.after_vectors*) - .after_vectors - 0x000000f4 0x144 ./src/cr_startup_lpc175x_6x.o - 0x000000f4 data_init - 0x00000138 bss_init - 0x00000170 ResetISR - 0x000001e8 NMI_Handler - 0x000001f0 HardFault_Handler - 0x000001f8 MemManage_Handler - 0x00000200 BusFault_Handler - 0x00000208 UsageFault_Handler - 0x00000210 SVC_Handler - 0x00000218 DebugMon_Handler - 0x00000220 PendSV_Handler - 0x00000228 SysTick_Handler - 0x00000230 EINT3_IRQHandler - 0x00000230 CANActivity_IRQHandler - 0x00000230 TIMER3_IRQHandler - 0x00000230 UART0_IRQHandler - 0x00000230 UART1_IRQHandler - 0x00000230 EINT2_IRQHandler - 0x00000230 USBActivity_IRQHandler - 0x00000230 IntDefaultHandler - 0x00000230 PLL0_IRQHandler - 0x00000230 I2C0_IRQHandler - 0x00000230 I2C1_IRQHandler - 0x00000230 SSP0_IRQHandler - 0x00000230 I2S_IRQHandler - 0x00000230 I2C2_IRQHandler - 0x00000230 RTC_IRQHandler - 0x00000230 TIMER0_IRQHandler - 0x00000230 SPI_IRQHandler - 0x00000230 RIT_IRQHandler - 0x00000230 EINT1_IRQHandler - 0x00000230 TIMER1_IRQHandler - 0x00000230 UART2_IRQHandler - 0x00000230 ADC_IRQHandler - 0x00000230 SSP1_IRQHandler - 0x00000230 USB_IRQHandler - 0x00000230 BOD_IRQHandler - 0x00000230 PLL1_IRQHandler - 0x00000230 WDT_IRQHandler - 0x00000230 PWM1_IRQHandler - 0x00000230 QEI_IRQHandler - 0x00000230 EINT0_IRQHandler - 0x00000230 CAN_IRQHandler - 0x00000230 DMA_IRQHandler - 0x00000230 TIMER2_IRQHandler - 0x00000230 UART3_IRQHandler - 0x00000230 MCPWM_IRQHandler - 0x00000230 ENET_IRQHandler - 0x000002fc . = 0x2fc - *fill* 0x00000238 0xc4 ff - 0x000002fc PROVIDE (__CRP_WORD_START__, .) - *(.crp) - .crp 0x000002fc 0x4 ./src/crp.o - 0x000002fc CRP_WORD - 0x00000300 PROVIDE (__CRP_WORD_END__, .) - 0x00000001 ASSERT (! ((__CRP_WORD_START__ == __CRP_WORD_END__)), Linker CRP Enabled, but no CRP_WORD provided within application) - *(.text*) - .text.main 0x00000300 0x30 ./src/labyrinth_slave.o - 0x00000300 main - .text.draw_labyrinth - 0x00000330 0x150 ./src/tools.o - 0x00000330 draw_labyrinth - .text.accel_write_byte - 0x00000480 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - 0x00000480 accel_write_byte - .text.accel_read_byte - 0x000004c4 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - 0x000004c4 accel_read_byte - .text.accel_init - 0x00000518 0xb8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - 0x00000518 accel_init - .text.LCD_RS_ENA - 0x000005d0 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.LCD_RS_DIS - 0x00000608 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .text.Write_Cmd_Data - 0x00000640 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000640 Write_Cmd_Data - .text.Write_Cmd - 0x00000668 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000668 Write_Cmd - .text.Write_Data - 0x00000690 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000690 Write_Data - .text.Write_Data_U16 - 0x000006c0 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x000006c0 Write_Data_U16 - .text.Delay 0x000006e8 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x000006e8 Delay - .text.ILI9341_Initial - 0x00000718 0x220 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000718 ILI9341_Initial - .text.init_lcd - 0x00000938 0x54 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000938 init_lcd - .text.LCD_SetPos - 0x0000098c 0xb8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x0000098c LCD_SetPos - .text.clear_screen - 0x00000a44 0x4c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000a44 clear_screen - .text.lcd_filled_rectangle - 0x00000a90 0xa4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x00000a90 lcd_filled_rectangle - .text.ssp_init_custom - 0x00000b34 0x84 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - 0x00000b34 ssp_init_custom - .text.ssp_send_buf - 0x00000bb8 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - 0x00000bb8 ssp_send_buf - .text.init_i2c - 0x00000c00 0x180 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - 0x00000c00 init_i2c - .text.wait_SI 0x00000d80 0x44 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - 0x00000d80 wait_SI - .text.I2C_master_write - 0x00000dc4 0xec C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - 0x00000dc4 I2C_master_write - .text.I2C_master_read - 0x00000eb0 0x120 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - 0x00000eb0 I2C_master_read - .text.SystemInit - 0x00000fd0 0xe4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x00000fd0 SystemInit - .text.__main 0x000010b4 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x000010b4 __CR_SEMIHOST - 0x000010b4 __main - .text.malloc 0x000010c8 0xc8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x000010c8 malloc - .text.free 0x00001190 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x00001190 free - .text._Csys_alloc - 0x000011c0 0x20 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - 0x000011c0 _Csys_alloc - .text.fclose 0x000011e0 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - 0x000011e0 fclose - .text.fflush 0x0000124c 0x30 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - 0x0000124c fflush - .text.fp_round - 0x0000127c 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.pr_dec.constprop.1 - 0x000012c8 0x26 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - *fill* 0x000012ee 0x2 ff - .text.sprintf 0x000012f0 0x6c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x000012f0 sprintf - *fill* 0x0000135c 0x4 ff - .text.fp_display - 0x00001360 0x8ec c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .text.vsnprintf - 0x00001c4c 0x5c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00001c4c vsnprintf - .text.printf 0x00001ca8 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x00001ca8 printf - .text.fseek 0x00001cfc 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - 0x00001cfc fseek - .text.ftell 0x00001e0c 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - 0x00001e0c ftell - .text._initio 0x00001e58 0xa4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00001e58 _initio - .text._terminateio - 0x00001efc 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x00001efc _terminateio - .text.__vfprintf - 0x00001f40 0xd28 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x00001f40 __vfprintf - .text.remove 0x00002c68 0x14 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - 0x00002c68 remove - .text.setvbuf 0x00002c7c 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - 0x00002c7c setvbuf - .text.exit 0x00002cbc 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x00002cbc exit - .text.strlen 0x00002ce8 0x4a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - 0x00002ce8 strlen - .text.memset 0x00002d32 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - 0x00002d32 memset - *fill* 0x00002d36 0x2 ff - .text._sbrk 0x00002d38 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - 0x00002d38 _sbrk - .text._deferredlazyseek - 0x00002d78 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00002d78 _deferredlazyseek - .text.__flsbuf - 0x00002dbc 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - 0x00002dbc __flsbuf - .text._do_fflush - 0x00002efc 0x44 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - 0x00002efc _do_fflush - .text._fdopen 0x00002f40 0x6a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - 0x00002f40 _fdopen - .text._fflush 0x00002faa 0x58 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - 0x00002faa _fflush - .text._frexpl 0x00003002 0x5a c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - 0x00003002 _frexpl - .text._ldexpl 0x0000305c 0x4c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - 0x0000305c _ldexpl - .text._Cwritebuf - 0x000030a8 0x68 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - 0x000030a8 _Cwritebuf - .text.__check_heap_overflow - 0x00003110 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - 0x00003110 __check_heap_overflow - .text.__aeabi_dmul - 0x00003128 0x110 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003128 __aeabi_dmul - .text.__aeabi_ddiv - 0x00003238 0x138 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003238 __aeabi_ddiv - .text.__aeabi_dsub - 0x00003370 0x1a0 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003370 __aeabi_dsub - .text.__aeabi_dadd - 0x00003510 0x10c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003510 __aeabi_dadd - .text.__aeabi_d2iz - 0x0000361c 0x40 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000361c __aeabi_d2iz - .text.__bhs_ui2d - 0x0000365c 0x46 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x0000365c __bhs_ui2d - .text.__aeabi_i2d - 0x000036a2 0x10 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000036a2 __aeabi_i2d - .text.__aeabi_dcmpeq - 0x000036b2 0x2c c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000036b2 __aeabi_dcmpeq - .text.__aeabi_dcmplt - 0x000036de 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x000036de __aeabi_dcmplt - .text.__aeabi_dcmple - 0x00003732 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003732 __aeabi_dcmple - .text.__aeabi_dcmpge - 0x00003786 0x54 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - 0x00003786 __aeabi_dcmpge - .text.__aeabi_memset_lowlevel - 0x000037da 0x32 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - 0x000037da __aeabi_lowlevel_memset - .text.__sys_appexit - 0x0000380c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - 0x0000380c __sys_appexit - 0x0000380c __exit - .text.__sys_close - 0x00003818 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - 0x00003818 __sys_close - .text.__sys_flen - 0x00003824 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - 0x00003824 __sys_flen - .text.__sys_istty - 0x00003830 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - 0x00003830 __sys_istty - .text.__sys_remove - 0x0000383c 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - 0x0000383c __sys_remove - .text.__sys_seek - 0x00003848 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - 0x00003848 __sys_seek - .text.__sys_tmpnam - 0x00003854 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - 0x00003854 __sys_tmpnam - .text.__sys_write - 0x00003860 0xc c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - 0x00003860 __sys_write - 0x00003860 __write - *(.rodata .rodata.* .constdata .constdata.*) - .rodata 0x0000386c 0x26 ./src/labyrinth_slave.o - *fill* 0x00003892 0x2 ff - .rodata 0x00003894 0x19b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .rodata.str1.1 - 0x00003a2f 0x18 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .rodata.str1.1 - 0x00003a47 0x34 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - 0x35 (size before relaxing) - .rodata.str1.1 - 0x00003a7b 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .rodata.str1.1 - 0x00003a7f 0x31 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - 0x38 (size before relaxing) - .rodata.__huge_vall - 0x00003ab0 0x8 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - 0x00003ab0 __huge_vall - 0x00003ab8 . = ALIGN (0x4) - -.glue_7 0x00003ab8 0x0 - .glue_7 0x00003ab8 0x0 linker stubs - -.glue_7t 0x00003ab8 0x0 - .glue_7t 0x00003ab8 0x0 linker stubs - -.vfp11_veneer 0x00003ab8 0x0 - .vfp11_veneer 0x00003ab8 0x0 linker stubs - -.v4_bx 0x00003ab8 0x0 - .v4_bx 0x00003ab8 0x0 linker stubs - -.iplt 0x00003ab8 0x0 - .iplt 0x00003ab8 0x0 ./src/cr_startup_lpc175x_6x.o - -.rel.dyn 0x00003ab8 0x0 - .rel.iplt 0x00003ab8 0x0 ./src/cr_startup_lpc175x_6x.o - -.ARM.extab - *(.ARM.extab* .gnu.linkonce.armextab.*) - 0x00003ab8 __exidx_start = . - -.ARM.exidx - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - 0x00003ab8 __exidx_end = . - 0x00003ab8 _etext = . - -.data_RAM2 0x2007c000 0x0 load address 0x00003ab8 - FILL mask 0xff - [!provide] PROVIDE (__start_data_RAM2, .) - *(.ramfunc.$RAM2) - *(.ramfunc.$RamAHB32) - *(.data.$RAM2*) - *(.data.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - [!provide] PROVIDE (__end_data_RAM2, .) - -.uninit_RESERVED - 0x10000000 0x0 - *(.bss.$RESERVED*) - 0x10000000 . = ALIGN (0x4) - 0x10000000 _end_uninit_RESERVED = . - -.data 0x10000000 0x12c load address 0x00003ab8 - FILL mask 0xff - 0x10000000 _data = . - *(vtable) - *(.ramfunc*) - *(.data*) - .data.labyrinth_points - 0x10000000 0x128 ./src/labyrinth_slave.o - .data.SystemCoreClock - 0x10000128 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x10000128 SystemCoreClock - 0x1000012c . = ALIGN (0x4) - 0x1000012c _edata = . - -.igot.plt 0x1000012c 0x0 load address 0x00003be4 - .igot.plt 0x1000012c 0x0 ./src/cr_startup_lpc175x_6x.o - -.bss_RAM2 0x2007c000 0x0 - [!provide] PROVIDE (__start_bss_RAM2, .) - *(.bss.$RAM2*) - *(.bss.$RamAHB32*) - 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) - [!provide] PROVIDE (__end_bss_RAM2, .) - -.bss 0x1000012c 0x1dc - 0x1000012c _bss = . - *(.bss*) - .bss.i2c_h 0x1000012c 0x4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .bss._extra 0x10000130 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - 0x10000130 _extra - .bss.__Ciob 0x10000134 0x140 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - 0x10000134 __Ciob - .bss._exitvector - 0x10000274 0x84 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x10000274 _exitvector - .bss._number_of_exit_functions - 0x100002f8 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - 0x100002f8 _number_of_exit_functions - .bss.__heaps 0x100002fc 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x100002fc __heaps - .bss.__end_of_heap - 0x10000300 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - 0x10000300 __end_of_heap - .bss.errno 0x10000304 0x4 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - 0x10000304 errno - *(COMMON) - 0x10000308 . = ALIGN (0x4) - 0x10000308 _ebss = . - [!provide] PROVIDE (end, .) - -.noinit_RAM2 0x2007c000 0x0 - *(.noinit.$RAM2*) - *(.noinit.$RamAHB32*) - 0x2007c000 . = ALIGN (0x4) - -.noinit 0x10000308 0x0 - 0x10000308 _noinit = . - *(.noinit*) - 0x10000308 . = ALIGN (0x4) - 0x10000308 _end_noinit = . - 0x10000308 PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) - 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) - [!provide] PROVIDE (__valid_user_code_checksum, (0x0 - ((((((_vStackTop + (ResetISR + 0x1)) + (NMI_Handler + 0x1)) + (HardFault_Handler + 0x1)) + (DEFINED (MemManage_Handler)?MemManage_Handler:0x0 + 0x1)) + (DEFINED (BusFault_Handler)?BusFault_Handler:0x0 + 0x1)) + (DEFINED (UsageFault_Handler)?UsageFault_Handler:0x0 + 0x1)))) -OUTPUT(TP1_labyrinth_slave_etu.axf elf32-littlearm) - -.debug_info 0x00000000 0x2d38 - .debug_info 0x00000000 0x250 ./src/cr_startup_lpc175x_6x.o - .debug_info 0x00000250 0x3f ./src/crp.o - .debug_info 0x0000028f 0x133 ./src/labyrinth_slave.o - .debug_info 0x000003c2 0x2a0 ./src/tools.o - .debug_info 0x00000662 0x362 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_info 0x000009c4 0x127b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_info 0x00001c3f 0x5ab C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_info 0x000021ea 0x836 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_info 0x00002a20 0x318 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_abbrev 0x00000000 0xa8a - .debug_abbrev 0x00000000 0xf5 ./src/cr_startup_lpc175x_6x.o - .debug_abbrev 0x000000f5 0x36 ./src/crp.o - .debug_abbrev 0x0000012b 0xe8 ./src/labyrinth_slave.o - .debug_abbrev 0x00000213 0x122 ./src/tools.o - .debug_abbrev 0x00000335 0x111 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_abbrev 0x00000446 0x274 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_abbrev 0x000006ba 0x13a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_abbrev 0x000007f4 0x1b0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_abbrev 0x000009a4 0xe6 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_aranges 0x00000000 0x2d8 - .debug_aranges - 0x00000000 0x80 ./src/cr_startup_lpc175x_6x.o - .debug_aranges - 0x00000080 0x18 ./src/crp.o - .debug_aranges - 0x00000098 0x28 ./src/labyrinth_slave.o - .debug_aranges - 0x000000c0 0x30 ./src/tools.o - .debug_aranges - 0x000000f0 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_aranges - 0x00000128 0x110 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_aranges - 0x00000238 0x30 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_aranges - 0x00000268 0x48 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_aranges - 0x000002b0 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_ranges 0x00000000 0x270 - .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc175x_6x.o - .debug_ranges 0x00000070 0x18 ./src/labyrinth_slave.o - .debug_ranges 0x00000088 0x20 ./src/tools.o - .debug_ranges 0x000000a8 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_ranges 0x000000d0 0x130 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_ranges 0x00000200 0x20 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_ranges 0x00000220 0x38 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_ranges 0x00000258 0x18 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_macro 0x00000000 0x3819 - .debug_macro 0x00000000 0x1d ./src/cr_startup_lpc175x_6x.o - .debug_macro 0x0000001d 0x892 ./src/cr_startup_lpc175x_6x.o - .debug_macro 0x000008af 0x1a ./src/crp.o - .debug_macro 0x000008c9 0x34 ./src/crp.o - .debug_macro 0x000008fd 0x118 ./src/labyrinth_slave.o - .debug_macro 0x00000a15 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00000a31 0x2e ./src/labyrinth_slave.o - .debug_macro 0x00000a5f 0x10 ./src/labyrinth_slave.o - .debug_macro 0x00000a6f 0x12d ./src/labyrinth_slave.o - .debug_macro 0x00000b9c 0x5b2 ./src/labyrinth_slave.o - .debug_macro 0x0000114e 0x18 ./src/labyrinth_slave.o - .debug_macro 0x00001166 0x7af ./src/labyrinth_slave.o - .debug_macro 0x00001915 0x2c7 ./src/labyrinth_slave.o - .debug_macro 0x00001bdc 0x22 ./src/labyrinth_slave.o - .debug_macro 0x00001bfe 0xa0 ./src/labyrinth_slave.o - .debug_macro 0x00001c9e 0x82 ./src/labyrinth_slave.o - .debug_macro 0x00001d20 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00001d3c 0x28 ./src/labyrinth_slave.o - .debug_macro 0x00001d64 0x1c ./src/labyrinth_slave.o - .debug_macro 0x00001d80 0xc2 ./src/labyrinth_slave.o - .debug_macro 0x00001e42 0xd6 ./src/labyrinth_slave.o - .debug_macro 0x00001f18 0x22 ./src/labyrinth_slave.o - .debug_macro 0x00001f3a 0xc0 ./src/tools.o - .debug_macro 0x00001ffa 0xc4 ./src/tools.o - .debug_macro 0x000020be 0x1c ./src/tools.o - .debug_macro 0x000020da 0xaf C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002189 0x898 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002a21 0x28 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002a49 0x58 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_macro 0x00002aa1 0x108 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00002ba9 0x9a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00002c43 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00002c65 0xc4 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_macro 0x00002d29 0x90 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00002db9 0x22 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_macro 0x00002ddb 0x8d C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_macro 0x00002e68 0x12b C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .debug_macro 0x00002f93 0x886 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_line 0x00000000 0x18fd - .debug_line 0x00000000 0xd5 ./src/cr_startup_lpc175x_6x.o - .debug_line 0x000000d5 0x78 ./src/crp.o - .debug_line 0x0000014d 0x28f ./src/labyrinth_slave.o - .debug_line 0x000003dc 0x327 ./src/tools.o - .debug_line 0x00000703 0x289 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_line 0x0000098c 0x7fc C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_line 0x00001188 0x24a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_line 0x000013d2 0x358 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_line 0x0000172a 0x1d3 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - -.debug_str 0x00000000 0xa65e - .debug_str 0x00000000 0x26af ./src/cr_startup_lpc175x_6x.o - 0x26c2 (size before relaxing) - .debug_str 0x000026af 0xe9 ./src/crp.o - 0x25da (size before relaxing) - .debug_str 0x00002798 0x68c9 ./src/labyrinth_slave.o - 0x8df5 (size before relaxing) - .debug_str 0x00009061 0x5a7 ./src/tools.o - 0x88a4 (size before relaxing) - .debug_str 0x00009608 0x300 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - 0x83a7 (size before relaxing) - .debug_str 0x00009908 0x552 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - 0x8ffe (size before relaxing) - .debug_str 0x00009e5a 0x2fa C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - 0x80da (size before relaxing) - .debug_str 0x0000a154 0x10a C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - 0x8278 (size before relaxing) - .debug_str 0x0000a25e 0x400 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - 0x8146 (size before relaxing) - -.comment 0x00000000 0xdc - .comment 0x00000000 0x6e ./src/cr_startup_lpc175x_6x.o - 0x6f (size before relaxing) - .comment 0x0000006e 0x6f ./src/crp.o - .comment 0x0000006e 0x6f ./src/labyrinth_slave.o - .comment 0x0000006e 0x6f ./src/tools.o - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .comment 0x0000006e 0x6f C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .comment 0x0000006e 0x6e c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - 0x6f (size before relaxing) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .comment 0x000000dc 0x6f c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - -.ARM.attributes - 0x00000000 0x31 - .ARM.attributes - 0x00000000 0x33 ./src/cr_startup_lpc175x_6x.o - .ARM.attributes - 0x00000033 0x33 ./src/crp.o - .ARM.attributes - 0x00000066 0x33 ./src/labyrinth_slave.o - .ARM.attributes - 0x00000099 0x33 ./src/tools.o - .ARM.attributes - 0x000000cc 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .ARM.attributes - 0x000000ff 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .ARM.attributes - 0x00000132 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .ARM.attributes - 0x00000165 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .ARM.attributes - 0x00000198 0x33 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) - .ARM.attributes - 0x000001cb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(_cr__main.o) - .ARM.attributes - 0x000001fe 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(alloc.o) - .ARM.attributes - 0x00000231 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fclose.o) - .ARM.attributes - 0x00000264 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fflush.o) - .ARM.attributes - 0x00000297 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fpprintf.o) - .ARM.attributes - 0x000002ca 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(fseek.o) - .ARM.attributes - 0x000002fd 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(ftell.o) - .ARM.attributes - 0x00000330 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(initio.o) - .ARM.attributes - 0x00000363 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(printf.o) - .ARM.attributes - 0x00000396 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(remove.o) - .ARM.attributes - 0x000003c9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(setvbuf.o) - .ARM.attributes - 0x000003fc 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdio.o) - .ARM.attributes - 0x0000042f 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(stdlib.o) - .ARM.attributes - 0x00000462 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(strlen.o) - .ARM.attributes - 0x00000495 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) - .ARM.attributes - 0x000004c8 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__init_alloc.o) - .ARM.attributes - 0x000004fb 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_sbrk.o) - .ARM.attributes - 0x0000052e 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_deferredlazyseek.o) - .ARM.attributes - 0x00000561 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_do_fflush.o) - .ARM.attributes - 0x00000594 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fdopen.o) - .ARM.attributes - 0x000005c7 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_fflush.o) - .ARM.attributes - 0x000005fa 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_frexpl.o) - .ARM.attributes - 0x0000062d 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_hugeval.o) - .ARM.attributes - 0x00000660 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_ldexpl.o) - .ARM.attributes - 0x00000693 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_writebuf.o) - .ARM.attributes - 0x000006c6 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(errno.o) - .ARM.attributes - 0x000006f9 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(_cr_check_heap.o) - .ARM.attributes - 0x0000072c 0x33 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(double.o) - .ARM.attributes - 0x0000075f 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m\libcr_eabihelpers.a(memcpy.o) - .ARM.attributes - 0x00000780 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_appexit.o) - .ARM.attributes - 0x000007a1 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_close.o) - .ARM.attributes - 0x000007c2 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_flen.o) - .ARM.attributes - 0x000007e3 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_istty.o) - .ARM.attributes - 0x00000804 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_remove.o) - .ARM.attributes - 0x00000825 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_seek.o) - .ARM.attributes - 0x00000846 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_tmpnam.o) - .ARM.attributes - 0x00000867 0x21 c:/nxp/lpcxpresso_8.2.2_650/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/lib/armv7-m\libcr_semihost.a(__sys_write.o) - -.debug_frame 0x00000000 0x93c - .debug_frame 0x00000000 0x170 ./src/cr_startup_lpc175x_6x.o - .debug_frame 0x00000170 0x54 ./src/labyrinth_slave.o - .debug_frame 0x000001c4 0x90 ./src/tools.o - .debug_frame 0x00000254 0xa0 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(accelerometer.o) - .debug_frame 0x000002f4 0x48c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(lcd.o) - .debug_frame 0x00000780 0x88 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(ssp.o) - .debug_frame 0x00000808 0xf8 C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug\libMyLab_lib.a(I2C.o) - .debug_frame 0x00000900 0x3c C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_ref.axf b/TP1_labyrinth_slave_etu/Debug/TP1_labyrinth_slave_ref.axf deleted file mode 100644 index 91185f24e048658ea9856d999c6ebdc0aa8746ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246740 zcmeFZdwkTz)jvL;%U*NY%>~#bOR~vw353gX(`ZmO7nWSK0g<Xe>xO`C5Mc$>KvY&x zi?<exZ6%==#kN$f0!k|a1~0u@`y?QJ5afB*OA91gKY<_%3)$cM%x5<V=<|I0d%eED ze}1po_?gc+GiT16dC$z5Gqa0preEiiB#9+HGAm@n-GyW_-cRgT7?YV{GIKE%WrJ8c zFK6+T>TQ^-KL%ou&$aDGy5HoYvMnI#F%B$;Qhe;5`Dh1a^b9PYEXkB-r-uZGL3yH_ zc<~Vk2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO z0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0j zARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka z1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%( zKp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m z1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5 zKtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7; z2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;Yn zfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB z2nYlO0s?{m%Ls&+{Vs{IlX$xEoWmo@j9Ktp{z*e#Ry;o+?@@Rr;5li~-$eg^{hYD< z&uw_-bBpbh(T5FlLGL%Ywtxn29|jw@ylrxkMCkQLx3gCx{@wo7{yl+cT{N(#j=7ua ztl?-w_R#ZnZ#JY2-CdU+$o4lisFRxNRyQ;STFSJ8tZmqp`+T9j!5OSA^!mfl(dfU* z-xP@YnR}1l6pjW^+s_KJp;eu<$Ny%a1ocj%US@y2T@RsNR!!8O5tq*i?D6Y0a{^6$ zREhuUz^cF-f!Nt?v1lN*y1DH5!IZul1Ldv?G(zfkkTO8(%Y%|O=c1(j{$lU(zoM_7 z<LTjjX0P@hC%gaeykq}A`Gj6yhw)H+(Ywr5KRsvi%(I+dC2M)I<YMRLQ>78Ni?t;u zM(-0A?w7ZGi@a;nWi{Fu>TGy@ZG5hz)Z_$Gs&l05il#uO&-VU9Cv41&JZX}#I>T=O zl~E)gQ)*}qu{JZ>-GJFf^OxrGhFw41uD)8^vt>EUUr{M($1eP-faNa-b@&42??Ov> zX?4?*94Vv1HYrw+9c)@6O=?=$v_vgBb&P47W6ULKc@d@!Kd<;$QF8mj8mXDNS##~z zu@$Vqnos4c&Pndq!nb})$&z!X?o4(|4QqC}Z>cWKXWIB^@xq%fk<8>eZaSCgV%n#X zS(QwSqP>HWNWG_xY5x(CebGBw%I<3~Uc$6%&rA6v=Yf_LVW%s0c2>*>1m-#`s;vGJ zpp;QDb*PRJm5z>G8^>oV$LGyJQ(#intjHu!OPQ(TJh<^yM_E$EJgm84?M;C()i<Dw z6{Ub4MKo&)jI2J&GAeEf?71)7hn{P1#oh><<6OyOO#5A|DUi!0Ox<SrsS^rYhv%o~ zGCZ$!$EM{&kKCNw*Wd68sbEXK6`1{ZBzr(ED|n0Nei)Hp_3>U$8@=D}O$8b&BPli6 z0UP?!Quc7iUB?~1>u8Mku{IiCkCEBe&tPmjo<#~{Uihm&fyT#Pj5%-^^a(sPANuFv zzdLW)tF@ZfEn#M<XkVJ7V8*ewgg=|gb+T7wlsSBQF3;Pg&t1LlTtD6gO#$DjZD~?e zIW3hm*HMX5Ft?6+`Fc#BwV{36cRjLQhJR%4sGsK79zVlahkKjg!<23|TPiuqRtGXF zvIEh;QMM|OR6&?nj$K-s6L`i+esy3C2WkxD=k{r!k-uESyuhY!Xt?Dv4Z02Y1>D>Q zV+UD8w!tE&iq`urO|(n0^Le}X2Z}J`HkawOD1Tl+o}|~(xxE4QG}F%XMuB<MpU{>Q zU`1_TuX;7X&*QtmT<3XzqV0@s+4gw{YqMj9Y~L5+`-bAP!c%4V_S}_(abiVs$1*Kb zNe)L>m8{sas%eF>#t|@eC(E+?>U>G7Ij8s>KB^zu=cVzD>$u7vy~{qJ{-AIQ>YX1d z@me0#B0E`;xx<8f<OWDvOFTcJk+tbMX@0=__(xSUzWT>um5;2+_K)amVURK{9Cc>- zY?vYYVvYW2V-+lKBKzByX@e9`nC0i8?8%tyYXa^~ewLpP{^36UrhFIp`}_FM^M`@I zyN`F}4+no|AJ6hffM3+dH(^ebHx2CzWgD4p_aodVW2GzPZCgSV0c3=m8jkKPoOF06 zd4Q&djEXE@>}-9kxUQsu6-n(S4Hb}pSFLMmFch6QR<b&KXVdB&IcH}^dCpFUPtpF; ztN3cQCrgQ*1v(o&n(N;Kx#%TwzeU+Pjg=>4OX9NG{*or>Y#OL@%K)7t<8m!nSq`5= z@6-R=J&dpET5U`D!AN*oiN7SEX!{jbWNOc=fqw{6$^L?OBPYfaW#bgd0I8zFcD<fs zLX$tU8l&aU<l}5>PlsnquWAawBQrbRx-WkBv{jKNW%)MDXu|w&LbN0oNgXs_pr@=U z@J_@rA>lK|V2&2zslelh@6+e29;cP~ldAVLWFWGdXScv}l>}A?b_XH>ro9rO-QoTi z?VkN}lXO(#36Y+7td``92Az;v4L>0rWA3rxXd`BMI}3Z-hScOVuG1vt=uTF2wnOh@ z;e;scl}gGrZ<)P{R%%kkT&xUz9qavocSAp-=ttoMBkfB;V|6q@JCDPci2BG5>f1nD zu8Q}+yeG7xc>(Dt2^?HN-qI4L*5}=!z#1BpM0>BD*)qQSAPZx!7#L6TzES+b?O4^P zuUsma`)}%__86q;opVPk=5fMu#EZM0z&c5c0pi>Rzo~w?=3wMKPq`K<e+TauYhJ8w z@o%f%R&zAq)@(|-W>5}N@5*a?YRj@Y)rdL7@)u%-$+Uh-X#KFFa~x+GtMBT-9*l|M z81<n9BRsoKB^1hNv}a?7*-~D9%C<b4Q|SdqxX#K`Q|0Uh->!3NK{oGAZI5R;wOrf7 zN*QK}H%6;GIZX6|7*JafU99x5a>6;Wu3tM7%KI0`S%y?CN!2N!szL3k!wEs%-BA0r zwj#-!QGO>PZn@)*nmr4W=<G0{<aU%u9k-!m&tg`T-Co<{okgw2dUXqEx6Dsipt)$I zJHBaw-QBc6a+g5IZ0J)uB=9PD(vcc&T6`2^6+3$oJ|Vi`{Nj?u8Q#nEO#6cO1ijQ$ zv@w`gZyDh^FHny8HJgy+{J{vDfVoru4&GEgsG!BK&={1bgQEH}>Z^S9vw{|Vd@#bH z<t=<vYI`1Bp1qLdYkNwU&*hZ&l<|g^g=Fh+jQZ7q8|-Pm)eUk~I<+cbt#DP9MkcxR zeCg^kjg{r__-(GgsUfRcp2YIYB9rV*4TC{b)P@;~65aPoMSuT@+Ok!@8!_h-l>#c6 zQxfKyol^{yBcIwY472?<FWWDB4bq^Q8|E{Yw%^3a#{}^-HM}{%wsWv;WZbslJQ~zn zE*M}_!irD06**|z$y>|@<?6FySf3SzoGPGIP(aqM2lYAku855=L%FBz9|uiQ;^V;c za`;$LwC2(MJ#5~<{Th4KS~IUf!AfLB)^_+&tU*PyW2DY?s5P}(sO(5xe~jnaZ*j4Z z*-K}@0re1Le6wE5x7CZs57E0~XOG1w=0L2WNcj#Q(`*;?NF{_=HW6o#+;1+Ei$=dG zmxyU%XLoXGieyN$%r$@7S3}p^2%nr|jjm`4>{;<<Q?w}!F;494M~FQ2NQch2`q`Yk zsT|h*XH%fIXZ3P9s+@|#)ASs^#E0%;uhM$l8k>kT97{v`vsfe2BeDNL`cs^oVrN6K zbx7}zd62G-eTnq(*g~W$W8@v~ilrl68ha4w9kCNg?~6T*bWw~nFNm!|dTZ=`q`}x# zNN<UaLHb>;d3J0v=$SF{H`m9`BK>~Mg>*)&6Y0%drj)1G#@<FwEw`{Z_IuD(yza!< zHK51G{)p5Y+mCcq><Xk;$IM9Gv8$0zj?F<jG`0ijIIe9-Y$)i=*l&>zk6DqX#-2x- z6dQ@u%w-I*-+>++Ga-%jo<eHpI?we|gk|NuJKY-wt;Q&Z`?5D1X=kqk>G59D`FStJ zeV_Cik^Wcjbfiane}MFGFQI*i%N*z>{r}NR2>g}Pf9^Ga{zESz|8DOmNI&HCzTV-W z-|Qs|f5&BB@3n*8(Q85aN-y>FrCu7lZN1kc{RNkKp4;>D-W23)?kz^TiA(;ZmuznC zr4fID*ZQP)6zFHUZAW`Cm-u{UuclR}A##9+oRs0WRnrNM_P-2&a&@wv@6PaBsx4TJ zka5qhGt|I0PQ>cVH{;xM?Rn}K*M>Dn>oBxyJ<dnF{Y`%O?iGmWSL|u}swnAjQvmz? z8q<OEO?#SJ%9O)&%55o2`siHKn@xzAn=^cG28QCqfAPHJlC`IzduT1(y(h5eZdw&h zNK5V>jUHUX(HhYkZKBmtz`4BMJ)FzwErP_D-st^Qmf5?9zwNzE{GHre!r$gznxR>+ zT8}bWn_7vxGwuT#{oYg4GQPs?1C7rn?5a_JYM5@p3}L#B8r{1GQPLhnYhM+8{n3C3 zW)1eEzID1`SN}a+30C#IvORS-g_{tc(K_AJu)BfIm<O{dmQIZ*zGSTQe4ng6iu;QM z-G)6>k0ypAQaZAe;`f8uhj+diK(tul^d<5#Dn5$mS)n6#c3P~dVP09Z&JZq!y$3Ev zv9m<$&NnnQw3MAWmIkjeP{*Zp^J7%!jf;CwXAf=*X@s^O({BgqEKg(GA2ZQON;*Oa z(TRtsCg7q|dl1L!REeK%FenC!;x>}*6!$bV#cvP|$Myu8>Pm1zY-%V${CRliZpa?l zSpq9CN8QmnV|dSE8q1~eeyqmX^kB9$>8ik+fyc6?iQMm@XI&q&HW%MRbnNK{w1m&V zraPn}OGgQ!;HG=7s+reVa!+whYh(0oOZZBjH-+a-=6S4b4{TV4m<@P8kWq1Tr&RLs z&Z{4wvzt^>06RAHo^OiYe=xgs=jsOzm=ElHYUfoCJi1eg%BP;%30qFL?!>+7I?R`K zW5d+4+R^m5v-;rtJ@+c%rpL26g?`;TDE#J{=$d!CO-k8$<+L6VtL-I-^J8Zt7nE?x z9YmeJ5M6`OyEnSVRP@h}njXjQylxNDJ?q|lyy=0X=A%2ad?gPkQR#F`*&mPgkCWp& zxD&3TIsF9IVj{+!P*bwN)LpF5z3-|!#$v5?MaERh+9{lWX=Lcs3X9uK;gLWldao&r zlP=y$*v;RpEgC38wAxH}0&CtxyrZ0cw_8)97`d`jsmQlnl7GaOQ8CX>cgRf(GQ%Z{ z=Q^)m;Ao7lS-qH#TA;(x6p)%r?qJO&7)`9@Skq$kaKY-udoZH^JQ`ioy7SG31g;KW zAs^rCaNeN4Q6Cd`MTvbjt2&E(7EYfT{=wCQYvzGABNoi4&fv5QH2FIo<@c}*it<yc zQ^3C*j}c#<V6ED-DqD`Ol1efvlKiF`Ye6=Ao{Si6z<nv=EgpCAm?LptPAkENQ%o|C zRVb=F*KWaiajtW<Kd13=phV}Z^Zf3->yo>3J$Cs4Ut3AO)&A&m$QBi~%SF}gtcbNQ z4bQ4+s+(0kGjTpa6!o6xJJr{tS8gr1Vz$4gx|;WJ3+NfuKFDpG;O_C_9J6ggd371* z;lDXw8TLZkHPzSX+IpCqv|U|&HEHM}ZC6xZfwGq;xN&-Z2k(j16FHCbBIiejCqTp4 z>M^<ojiT%KJfo{e0eyE*P|5I*tfpI%@*WpxcXffTt;Y+*U!IUxovUl>32~l<dyh9Y zEJ5sjesxnrc0Hv>;8W(B9ng_o(G=JjJ$<@qZPR1(%&j}KeUPbJ{a8~&PQ!uhriQsV zad~mlqCH9<*U%)g##&=8$X?#m;P5$V-tg}>*nUYLH$Hv_FJo4(2lI)sB*c#TIMV1v z{pPT><_PyS7CP^I#N0;s@0|Eufz~eJj-vl8$?I$9<q+-$$v>|4XZvs_U!LJBc`zC< zqi4~;FxVKuEPo$<eH~6HbRL)6WA3KAr-q|}d4Z!l-I__kK6k$vYq05lJ8or~?)Qby zuSQ&lxl;%&m|<%tgh|V`Z)nN7Op62c3yV@a&OcW2XiHi80o{(oY|O^~(c-5Y$T8eH zJFIKEpJs3LG0f7nR7;xFQue2#110)zW@s<?W?y07%4i@N8d1AQ`e;}I3%d%U_`Zp3 z{?27KM_1Mjuo*S)qn=0aqn=0an;VX<rjy)JjQBtVn(C%;1V(;C+trt9({aCVCUoA6 z^P#sWuYDB8kXGaQz*B((JF|l&kIv1deNn;QqyhmOG^nsX=`uMzmu@KZa~kS7sot9( z>pkwrFnV9&?rKVn3umD%`Pse$ku7NxYpRUr4=Kn|^Xc@qE&tuf%lTugB^OS2(u?38 za?L^h6Lvhv3$X-!FtXm2u7#H6SD$NFuu?;w7m+^UnZwfqk@fbRnl#P3=3KiQ^<Qwk zm_Mh0w7v{YFXO!hnsgdI!DX*X?+Gm<O>alGK-1fim!XN$j>tBTxjLhVG?{B?1(9F) z(}WCK(dFbjGW_)YAo;y|W?=vIgF@B3ixs5#>^LQz@7;I8?Cm|9y+_ve?Tzg6)J_d- z+3|blZ_I3jq1&2j=vI;qVRzuQ?$E87?IV0I1lX9f9myU^`>40vY42dJ$iB3|4wMe+ zn1wrYWm3JrIk46Le4swSMt65uabjn)LnjK^L;lp=#eNpv?oaka_Wi8P^l|-k!^bY% zO|seENODPJ--_vJA8~%xB0q9+Sl7eSbGQ!(-RO-B_kJ%&x#oKRWB$lKHu}wuEnVxF zr2Vv4^6bM60Gs^~T2Q-_S!CZZd}pz32WpYlsWT($nB_Y%xc%0S*@2l6vy-g!M$A*2 z1Kx-_^~>YI8TMVVvk%5pU*YZ{1xl5yHC>Rk+6yk99kJ7eTNoRAQY-y^VEy)An^d1~ zabf#tQ`U#=k<5^(foUTnUPOS`UMMoihl;WHza9Hc%5MyVx_?n?>Tnh0FAkve`U?S{ zq+NH>f%w$Fn9fLrpj?oyh~2gT-*N$^n8&<*-wEx(;4anY*s<?K&?{+{HiOUj9Z!~| zsj<SztkBU0xhbzB9`ETW^ac0LSDD?ut89L`WAbR}W9G8&n=;zik>yK^NaH=DqwQ>T zPkXk{Gb}wK4ZUiV)R7rHcU+o~7L*%3qmQ>|XS31D(Ts>RswEgXE}^z(*Ascx;m?&N zw{M7^IsI-|dHTCuYh{mzb(JwGB3T?h?YL)OESCDZXP3dZVSC0)vm<H^^~Jc&(2O&9 zuhng7UZ$~fbF;mMJuNpIT4C`-soA)Va*aP`+LT^%tLl?VaL?JS95uGm4W$w`{+hn) z>%Iugfr7`YY^OP!=Hl4bX8LA)tu6mf;Ah*7&3`y;E2mq%d8#ciFS)tQu;Ex_^LEQm zO+OilTinlre>k0?l;9S7sWPaep`bp<#?@-KDFwl;LFvdZYwTfT>oX?fhrg)K&{W$C zHRiSqpE10(Mh&}zbp>04Kd)I39MPh<GW<-NwAaw;#!Xmh5!0?(%L<sg*f#;AIsSa{ z4r4bfx3uK?B=-=XwV8#j8~V#F=UJgwlh=ArjU8lrk?Kg=uX=4QADpyHbIN~l=B3%r z5}f_-ZjPQg!(1<BKU^hg@Aa~=ADqmVj7RR>dhjH3FD?7v<Y4SwYj9`6WTFSRkMnh# zEFT^_IatEumNa|p9y>~;)5rC^Y~&eZ(m2x7)o~219Xm;R55+z>nGQN#TEKP7+TYHt z-$6Vp2-Ha07rlCUHh6pkt1XF1*N~2XKySKqQ@oD(e4@@g$jpuFq&oP<72h&QQ~K-3 z+SGG*lx1`dSBl$;d~1D4&9;`AzE`qkZN<5XK;!yeLW_EwE`4w^(>?yk)w~tzCzX6~ z(&0v*9;JSv|K>8^v6GJ5Yf$se*hF6m#^8|%WKdU^VFgoQ!}?wsyEk)90G_{$u>ueB zjIh%oC5OlM;YfJmQK${3JsnDFH8-1EkC?6_WYMYvtvYVE`?Ao=>`0lf2JhMkwJK>h z0VxNeA0L5Q@SOe@OBcmTd=pW3Ld4ukwdT=SJ^H8PEt}}`=V^>Siz8log&rDL>cj6t zGVlz>lZl5h4KkTt#)f$@4&1U2P9_sBXx-tKH8pbVWajO<W!By@pV4OnPRSDCBy%i0 zzN<iMz#ubjbvoul&&BwBfYs@J_-1l^t=wu!`+JP6&XlAg$UeHJ=dM>t7IO;ieiX6q zwsyy^&ZPMPd+d^={R>FYe9MgU|BUn5alWkg7x57$DXOspR_L^>4M$Jxw}*gMJ-(|; z^67TJ*ZT~wBWbMzWNi_nkBu`PF`ijD!g$7hkGVTm{Ppn-)juiwQH}A~FOmC8o-3Kp z9Dk#m*^EcbXI2)P&)6Hu<}=5inQlC`4LRF*j%5A%_}ZG5>1iKJlb(s5KJ^nstZORq z%Y&%Ao<)`0q^NbY6g3xrr(C*bX!ssTW*@T_v_wyJFVidvPH-=-tdyp(sP!@AMU<#{ zE7dYw@ssGOuOIWNVK!pBZ>MjWrW*2no{>_-*fbMfzvd$LD#;7V2P$3ifGWMn-0r)r zt%fPbSC)4^Y(Ug9yvrmV`d*C{KI`Z3S@XHin#X+>3(u_?(K1|<3>kja{p0BAGltfq z5yt9@?Cr*nrx)GXKBMUR_R^xN4s+PhdK)~L;lbOBD%uwnc{^?mn>Mk6x8Wx(o2=!g zO>dvJ&Kb1h7pGzq)bI_RiZs2-+{W_P?>0Vrg(>wzHa5vuT50%MX;pHYr(i-s-B@#* z<fFao!UcPn)-ZF+8x`NxRV9$RT&DBF*y?dLrcIMN^OZvQ+7T@o{zpE!-EC-w=PxYp zVfDu5kJ}{o`w`}W{dSixZPbTt(uDN<*x9EpAje~<_*vQhQ$G($B_v~Ll}ilGl%G~) zI5w&!tt7*r#%mj?|Ne{~cDu1#HmV&HxQ)RJhKl+|caUnhcYD7!E5?=#Z^mom-1R|M z_|?-aL@SNf-?TCt`}rdh^RMcSc|l*k9;FMhm;>w5h385<g?OY9qgr!t{(h(JTKCpD z(iQjaFt+BIl0JMsYj6(s+-p2V=i9F>inNa_GPfDKV^{nvlIdY%x6XN^?ane-sTjK@ zc~{%m{G$9^U#@T0nbm8ayU}`-?uCCGJ#|X%_DG-HxT@;=PTW(>sUK@Swva~pw9@U7 zpP#c#tCw*eN2^wzdvvFsAK$eV&y>j(hOTm@KDgcaL3s4g*w^2Gb+NNGn@}{iu(5=Q z479F0^80RPp6lE&-Ez$1b_WR=DjU@zkI3*Bhl?tnb*7JdyG_SBW5lhyb!6X-dUmYo zG?>u`qtsE~m=b=YTe7KLMkTo;I|q@)vA)RSiiF;@aDT}W#2ktI!j`G-twF5hN%9pL zejU@{AKwx-bSY*tMl*ffHOHpy&fpQ#52E%R(v-{*ESxc7dG3$P+`h~sXlc9>k;Y`_ z{J1P~q&{n0!Cc;lp%tTA)2<on|HW(i_;|vQ%!8yeE9bGY$j4i=rWR1W-{cgwjw_I- z4D~-h2Yq*~a30t(YLk40)qiclr#B7?PmA}tinnd<R*Y`nrELzc80Wqt$ilfkngb3~ z#)l&+JUN3enFH1isn{IWXQHt+%Orgm%*8jozM&NN{m6m&72K8V8w5Z8!|fDPsoQWz ze%|Uf@rcUUoLckb2@jK-DWY12XiD9t{)A~yo-@YdDI?-3H6Bl?Jf5mL=kld)5ALHl zN<&<k;>+_5_Wh_&yJ3L#lp6JEHcW0_oa^>Id160Pw=wNj=r$l$+gfI9mZ95;NKO5< z3ww(5T%pglT|<0Kx^1to*kz<x@D3?|q7ShyV!=Pg)ZC0?i=2h<6bH|-4S^j}>qOru zaBs#;H3dGl>F^zrhWqqqVrNI5cll(X5cH}%?xVPN?8!*^9|EN{s&A4v#kT>!54*P= zG53Z_wBFon^0C5Y9W>*N?Qh_BDQ2Y1c3a1&unVV}hKQkJSePUmd$)J9)DI)c`_&`Y zX(8zozclj3uz&HoK(=pdLzd4SXf7Mm_GibV4tIl7bJ?EjQWT}V47qQ>TdkP>a@&`V zyDQk(tBwxtVYe<=thT!Y8v~olirbp~&ow+*W<Tl*GzUJ6*u(3Pr}%Dm{H=?zhs)HD z+XGS;OI|eHc$B%f`s@8Z&1IZ}lj@z>J4_XAh1pyDr||w8+Uv@`yP~qK-ap(w0x~0d zlo2B|ukoKaE6F2^efv&C)+xB^csI~uGIZE$@^Rj!(?W0teBF2j@u{^vV@LVon*(ZC z4y<cnxMg-^OT{SXxxpFzxfD~6!TBh-OaINDt1@<0IY-~lJa8`ey8W1Q&g)(N!V$R3 zjJN{0H5g`$DmSQ6MUp0&i)Jl2+mTs4sEQ)>|BBT1gl6Me!18VQ9odOqdv#isgp!T{ zB}phb+M8T$t&&mlUW7)tzn&4Le|?L_`er<p@TU*qU5)q4co*+Vxt<NH&pH@+$kQsT zht%#yR#*``d)2wZ$$uJis>1-=C!M3zb8g>>Vy^<KXg6ykeWZtU;M`Vg@a@?C!AYz8 zSmcWkE4aE<eag|ObW2uN$g~F@8D5CrehkYCtF6aQT5r$t9T_s;nc>?}wx=|7YSAMv z;kOp7=q115Xc6uoM*AH>rp<k86lNHHyQs~1%kt6K@u?jZnxxM5Wk;l@qVZ=slESX> z$?fj(Dabdgr;dBZn>#9c*vc=DS7@@@iBwgOA0ItlZf7H`1!>{K*tN{vs?5giZM&!J zA?Q-NW$Uet8+_)l95r4+dVkgJQ9jyf8TIu?BRc=NV%+%D=Aj)e5f&T`-Kf8zB_hFl zs%9%{TEkZKu2y3fYeAx(_muL;ZmbXaXoY51>9ol#OJF(aSTbH|qxuz^U*+{t+tF5` zxzy{%OYL`!SGg3GI>UkSHqHeSb$UW82i6Ix$>GK0W%S&uD&f_rzjD07YmiO1k9U5& zXng3@&b2efGws#2mXAyE{>9qqNVlzJNZUdq!*zJKu2nw1nQ|Y@3)hby(!OxKB^(6* z^@HY*m*Tx6#7;*aYyefeHZ^=V-j216NcTLrV!W~Ay)dv)OwB+hD1|?WI76wenVMu& zu)mm_r*@>aWcIK%&v(nJ+Tv*Qxb42$&QI^M`Xt{6CsWhSZ7w(PF%w2=%j;ccsjR}h z(S_4NDk4|wUVE3Bm3CRAo2TE^l`Pwiycm$KW}{#9t4Bu%W;sXsGlGV&1Aflj%(O>w z)^&7C=BjRHIec7wN^MQdFe@T;tF*T4@zRtdiCLz`XIUP+>?mI``LSL$j%h<5F7TOK z*$CKQ%tn4Tq*ilT{s6n!sJx?O(T1#Y1d7}qDgDT=1JYG&)UPpTM+GXKh5iRIKTOc) za(!@8#ffKH?=ifkD`s>v)6wJ5TePk1bB7zP9p6h4GU3Iv&-W6BnVQ$ear7A5)fT(2 zW5~NFnZ&e1dw*q2`S70x_0Z2Ec2_o5#b5UhGpdL75r^8p->bG{`<eDO*J5hkQH`;{ zFJI}jjo-ZinWryiYId6m{gT@&r*CVk^`*A_JqM#Co1eO-L)}CpRNMK<eP&-Bjf#|s z*wa;z7?+i~f9g`v{{r;?TSi4n>q9|}qhJl1!gh>GZnN_#rtQ0!+v;o?FfuJzSNBY; zP@no`j@m-4P+t=>f@Z>u>F#6S+LoN&Hv^O|vz$OZz0rz!Fv@3dbfUKpUv&1(gO845 zj~>6R?P!*Yb0@wf(8fKa;+BM&X>MfT_mtG$%3Rk-y^k(F#_5=K<%wDME&a2hfBG1k zF~-+lJa*FTPW0~xwK#5DTWi*t&-_NqA#=CMT&S54S(#~-oMd}V<b_-`;>|u2;tQ6X zZ<G(^oqs&4gg-SXhmy2d66JcUGBvZ!TWM}H`#v*zyE{X};Mx8ezU|-C>gv<_$pEcI zTx${6`YE)&&9(09v&q!lOqe7Ot17766|Vm`+Zxf=R(L>LWWTK{z4H6vx_?tofzig1 zz*(p5I_yn!MxTx6yLgu1xdqQ>m$YD)>e>kxmjAtPN5*X!(6@s_Tt?|o`c66gi9tGa z!_I?4*yt7AOfnof(9M$SyULSyR3?R+eb1XV`-~sHTJ>sWCT^~11X%btpzTsoytR?x z&y4fox$SDLmSUmx)i=_(H#8#0B~|o<u-ljw2TpjVX4Qw$CvTVZ!O0QyPB!Drx~WRW z!@^Hjs?Wl|xSz_Y@A~J84=|(L8z}M^wqf{&4<hR~FjuWMM=5+|-5kl|DvWew_N-l| zwn?sn4Y!Za<eq+Sh&=u7kdb@(U7_jYz1lmW?cB$|5?VMut^MZl$?)uSW^EX6ZC{4+ zogtP#6h2*PZv^*JNX8l3IugH^a?R^ZRzmPoTSG~j&G@756~6L=IklZRgMFRJ_tbVe zhrH(7>ytcP$4PEI<bDJ>6Z3cqUs(^iqs-fRU9h(EW8*sC>pp3MF1Ov+)P8H{e5tmx zgw=MoD&?I|tZ+2fc5YU(n(3A$-BDATg`4sWOL?cX!rq)@NkhK9Ki`V{`t;@`YX<Vu z`}32LU!K{VlspLenLMBFl(O;f8*-479hW?4F7GT|k=*>gIi)$dHK*Iiwnj~lrnFv% z8DNSko3>-!*J0f&y#2vwe+X*RJyo(4a@<mygtH*)3MtQbmCJ=Mow{+IPrBj>-^Sy^ zUs9Tfy(Bjmyd*WdUt-OLFS>mreqHRF`t0@@As>$b%$fLgowGT$ow*B|hrtuQ*G4;J zLGy6XmSY7i^i8T7E@*wN%dAwkkyOF6?q`_x+w-ZdzKUmaRD8>m+Uz|gx!v9?vJrdX z=I-8H+MR~-2&2;X_7MFxFIT!YeEE5LUVQz)Q(+%m(IrX7qte9kZl>(cW}{9Y$q0Yj zPWI(--OJ^|%N;p?>}0O{^W*T{tNz?&GX4SgQMnuy=-jLChbeKL?oF01*;MItZ`c@N z;kOVAo#^=17Q+8T3qkBTF0}A#wBT|dJDv(ergRkh&JFnhEzsVSi52CsP+zHsD|4TN z&E%<b5hIxQ(#ZUu_T$QU8~5@y^qwE3zT9(V#V>Q5t>wF^Jsm$MZs|OhABEYlEz`ZH z|0`7ZQh5H<LUa4Ig|~965>h2$-9{&FWtn@}CR3Mep=e;(#yZ&Myv(+YzFpE7-zCus zGxMFqgJ^*;F60>N*8Ls$IxoZ58pn5dUt7aBb{!erH+Gk5J^^eKnxp4v^!^(<&3mIm zZk@iOD_JphOP1ts#6ymtjJ*y2e&?Jtxz>08w^(6`TT!rSuY>wqu<?ukVg7Uuu;5K@ z!6(OEzE6gDUitui!wzoBpGMfd!{e(0?D?0Y_RR>ZxKYQfxKYRKhg`2T(bOHglIHVa zeh>L_n+okCovE$sUb~w1Gag~C%#9A|k7dkzFWu+AZG>F$5u$i56(e*LT1)NQ>kl8N zoxUwgZ7r!#@x6rl^fAP9>Sp!n**JNx-7QBgSJ8<gcD8%B`pg7=^MKz!;ckFwe~Hk& z-o6udFV1ss1$Vs{_=Ram`_40LjRk3FnL_EB)DAgZx>$1KJDcmjpZiLg@o+)8R44i0 zt$WAMT)}-3p59mt-<d`58*b*NTL(n;7aMmF=Ryp|v>#q%g>~&E{49HQb@E@7ZdN`o z>^;>x>G!9tH`Slco#XP2<#)gQtaW}2r<wNng^=%2AKeh^dWJ;lex7M-F0g`8HB9@# z`Af@9@$zLT&qw*amzAGAuh+j7<yk1d{rs;^^<Hrb-}0sSEQiwKt<FDB{IZ@kD|#Jr z0p0Av%GtRUx53T=UlDePEPhI7ZFHaLu-tjoPe1*1+S$K8#ir~!GVOzsHMc#x<)72& z+#Q0?V=O$ac$fJ)^Y!jP(GID^?Vl5Id!Ctb_Bj512~NnxKtJs*{3;6an+^Q?J?A=; zq1_&#v*@{wP_})a;=}ivInQ-VlZSOmYNi&NcBVZ|i`lI0X+3Ld4V2n4aT}pblEe7j zau|2ps1=J9?@GqMiLmZYs?PSm=NuXsrYY)}3c4}*uXB#whMGd3(_g&LP?H?LV<^V` zP9f~L84ub2Zot0FjT?t|{pE|-Hp~mCzLqjuJJXWSeHK`-7{6PY?Z$6?%kg~XpB>m* z=Wb~ByZxWxo9Ga}v-2X?zAv)t{eaQu?qLN#Hzxc3;+GGZF*6Uuo(p^yxZas^<QYTK zhvhvRCVl2#hSPvMa6|U<{<+Qqe{OJ1xb)Oxa<*3<J=AAtX9f7Zqw>7}Gykk`^(niQ z<=t_H)ml5~d)3~v;oi>zn-BrgJ@pH*e*~sO<Dj14vd{d^4nMxNU4C)qj>QJ^q58${ zI=5ePe^xiW=P9(A60YqD&Fnq<HNVC9G(h=JPs%QL)w%qi;&$1-EI%;3A*a25ackgl z+#LPBOObw$y{l?>{o=*W7Jq^N(}r2O&-st|#|1}*3w(vZ_CkaeeuZzTWBA^?8a+u3 z-oCg1|5oHNUSH<*KW&(2IPX_K)OK16rS^?wR@@rx^B4Gr`?vZ@#}Vi_)}if;?0Y8= z+?9^sW2?Tb_GX;9$`^kx5IZ|DriKl;{VA$2G<+}Tvw#Z-duM-!GuXBCeMtd!O`tNT zcM{HD!F|D9DY#{{`!bQYF;djH9KY4Rx5&_5S5(kpc2}N~Wi_n2<pK%6pp*&*;m)*Z zl(BumC`(6~rpol|j-KOXngU8zzB-;``qY10o#~K_`y*<lpcnPv1zc#U7@nnkv7tc< z><_dCTp0CFVbfY!9xZc3iuc)jLY~3xbfcE#dlJ7yt6$7qKf|0E?#HZ|v<2f^ysyAl zl|v}p1Qh<&{^{{z%%VZ`?<EW9J1?fqjJkF(cM<##%a82)BUUGUgS7Qj@8rjKPxSo} z-*o(^P3d7HW^|S-?}EF5<?g6Iogvu~2}x76<K%h9_~CbEMSu-+4+dho-*V%|m$U}= zL1qQk{S6Z<TFS`#7>^li3b0NLHTb?(3gTA@oyQhH11NsSwjOJpem8I^5b|}&slfWC z1_OQ}fb-sk>6+cJr7o?e$UA$-a}AVt#RXPqKRUdJO&N}|fA}Z*O8E`I6&GB%>HRu; zYeR0uFY5|-d={X2L^J<0KmA$&zMIKRt#R*orfhN>ZsuIU85m*uy$3#Y|AlXNzWZRO zqOx%}w|h^;?tQE5#&-N0s5xxx%=Ud{-)T2?8B+0GkTfTyv?r7{z4Kl70gNk~{#;ak z>G>!>9au8Dto#lm95p=3MrL&-8R_=mA5rP{-{Ie;s2Z!N?0m{>Iq=)8+Rno(UO5w5 zx~4R@ytcE_EQMb=6}#4Z>f&-L`PxDCa8p}5$!BgGfqC?k>4w8o%hj&bS@<`exCN)k zEETs@v5JbGuxbfcv9vRcw_rLjm!%VZfVuLytfgZf%Rr9da8*i`A#KOJlzE1n-OOdE zB2A=&xu8WNj_`=A0UqUq$7NXD$i~cU-wQ0>>oTVLQV1<y=iB+E8k;dIr4)z&kE%b& zwVm%2)=oFK`KHSUQcqpPw`FV0wVhWOQ&06yxV7^ZOKoSdc?#yFE>qiCCL0d^w##h1 zy~|=MgD?AS)|%3M+<^?jjrtcIaZLxMiTFNk3J?lDSOz4^mBUJxH2apUf-oEPLR+~O z!*6)P3Uf^kS28<#s~n!sGV#W5+gxMArJaiW4rb*XL-y`LRfUAhy0VlS?+pe8y0UlE z*@f~Jq}*UA*d5m<^&BS+#&+VF3;GG8b)+3}36tAtKhxGpgyTBGO?!PKFfsU2eTGBW ztEU(Fw7pDw?~P4m%E1j~=EIxt%hEYswVRbL_I}4(<DKKhObcF_GO~x&Jy`auu8bRT zV;Xv*jA=g!;rAI5t--u8G~decTf*-gcAr-@OLhU$_qtu`R<EPHF#BP61gSeVA^p61 zT5X?KHa*wA8?jy3;7jY-pEs+c({|KW)>$f-cTQLEt)<$~zAtxHlA$9jwX{<%$dS$0 zoIO4(S!&C&fltqo)N4AxZ34GeZe{W{X(?*kM>a!uY)WnCe-2aIN-<vZ*y~+~@ULJP zGq%ZH2F%G%Of}&tW3mssrjm_h6)ZI9mcibhm%Qo5@=jHe2}^~A-8%+a`WHFnLuuM- zgQ>lfY?Y26oo<-N<nUDnyDvA)it>9x>9w7v8%;-~DVPTnU&Gokx6${y&pA@U^LOX_ zOyNliStPX^stn=G-AWa{e+f^(&Z6nRjl}o_X?zUofbj|Ljh!9Vwy8`#aHDsDcd7Rd z?~ODjcY9LcgX?}>_WkxPT^VzpESuBbHy&dX<B^K-Fnm3sq5$dd(c722lgdAL6yjT1 z`MlwDdU(oM`(f8LB=bTR%8kl-<7vpAA&H{$bfbf2t@4;W=#VrSeVUN8dl+uM4F*Hk zEW;gq#i|GXY%21VcHStbhs&K=2Ie9xSa-|=9C#fahhex4FYw`el-U$xC5NxyZPZw4 z;Q&mOD#8LgO&=ETV@AxJnUwPGnRWHXNnVY4V@0m>ik9|KMo)N|)Zr})&PdZjUQ2t8 zZp-06*;qIJ2`;`d!LBvKzFR?rnG;r$liQdob%*X!QbEbm873(<P?B^eB&`D#V#rHl zg)g^xL50$!uCTid<C+EkYloeVHg6f~m*U@)Ai}<m&FoZD<&GOV%Tq1b?<^e~@P7%Q zb@&AL+jd0G_I>mlF8XcNtWJd`eRwlp@wr%E*#~nvevEj5JiKS0?g`T4o*?ybVL9nl znH72shmDYYIxb1l43B3QG^$A->b@fn8gmXhVS(PZXW#W~5G=`vYqX&}>9B-y^MRS2 z2E|0$m1NxQkgiL0)^?Vv)(@#4+|I)}sHN{jo_&;?ark>&H`jTP>--2vaGi#4=#0ho zpZ??Q;I8*yixpkj{`ToV-uS|6u`v_dL!FXAmMt><t33GS(#OiScB$&bw)-bPF!=`a z#WBvq7VFMv_h}`XR*)`(`q~KUge_fGy7qe#CB`l`;&TJOqaHD-;<>IelpP3SzaC@2 zEE#enH(btM>t0ivb@)2=I^Kg0dpjlh29~a^skOCNdNc55khHc_sod_>V&33Bs=?Z! zr4kR@zov1=_Vb}r_<wbrey2N+g(gW|`)5gAZdZ;`>2PThi_fx4=Epw}t7mA6Eww|^ zVp3_Rl#i!Wy?R(%IpX}C_;%>r0U4=;9DHA$a~{80bhxCdm);7_7=is?dA-3WyIy)r z#<!<LCl8=41L)KNv^7rKAfE!7zIi3u5T{G)>lZCqw0zl}i&idL?rK=tu(F|UNyCb| zl?}_5x^Am$Sh8qgz7;XX^p$}{%a<-%>8gs0tZrC(I|^p6tXsYkr0a&papT5W*~}$% ztDtE3Lf5?wOIPHxo9Y@?y6&u7LE2X?b1h%Af+|3i#bRZ33tiWhSGekzEnB{@VQJmU zMJrs(Zi7ty%DSbuFInU&9KLW&;=fUhEnmRcoTYUOPy$uUf{T{A%C4X3x(!Bh8-3hd zy&0&cvZ@N$cw=A@7jiYMa4lW7lG>oMm8*h!y?&j`7oi^Ma|J*xTF%w-`VDv1-M+|m z=iMt-x&n3gEOJe_!nL4b<%;pahQ>upT)=AC(nYS|lDeh3%5SYx2TT^O47lzMG}H&k zm^vt2va%tF_F&Uw*Me09L1D0NA>g>3+j?i+QZ&496j|~e*uH4#vb%2&xb9qZ=d$Ii zsH-bhE?W*f&_!+{$q}wg@4j;ZActBE@12X5u3Uk^)uAF-U5grnfO*lvF*H=X+jT2l zOB&FL;R{DuS<Ia5x)sAd;N#*SM9GX5&Yam_P*`}OaOMS`<7(Wt#qTNHrjbzPw(T<u zC*N2}lCGIE8@FxSumq&n8=@TkQO$P#F{{XT>9osBMXqhZ;5HXg49!OHa5|nObl{gz zmwde7NTti=)kT8q`6ozHE<d!mT%1O}-Q^AO`oZ;PkJ-GQ=i5CqXKrY;J4ikf3TcV_ z;D(R}O<X3j0s8SF8R(%V5<1s6nkzYt)~J{#@i$dKe_iM&b(cP9Uhe_VqcY0nwz>4W z!S&B<+xAANk@8(G7}r=y|8pg#RaOQoD=Rgk8`p>M(QQCJeRzJPa%OO*x01J@)7~)2 z7gvTto7Y!*i2iG3Wh3OdP68PpE`Ogs78}Bl`J!^Bf9A}}FGxNNT)p0k3q&8rXB$35 ze_R;|+<bH838D#*1SVuBDuny;PdpQJfT8@EmAX#Y@3))R>o#xWHUvo?w$UeH=ggTN zf{-yZ8Jvj^(T8WwbYX5C?xW-5%g0FXdokCDq?qQO*G1FJ4EdnmMY|o1xwtY?GVpVu zZ~PLup336Nsl@E}dV{bHRr#m5((8qK{HrIkxfuCe2CS#DQO|d}T#YcHkxMf+wbJ8l ztU!&p9*(VxF+XIuPCM#y`@&pi{>)$;e+b|ciR;l4_=5+ex(sMf0=Ia6P#*ydePv~_ z*~x1k_Q%HsT%*@x)@?)k(C^?9fOkM&FbzDecs?J2gv?Brjz4%V<J!+l8nH@9rvv@q zOWT1<uKo}2D@0r_Kl8qjXplkXa=*j1eIqe3TPX2oVkTZrZ=Fgl*8hy2Z&c(N$sYP! z)4Qfurv}m_AbVx6Es__>_GWwYG+RWzS-v?hlBZEVi+@t>sh(8)7EIc&giI_om>e|o zvD1rfEGtBRHfA&1p2><hG)Fi~vptijt=pQKV88j+;(A#s|1&WqB<)9B693qAKFosg zzc9($62(jkrLDJYFojLwX&0tlptog1+IlI}CjdeU(VtDTX*xBq?3?ueWHE4wd{g?H zIePuRe3=>1F()gA{oHn72sZJtY0hG2qch@+41Hth8+pZf#ks}KVq0JT$zmmxhd*V& zUtV9iE$j?Bi!afR`u&#nmn-{~{jdS0&Y&%vXdgC(arYfg4m-lUhhc_4rLU)X5htvr zzq~M7ZM?j`64v{Ja{Rx~pqu~o+n;yA$v;rghXC~?(LV1#>f{yE*a3&j>L<#nPqqkj za4n|&iTd=`k-3!m-^%s1!zC^m6DLN-1Z|jqG~Wh%Xl@akcqfW3t8s}ol2P{CwA@BV z-}pc?KGJ^rBgz)h(Ls74{-<NDnc^d$>^Fr|F~a&^Kf+X-K6zTg2hjXZ(Eannggn&c zTH`5vhN*A<<UxC)R^L0A7v{=Ie<anBYR201aQz-o=2S=j{Q8!1pqQ7a&f@JSEa2md z_WR}+W^eot^G8e2&OY>QVSRKjP5bAsbRq5+xPK@P>VN&^x#S^(sbSlG?nU>f^8V%) zCk)JkwU_*%cc}x`kJFhuHSfN>3walYe(c=bH(GrQm~wKRdCt7eD8Jym&pB0>N$AJ= zpb;4GA@r4SqWrS)i`&wVpAxn;4yb>h^MXxZ2Yfz$WBlV|+26mu^}}qigs)!Ahk@%e z>#u3==`*rF?Vlh0BQlWc$9G_^PN#-V`;}0le*-$c8Tf4`>rFvZ-}nx!gZ%~Lqv!P1 z@0%aGUVR?)w@)j=QH<awETL8SBD2#m(Eph<-5+0;_RW7gb6{;;vhItKVM??QBoaH% zfOi5P_~!lk`b^0GyYDrzH8GN<HA%MppFZd@+Q(>eJZy&(^11OD)4%p<73cKzFCoYG zfgtw)(9n+`B6HragyzfjUs@k4l#xV#eavr+CiMXOLpXtQ-u^_r#M^dQ*NnOvVVcm9 zus>C^729a7^1uH1tItVz%KiPbQ`(Q6Ao0;hh2ef!r+DfNCTpfJiS+4@dx6W>|D}2p zZ4A&)O7Ouv<MTI>>bd=CUVPprdf8v1Q*r$H=q36-P$manBJqc@#HjZB0FukwUK~#R z<%Jpkq)Wy)7ttH=`-cBWw1M_LPLD05gdIW0fbqj_#1w|n>t81r&wl@usGsPU{_dZD z-z>j${r8pYj(~fBf$P7oJnV#zHib+f+kPkLM1JC(z$WfJ!_xk|P@;_9d5B-q_A4QH z0GHDbgyJ75qI(Qee5L7}6rVqd@&2~At{^X@mjQ9w#nCSP^|zhpEZKb3$Ho2gG0`yI zqeqW+-CDk4)rwo|mMmFTAHQa@;%eB%JdMNagTogx&&|W@XVM$|xZ&eQFIm!<$ky4L zsdOw`&hBM}OYdH?WE84E8oxjFOqe)n@{}vCEWWC=th{2nZ$L)fg8GGvZo}16{PWcs zo%m|a0P_SX5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;YnfIvVX zAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO z0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka1Ofs9fq+0j zARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%(Kp-Fx5C{ka z1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m1Ox&C0fB%( zKp-Fx5C{ka1Ofs9fq+0jARrJB2nYlO0s;YnfIvVXAP^7;2m}NI0s(=5KtLcM5D*9m z1pZe9W}?&~F;+O>{TApL|LFM(!T$tL;=Kj54-dT)av(WRdbZ$6<dYofdwsy0+Dw!m z08M)T6@Mr4N&e$_KD`t9Ai1qnhuTWyKN07@yez*FJk_W781$3m!zRWKgP#EYtN1&S z{}=GrAfMh;-ircyKr#t$_Q@H;buwcrc%;&fp^PQ_3mE%PE6=$kkvFEH)~7wlEW;yh zZbquykxiLI${QCdO9ya%b;+WoeP#0vd1zJotc6RiG`y4!?sJ_B8jLVP`iHJ%2{Wpu zsX2_9RGwiRg0ik+)V_i@OW^7ab;T>_4aK>D-q06`hPdi4b;%$z|0osO3{nv42t{dg zDJaXkWVcm{OIf})4`7#A?#LU!1}yDvut`$90cQOoAN;k_2`DmhmDXO8D3`SUoa5+^ zR4GOJa~@AY&h-*Q&*QZ+NY4$Dxj*M=7jkZr?EN_lF;vog$<d$VCFANOSAWi1naH_K zD(ugBhB|$h<mt;v$^dD=lT67(Li`@+F{$ZbQ&N+W+I~igpB)9#prBhU^$d)+zdi`L z=Ljf!dIrezoSZrw<OL#G2_BW5p;VtwFOSgY(;;NN3Si}}$dHC#1=gTkfO<tAZgnDZ z*kJ=zFG5rC>bvLb)q_-u4<KU~NzMIePMS)B!zfkqzRTEh<wrL$wo-ZcdyL(!+%cW8 zdz48F7;92~v4*kxlqgo#14_{~jIB{uLNQZ~w?T_~>#b0zN|VT#bN3=!Eop*z>Mv(u zbW~S0K@)nMF|&GbEvAdwh_<b&bO&QeYC$PrRPVkYz^S{g1Wu}B0^n1(*8w9n36g1Q z2~bH_zxyC#8R}?Qn5mY-Zwyk;V-5~hs~=%(h*|<Y4s}TbV_9l5a<bL>ag61t8zAFU z|AJl&RW~kXELUw@!dRZ_na7w*wO~=?t5pHU3YbAMnw&7$aSM8I<0y2`Aeo(5(<ar> zuyiH*W5~^+Zt>-1Fss{ZA>DN?vYZ5=v6IN5-y!n0l^}0<3Zy|c{0kGnxQKG*zQA)# zA&i@G!DGnTIETdRh<vJ^3eAS+ZS*odk5yn+Q>9Pthp^=bKLXI7Z34+G&wD|C{w!#h z<?pLN|Kk<VAxnB8=zmiF7HjM}(8pgRdCB_M3Zy4^1<CqDOcd$l8&pHGzD%k*c@@d} zY$=$oeN;!b{+3F<cn6G2PO6&8q%V(CfnwcH1^@a2jHX!s1PG+Bo~DvimQ3#_@uW~< zBBW?pr2ZEDN~K;T6GgUifgyS(FX>OX%z=c=l`Q#F(Dd*+U$NBtNE-=o$%`Ot)Z99m z8UL^x)@c6$0lSLE=VoE@WEv}$0)I;#%|#!P%+iK=W}HE^YWXA4l|-8@dr{w5^#jyT zwoDlfx|--zOFQM)5N)@ZFtd%<5uJ_>swc4d7@s5^*QY^8n%R{9GrZFqnaNE<%hFdd z(=eh`W=z72Hw_PwoZU3>OS~;Z)*@>Xm$YQf0X><jtCqq&pr>p?y=2RCV?bZQ`)&El zYS35Sg?t-K!t6C&wG9<ABA8yv-z6pUW|{<B6oyO>nwK_@gwGqqSNj&F9QEXl_p;2N z-i@N)C>}^n=2F-9N&TizYVgk&L44Xm2vu^SH4qx|D_AB^Gb2;pxY9wJlst{>mp2Ak zRxSLJ>?8JN2#_O`HeW=o>;@)R>QYN`e1K4{qPc)gFXu|keYu*1l#P4W<Yd6p$ki$E zWAes8&LXU5xrUHZHom;Z837T1B=j=5p0f)`lGyuM^4%z=ntZBASn!mQOn|x*xx-ja z9%h0(Is-Y}Guv~YtcRJ8sb1uyz67h1sl7Rg8W}9_*EgcZi0OKb{U#R|xF;bXvAjFr z2IUdAaRKk!CRZK}lRT1!O!xlWh;4})D$C2nSj&aa@ERT?v*(?80vW{wkwKX(A;XCs zGLeDp+s+Q5<0?Ce&c=QFLr?3z{TXzhKJ^f&#)6Y|x25QAOV-_%th+5)cU!XVW>h{e zZbPHWFiH)47clT$z`%C_1K$M<d>1hAUBJM10R!I!jC>a`@?F5lcL5{c1&n+bF!Ei% z$aeuF-vx|(7clZ&z{qz2Bi{v#d>1hCUBJk90VCf9jC>a`@?F5lcL5{c1&n+bF!Ei% z$aeuF-vx|(7clZ&z{qz2Bi{v#d>1hCUBJk90VCf9jC>a`@?F5F?*g*E3z%pZP;Q(J zSWV>D)uFT@$htF^W$wXE<iXXAw9HK8!PTcA$m9X8dp-s$?z$UklEz&(`ND+jCf}8C z-ISkj-A|Ex!gccs3D^Bos*!Nryh_4#Z>Bm4*ZmxrgzNqT6(n5u`(XN9_X;Y3>!$Y- zJSmizu$$|ydow0QD)l0nDDK-y0Ir)dFH5-04&-wsaNTc%rib%z-HoJ;1i0kKAZ(-! zuG^%$?pGjSCsVk<1rWSy5=&dDq)GpcWtm=e15+|2Zg%>O<zO;7qk>_|AWoapXCi+v zr<2oXB7X>{?djK31qWv`)33k5!;~z}IKWI`N;YSlU?wsphchlPlbGV<%&_!wQZSS= zh3Vy_AXlP&aSRwJ$m5JB<9RROc5#Czr%%5gb@F+gsTqGpK%*2$U!aaR<EO;9c}Y<3 z@>l30@3O=)U#8Mw5}`0C?$zIbztFvUKGyo+xL3ausF7D6vK$UUPCfylVHj0uvm=Qz z(rM_DjR>1~W>z+34gnqa>OX+0Y(0}C<&8^nW|K&k&aKSJ9KZ#cb270*T~Jue6~09E zy*x8sgXu2bN~Ri=sc>FH<39FJkWJl)R&we5V{lUiwi!KC*~=)3JGOC~bjS856w>ET zw57VxYTSAKZ~jeRzACL*c_<kWU$ZI&VDj7`&*95grR6Jc#NG|XJnD)sU4umRlniWi z%vb?in6VQ+Ry98IQ=n>m0kmv<^v8%8n8~c<9EO0o5z~SQW?qFkL6nL`#KQyiH>jZG zkv53uo6uzvcT>Y$d>BzGQz<-9hIf*jLm71w$px3KU`o+{lcdFp)|D|tn|Vl}jGYbI z&O-%d+#=BFmTO?GGM?y6rrre;6;C?!#Fw+Rl{%2j8-~aRJksVLp**P(*<>^ZpCu<j zi8T0TfIbst(&i74rqHe_4JHzsc4`BY9Ha*FHVRb|TmX?5b<p}_^jR94XlW+KR@zK1 zFr^t2MH)+_vhkrcsVjp_8vg+2Hm@PI+<1B8($qWp=p{CZ?Dpsl`fX1Q;O5%~W1o~J z=w$&Lfh0{N6O@fluSq5R66_OeY{#i*lk|=*gsFsa8lm+=SdhK|TrSI?sj5Dvwje9> zUX-!#V^ON?Zw93Lne2D1jQtJI2`a_sX$xa7<O7ZWZDL-s@y2(V_%x-hMWrKye2YFm z`H>;M%fzQCO-Yq@8F}C?6CYT^qbM~#kHq9v{wO_yj+p6oK>4#onaun?F@KSM1zI)# z7cuYi60><E`l0-lGs)&(QOO6Kv728Z=5L(IG=E9Ve{jZO{+gI}&N$8ENI?f@T;?gn z9N^3_^HgFEa;DI{m6#8?1!K%<o5397B_4AYF@NXGWOF_-|H+wR^C)5tb7m^Dq>zS> zq?geLYo=Q96*`$jQN8LTk|j}8ug)M^O`@n?tt8r<L{Yt3MWdXYL{Yt3O>}A!MfGY8 z(e@;Y>ecIrPVZZ`6xFNO(-|&#J(`vV(-3UKeNhG8(&p)yA1TiQ32E?LWXKzrr93!* zTbfFNvg9B!1j@`tLUX{_p^Hf@`63Aykj^il^G3?tOy@gYXF*(N+C6nkAVvj<hf^m2 z5os7zBAw|fNhRMyn#NM5*UZ=(T+=~R$XJObr0ZFcu^j$S@+4{|-%35Ynb-*G{FT>n z)8;c3Q%t&<NUZaW1$W=Zq`9Lw7s$Z!oEO)iTN3Aju;gpt#QS&^gn1tg*z2j4%xdHq z6fd@cbd{!NCao~TW9od$e*jIhuV919{+ryqzQWeMs;@9R#OX6MnX&RB*rbjJr|9cU z)dO6_xpXd%--9UnI#c53XcgIX4m6t8Ve3%U^w4%RGMrW%GtGJq^avVGm6>;;Np<7` zFpwPuhMC^nimcI8j`P=VKo`YjPrn3a%nwP{rH(sF<#VWfJdw<F%@)v}Qy}fkLalb; zu~H(DnRF<&Py;f07tc1|LMkV`iCpv2*MLj91BJ4hi!^B*lH^-Zl#Bx(#)$9xr5Iu3 zFiKN-)Sk+t_Ea9Vr}C&hl}GKVJZewnQF|(n+HE{)xACam#-nx{kJ@cKYPa#I-NvJK z8;{y;JZiV`sNKe+b{mh{Z3U$;$;P908;{y;JZiV`sNKe+b{mh{Z9HnX@u=O#qjnpQ z+HE{)xACam#-nx{kJ@cKYPa#I-NvJK8;{y;JZiV`sNKe+cAFlxEBdx?rl{R`BjIJH z2*5OyPZvFESM;deOxwO`BOz%fe`<P)2366cb~|0TT#0#U(l1=D1IbL!dogmK&jRf- z=@%|_phG78!iDm;r0Ewfw~@S*reC=53R0SW;c^Gnkka%E7hXk5dlvXfT|ufNr~Q^1 z`GQWYE;*fFxU^7#lD3};{`GS(nv$kpxXhrERA!+!J$w?GSjN4W4H;y<g(xzTmkiM} zc}ai5Wgbq*T*)jy22BsI^A*dOP1;C+OKt~|Npl$Cx>*m`ABDgmYM%?VC#qU>KAhlX zo!1h)#0E3FagOpa*87l0pT~&Zr0^aM`5`ekb4DHV)Gxu@!Wr|B2Z@=>ndBjXtzhPH z#y;d4tQO;Z&SVZrdIik)IO7=d&=xS?=ZtemkW}Bw8P||s!i^gJoEbJG11ry1$C<(* z%_O#fGh>EiVNDzBl|3-rGbD>j7IJ3tkmtQ%7Ae%lV#n-K4{rQ;9WR&(%y>IzD!|}! zIKY|8Ar$%>8+fm;%X;rcFpGH!ld`_R#%#QU>sF<#7k7eN!pqE3*3_SayOVRtQr634 z(o)XZr7Y79aLahTOeyOYf+fhy98y*<L2(!7oKn`cgx_+`xumT3eg<v@=Y~mH1=RXV z&J{{ojoZN8&2^5EvS=n7?@{&>1X9*^s&_9hyIIQGMO-82=1bW(%>FJjuHu{@b`n6V z6`B(Zr7Q<Q+{9Z5N?EPc_xrfyN-2xxz43nK3rvPaaMbz(ToNacPsp-0oKxj2EA=nL zIkTL#pXxoR&_qv`vmT-Tt>tBQIqPoX)^RRV&KmX{xQCPrXu%<8?ZpOQe3-W$wq>Q! z?0JMses0T>sD&SJ?u0FC96}A_dd_`e%c`ZaM|pdiE$eqQMvw8b9!OFPkMpvKEvt<r zpWtN|Z2H`%-tlEMM(4>E&gbiV3PJ$Bxb9L|&O_AhlM1aDXX0LOX#52D9zsppf~C!s zsFE8$0agM8IsxV#egQ;!4}^dtgjPeybp>XSoJkH3L4)h6E&W`O{Xguz2Ygk<);_#v z?^9Aq2sP3Up#_EXgrEcnNgyGGkOBmeP!bX}6iGr8m5z#{*b53`0TmS+7ErN^^;)s_ zu2-*JuU_x>JZtYcC4gS_y}$SU{y(E<X4aH7YgU`JXBT?E3N<kg=YF^;LSGTSf>8<U z!6&-`qY|FmM##o7KVb|g)NM@(?TG&fyR9+dS?p})5zz|iMjX7E#D665zX$xMBUhUS zW4llI3_4*RX^(13xBwC}k7R?n@i?2}VGhN8<3Wxm5-k{P=3@6ZyB!D2Z@`Gn@x;u( zN%*Nv%lw$fv&i)(le$XcvX9~f9Y+Yd3D{%V=35V?G^0qi+sa3%;=7jXXlIWrWX0U= zsE8qnZVR^$WBWPRwD+N=1J5z~KXe&-L~vK{e<uYY#R2IgAo}kzE)nB85U249WQ3@L zsU7lE?Xp9jkr>XuAu)z=avFyI$03g$>A1tpzDqIQ!$`-pBOMPT9n*<)yo_|r0gNZm zcOV#Vco^xJcBJEBq+>dfj+c>+IcN?0`pl$f*_V-ynarZ$VWeZGe2ikO5yn~H!7rSN zKhg=~1V09<y^M6sRCq2(Qtr4|A^WqOs#&r>%c+{>?9XzA?rhT$eZizi-kS|$iI;IQ zDGsupP_Fs?VL6`LZv$%=un(?`MxxxzYL};+^)0Ml?z!n!lv`O|?YV;W3rC@Ril>0} zi&%fUhi==oI16LX@;nA_;abA_EuOvXzm(-GJ;$+p0>^Im)Nt%F*6;Apd%8~K*qxph z_Bo05dp(m_KAGhQJ@k~W<zrBOH2PVNUBP;nihh)xRuTwP(H4PK1fo>*F9cQ-h*i-! z&>Pnp0v%QKE+Shy8WVO^(T@|`I<|~d(R<l)3b~c9qMs##Q`u6eqSq5RjX;Ttrmu9Z zp8y2qD*9ZuoX(czDw_V!bp`{R)v8@(UZvsMz?Lm4dI`IoN#IHq{R$^Ni@<gj{Vsux z1a_!sI!V{r!VDFCKU>aW%U%^dmP<I7z=JA!1+kq+;8A6ZmqSFnJ#CoF6WFq0QY&z{ z4U<NJBW-x0hCPP&SxWGHDvW!%>!Md&P>#1*bqOalJRh^XiDj4POO`KXIn47T%a^en z<xwPkGt04_aF(~Q+|kpX<;z*_>WOE0E6d$Iy;;73WuIpt%U818*Yi)7uVOjTvz5}h zn&b@fM3VvASU=L!ndR*)=X+jZ`5KlBJ@2x7Ez2dIUMye7a=9mw<sB?nc|K$LdX^`7 zzGe9amZx}9S-z3wX`Ull-pO*EX9nrHiRDJmT$XQUxyiGX<y%;u?^(<8tt_{A&Sv>G zmKS?2BA#6=FSB|636>%<a2ejq*zxuikb+pN+wC+Vj-)<z(y+oktyotzuI|8E#)Ynl z7Ev0pj0;_p1aQSNE_Brh5Eje0&^1|rs945@uA>Erjb&VjOH3l@7|XcOb&LRAV^?nh zFjau=v5X5{wF3BJ85g>y3D7r|aiMFv0Ew}T3tck=7!=F6&^6Pdy{E)7E_BrikP$0# zthczt?DmWcU9)7&NC2sZt3iN#0BMG+QGmi&aWJ!G)g^I^3th)bi=pBe7rKrU+%6Tz zxX{%kZDA^oaiMFDKv61=aiMFjK(Q*0aiMFTjO(c47#F(cOIueJ$GFgSyg=Pm9OFXQ z0)c!gj&Y%@S)jfuj&Y%@MW93#$G8wT)VSzDDo#AxLW`!DqT(1Ax)w>>Bo)WF(6v~g zDXIhGLe~<3rh!f>`cms#s7IZOV_fJuL1vh*;usgYmPyYR6}O8$Pqf-Y85RTL>?cW2 z1UQTfT_+3VGUFH*x|RzRX2$L1xD_}!XIvP^xX`sy+G5Q(#)Ym`0(CUw#MiC1dSiyJ zW*p-}*BY7qt(Z8*g|4;I^Szij#)YnR0(}${$GFgSia?*m#ED-#Rp$FgOdR7v*J;xB z4SHS<XuY)k5EI9^&~>`BAubf%=jy~v2H7xa5xBPvrvdKxj$s&x3p+6`be&<*UOJb- zrc~egk%m!*R<-FQbnLRAz5$gCFK{l~^-k$xLyhtBAdf@<JUKcn0xnmj@oac6a7+~( zxB79UB@2#u_Na_}fm)1iojGb0Amc&&)TWm(!tRsLA~8p>bGJPB19gHg3Q;9AL~S|) zaZXo8l<I_mXg4=jb!9}UPO!-<@5+c$x0Q5dM5&h9ZH4i2tag$^MEqx5mIKwre;ou( zvq?GGCS^+e4id549ydS!aMHfQhMMA2Ic}v5H5%Qgvg=HB1<2%IfBe)YC(x987dWok zg~o_@aI7ceJmq6d<F=;Zc5hEcd%9vdDvU*O5S8&5B3>uD>wmi)-EF~m{=I?@Bh$f& zbTlNIYhjdzwGL(T6c!EZH5>(*r|w44WqFaAr?DJnjbi<JmZPjySdw`r`^Q>4aqefH z!}^Za-&ud|{U~>}9%cXYSl`{sCI0hS_F3<-&jnAR+}CiqzzzMhizno17w;Byce(bl zJ><a`^D<26vLvz#yB%e+1Ip`)NXLw>UKF$Q42FKD#g6tO?8jteMmz9}u%C^=O>R6b zBe!NE>}O+0X@vc3%=1KNpV2svl|+t3|Hy7gqWIuU<X|MxF3&v|BDZ?piOu}p1t=O; z1j~C_Hre6+XV~ErQ0#f2Q969Z@`EfZ>z^z?#Ik9b9QZKH79LCT?BQ{8Oe|LCxtlY_ zE@Hyzi1vwC6aC)jkSFbVUt{?x|Ga-IVuxj{e8!%44a?8k^KM}IIeXp<Sbp9=?_&)Z z81p0vdtBxv9kHB_^S*ov(Qaq!EB3q>lfqa1^S;hIu+~ZJ@P<9_T9)5*=4JUUd*1U| ze%n9q{x>=Ad}4b^<|Q4moR0H;0Hzq$PtYjOhxWYhviy;M-cNWCY;9rXr}n(tS^mtP zcPGn#x97cs<<I@|zBdsAV+zQG_hnwv5zFZ~@7Ifo_B*zIW6%3J%isFv{r)C)*v85q z?0Iiw`A2)++gbjnJ@36N|Ky+d%cnVS2`j&nc}Yhsr!%5`p1VvJ?iEpY3~TF1^x4M> zS9?k|wmo^=u{~GZwLRzWZp2YN<IttU6ckJ&VjQ&D^9$#QqtXrzG<8h$+@Wp<+=+LT zJ$JzoVHN;5N!l%dt5bf3;n^eQuuhdI->v4LQ&i^%D4u(yA+~b^8F{Y&9XnMNRT`eX z0(9+EO5i>Lx_2tVO>EEo0{A+w;Ft#l=xcQOl+c5U#6@g@I(QFz2c&e&Q2Wgd+;+~x zbm}FO)@XDdjTNbv1#orlg^}tN0m3?OV7FHVi0Zr$996HGH0IdOT>?PI&Rf~-b(4nQ zwev4*c|(B1I=2$rn}VQw=WKR+O8{TzcA!eVE!g^Y-pg(_kl6VrI{0^_+n~-LbIiK} zq!?Ycu<1SXDJ-jN5~)6H53a7WK@o0}r*h(c-}o!yBZxI=P^{huKF7)rn?Qs~^jf&n z(@pN}q_Tl~o(S|803vH_iAS?@R+S$Ep71fc=auH8G6cg=jUm30M2uL55h+5|T#m>u zM4dCBdwz)@m}}2Jik<xPp9DbWS4Mmt*E@EHfBrj&Z3(I<IK&1$<`}BPM!cv8o-%gI z3yq$;II`k-j7$<bKHy07sGvG?<a9$-+2t0aS2KH0cD2Wz2m?@?dJW?;p6c5{-_VNZ zuBBdEj0(sNJx=oi-{KV1>2)n3VAIvueQ~P4Wp4K+1nic&9yOI<#v7XEno4lPffn|t zDG0Q+0t&RX81XNW#vd@bu|X*4hCoFq_#v2rAA%`xT5JlO7KZ{}w1E$cKo4edAcq16 zawu@17N6)!J7tR+CvM}Z!5wMh2FX&J9sxxOTzN-D&tPt>P2kcyDsE}!#wiJl(*kW% z6P5^Mw@pr%*NXdk9TjolysZyz(REfdHOQ)u+`a3fdO+>Xjnn#aMnq)t7;ztrI?U<V zX!O%ftnThq*TKEHI8E=VG>F56VpM|S_6UXgJGC~+i~7H8cVZJB1x%2q*AI7=&;m^C z*ZT=}$`nkEg6U{tdW9UxbowsrKa@J7!Iu70sZ$zUVDz@wo6nu&0#<OWAP(_Axen<q zM(=;p1WQ#)N5dE^z3yYLQqEthY+*N%TjLy{rO&Ye08%<lR9j{t<J6|_IQ|)8o$QEd zQUAdtWwL*fy&DNnl|c(-&;Ue$eeiI_G`+Y!utE)h${n1gNe0ZY*Mb2F7|^7Jn1BHq zXiR7d0CoN4!HXt`{%KrHb71{@h<Qm6mtJ)+FVW&9W(`auW(`cSF)wj2Pa@{!njWL~ z8uDPBV4i?fZF&e-5Td{9oK97uzZxnR{nb#3=&yzf?Wxu|Q`w5x4p{rtfeB|g)pb4> z<+effM~k^}MxQ#6ex}nn#dk6F<t(Rha-W&=u$GOQ6MYuUTND8258$f{J3%lt{XGAo z5>MfrsM_XKQ9FD0r{>*@7M@>mr8zL4{uhvzd!2rD{hK(u2B#$~2mlTr@AdN$OWNzF z3ro1q0p|CqGt~VK&}8&}n6mpsErag9C|Yr!f8I}=UQ_IOH8_d$YM{zy>L<>;<y64W zG<GVW1{(XFjVZ3h6h7Ic|KW6kk@xOGDa)%a#$!T5RkU9Fze8!zpwOTJhlYP^8v6Gj zn+(~I>8C)FDVsR`6iCuQqqrhmUpXXsoK7Sui`LZz8;xO{BqY5Dl0@;kXjGzj8fp~9 z(@>o#o`$B`Jkp>%FelFO3E&jx=%8!~b&frq>iM9jl}j36R&~O`r_i&aokPz6O|{UY zp=m;ohNcKT8k%I&qd{@x12qYK&&Cw=+_NzOiOcX)(eG-fiPc$7brXndN8*N?Kd@PJ zw;TaZ!c5kzb=819UiL}#D@M|K)4?_W<{(4f&@f<O(r=p9BlIOp}5*%*N4(xr|x z?VYO0$BR&v>ww4liimWSX>T91eO55o=!>V3>DC5bo3`t27z58>^+|%m)x|L061KNT zw8F)l<SYi94FHpDa&?=tHVry!)1Z;i3^tx*5~I1%b$FlV7Wk6o4&Fv_gbvW+dx7e> z!hFERzIDELxqy|<(E0ZARyoU?hy9OSADF-~R|@?g-FZO%Gt6d-|4IjWmCbSumJ3-| zI=B}f?mM22>1s`uFD@9Yvx(m3w93AqfhL>i?GDjXXolBFNBiCwEioAO$*vkwa}Aey ztx1~gF_4Yij~lp%EgzbUMELhN(Yo^y8}@Ia)IJpQ`51qHaW-~OYvcBl`^!avhOa!i z&wM;|^s&jIh$MV1<k=^3{b6mq_2fRY5xjmX)6jQ7`#yDaYN78=lJJ?i2_vnIJ5Tl< z#-V@Le1Z^u0%38K#13?EqUGLu*sC8d%y7bupW4&~hco@Rkg5GFJFu#we)Y3#Rh~ip z(!ex(H5#01FGho6#{(>AK9<sCPn`(tNARLB(lUB9x4?0C;)HIi1UCl<@up(fX|4j) zM2<kGxN4O68*D_~3N%SoU}kt!J!+!HB1!rhn?-nZtA>qjxDIg{!{Nr9qo=zuJD*nE zBAydl%3&Cl34-kNnE&9R#RH$F4ShCo2<UR2O)TI_L!PG9k0>rei{}C)UY2gcFYGKN zc#7o-WzAm>;v#s<&RW1eM#R>UC^xg(6~S9}RtxKwNAQ-N)ynefh$~pX5NGzrDG>#% zU&Q*;Bjh3L#b;scSrNQtXDwm<mI&UmvzD@aWdv{8StoGp_6XjxvzD=bhrBCgoyf5} zBY4ZsI*IjrBY4ZsI+^7M<*g}e`Q<1-8p&IB)(Y0UR3vZNSt|*IsYr{!Dgsd|lDF)v z)dXTyByZVSYY22yk-J6$SWDq_Rgt`9XRTw)NENx4EvGC3kgp<n%g#ELErlwQx9qIb z2$ZNu9%EbUcLG7VisUUj>vXm(SCKrLw$9j#meneXx9qG9Y}ukBdCSf^lfacK@)b^c z7J=<5lDF)vjRbb6NS<F?XA3h_<o#?phb?<mByZVS=Ms2OMe>%Nbsm97l`UQl5%Ko4 zVJ=T#%Z5p<z~MGb8U>ED;lF9vW4L(B&N`n86TRHJC<E>`g177}KFo|VZ`oO!SawD5 zmYsDe%V80`WoKQ+a#VyO>6=-Ojo>XiYYWRABY4Zsx}4>%5xiw*ZDqN8L~oX_VA&VJ zTXxo!EccDzHJx=8%ZavvUQKcaMevrLwT<;7BY4Zs+Rk!*1aH|{*RWg|@h;2PvRo3u zTXxoUESE>{mYubO<*EqYva_ydc~S&#*;zNRJSBp+?5rDEo)*DdcGgao>mp{5o|{;1 zjNmOh>t>dlB9^jz3(NB(c+1YZmF1QQ-m<f9V|j4|Z`oP9SYBrHJReID8Q@WL-m<f9 ze-%<_muTIgUPe=lyzX$9;s^qG-C?%?t{5CnS$m`$7K6hn>uyE6ii+joly#3Z#K!V) z%DPv8jxju(vi1tlHHL>%)_nqWkKy5zb-w_<SRPJU4+zlLXwSnb>p?XR#Kipor>0`w z>jKrrRB+kwdL4F1WhE+bh2F7wCR}Tb4J|a{!uFtF@5Zi>g^b_}ULEBMxi^b&&mH(k zit4>c#y57t&XQo4Tkw`C@x<j3M<z<nMsblJM`j3)%pe?D8b=rB!Sbsx$c+%qFnD*z zWh_Qe=eX+iz)x3AbKsw^2Vxw|_h(%7ufF*3n_hb*sBm-b_S5AA@53()L~7SfTX$Ud zR@7?O&1&tsS+89;%i4ACKv}zP)@#>IccEQ3>$U4<S-WnI)vlZM+I4fRcHOMkuA61; zy6H@`>t?;*brbNrZUTPSO~CKE3HV(%eVN~Nv&HYaR|4?6ZnpScHvzxvrnLR8n=O9V zO*iOw-E8r@ZUTPSO~CKE3HV*NFhjd;w)kB)0l(`eK-awzIfsaN;kpTPc>=?A6DG9+ z!*vrTjRM1U6Mjp>e%DQfq3foDaa{LSRB6}EvUc4pYuC-PcHJy%*Uhqa-7IU@&9Zjg zENj=zvUc4pYu8P3wCiTQcHJy%*Uhqa-7IU@&9ZjgENj=zvUc4pYuC-PcHJy%*Uhqa z-7IU@&9ZjgENj=zvUc4p!*#DjR)wXA4E(P9Qxky}?RK7SGL3e8H>3#OCnosakQnFP z5ZaR~CivZunBaFqVuIfdi3xr;BqsRXkeJ|iLt=v84T%YUHzX$b-H@0o;7#yu2q_p8 z6Z~#SOz^uQF~RSK#Du&X66?Gh!o{|WwZ2eWxXKIRO|38G^${bclE7C2xMKR;4d82e z86_-c>qr3Ks9KB-kNKG0zLjoKM(hGY-zoa`_FGX_9rzyIPV6De6`)Oo;wDSO5D<?& zByNvD_O5eW+*<-sM0}ef3e&1i9E4N*4hEsl_0qNg-!!0P+8@cvqC#{@L71M8Mm*`s zS!8UHJ+`Ss<+*4mw(+)Ldyp%zPS<g^37oqHgFlhM5BmpCa0bV1y;yg{vzBpkJUxNk zKw{iVL17cs*cn^kB)hz@gS>iDV=t_=OBd3)tbaGm(NXrsPBS=i9owg&)+hYQ!)d=w z`MQwFrJH~9bs>|l3!3~?o2xDM<fqw_H+Ok~Q{8!Ncg)rPVV3u^AOGOQz_1(r)9%;P z$}0EU6E((tEraZdX4z}r&p|jP=bB#*nf4WDS}c?d?|L|w9<KD1vt-J6Y~}GHqj2TS z8835&D`(PpVQsi_X2l!v_zH?MQ8!_3l+rVGcS41J!0KLvNqcNM2c<ro-?$n-myw7I za3^Z006~lz7W?q3WENI2(m-s1pT%Sme1iSXiOYU%#yu3Z9$rSO&J$2{TU&~d_D0bh ziKGcX8ToFc;o;S#I_X4Ixvj2cNRLL*9Ek)3+1;M=8lF+)$){JM%03iu3#A=#P3<z~ z3#H$qM^yN|hH=YY-1jii6MtX(3}YQB{tsT9bFNlH-oQT8yK%v9bL#6)F3WQ|5-&?+ zV%Qoa&h=+2C~|@r_R&EMt91~=dL6{Dtb>@1DC;1G^*V@IgRwe@VZ9DwSk^%d$Lb)4 z^*V^*SRKT$UI#HO>mcTQlywlpdVdf@z#qgA@CPvj{6P!>e-LvXCiDj}Y#FJqKbrvf zgBZ5>gBSw-Am%C{@CPw$S+1`?Z$pbeh+)eXef>$mAH)#w2QdWvL5wg%2Qh5ftFJ!^ z_=6Y%3}Tv)bBKr+K@4FoPhbQwgh{Qy2x176Mu8E;5PnF*{vd`56FqM))O<S(-u{S{ z+SINF8m(Sc%i)XOL#^5r<Cv}i-FHt%RV+<cZB<0;wo-7$gBOHUzjhrWt#;koRd;Ex zV!K>4stb%DNsWlN+8r5rROEp8_A1UZvg-w-;#CKjncJ}Ii#nLtdt3m+*v$sr86mBn zzD8u^a3F`K$DmjQ1Yv&EZjJhU8+Eud*lpvANHQE6{2f69j-r$*>OfMWdK*O@l5zhe zx|1;g4ej~^#$FqsVMIJ>j18_BhK|9D)(Z~q!$DSnbeD}ccvLW}T*_+4rI8E5p+xYY zJI}nN0Q%ekT%OK;27xC|Jv?hz2Nmho7{a6dow6}JA_#P2{Qw=7X9JAV?1<LvXqRd8 zL16TVCF`+0VTwpSMO+XPv~@_bX9TBx06QjOP3RiTcrLAzBYa0fo&BP0t0lMu4%U*c zp;{6jJg%sNtzV8390oxIDO9(BTqqTM0x4DcPl~JoojtTt^>n&{uo3YTaj(EQTL}&& zy?|)6#CajyR;F$(Q;(LZH&~GWRq5H<r={nn9JKVXTq;NhM?oC0qeB`%i0lxe>>Mh} zE`DPR7A5>}pk50~j4(umAr9iOP|>#)V6f;z1mB~r2(?UMTDDAop9q8H<HmjzWT62e z2Af1!s7bUn!eGKRD;%AT3{~%_;I1KS#0P<b&7vKa9Hi?(j!WE@R_^xN!sE1scWBG2 zj<(7F2@cr^JhrlV9lnUNkuTy5Y-I}%)~<+P2GTLfmSJ}cVM7~^9fT3iNUl6aFE~~& zxP2&x<1}l?h#(GjY|EEJF+`8oHqT?PfHQWp84+6W;=G}Y3kz1Sa7}N7rZ=*a8X((c zlv{jpbX$kgPCJws?NDMdn|}vrA2b_0xVCrbFkOBJTUZ^ngYRTZt+Rtcq}C-=YFz=6 zQI3m<4{8O%!-84?b_*79_t34O$07VlPe-*e0Y%s=U;`l*;BzE|m9SgyK(_($ZFD3d z)L8l)tg920^bOq>`n6Sq{()I-S27^Df`t4*MG4jrkHb?63EC67L1+yL*BTOG%P`Uw zT~x5}qk|AZ8tok6IKqz!mU67q)e$SzCP>Ou8*RB%o1j*J0rd$M_pk5iLAJ&{J;-L` z0~{qk5Bn8qbqj6_(GKWZAmr2PAp6a)?+(8v!449h>A1&oSmFrDr5!<Vh!$`J-VRtJ z!wK<$lxqfnaN9jZ1iOGpTbxn0IHQC0qFtAuxGN?wKLWF8aSo80tuk?1OFC#R>F6L5 zlkOBGKPXsd2bClHF2Pd7wrvZ?X78c4Y#nojin8sNjn*K!QxZX7&jW?&7-cWNF#RC~ z=EHG}qbZK32)F=$wCRvV2jFNk1>DD(*csP15|=J<9)?5x>>_TII}35T42V?KUDzR! z1w8WLrxjCa^>QXVoKD~f?NJ8>XtW*1U>->%IkixpKOK>T?zdX-VOsFv!44t#0sw*! z-e+OQQI1+T{vlNNg7t^G=kSvbs;%z`)}J^(r~I;Wq>6792Ah4yQ03_4$OyDhWSzBn zb!p4bL;2f-hvUJP=Kf#eoOYz-TrjKJ2eV2mmBXyKP-f|{&EZZ*%^k$(fvate!qLml zp&acJ;Wums=XzX_K08y#hnj-Eta2<vo45mZZz~?{ZV#&I`jS~It);C-hfs*7+_oe1 zIEV$$uX*YJRk`~eRj>!b#(Q8rm>W1?0P}1&pbr?NLRPs9-U7!q_`^v){=UI)6n=cY z0B4K_pZr{m{3GNz?Kb}5<Ucq$2eUrR$zz?otCRbjJkiNhoE$^suOm{^C`YY5zf&zA zST&6^1NAr=N<m`^@(kqq`>Ohjse0Tn6inkdUK&f)9q>CGr@!yVV`k3Dze4<cfU^a% zlR?N#BcF#N{@Sxp(jRtXB|prj|455zyoZOQ>`MKqEB$#Y{c$P%!6-e>rgJo0zCBKV zqC$U#LVs66fB%8wCh5V*?eRmq>+$-fM*U(UyFQ4YFUo$KkZ^w{&L1CdG>tB(vgg;Y zcIY=c2I2gf{q^e@`X!4UPQ8BFLBGbJ-(Ju!EpVC*&Rjn@d7YCtI{7r@`cZRM^<{#; zg?47laPnzR&IhOYw*&by2=PT5lt*n@<nyiixl;WIrwhC3TWrK%6tszde8`S}^X*Jh zTkdB=6>NU!ha~i)4{iJBqrx<DhU@<N_LjZ@rSB!_+d3SNb5{A|%@6%YT{Mm6(Hf7g zCofE+$C%*yTT!RaOm)9+P{;y4+Us2WXs@(Y{yxW#_R6n}(O!SS4@eEZ)k=G9hac^= zGk&yJzK-I<uRngY*ChOCuUYu{|7eHKk2c63ZID0On*L*%Hpd@rjz8KON#KuV+LZp& z^{k@}X;`<jjyA;~ZHhnI6o0fG{l_wGh(Fp8f3zX~Xd`X$vhE)IXg57!E4rO_Lz~dB z#;;+W|5iP5(5CpKP4QQOAMI)>ezYsv6o1d+N4qlHL+bb?z&p^cXjA;rR`k5Tm9y{C z-_c*=qg_>WI&dD^6>W+?+7y4Z5k0PLuKB_~v?2azBf6h%XB};ZKiUj`Q*kSlc0*m) z{dKO#X_$TLdgxkOizus?RTlo$h2-53ygOx+ICPk{+t`N{xQ%{z^wVw30CjF74La&J z(tS*qqodpC1tf0cjm}I-k=uAn`ivJ0mkWj~pz&_wIT`h{)RcpFZexD}(<7wkhoH`F z93$9pOo#Ggg7X}yamm=%Az6%))?o}tjMt=fLvNNJ5<ErVlG~Wtlj#pqze{F6L$IYt z`jO20IM(ep<_m_g2m##2?tV;v1V7ydKL+eJVx)WyG}3KEgHdkdTbZ{-%4hds&1XW@ z>B6P2?X^qmZkau{FZ<jm_-h5{m1MK=y5QL+l)MW|1|`sAxA88t+HDMwd9etTSIfGF z!kXPit?+^GZ@P_Z1w*aO7%7}TUGNvn8k>aXCxxpg%PbwFJW%9#6MTW&XfN|V0DE>D z*|L^5da-=H%!tWReqQ)_B7B6~s1wZNWv)`G`9^5=%Gy5>%w0vk|CAcH(3~$6whGQF z;qWcOlX1eIYlN!)g6(UWu~&c2RVs41Q}{4cB>t)Ni4qF$mDW!Mf4$6jo0NM9PaY5+ zE)>iqk`@Tx9+7!h$=aV4Y9|Z*i-nTmLUW^xeO<7Plm26bd-n>4ox;_lgaZRa3WXy5 z!$snqMY0Qo{*A)hdu42~$Yr14FP2emnfF7X{7&Kg39|OR(wZd_@ksp?N#7Mp&Jt{s zWtP*$g1WiLE04(Ne4&9J!EN|N-?qr8!=>jMS#N(?X=iwBw-GLM-X--r#a^x!JRitP zf01;K@TyEGH)XERB%LB-cT4{tg&U`cWb1|Uvt=z~?G?#fS;E!Jg|-CY#w?-j29fDH z(U5GRxk=KKWz;V+`#6#K`69>dLO)+ncjMz(OjijH3x%I8vX=EiLyVNW$|?#(YUc{I zrBc66=s!YacdV>VzSnQ85(>M^TGk1lmx#{q6FSGsDwYec&Xk(J$-LJKwK39jy=ab- zRrHb>pODq%3byY=Z$A?JeTB{mGIpQfY!FG^C+o_S`d)%RM&{-1N4If~@Z=kr%O!oT zk@7;B>oi%>^TLyzGHQX$`-I5oLz!`h(C~#|J6yChNBZ{>J`WZC?2&nwO6wCc;|`H# zi%^~;I#45YJ}kWbhol`uKNrY)eZq$_!Elst`yZmorpWFdk>+W_r554&V4-lo)Vv{5 z9wdD(7oMCbGWtbohDn+wGoCCoGcs@+SIOFA1^*LLeobVw)s~m^TrM;(6WWqwU5^SM zu9H>2Efn4;GkzeHyeE9PRQNnjdOl~bNObrI(cue)8y8Cdn}yE)LeJyUXQIp%E_1Dy z`Y6HQRp@_7`d=%wT_STO3J<RqNj1qTwulbDB%?l+wfrpQ%_55okvrpjx6vqcJ}32I zl71mIks|SLg~CZPZ;sG&o{SnQt5_*G`-$wzgb%NZTsjE-w+SVW$l7~}q}B;l%|cI_ zQ2vCh;v|`+i*SCw%w8mT7#(B(5*|J!bJYk9^QC7G;lpQwng0lf8y`AjIzn36hvCW# z$aJ`3^)|ixfWd{wkI=Jyw*g3decm5w?}aS)8_YB*k7?$etRMO$)A18gLu{p3y@SoP z+PS>_U@6v2<)x)sQ{C>!x+77D4)e}Kh07g#Z!5qK;Z}Tv_hi<%ygMKzmsM+dr-A`4 zYg(i`{+r`a@-7s(F3R2Q$YjF(z!aAi8}0oJyl`3V+quIVPXM;|;Vv)VJ9AlaG46<S z3sDsp?s8cjV!by=b;tJZn3Ic9-6_tS0{`x^x_0oENFlzXmr;nzdzOHmJl+Zj!)0~u z<c@rM1WR4K-bBa*V>-J%KhHzSeb_PMz=Ce^i;#Bj-iWlvt!E?cd3hC5-(wq)_Wnl_ z(mp#1FhF?Q{rq%POdVQ-wDwa}yQlR5Hfi(yLbzacGt$w6iFS-R3Tcsty{pSJkWM&r zqtm<H*p-0WM^19!xZ`I6j{lK;2h1OgH2I!7q$v#(k)|I<Oj+lRM>_PeTBO5nOF=p! z{Y0dr&YO+2;Ewr73+EF<aWU|^%idawbo@!HkXD_3Cen#Xte@U66lvX8V2!(e71_{q z>}g1sc0Lx@c_-8iL;2)4C!@Sv?Wh2-N-aGD*=qF$<l^3_o?VY@r}}OUvIkYCdSp+l zzGThc)E0={{fs&<3)z0vs{z?7Y8455Q{A}?+1JXGjqDp0IRx3a>IRbWotjJ$e6O}Z z8QecA_Z(zDspW?wTV-x1jdz-dVYslm=Pxa&==I&vNE6PRg0xRrInutzkv0ADbCLG% zOOgjztC0?FCL@xrSb#M7NRCQ>Yz5Mc%ON~>Cf{6eXBDL(9Ws>IvR@~Lp><^Lk!PeL zJ*q<q(qUe*IOn)(q`C3LJnCJR^P0Kn{JV&uU@ccZ`UrArjOTcyg+Aghx|ysWJCLg_ zPAEcJat1Z6^a>HxlG9NhcQk9tZ{Xs`XN*KzaURvA@)^=!^(1Mi{*nqd;q)a)kDg5x znQ|1lTl>P<NT-FZMLK;)BGMUeQWa+2523p2ZldbUUdYyC-{HEB`(OgnIZr~&?zvww zo%cPJVE#4ib9@44Ul29}Y4fw>Nz0X-w{;@vT(~S5>7wshzchoZJ7Hxy(q$dV&l4Ar z=9505lAU}mMYmi{pukqBf3jtzdVu<~N@X)!t==p}wno*H4{O!Gk3qIhU4JIBQ&ba) zJXK90A5T+-oP52CCxxf0+bPI1)D%j7gL;;XJyTh%JV%|w0q3fVry{#ZJ$o{;i`BwR zWS6Lp=OEjpR#Ik{s@vIinVPl{*=9AD%if}{;%Y8e$5NDA)r<Mau23V$j4Rc$6Odh{ z4kL863R{P4o7%w2?W&QKU85#)+_h>k`FWi>c^I-Cs%RRr>(xLC>jsrD9NCSkicH$6 zwk<<;lRBXm+0E+HBaz*rnrOGTs@=qSn~I@I?ozLugzR=Thyu7njpT~%RG+c(F7?eQ zWV_Wrx#&IWTk6c+svGCKNA0Gz-m6aJGWV)hR^F$MX65~=j4XIW?QKH#sB%#pPpZwF z;VEU2Ay2D^1|$2Mx`tZ)jLPD;XH~;MWY4L}Gmt&6CgmV|LA^+S^`e?Q0@;4mLiW6* zJ}2=nt0ubBSJVmgt*@#|4u4IJJ__0E>I};E4RsY6@}}xWI^R+y)R4E;2F~z~n$0fn zss<AHp7M=G_P)v^fgh+o?D?VkioWP0Wl?)RR=<!hpQt;j@1Lr=6l9;N!|IUzUG<@! zeXd?)_JxY1EBl8!irJTHI(_k1>K<zA*Xn-q^BZ+6ZSz}o3@g7=VRTo^%{M6G6=ns+ zztVhf9<tTu5aL{84xj+mn(s6tTW5CUYELoaW+6M({Fz)j&0I>ht~c+Rj_h=EEm5Cg z4kFJsm^pKhU0_~JS}rn6Xx$f^Z?o+ZbMjfpE;T<XLUx(?9ap>AJb5v)E#_f4$SybU z$wRi)+|T*0Fz1mySDG<nkzHlZr*&Ly4$4Nh&D=*WZ8zN<evSD()$KZSDObD0+(MUj zy?Of>WH*|FNzzX9$rF*?VvZxTZZ+dqAlqg3ra9ei9zo-})4Y8gvb)TU&@A!T@vDwT z#Z&I)MabT8pFY5;Z#<DcWbV~W=YK&<K0cAkb)Na*LS*NgVU+oWCSI2&7e3-@E-}{? zBim#y7>?{R^8>Pbv)M@IZ#84*BD=!8j9su&qP*J7U5;$K`6W?bV@@F#t}~aB>pRR6 zF6svJZlb=?e4b*u$^4d;H=F5nKew9v_YmB-nI{ms-F$8avOCPT%aGk=*3-Ioo1MwM zyUkyyWA~VsQ!VZ@uUn7oe)9v){-9ZODzb;n*XWxcHM@`@`%L~r4(`XzhdAyD^X0RU zJ!O7gitK6gib`b9nER+e&zjK%$euT!<BDD|w~{aW&6l{^m&_4|BYVX>hZDVO-a^^E zVeaGl-Zc9W=iBCK)RlM4Wz>%M%ne-T`{rG=y^qX<8e|`vxGe@dF}JlM`^;=Q1=;83 z)0D#(W*SNQ(tQ35WM7#_4np>gc_T&ttyxPw`rf>k3;V%bPoMOY`6TE2+03F5{9-;% zmjBzFKx8W{FR`q&d{mOv*4rh>)>s+GAzNp?OCnCOo~S@}nsouWwB9<6Tsp(Ds0ACW zQ}dCXW%Z`SHd?<VBRj|X<w#`bT0N=u=UY!RyTGcTs4lWDA$Kpfo}7eilXVm4yVP1b z4cTVPWX~<ueZ;cW>To8qE3C^>kzH+tQ^eb>+sKJ)tn<mwYpq&}afek#BCfag&{6HQ zj-!ljvQDi-c8j(2SY)?a)96=sSx*l^cDvP&?77RTC$!u8JLPb<^?fz6d#sf4$o5)W z$(Q@Ar)YE!SOc4oJ!ri~EqK^EoNRr>x^pP9*R5p~#~YS+CbGAz%_QP&>mI7<yH@2$ zWbavLlJg%}^C^c9t?Q{8pIBqLzE7>bWY*`_xpR<xVLjT2>?><AyL@fcaM9mdFQ+5> z&g#nfez3x6V?SEo9gplf*C|w+9j^O`>_*oM6#q`wd83it?5bRg>=su%xpbRr3@O{? z`iho%hwHXlWOur5rW4!k`f@(9J+7zdTkdf^POZDwbyya%`&`Qlk=^flAPL!nu50KR zA98)ni5_*G#EJH~;^`5eaGgjkc+&L%ozdT1=hYy4#>Lkt+|Ro%p>@3A>Onc|ce&_$ zUUEG^%3g8pp}M{5x@sb_Z(NViw7+#-MZWytdWZV*qbs2p*-x(6!N`7gO(l1Kaa~81 z`nT(NI?YSn?WQ8T%zbkMvMug$obPh?E3}R)+?At{UFn|1%5CoO^~kon-=@2`);)vj zeVuy*mwCPW&C`+H;C`9xxygMiQQzz?U5xBD_c4Tax%-wOyTd(k6|y_sJGso=?)xdf zJ?_E{$nJHA%|^D@J&X!=zxzG9)Cb&yX>kv^r_)j&cK=9eKI&dZm$1*BPml7r`#cVK z!rh-<<0<zD>h9C-ss+fNal6R*XWgyT!ROsiEJOB!`(Ya8e)lfw{7dex6yq1}p``2| z?i=cnedV4>8~fV5ED71S?u=8AeTP$VWIwnYD5@Xbku;#6+@nrI_OrWaGO}OXBe>ds zyWiqOD?IDibEW6#Tx6>~d|kl3#&a<p#5zwSho9o<M2$Snvtl)}^`6usWM_B=QwKMA zMpJ3e@~kK4H+n9n$(-wnAw$md^d*58cwXoFF7%`fM|O#4$~0t~Jp0MW%RFCG%Qt(j zVcX@N56Gpho^y!vO3&wKAiK)rp`~u~oI#z~?s<$RdaWmiYI>cgFHQS;Pc4<`2G3(7 zk?r(+L`AvDGmpA^i{}&io?ATy<lrt((-LI2dm0jv-RXIctG&w;M}67j=`#@7-JYMR z*Y|p!;%fJLHc*U@d2T%%+2fusNW>GKCkQ?1siSQ^<(Wh*PkVNeq-Q+CIK#7^yO=%a zd6|-a-t!3uyx`eJUccz6rfgsK9NviR6;BR_uMZy!U6O75LT?uJ;v(<u<;X7fUQV01 z#QPHUaFaJ@1hPxL7jv@9yoIFoa&O5ZWLv%e9E<D<?`Kr9E4|Uw^sBsC%&zusqe!-S z@kw29(fh+VWY>5fBU7&RJ}w@|`!&7M4(|%mbG^4E1=$VWe^FdFdWUh`PVc6{$Zqmp zaw@W$z2-z@w|INA%P#MuRL<MI76o*N_XMutPVb#$?Oon;=|FaSU!{fY@&1iEdbjr` z8tpya&+Cxg>pgWHvc2B7sYv&ElR43Y-nXYCd&t}21Y{3;pCr|fc-wKJN4;CAhx@#* zaH7Y&D=6m2y}hVwPk851f1mWenu_cxZ_89<&v*|fvS+=&h-AF)QMaG>#?g9S@P5e| zUiFTrxL)&qS%~a)?=ouF8{Vs_s&9Iy5ZPPa6AF;M?cI}w>>Y0o7xu3AVv_Wp_fiVr zeQ)z1WFL4>CFei%rc@yN$b0iVWFLEvV3$w44~#<gsrPBJ?lbS(t;qiFJ(jZl-1`-| z`-Qi@9@#&<r&C5>dY8~^e&tQ4Kls|acQmqZylz6@diT*3zw<5`itKyuFi!M?_g_?- zAHCa2%Rjw0mLdDe`>!#`e)jU8*K_~NyOfmu;yr^h`nPuv7q&cX0xfbySSv-fGHm!c z$X112k&A3~SU7R62|H^8vbAB!6x_P7c7#p|OCWnr4VyjQQRA5VCZQs(^KnQ!%%xIv z%qDlcWI}61(Fcth2srici;<=kQ71B<A>%VQaXne*q#@0o&y^0HLV`y&!bIGoHzXr1 z9YD>m>T)>J>J*YZA(6H@DS<V$EyU9_mnJ;-V&b2F4)y<XbpwGb)rI8r4%MHEaia>S z!R%ENsY3Uw51@KNpYOZ5s2JRb!bw^{&L!_JMw)s(^&;(6>QTmIQki*H3DTkXSG94L zaZ?V`oDnpp;b&9Kxfxu;s7k6|!PloC9sL-%<Q`L0gLLeMMx@1e&qP}K9@Daqpj$#g zr!~ae{ir0QJ&vM*^y~$vAZ_8j$bsnbG}Csc(p+MuQ0rs=L0xQr>jd3zBY7A3!$$Uq zBzI!FB|2^0t7*YK=FzTt_M>!qt(t?>*O3(WnMhjuUe0vD84XAiH?hyakIzPW_={xT z5e4MSpfbv2@OH{G=`>L2PX3u`ijS?SOQ;EHE^1qPHo24WEVUx@2=aHxwjoHfQ>kx5 zbJ%l4UM13zpPY>JZS^flc}JaHhU{H+8AbY@x)<CPF2qM;o$ekVjYZmX#qmgc?VuQa zdnk*9Zsb{?h-pas4JD`gM^i2Xu4zJ=cmky}FrM0T_z2E_#QKp)2c32r(!oBaNk@=x z$tO?;Qf?yt)H}~Wnzosv(z994=t;fIOg<B7){7?~9kPYGkzK>thx*naJ+hh-I%+iK zJ4}(IIhC}D5#3oHc{?f0oxa{#RronvPjqP&(srj%OJWAm0%K1Eudr^D|2DG!FxlgA zhp#-xFsw+gb9mfN4v*W1S@Gfe@c6Y}7-)H|Hs{VR=iIqNnE!k^;!x+y?$Gn)uqfx4 z*FLuG)aP7Kc$nC9-!DLpyWew62TW!Cpgky)@;M$q<qH3*ojZKSg{0hLQ|^7xM>4}L zx3Iv9G&Ox*D?UuGMGnHfr}Spmh;Zk~IxfOln#(>?uZ`5}h-!0A9v!-lPVJnt?#?mJ zfqB<hedygj_|V&4r|{O@>9C8q+7~ZC+Ur{^0d~Ujz~Sc`h9_w}T0O~sL%k>Eb+)Dr zJr8Mmccz&?acovG%R|m(IxOsBq&X=p4^IOI_lTt|kNlE7i;iJhx|22IKjSRbu}o_& zCTEW+W&h{YZJg$L#n0j3gy?ZrzNp@1wqLcf?Ikq@7{qFRMYGNghkPm%AQMBmqmSH# zLd<`zU$I)h+|GRszx@6K{c3anqP@$x#Sj<m4qJW+2#IKC3&{KF;aG<)j=!E7`Rl2X zzn&T~{(5TUuct=-dTL|`_BWh>^ke$hQzJ)N<ilT2jr_Nt8cAUA7W(W6g7;@x+b$1r zi#z5RmSZnsxqT0$_-CYi{3QNFUy9-GRL1(QjqDS@j%l~sn07yw^*u(j?Bm0-44->M z`NK04|HhUM{KG>7{|GBSQU}X+;BQ9hXFwucUf&=_&Q`R31|$N{fVkRu?~-bFjPo!E z{^gu5`?n(OijQ@|t}I-`;2HwYs@P9_gn8OrO?Y**j!D`+t<t_t6do56h1<d0|J}2I zPPNxj3`a2S{S%^McfvzkkoMUH4!Qeg-Ga2=)XhlyXJ3wVKm&Y{`-q~Okfu()8R?LQ zZAgc2xdCbZM&cQJ%vDIsqpn3dF=IQ@V-~Uh%%p3O&b}D<C0g%x*QJ2FmvW{aV~C~a zI*#vk(N3hk3t6A=I_Jy$nlxp-PFzEtAl~eCEDxQ;^vD5MBR%RqQZp=(V{^uGCBt84 zc|;7;QDfLAuZe5Ozw8R61^bwe{{AwgV@7eEh3Ar<qWd`G*gHs1@f$ZHE%CBk`Y-k` z>&BkruOQBfAGxaPt)z2O64!imA7YytOANKk*>l=7*35jE9IU&JRMn5-T4ue;n#Plv z&hEx}kFDlhb3WqOxhJz`ejHbH{4#Q_<uX#<x|TF7p2oE-IgdS;zHmL#6DE--Cp|#! zog7Y{ELW)nR;Y70dZmgdd8<?*@vc?_iFl3LL(12x$4SsS^&lm9nrh~_^=cle*`OXK z$!Drj9DbJSKx7-$*M!bik?eAg8pXNKRpZH$^VCtK=X@1QWEZHN<iUk1l?=Q{btCl` ztFwsn619;%H>vH!d8w)+WtXXWT-4?2V$QHtea*J3R0XrE)m>cnHWf~Cx2qH~{~9%i zIImULlZfk71i7?Beb4n>ukPgxH>i(E%Z+LwyX;g82;HRW$@!brv&3?XQk?x(wVLB@ zSLaY>cc|mIqTOmT2i&7xB@y?kp2WFVWs-IGse4#?ziMIS1L{-G{-D~$>>)Lf;~rIS zklcN0GPB3jO`P^|_0g5co={u3q9;{PB6~_L<+M+$>zF;OCKKm#Y7d$Gyjo8VzMv9_ z<wbP~sot-~v+^bNBfGq;t|jYUQG1E{Rdou9ctaI%zPHuIl*2n}BzwNES~=ebs-ANA zSY5#ZpQyLV$WPUmT=ZvZKN<3O)q}e9xw@PaeW5-lx&KfTIs8lY1nK-ry+)pWt-j)b zZ`2A3?pyUEdHtQrAkOdAdUE1N)r}MVOGR_sFX|Z*_;2-3s@rn2fL&IY#cW$?<`d^C zb3fbGnlEtLb><S1dy4rlF7s4#7g=zc`3UD*Z$3aePd7WW@(i<vt3Atnmvo+E4kgZW z%@LxX=7mIkzL`lZ7npBz_=V>CB=;ioLk_>#baULL=BecMW#$+XvDti|ShkoC6U*i1 z2ok^5{GQys!n}xVz0%Ai3$8M|v+`<l9*1u;KOoiH&1%kft+|DCUT03=@Ezs`GUR&m z@1myWEu>|qc@c--WSWF-HIJo&?J~p2f;-IKoaip|J7T%d{2Ef>-pPN0SRZXz9dW23 z4@Lgkp_%=#WTyycN9=6s9WgRwM~v4`bLvwMOYeh$Q;#Tp8Wr7UA8Z%054xLWC9SfM zMY4`1Tn6_?lmE(|e*s|;&h{M@>1_Tna_ScsWyPD$=I`#w<2anBx%BQIrFZ{`XeV}P zkE+59_KIxhJyr@)G5SnRZ}4HxagKgWwF3q@8+@!@*spK!Rwu7MX6vAj**fZDw(#I% zHY*zBwjX;3WEXb~(+<;iBi-tL<W8Fp2$|%p@zAG?hJCE~|LapalOMJZNE;`mJn*+7 z^$DAE%sEw`uthsZsQSs_0}f2B+HftZh&DPH8KQ&UdosajcSNT>V0+|aV7?ul{not( zlizptQ{3*qL1>#J=$J@-G8onNWYApf3nC`Qv^7l3=xeszJOs=%ly#V&e{RQ&oF}h6 zR=iio(6*{~YqO%-FwM{KHvEhT;U^xZx?nF@xyk(Q9%PrA)9*%hnYo?NW^)qTwwS%| zMRvJ)8!NY(qX=DL-o&0)nrjJNWp-lEtIegX+-5$^%3bDFti0X4fzV#_O=kC*XR^z` z%{6RWZe7O86;?B|l~&1p$ktkk%+^`|W|vc}$2j0rYcQb=))OGYmid42cr}US7<H2V z^@84CFX)ZyO?~+51--vs(EIBJy}w@2`+w;Ly}w?~`(v->$%}Z;7=~dQh)4}n{e%zM zDf|JzPbDQKH!qlJ7&8~tHn&V)(9$};wrT#%)FGLRYqJ(7&14^JDdsmwt+$nGNKP?K zmzBe01rp^M<|&z76R4c1E3Hnmtngu}y=!V}sw$9<8E-`;vC)c1vcmC&dY4K{|DCB7 zDHxLQMygURAjvf5GCjniW*#|Z?&A4Vu%5;97t}X5&#TQ&N=r(s&B{y(s+`g?Z(dXL zlv(xDTUya;%Ivu_n_BDYIh1UfZ!>{~M$BgzaTe#Dh2jD8<{deuy19Nq^OS`^Qa>es z-ptlH^>bUAr<9cEO>#)c1PNKSX{qT$rp#|yFeR_FvZ!)l+WeH1T69VsvUo8GFdVV` zt`#h(uWOn;L(^~kiLq0fmo)#r@ol*W&dpm;UpsS7I=BWMYMMS{$%5H)TN-Pdo2D<U z2T#F2r%TaX{F7&PH-`l_(A-jo5h#P<(`U}CZ>nD~Z%%znJ^Ny`h|MnAE3aJ$*3X_d z7j-VoID5v-d2?sYZfFAzp1xp?UFA$ax^?bMRDejVx}|=OmV;B*Qa1zo0RU8xqItTA z<q$WjX*=~ZTQGI)oar+c%xgxq8x+i}Ljjax*z^TX-{xjVk7mt-V%Y8VEsgaH=GM2= z&S~IsxwhGJ^fGCEoW$DVRW-X!FEk%D{7Q{=J!<xuVW@GLsN>gatP!ea^Tr%ATvzhb zHP*w18r4t(W3vsnnPvyW9iE&s`TCUWw_HDbByMGVXAX0j*6Anu8gnKm<m}EVrjaX8 zi)VGi{?;v%_g#-ZuS=h+PxR$j#}2dNXR$|bvj-;gfNIk?A6)!@+bXouI(lsjO0@Zq zx_bz<f`UTW5YL~|-XP;SK%d)a5x-g#q(!1L{DP4crIL$lM6;xhUo*1eRC2QE(OLwz zXINcS@jg)rpQqJ~)J;D2?xBi{Hx}pMdlO3a!IDhlv4d&C|A1HfpL4N));~H9NVZ77 zs|xZ<U_g)$1XJcrZ)vp6`;ST7_9s9a&@^Ce<3s~Bj$cE?0Sd@E?UQW(<oGxO;-D~# zc2Fpa526Z0sp3^(HTWN|@<Y^cI{c)S)mar!9^U5>Dn~LCMg}HJCS8pyfyu*2+>8_4 z%aM3k@+?3S)`!VMNWxQ@R3nLCDPjzgsJ=`dL=v6GqzXwpmfDR*66^7K3a#)R4Vy*t z=qX9%U{#vFfB(j_Yl>ToYl>GD=cI&nC<)sawr}Ic*4E)+9eVX1+<@Pf;w{BMVs=NO zJd-?E{bo}#M!j_KQ3q`zcB^EVgWt-0kDP$Rq?xP%t)}rWaQ6U*`G3kx{(!-iE-9Hl zqt=N<eqS6B8pB8&(q`{Jz}`Zvp>3RiKp@lzq4&1q1^W*$LvGqZVM8$Jgbk?rg9cZW zmIvbpJ)j_9ZL}<Y{S79xrZ^{AtY@S6T{L{gh6FXcIA`}pzrpd_aM1AKDZ7U^h++-% z<cwImcHP>ws|hAZJb=OccAWK+p^A^rc^?htAgA-lu$-`(uzW(cB6fy1FpXBKW7|0T z56J%4<Jmue@PAC1{<I?gt_|b20^*RE?-0>2`XHXPgM^U&5;g?%9zMjs0oe*>t2oMk zOvQ<fajqb9;#`zxwk(-nZ&x2I<i$=9&~0|NuK<2MzNP{2vxaR06Mo_lLCA=j$vKlJ zPhM60bwl!GGfD>?{P3Z5glf$xo}H5%h(-7vMC(X3yCyluWl`y^3oIXE8tA(9@iJd) z&Bli0n%v^R0NE~{F;od++tuu9{k+U~>~2IujBhrJWgK}h%Wz!u|EfO!fyobHoxe-7 z58|SK*Z2c1!_jl`?0%gG*ZoQjIRvylpjnK;MMeErWq(ZFe^Z$;e;cnKAi_~^($V(v z5p`5=eudNOtB!6g;T4sHM7;Vc?U`V@?I4QZ=d{ue=uwkUQmng(rrvL;k!y0+OgS2O zERVz$!#pEO#!W7ji#uJDQ#RXHU`)<WeOf;oYEk-u1IvpWCm%TU=o}(5Cm<o2Q~K3R z-aLGB>d47$>yuN8lhblqLpx7iwfUHFlc!9rshL6|<)COcOPiT+$Fk-lA?AD-wyY$q z1FNN%bbvdQ4teZw^wG07uhN^EaN%83C2vl#H?JSCMVdzPubAlX(#=1s+o9u)|2Yf& z1DHZLPC1Pb3-d=fPDlgZ4V%$AyQyXH?773qVD0^(^@p@TH29A+f&wgPyuNHeq=aJ~ z{~5^vmWgTol)#Q{bGP>`Ozd1Mp=4k692j@~rxplGgAQ=y;s(fQm;8FIb(l)V<WM)C zr=diSP0+&c*;@S$*1|8`T1l!VCAmRga#XP@E2N5Fx5G)ys+8nFH+}=xdJJ1lPN432 z);)_l>c6($RodkFm0ar;LnY@7$A3BU3l!|i5v*XdbYU-)SUG~lpg(D93!A3xfA}3< z>nWv@8}L_LY+v|;5Bx5#^_o)W*anHz97|HidP+79&q=|5I3>b=_{-53gygOD1IC23 zmw;i(nq$)CTvL5i+)&)uASOSYXekIQY!_0xho>a>AvJl<WP0RctvJLLTx+UT$u&5= zI7D9_gJB&q;ccecnA2Lr|3V14&s4>|i-zyZ*;u0kZ+>6cdeT%Sts{Wgc49}#6!f{K zXQ*BFl!qXC8N~RtLZ*DfRN%XRpvBQ{CSE3COv0H&Acmie+~h?q*3P2Gnb1=aGRdc= zY8{?avYS^5A%uC34(a!U-S7I}>bKTXtvI?lTPCJ(MZzwU;PUhi)bilnB}s5C2mEGV zS4m0fs+^LV;^8$Vef=eCmd}byvZ8#Z6(pp4Ku&V<@PzksLjD^*xuIlXL)oevt9F>x zcamNyzvpayVyQ(XVH<~si6T)+EX}%O<jTit;cBQ-R?JvEROGYV#i3`1HBkMOXBJ!l z3g!^IJByx5yX>*rhYmg8rCLiGOJ=XapT^10NL$;0Gbh>pkNUj|2y8(WIjA1f{eNKp zyIpD>jWYqizF{51dJi97oKQM^v*<&CJp`%g$zy8G^RFfGGVQMTxoYbd%$u5X^yEfh zO33L0E#HCx_RL|uY&@RQRx=`q+gG|(!<>Z;BQR`uV@^$2Z~S+5L+Sest8GALJT`2l zGuk?AQZoKsg@8$Y=vH%9=cH`O;b{&T45ttR6c<m<N!^o^+E^UcD1pM^(s7b!DsoF? z750czwMGo3x7j6Vf~!30@i1zky$*fHX`yg%H0;_m9{KA8#lExT+{X$HLF^M0p6UJi zxk=C-&TU_|N$ju(?Aq8mgLmy<@K2wRa8KqJ)vb1Fbwfkrs#UEyIdUC_dVXQu@~J8G z$JncpnjYG_IYTO7+L2>Jc7_afbi$F+Hp_D?{w0Gp!*mQ<E`zGDX4827|GXys*;w|^ zN0B_m`dymT_L>NsK0v9UXu(Pq3?6W|PT%hUp3w6JRM<ys(8)l|CtJVU<cIjJ4r=k5 zWN6l^)d|Q}tzwFds*%ta@zTbIhMZM7z0Hoc1L8;ft$l_n%}HoI;<(=0aq^4#){BPP znv-*OasqXbjt{}k@Zp4~l;kYzlan*hnnxv-O(%X*4zTjf7mCbJ|6A*n+L9883ryKp z+27?!4nf)~NE>sk_AOQm&M!vv0x>yOs~CXQ?4P3NB!puAIb?6!uhd!ugO28V8XC>@ zs&h_GpVrAEa{A_^fndyMT2nc<klAlmZyk9Gf>TYkIAnZHCk!viNr74Rv5A*>A<5&Q zs`I1j<)B&wM5b{()3!&8|5FDj&h>`qq`vf^(4VF;8wLL*lLqy?OaEu>vF(w;@3E}^ zniU;zi~-A{Yi4R~w^TxFkrnB)7A9E{NXJ_3lai0Hj-S;hYtV=zM%`nD`>dr&{jH_L zMx>^i9c-oNzhhy&YN?LYwaG^h&q?nwvR6v4WLzJyCb`iLl5>vD>7CHyfZF4RkHm-L zm8z|+EE-drTQ#n<D6h6OcT#PwFJ<wNS@xe%TU%XJR#iJXx3VfLqqeH1ya4S@^X4|# zN$cF^*$s2+>wI{m0Dbcd^3bcYdQ{oCiqhPY+R~yjqDx8%`AaProSvPYpU(lKN;s&9 zo%2CPtuJ+mA5TGfWl_mEV!(*hOc_vJlAD)TU0NGxOIe&+J~%zCx}?}4mTUMeLb<5y z+PuV>1AQ|wZ2b7zqESUvq?JhWgTVQ%P5JfBT-@lADu+MmNf{|=*=gw+Sy}1XnQ7VC zS@lPxXOBi7u7`^*m{bmAiGx#9(ozSazHxeUt@8v-?cDmsEs2#?6$5<-*4Nfb3r6Ht zltM6*3&xGEotRgcTTxr(%RsfRqEJXL>ts?9Tw-F~yw({_^#fCrh728&H8ednJtI3S zEj=}J2q;X+E+H+|m7^<i^RN~zoa({~qiNo}`Od8AX=FuZRc=)QUIneK9aB~f#VCSE zo%u*wZY9X8DXYS?)n!Gaiwg45$ll~^YF2=?4#Aa$<0?pR8oF>f=;FwzxpCeCIN?x5 zaz;V=V`}rqRgWs6+GS&`BmU90w9+}F*3ayNY45m-{DO+wQBbXdvizc4DpN*!nh;u2 z;_$)N`AMVO{FM*R%BU_WslXIa(bP2H7mh(0vr;qC^GncBU6otw(2^Ap1!Q9@b7ngG zkie3H|IC8e_aH{-m}f-+@f7%ow!Eq$zi9Mm%|_b*MN_KFV9{lMiP!=O;Wj(xjjJfA zEln4pVSVXoK{mxD=2M?b#6WGs%mf@P7hCyC9EmvglTHCU)K(UZug$Bh@?{$N^)p%< zO7S31;q<w6c;E<qY^wYg2oMVjT}(y6n4-!mh_Ae&U~~~36ULF7WRN}5*QbvUGD7{R znyP|YTiUh0TBlS}R8<Al(V|B;d!>i)P+0cROncq7Y6Lk2QTmF!LLdE8WmSG2WIwtV zT(i|4RM|3yVh78Qokb{tN>qVl+l>Wt%~7&L&=%rBLxB*5)LI=(y6xMcJh_t!^2NpZ z$;ASKeWk5Ml(K&n&Q36^8gx5U+jfvRIAv05d3tI|vA-bhMX$|S@j>j0-r9E8AqcTg z*j}8TwlKF6Ix@Pbtf;ES;c<0kL9N_s@kv@M8tmM`0CA8|L5c2~pQ}B(Xe8Hrs6EVH zGkOGV2rZ4Rb7pAS`lS`{m=5_E6r{CneAt-0Jgj0u0sUkih%GJ8g~jET<=0kD%q_1? z70avi)0vt@2DkA^Lk{#w>9$J>T2Vl?w5;r0?1H?soe}ZtQEjx8{n7dx6sOs~!te3K z`v&b(V2^C%1!dKx_Fhm~Kp_@YQH+jcYy<RrQpesnb5TKFZD!_Bdkd~S=r*5SUC3Qt zyS}yyN0W{ZeqH&Bje^DXxpj4PM0z)Lc7Y+I%Lfm^hG_4=1-YX%;Q==u*l2`nqJfj> zo}AqXAy8Y&v|vOe6$SYvMWX`!1Neqe3e}Dd93;dcS&o|sw8H$;o!!V88D#s_RY9?g z?LGZ_ktR|Tr*qq(isBS7kkk7fqMp>Wq1hQ(*g-S0Q-`G156;NsE`b4ULkef#L^wo4 z9$#HlP*qzd+pp}swsZsbM5!KP*{QMvYsJmh?uu4Bu^_kDS6e&11$RVdw6@fPrHP4) z>Zcz!aNr-gNmNyyTHEG{+9|SgfjCDWoxNUSR43HqoKDn*r=Zg^Q-&ZW%tn@$lA2LJ zSVvtDn_n-6CJhb!D@f1IknlE`jqtBYnH7@IuhK-Ejg`zO8JAaFJG!EvKtd|iP?}nz zI(*j>6}78As7a+}Rg?K4+mY>x?ASa=0Wy+?W~5|gW@Th%XQZZOWMy)BX&Dj+h4P1y znp5NGqSV;othQbqzG?%M;7S%<D61~4u%p$3d&nRicPyeb7i_UzT{>eiy<;O7uc|G| zFPh+39P39H<W^O~8&{X*mPo8*J7b%`(Iw+@HF4F>G91pzW>!Af@k4Y8*g%6r5zJeS zy+_BVX@JMTH*k-|ZZ@vAV0<-Z#Fkc6R#H?}AkIz#>{^6LqgtCsPj78%@rOz1np>GT zi&qK<D)}Ja^rqR<n|+CWW(|bG!!!6fC3_x%-Z2H0RkgCh(gH9iB!qStC|&)R1pZK1 z)<}0FZjW1Mz)NYZVnkp^Ty5ekUn;JR(CCi@v}o;kArLT>6q9c3feyb?GmVP+=K7YR z$_k@sZcBdsEV3gIG?JC{$P)@GDvQRI`BGC-h6;j%T@wzGy+S*Vzy*iB-*a7ox`SSX z1X-MfaG@qwT^Q<FZPV2Y;bt4GXn7@*MaATbMv`B(RS<Wu%Wa!<eIc5f;#_B@%axIi zrTiONXzYNC<WxIs(P9Z~A@()2)9hFI!1W<LMA<k;XB{)rR)=2tY8RJ9X=1YnZU<B) zn{L06rcp(zD?_;W8xcr`9abFZto&LU6xal-X>hv}@3x87^p(4xsflpiLmUqz>J{Y4 zstT)1M=_WxsF*meqS)a`s0Q$Ii7PIcz=M#2s={%+M3(aft&{%EEQFT2=`GW7STMT< z2!d45IR$9r_;tJ!Y|VN%c62dIE<%HhjJipN1Y5LI)rNgWe!-~fF}82yC68lwSO+$@ z)YLS(ey*`1H(##L=<c8w@QJo|>y55psB<|P!Xk+ut8w<?5K1j3YvfwFt!+~EaTZgF zx2nJv9!bbWnC(WjO7b)*aIqT1JbmQQhI{_m0<4e_OhlkxK53bb6P4QfxpkPh+Fn2# z%fTM%*KaYJ)Fiy>l`%9UJu@XcEiEm3NG5hlIUow6$#Dh2+xWqE=uDa)52ds~Lw2_! zNLKVw0s+Q*+6SePq2jsh(~=PW`gPAaz?<1PeE~Teh%!cv8&}eXUveB^i}p|_Ou!)* zZM=Z2Dy$t>R>I3Ss(qWCl$SOPwYfOFJmiSbnZfTQ<OHQn3|r{mFS3owCCyc{XCCL@ zF>7lJN=7@lg4R+c8zC>f5QkP(RMRL$t=UH|(()(fR*c48KDvl!TehEpdiZ0ul*QVg z=-dvI{}ZpvB~sP6jrwgP^pMpFg4!q+;tVR56ZYliA&#!F1HJ<_lpLmwI>&IfDrr@q z$?Ic6+gsygQq;&k8^{}1R#{zYpZ96^VMpf@kRh699Eyw%aU$1pa4&k$osC`sLxOw@ z<5N`XD;<YQ2}K+?XCE|&_(dJ0`sqS6k(y~AJ|LG!!Vcg<P7K9Yl;>9E6_ylC@E;I_ zvM1A+(aZx{@wv8%>wwQz)6`7LK^E>@v@rP5&NrBT$3p}zZ8*?>UIZT4^06lg3Sw== z7w>VX%LpI}I&P#_mq7<PDWO(7m(z0aP*O0-zw-nsU_g^KE|RTxbA5L0zq)glDF>a- zL7?80?6W{SaK?_9{~w&h*%An5Gvk$V9Q2F3JAgrYU-7$!z>R`ns?)P21PQ*UAxupi z3^8DDaBRt*cd$=R=e5SSvA!(lsKxK~{ILNp>L^v4Mu#mVht3xK4L(t8qr%RZAi*<A zEYGVHkJBckti;)8N$w~pZQB!2dyo9}se(2Pi2&d>gF=|#;It&a0tzArn}s-~cVr?r zfv_mqT>OR;8n1ElhhT#4-!LABu?K0Hz8Ebr@S>@_4UH~=NFpIKDI+PB0Yz3yR?1Lc z;sU&qI=#7mpzmnVm|Q<+Mtxmfecj;9!7~<2pF6YBx1fIEY`&1{OG_UzBsKGx1fyi$ z^g8D>$GOPWYNbP9sFi)4n>Q}MpcV%(!fsIR_;*|9apCT#K3Il<D+cYt5AOYfdCCh; znZ&O>A$}KZ)Lw%JA|U~@?Q(68D-IWQ%Iyb4_BIj(+N4yXT8Wl|*d1cja*io3r?h@f z>GZkN8|s6$O33LDVSw%F>?;ZX#z&VI99~dicopO<L{1I-f%b21oc^8%qn(&T&C3a1 zfHrWsEyo%`1du1TN75?nX9ik=?_J0~WnT_601YxnJ1}l5Une?}cs_7fGAVUvTFTJ0 z?4g-B?#WI~LzFj!=V9C*4|&5UpiIARzWxot?{%Cj5^QL`ywp_RpS2s`;5jqrx8~q^ zkCytygXg3J7IpCrZa{flif{0&Ie5JvDl@pLer`icV-Bn4&KoR`HP4<4U>08T<_p?` zomjaUb&O2>aDeUQ<G>a8Gkd3)FuJ@J|2wgY)_(u#gKf6<ZC&o4fryVf=il|(9xLhy z({cE`J%RXA?oJ?QfDjZCYJ%Ea)q~0q9Se!_+H4TK_hFRd%Aj&WkX0Q#l;fFlrTsd4 zN&Q@-dG^wJzV`!~cnPe1L7Kf-zn^ZXoj+^t1Pq(EpgEL$z16gd(CLD5ahs}kNU7#7 zRz!1XYZ89b5G!(wL+<?OvoCvlYqMrM5|V(Xa2)Q=>HEHzg||ZVEZXUV=%9Pw2fOX< zzvEpwZgiES6O|JXmHTfM1_`aC%|#P^CykQRI{sCzdIAwMoPCLXm)yQC4GM6EW>6(` zT%i#R9b!~d=|fNA9IXp5gF#wKMn+aj#!#I3;zm18!&9@IP}gt$ZP}rjE<DG~ZB7R$ ze)~kNJipw3+tQbg<5sk2kJ!dr*^~Jlxj*1=d{*$o3}vN7L437^eb7i7S|1W2OK2V> z2m5w@sOg9tz}{egg##4(k)-59eF??yvBhXpxX189<sd;VG_1|`8#oR-*i8mUr8&%Y zI*uU(@9gp<i;ae}2E-e3rhgDQQ*#`AZT6#F1apD=!o->%d>6%!_)w?m#LP_yUg!Wy z{jv>^ObzpMoN=k+WU6>-;RHpvYH)N$V)wv_%Mhb*`hvQ)nl3x@K@VZt%<p$L<rU*b z7nKzFhR{80J+SQ&&%mT*I(DXmm|CAc7z(`&5&{(<$jOk0EMO-=0j4}41pZ+64C1`Q zv|tycZ7o=(98oy?P8+@ihi{d+Rd)1dJ3+^eC+YjKa+u1UiPwz>J17Ey{usTj6QGl5 zYhQF^SSO<<F$CV!bDohZugD!!n#-USPeGL7X@*HvWx39^de9Y(qb#;&1TSSgPJd)A z{tLN)n#;kj|1lT;#u~~d|5}2s;K^L_T(6@IO8*^xXH9`yGZH0IMQF02^Mtb6xf<lr zT3$tYEw3sAzJw26vlhQJJg$~K1UIAjSdUYej;mfd(5S^d_bPN?BRhd)bn&&lozmJ| zUpL4RV`4%QzDkrJw^WF(5O$tdQk{>T&L{YJ5MEhMqy<?+holcl(X*zaj(0vXvxa0F zdDRsayyrp`ICQEiDjVZt8KaSDL?~jAzDglOp?Hb86=PBdAxRtPOFY5X3XwwDTR?S1 zLFFK1Z1?5(q~E}!Sb-C(#Dv!7=`Fr~DT93dQt?Ym@Ez$($XSr!OO$~F2^Iko#DjbZ zb_;P0^a&PVKgxIFK%)ZJof8W3Qw`if8a=Lz%2Sy)s<v=+Wd*L=@~W!f(@L9<^ChNM zm-vPa^BvGwKCgM8Q8oe36Bf*+8!D<8Z{*>%Wx1IOp_k?X5gv&sEH0=($Pk3;(7gmF zJ(I13;2Kr1S}4l{zOr#;qwr`{RUsbuD$A`!cbs^TvI$jqa1A7n!?RK{Rm$RYVR(S} z;4U%`9x<pWYK1fLCG=}eI2i4vr6irRWEf?z0^9^%IB#~H@9=>sbaog%+kV~z7@C@9 zCl~>zN*m9`d5r(MiVNW%&<MqqSWab0K|%SrvVuu?6pyo{8c-%2{^5MPvb-d>1_!H& z1AP-0%*I`Bd3d{30`bI@#na(!x$dGoh^rirK2=ubm4tHnAkDJuN<4;HA`%Dd3JU(e z*4_oUvgEw)JM$oSDKFQ%GA&V$P?yw-0=P3H0P|e#gLCm3K!X=?ftguy>AM)<V&-xI zTo8|040jo?Ldv2XiDs20N4DvdY*8^2QB_ifaVZrgUP{!%DoU~?OHo{kimqBJR3ay2 z6=_i^Cd}{uecgTf99#^Sc1{iEo<7~DA76j{z54t5TovL1#iiK=>oL1+;UbU_ug|?+ z`>r+BoL<z7f*Q1hYvD9bFZryhy?$jJ)?>KFwtL&1t%0qT&CaRK-dg7r3Wqj5kI13X zR$H^(V7wFbNq@^YH<svA$sM1xTwx^hWQe(h?9F5~ETO`KiiK`pSs0&fj!m7VSe9(7 zG@FrnA$xq*`;dW~eM>={wQiF(GNN5fz0Cgl5|hB>LBy|*E(cT$3+Tu~1|V;7dOnSK zgk8_EFyd(c9$Q+RX^+iZZOtz)j@6(aOysp9sqV4nTyv5w97u=_I;HEwE;AfpnpQ2n zu!)Xc9X!bvbHDu5>eBRVgfh4Frj#3@yR)*^-QTt8u^v>qS(_Q}qD}r_F}twrA{6GW zD{L3X<v%&;OaD;5b?#o1!7|irw8p|*DA8OP9rom-tm%uI7;vdIdv@sTI0XAjdwzMT z{d9Y#-6VTt1>yjWnrM#8nXxrCx8_u4?JY&CwZMv9nwx~MimYOqRQ(JI7&|_P_J+## z&e0t01%dHsy0YHc+3D>J5Ifvi*@UgcyVFm#+v^)Ew;FF{xlPYQ)Z#*zo)0q+RzgHT zjgmGm(CVEPKizQP&Z!M8*I*cEr{@EA2FW3U1UIn7cWyCa5ylJWB2g^Y>-dz&RZAR> z9U8nAazwgEF`u#}5C|YGwM6>!H>WE(R`|+1`?1&B*CBO{ftj&!(;cTKrmsvbogNr@ z+bGX%KXbYD=<uT|h1q|6X=?DanTnaQ?%5Ig4@qbKo<;+njYr$Hry9i~dkpZ;l1xud z9z~}wh*41Az8J;u1!px9qb1!L!5uk&p@8GLP>44<f{vy;yJjGIT4pT+-zXYlb9rXT zyt``)@o)))M)|VFGCg+n=y$UM_G*sf*Qe&2v(v(i$%x03P-nwqV~B!VIq!zY>{T6w z)n|p)`N%K`Fcaz<O}nMqw|Zm`fCXz9C5O2>!B}wNQCZ~8Lo0f6erDVWw7qDYQrwIB z#k%ww46wB@>{zSb2F7slRWXK(KCo;hrPo+RHIj8@A+5B45GFZXavUq?XLe%t8%%Cq z!e=P!cn<5S(UO1+og1D2)Y%d<@oW}yDOOflO-B~8)?8>ZS0Tq`oU&UjsVf6FSGJxz zCGIXN(E`$<#+I?Wd#Yi%4a+X3#}-hl$R3>pn?QpC`e=Uc=tY$!5XCH0R0XZuw^@^d z*SG}L@#{-Vi@4e5)ZkF2^&4I@u{aW@I-}d-mqT=77?bXEI!SV)y}Q=EGdwhKAOd<Y z_yfa++HlVH<T5V48c-Z$)m^JpEp}EmWi&nW$XgoUYh}%I3#zyl6mAU!W`Kt1=a!;> zpm#_GD|e6SRI;x%M_b+>{(oX<@Exc5eLH`wp2+uc0E0qYow#n8eRjy$$^u#qlW^1u z9C1D-h>69wmadu`*&%RNG6Nb&8$rX`-3+8)5kEI41#Hb_i|In%dJQMXsyJ!n4aPgy zTwrBGlk;iK(DG0@>r%OhB83!cqtKDt7(Qox8gJIfQO4AVN?;gnO*Lm^_|)6x*Z^&_ z*^7)Jr;OtM?_v^-`>z%2D;v8V-eN+1-y@&P2<@6KlaKX?A~wtn4rvWf1gR%Tnnx6| z*OyzPO_Yc`-MzcM7$WnO|N2pkHRf3jn=733y3^h}Xv=pAr0$hq=>-+2g2k@)NR9L2 zzKkgv7u>!txI0>K(fBlosx|0~PsntAd?`>@?&`!<kAgIa+!aYtMui60``B|51VJ%X zWVh3Ku061R`_wjSEQl;6M9&5Wx?6jLJhxwEnuNL7gxcJwf?1Mfd~T4@v>EEqg^5L+ zP7Qg^q13TePJ|aI-D;d3@k9B5UaDZsar9y#Nd>KkWh<5ja~kqVvZMLX!~FOCMgS|C zI_)F2_M3QQmj$n$%{3c(cXyA;XY6s@_8<;CvL{KIL94A-E4zJDAy=*&54#F(N&-d& zM7!BTOeJD8(H&(01Da;H8R-I=-g$%qUDEXQmea1J3z}d$?%5G_S?^EV5J%1y@fp8I zVROjxDLYI)D+}>(w!OBw(hYL%L5chaBIrMe8ZFIFcIgJHp$%_b8fmzzBX2WGNP*S$ zw043J#TrRC706MgcM;!8QWYyPN%J=ECmds4I6b{s>P3dV%Ba8s$7ty^_G8UO+f}fo z1eoN-?0uO25?V1vzhq2n*!UNh;`q6%k6(|%;*BEQG)!4`cll1Y2s811i${A8jw~0t z0ZqD5PRk7kqKn2t%+|FiVuHCj6_+e<7E;Z$nPCL$o=h_IBrHRxU*+UzN=;@A(`)zj z0s6x@M5!tZ3U-^mHrs4nHMFhvLcHV#Fr1|)I6eyj>b9af64dhz4)s+lVQ-OOJu(}^ zj~${FEb6)Wv4vM*tBb{~6-DH=z@T{|8`M=3vllUi&TGWpn9SY`c;7fDmNtRyofFdm zXx!C7rbhu_DqGqKd=XW2@nP2@gy&}a5M(jG)E9rh{1RQd8MTWNmFcpksUD%*br5uf z?!I7yxi5-rk?GZ~edAdCDsoL_el0h2t2wEibZIQ}i!C_RQNrfRy4dj@-##{rcA^=H z57iOo5SI#c<G`i}LY5)V*dnYC6Gsd0pg<1dLOi0B4M3e3TUee(g2FnFLA)d-fsWJ* z*lSspNxTu(<|8<&j8z~*`X!iaWCTmC1-?wMx`KDF)p0h^kYqDR*#Yh#kP~&6Qvilh z?u2ykC{WIHbnz%d?X^G?km*&J!!(8ic5_?DZskVwzSY^&4lWp`JM1+a+fSXwr`NHM z=4@K&8katBI!_<5i6e4gRhhja0xY|enUyD-(=)`tK*vB;*%-_y-3Lo;90$T>tCK3t zZqX~HHLc+rVW2l4s*yL!C@G_Y)&el}rjjCaNTI7!-1DNi=dh{xhQv_1JDcvx-19kR z#w`XKeidXZlnS#fqg=@&m^Wr6sE0vZv&fy(!vzv^kdzspy@DTk8dXK9PUfvEi{nop zg|gK`)}86*=%OJ`FhGpt`~)|TL&gNNUynp2vZ=eFsncXJHI9>+AYr=Z7}i#gsg02} z18f={dJ2j#I+-Rf3^rbD^eaL1a%OmKO|Zf_M<DPr(8jGca$W%$>hrCwJd4ebDm6_U zMcaZRZB$JQYZ+1!4a&N&L&ow;urSFzqi8{p>T4dOi$;TOUP}2OCpi7`ZQ|BDz4d5h zWzK@(wQg>mpR8!a=e&c?%cA6Ka_za{OK8L{<gXC8+J2X00C|P5^m>s;RR#lBpN2t1 ziH0r7!&`86%0m#=FXjaTD$2uSxyqHYTB?O?*hbrBe~HE@ZplF7t-q(kMp~i_C^Zx~ zn}K?{b;V3wK}+us?^+>iJyMDQmo=N=KzU_n3+tl4Mf)58R`=bG2w1Ny&d0F_$+%Cp zwVOogR%K~tkF8kdS7aiD@K)VAmlkz@^I$*=c4lu7TtO6}s}OF;nP9^zysz6j-rKVv zF%iV2O<9J<X43Rhi;zRsu+D+dQlDyHnV6ecWRJ|0%~8y)SIxdbd87V;z#IK%g(jQV zk=DJiMynP+R3N(F7&tfd7#48x;_2&)xMdTOF+Gkev>{7m(WbxU^Iyp@pbCg?%nDEl zmaQ6P%<Wx+#qRSf+XH)S%$@3<dhcN41>H9G*i-L5-stl4-p3p7<!A5l4-{h%cAX$X zAm$Mpt_XXF%>GC2&RR%WFoAjx1U~88M^QQ~h1R{dn9<NmW8F(;(F)g2vJK|Xx||z9 z7qSxY*kFnx3Ac6pQEo{#MQohWnZY$^ktSVFP2ycvZ!^i(Dc73S#z}jg<;|Hcv0J`* zqv@AY!1*}ZMa}g^2@%%zH`ousdOT^?WA>{H`6%kximNT+V4-H>I$_lfeS=jOcG-d) zcf+L}Sm<FwW`>j;OOGgGW3LEDz)NS_Xw+^hN%~rp_lfHA4(E)$FN28m%UM|@kD3t! zDv*vRr`%cD*vAw<Fpv&%8XWLvaj=o0FkCUtXdMrHHVPp}@!2GPh+dX{2-oiIhhW(T zq9r2FS|+M$=;(N{L2m2#soaR4YOc!2)95eeyi?8>;6|uC%yU#Av(42ZS0JNN0Z!_B z__lwP&v*Y4HkJ$(YC@@I<uN0*63W&0ic+L(-`Fw;vbanFksM#!+N<YVyDXuw&(fNn zU6`3LTJtK%jE9m-Jc?2yi#!`d)cLM&Reeg1C{l+(5^=*euSPin8^S(>Cz5thZP&<l zjMUpmDe<$5R@!owBaTNAM`14Xd_SX5*c8h0zKa;73bjnUIqo!zar=BMtO8a>G&YxK zos~<(rix7w9Vsw$q}M~48|Fi7G|(?IpTb8gv|wz0d2VTPrs=*T7<n_08ra5gogy6f zXp?@eRN3wgR|Z+l>bna#=rWv#HNg&DfP@W8qFV%O5Z&mB2{NOw!RGjQn0B_H+-=R3 z=4uIRIStPCpEyTiqU!b1FW+8-_zWDJx+?<3M%GgUcLxXGVY^z~*rGL;h(NvVzD^YU zVUT(>E?Xipm}v6FSZoc+ZWs)QeGB<85>bgFZJo*KT_-zv340k6<tU~aO#JdIkiaE7 z{uPexU^5d(wDl*RFy~lP$Xm-}W6VdCxt!4^bFBr}A%gi?BSq%<DU}oMfqPiaDk@~H zrc0QM3Z%8Q5Ugo^h#y`?DuyoyN7DE4@X*uX-yu8b*`x_uEHxC?BB|4I^l^mcnDGSB z0YKHjZNKi}cC_mRj{73sQWI^G0cCVfi<<+E<j5Ijr;FB2DF*Y6JH3sSz3xT_TQ1u} z_mJ$)4rZTN-0opN+O-vAMlxIy2r4~9jq^Oi0aw}%tjAak0^Z7YP!m!0C`sx;Q#MC? zWB{?+;Eqsw64qQHbw-0uTe|m_`xe9KhAppCVb|SY)SjJZqy1?Ndd=}8MBPru0k7Uf z@yYHF4MhdwVEPJyK@giATeuz_&+NWllRpe#nU^WcT!BNF#3a6*#EkedYh|Rqw$WQ> znN=yF<Oo6j$$6h?*fo~oRuo5Rsh7St2VDSeFSxiiJwJ5%smbYiWS%DnhM#z%+`k({ zsW5V>jl&kPvVj&wQdG%HB&bfb>m#b?rxy($N3Sj%mK(|(E4;n$2FKOggALsetlmD= z!0g!D-^+G7QQI@|BlXqxDJe!Yf)0aNZi%-VH}1ON?EX??a|gK=8IU~aG8U!-m-HQ) zByY1DKGDG1mUfpjCMJ>|kT>g<2(rVY%(o#1i7zNLeTbeJZ?))m_u4mCHa6O;z244R z&WWQC7q>ZcXk-k#Ud);|c$g}!!NLC{szm)u#(??)(6dYf8*dV|5I3^>`qU@@uc~r8 zx@J-lI4c;{NEJ31f_^w+a&eyXN?2%;OXqr9vn#vLnH%@ko)h`REamSCFPrUyTt?!v z{1O0NUpK*7CzZ<?bLLoH&$oJ7<|;YbdOG-(zz?DberSh~7vPRYG~I+94Bc@XX4z%| zi6J)*;nbPw0q11WAGGbhpb6pY$meU@dprA`wz+h`Bs=Z3&U#me;i6+g5k_a0%|Utc zi6_i;P{!l2#cAx}Z2!AQD&%6V*LdLrjpuK}j*tjgL7mOs&Rq}H)mM%KTg6N=BYBJs z3q8!SP6~9MXAnx`O@{qA-uNqTb3=?9?tzMMs5k*Tnht(Gu{hbpk+_W0HhDlx+D*86 z3C|hEx#(UA_!XthaDtZ3Jk-$xirr1?+Gk&)s8pG6%yNK<t(!F`2xhOADD6oW5vqe7 zRT8x*r|qT3U=FKNR4elXW?~1kjd00jLoj|>=xi<8QmOknp}Do&qJH2%UZ);l<Lvj4 z?vis{8%*iC7!J4Pz^tNlHDw)YPNx+np_#aX30)3zj>$%HC5xNEtbz%(EE^aVxYb0$ zLfV@UI)h4_o42~xXt(2SyIrHLcv5-`zR_Q9&z0m=MXaTa`UNe|f*2}2JgSUUP)<&i zqXT2^KZCVGR)teKU+0imkR_Z2qF}Tcwn5Ce1p1hdrJ-VCOhz9aJB3vh9ufvA*PDfz znOqPvE%^{hN#jJ?OZSFNiXkYUNUjk|1S9P99Ck0rZm<Vbm5NeIX$(hA*Sm{Uofxr} zXPmOQ8C%UXK#4x+ywhX~N(!$w9ZOv|-=c9x_TYYSlU{2XMk@gz6Vfi;z`i>P?+{aX z8ZF>_vw2>B#iZ<g2B=Gg+_Hj0cxHYcpU@Bq6*GUw>Q)-g=}ByF@C9;C<PL$QwG$f& z40CdkBS8WH4xtRcVMpJfnpp1*hMMuXYiar_=F?eMjiZa7Dh$Gl;S8fMo%hQrbx(Hr zK`AadlS+;#V$+dM{xhg#B~6Zyf5yFRjMYM6A;^Rix*N8I+`NRTdRm9)1#;rRay(+W z2vQbFNUV{?ObA?HeG~|{(aKMs9vIjj)K*q+6_2>aQ%^RA8t-Tfye&T7-rE^`^if5q zAxkRmOfd$#H}}^iQf>z&K509BjG69lDIB#Z&%;QHCRXC84Z*zV!+2Q_ZnejQ>Ih9{ zC9;*Oi=qTFS7=<XRJtk)1Ygit@Muxe6w<*0`{cx8MlhmwoSYtS*e2Bt7X}dzf_}(d zT@uuzpa?~ydF%RoG;!)Qr@)(m8@yRlX_k3P$jF@IVm;4r#)Ln4D43atwL3hH=wjkg z>6p+*Xg=@LW%R%mB^#1vp|<0=L~K&9N3#S=dLJ!LGUVmm>|Y{w7Ul><)L*$WaHh-Y z;8ll886|3N>tIxFgrlYr(a+<b{9&H~o^|<8g(Z#WmKBrOZBjy9j5sTDly8q65(O$d zV!qv2+Cta?3APX%JYhd$GR8$kHW=eBiT@;@GuC+5rMDnW+xEf4wfQ+wQd{Bf-CXVh z_E~Li=y4G(QB4rio}_3O^LwLKj1kCA(v1QI7acU-8FyRDS<AMd`%i0Dz-G0MFrs{L zjX;E=jGqkgvtv(>Nx)G)-XX#Ug&C;>2G-o-XLS&e2b1!(?V*DjyxEK*^|wH}WQwhH zyMGbuct1XAF5lvlGJ=()i8Q-k_~he%Kgo$yl|3%8(1X$ab>g)u>scEzX?=%7Fy^jM zWN}^^;bBDUm1>|6QohgkRvSx4=x7zPj=N`j$@hE_*k;uEK&pakN`0M$$LHf(W1^5j zGm*m%T`kGDX3ad8-O7FKFe#|!8r<pQ61JvSp;)bN^j7wam?b(ImwF%vTES<-V(1)n z_Xbi7>dN-EJxJ!~xFH4Ys1Li;B+(e>3FcGan4m@!TmYEj;cB)&J&LrQP!a{<`VLsI zdUUted+nWroT8eLJwAG+uZ*58q`X{!8B6v?CeE<djZG!GBEin-isT~ZCFoRTh?uP= z=MB6XZGqg@2d3OOvSh(&^F3ms1=n5A!T+R*6{k7=blm<IxWtBQDtR_fxWkCjrj;&w z=Yh`ZnRb*Uo$kkd%wTtR3FumLk)4l#UMM!DR#VM4U}1fl;>>;yw-^{uaGoayHLD35 zU>{CW)bFaeaMpRF&;MA?IjZG`z1%mB?q1K_tD=l%L`oW3xffHH;VRB((KrQfiJtm) zo?Q@#!(wOZvtUTJE+jPgIBP!lk9qJle6$ij(k7VTc}1uXFx3j_KJ`4NMGvU(=R+P# zp?m^GiTO?h?cTI%C!=nWT1D|)$L+?$7ZPB!RTZW=5b?a2O|(Xr#cXIp!U$mUO?HgZ zvWeo21k@@?OIlQowmIe(A{T*cO8c;S05jwnDUt8__z52#8tg^_v!uw-5@e4^c#g6Z zroHft0N8W~(JSX?M-(w=MCWb7SqV6CI}Z|;Hd@%T8iu6F_C-zt+i2v{>S`;xBoQiI zqjWKN+83{pbgcMeA)X2=l3V-@OldhBy%ofcgd~8Vyaz>GPOMR%W8Fs7P*0?P$Fz`{ z*X49;&6%;cy{_;jnfDs)QT{LDsh<tnQOwr#Tuu@#Fjdrt0p!5VsAgWofa`*l8?X@E zQvbd7dX!@pdl<Jx?+*Teh4@LBshR$?6NnhunwmL6^I5%=863=q%j^vqGK6j9GT4qz zv-~xp%9er8KJXO|2)2MW(ui>WM?Z3bVkCh}p8N)N!xshH9!W!;C+8xT^co$vGGdW* z*f=w>qK{KcHn>RpvQP!N!I@k2>PBz3llxWM19z-eP?P`{R4o12eudU?g;mz%`8rP2 zvJD?(MZG>X&G)w4%ob5sCcZ?=GzrlZk(u(rA6tU52xcm~d$*K4hJ`C<7F}_N)Ou32 z&~v0_$x<_q6Sd80-L6#M1GV7Dh6_4VEFQX`cQ2KXlS^<8nDkQ0HMm6d9=*HQX|Aps zfpK@JBrf$4;YLc)ptMq!2a~8jIw&Z*mOwJb7Uv~w#dCh-gM#o-?o)7FDTn;^cG`h( zjP<tGySJDPp)P@=L99~<X^q&Ws8XkPH4BV^ppO8On`ne{>Wuh~C<gPbRwW%p9oO#b zE&D@TQhq!HNP5Uj>5K=9V>pb$j3{a)w<t<u4?PY0GKO&4y$s5HU*RIU7U%QaXC203 zHsMAJ7Gn61yc25hOb!d#QgjP1IHtE#%veN>Y#V1JxN|`?by`H}2kGBaLtJ!{Ts2$- zYM7jrj~GwAn2jgXpxna7?Af!mD41e$%bdDpFdedZjH=zMV(!Z6prE&m)3M$oMic-@ zFc3pIikPxG<VhY`AbU{+hr6*eqGNtK(oxcqn!;D9H5D47{cwrABm^0)@WkwKnr<YY zdr0}J(;2+sf5zUmjg^ieI`Gq`ge>XV`vW*kRn3nwNg<`dv0f*c7~-`Sq8`&~EgZr; za(%2`I>0$B{Rs6My2i(08H$4*(qTnd`$bY%tcCWXa4&W|5(o^9BF)d1px8dOJHdlq zxbM1XUD$l<Ig`Q^Y?YPUXW5!G9M%~ucGA?VID{pZ3&?Kg$AF5L#HXZwInuM96ncfE ztg!G(@S2JF-{{PQN*G(^<OE+jIx&hZEC_O31c-D;BUNy0;^4{2X~|xdZIJA12&H8L zhy`CtZM^S+Wv41W@2}o-yYZGY*})I_O6DAy1v@HeO2fF|2tD52wT*YqPt)vb6LNIY zT&b_PQB0GoBduroP$Ih~fwE;m`N4e{fJEGuy|jj=%8j_4p+oNKDNKrvfI_=?vPL~* z*f&_5+quyo8ZZ+Z$u{>7moQAi>4f8o8Ut@-aNXX`caOZs*Ia42?L*x&i-6!%alb@T zGx%B1p}E8Adr0h3X;@gIqo9G1!HLJN$hh(=4TOVGh?v0eDYQNu6h+9B?HLC$l8zkc z(?_V8+lO2K5y$*-B=i3-$NWj>Tnuh|Mic7R5)%;1fZd$&37WNRn>nNKb4e0S9Hlf& zES9<Uh7pRK9TI~Q%((7*RHDH!Xkf9B)lH~wz6n*|gR;G+?gj=1wyZ=*p-~v+Bn=me zuQv@uqj6M>8xcXF6MC>UU*b+Q9U0!Bdu$P4yR*M-XS~4*Drs9~rf!DQ>iUXF;SfYs zsE>3=oyeqni~~852<+Yr%NNxx+EnMXp1mdaAcSR(O)OGfU)ykQ8IB@Du6>DXIXMV> z8Y7^#OQFt0;6H~!cJ%s=Kuyx3<deY9Gmivc8%Z$9V@E5fms{bp;L^e3`R>-1o6WJe zCs7WVx+w)h>Fy}dF$1)D`I!v{uDI9P-0tkG?CtM#O2HurHv&>kYOr-I89Ufa_qv;e zTCeu@`AiYRD~0VCPpc+517ZHKp0OrS#J!VJ*taK=7fm%adzqa|5^ZVXdR1#0N0Wq1 z$YpkrQ9Odiq{Ou(C5EUnBU6W_Try&NeY?HY+u7tZbMNmA-0t4GeQKlkJRXh>W$=O2 z&Q3#Mdp!6gTVnWe`#H15_OD(E$?loWjUJDNJgwtPmD@NSN<WUH{qv1S3Av&|>aa{t zomt~lQpZ2ruP?1;V|D;_W;RO#rlvfQ@r<Db`Q{t$%%coy^WNxF3;Hk5qM7#I<~EW_ z!;ZoZD3vy1g7zWi;DUE`bIH)n=2>Wo%r8C0NRK$rAxEDa-TM}>o|TmbgRSb-xTRZ^ zr;9F|eaU6Vy8N8MCfY^(VAH$@M;5YPWVtzbMbCyWmZk{{9MD4|F6u{O#$CL;(IX34 zqct|8dV^^s4}~oORIV=QtEtjyb&2Bo_GJl07c22%NP<DMKvcRIjBhc|dS-1_&{UK% zw{qrH)bp&0+_OK-Wcq-1mk$91#EC{v84YVOfYDA_vm^!=WJDTFgD*s%LtFn~Iqu4> zMUH{wR@=_4rw2I{II;)#WyY}B$Cp`yD6Lx8%&jkTd+C$y!;Ex13lGsmq7Lbm(sbkg zy~;wzi7$yez)$La4gK=HHL8rq{Az_(^is7~$+TC}mqZ%rjC#DA+sWq<e?eKsGeRq? z<T;ieRy2h~1gml)O5r#i9kJqYHPtlA<@er2P4c<=dgweQ0Vf=#l2aMAA|4fqlJT*0 zT7{T<*mg=?lsmdAyHuF>b2oAe>uK1@b-A_{QPPB81n1G{GAgR+%fSSia#zWDT(H<f z4|Q&z6|Cu~wMf&b-S8VEiMZ(9=_E9OwrP5Tk=KkmMQuihm1u}jN6q@dtJ%clB2kU| z4@)A->Nd(3wqk8AvXCiv)6`RW=%5wb&a2U%8#Zp2PU1JqG9g8MK}e5gK5pxZn{uP# zrqWu*xy(|T>)_k&>w9rB9y5!pt2qn1)R~yavUfK3x}DA<XC%UfX|0i;=wEE^#Yvov zOxunzDMk7rMEW`$8Ad#qY@}efC2o4K<MBi_7R-?5-X2FfW}L{g3JqZeW%NoxshXV; z`~DS9b75E@=EeqsVZOlQ0Zb-<+m~lUoMgZ~iU+EJT$`wd4)i}XN<2XPYz4!Y%Arfi z3}a`71bhPPrC><I55m6gMamHNB}C-A=sAx$lu3nVQIe>T$xb3zxCkd!5|(7PJQ&^K zxr&k!^k<YWoF<`07S`s{s1Er7xF&Lg`{~RL;ZKxF4(R|;8?Oj$ZN@^mvDr92mWSoi z8=L>iArByTTrS+!my2@aa&gKO&9Jr!OaH3pI0lC}x@yPnSzJ1*g)2c23u5Eg7a$0Z zxz5f$_Gf(%C!7HtEOK?JLkl>Ic8cbM&|`B>@tqAr0>B%b|LT)1$d`VBW<6z?+04cj zs$W)V9l_rf&#GQkI0!LisN*==O~a>K=44knO)w#AW($-_MZ$)f^^=tw17}4tBl9Ya zSb66U=NhWUn(P?n#sF6QP*E*b)vEFhw9KQURwy8U2$W;LovDk)y$~qv?)tu}N-Pew zUkq*paSjrSd!M2dp^ps+?@dWR<j9wLTI**tmAS8<+q`fYs4${xU`n~8p>5z`zRF>$ zer8z?P!LTP(qOypZx9Uj)2b#Z0q3FwoC_`=n4o-!D75_R1-|evne7)LRkmLasAuct zYC|V87%!}-;5j0yr3-4w_nnPi%bO3^zw~th#FymN5ovl>#>NVrF<tx+jVYTqBQ?}S zLXesjkB;ZWX%53-G9Hx{2)%J`%DJt^&D@cO)TI$$L^#^aFGiu`Afr1jpw*=nTUKSj zxBB50{)k~F#9H^nht!qSi_%T0(Zw7gx{{8~>qk}G^~hG=Ap>bYR6SJ4AZ-M-=bebO z*`_zb*L#_Zfl2jpV-5PN&q|F0t7onb<l($ImiI4V-Ac0>v;~Lc^X=~1LHu-^!CqCk z4KT))L?IL2m86~My-jR$j;$UU!6A5H?9fV5xWB<cB_KhI1Ddq!KXlfKvIC&z%dW1O z<3&8v+NS+b2W~*Otpj`miZ@J2;H24UwhHuR2EBAPU#q6^%fUAJ3J=FEL=*Qf1p07q z#Uvc!9QOP&FNBCWndvvnwYjm`zK4Tpc`lN5sLswq$ATSeu&|T;r)nqr8`rq!!Tu%; zVFU=6DJ#k$T!<%3u;riWdu~_@P+v{TY3=w^E!?2Cx^1ZHJvTIL9vSdf8EkXIQe7p8 zQ7bMu_)4R<#)=jYV&lP~RmdO8HqcAt7kke9W|Hq(9|szPh~$doTV7v&hdj?+txy{x zcBMTkN*{_pEcMRFEHVKzTBJ((J#X`#1#O7xb7@7uOIFtN=*f^d1okaf;%DZ$ozH#R zuba{G#i}LA90+BHN>T@kbg5h=OHBfSCLDn>8Gw-~^;tPPU$DEiK`?1T9pg;p2VPWn z*qD%n6KR%iWqT=|L5&pDirC=Rds}<j3D9<?M^rTu1}Fy1wTk>`t{nUtZvEV@Qq-(* z+o5pjYZZOwEx4iP)gN8T`Yw_1=?Ttry6&Iw@B=koZ0I>w2<wQHnXDhkXY4E8BOnNu zMmdidGtiv%nXUL$+(yc-*b812y-W&-ZMs@(Ai<J_-R3Sxd`oFjlaD=Iz!=-;tv+Y1 zWoCe47Bau=Zau^4NKDQp)>otAX(HjY&ye)Ic=TuWBv5UxwfDNTqyKh`wa&)M-S*~g z&}lPWQ71@Hk}Z!R%Ib%Yr?VACpq9$pN1iReSj2a_rg~()=J6Y!A(YRmB7m=V^Szu| zTXc7Q_W{Kp(CUk+z4e9?Pd?d*Df8+l#_S!9b~~0|SDCjrj(Ee*PpQ4K=C71>Z17;P z;An~InfWWDbIm!;x%qzTxCxSHQ|3_0nr$vkwGs3tZj4PVEU`YjyZa1*&Fl^h*oiji zE<QTsVQOOUn1gZn>=x?t()=>ViHy%*pTma*|9Ey5Z|fVV-K|@VSo7RGbrNJQr|MS? z6)*oyLB(ImpyCe_R6?gm3W0)8yzcW|X(pe~+TPl_N#w+<>{}@QO>`~1k$M)=-m&iP z2HW@1UPK?BXvkm$$n?DPzWo)-`N2ZUBtB8Oz4i575dWaq-R^YOgmo)huXX@d_?zgy zl~0|wly}`HAHSWcrP!gnd@p@}YYl0V&pu8QOq;>EyL*cdIkDpEgCZ8w1~tVwQF0%Z zej8_Jov{%|^6JM%;cseel+VUS%Ev~aycR}I-F!yE7_vEebLjpavFYrl^5wi;J}(`X z#_~ep9@-)ehu?k5N6xAeKW$IWHYc^jVqzxLGBYu`R7CL1WZ>B-)^=8&Z>M<TR46MG zgO2xb4Bv%Pv1Q!ttrhyH<NOTv5#nm|HjDM`Rn8LG?XKT_wNNkL_$EMKzLel!KJrO0 z<Zf@S9H@Wq;)oB#(vqq`es~-(O^(gLzP;AnF*QkFrPL9jt!cj4$=3&`M;m!UE-`YV z=j&ZdH`+^_PCBKn5hT8woXs%L5gkuFp#wT7F{clVnHua{Y$9Y>(KwCJvSDo#lBq)> zK9E@8*45T|x8%3RW~TgS#!BO;X3g0rplD5XNW|kur)$xw&KDiQ1wzI79_U24!QxxY z&Pt#PzLzYewf0S%jE%vnqrpL{Xf~}P9p^sM9ACuaLqB+E>W5%L{opda<i$A3%U<?j z;4g%k!w0GsEHA<+c6!yGYOBNx`aZw)rG+0XgV0eF8bnhck07$X=#H$mZ%0J5w>mq$ z%?`vsA4PrpGt0Z3o!w{dbhlPJ&y4q0_jQWM?lV{cZftYT!)~vA{>;dk3+<8NvlpLX zkMo(?yE7{{+Z)}R&)D}lX-&Sa8mfLZR{d(Q`aNsyui|_V4vX=lV#XK&j?}}5U$~>< z@UrNKECK?Imc=4pdxf{jZay@G)kcuvlc*eJs{{G5i{R$yLSnJhy2c)cz8#>alG9aq zc5HT>|0b`%G8a&02^TY6*Iyd(x5gIv2-Bj~=Ff-0pH&5$6$?{3*y>7qY+UnhUuqpK z&_7|)i+sI(nXkoC?fk+RjfS46QQDKu3TLvjvPOm0_$XDVj;P}?wKvS^%4lFsPSacD z6u<W5V%a-9jeJa;LaL7Igtz33Zv#UKfQ`oLIn^0Rj<m1M5G}O82RFdxm>23&g@oQb zt@D0|B|038bCCT`cbo0uIdjY)7*^1gpvRHHGg^)S-ufT1+%gcr#T@A>mQ2l%5*nN2 zl)u7Y(^{Co`WreT173u|DCd;e^YAvaKr#W5i6oMpzfs1ouibi6L+6U?^PGdD6OH+r zQaNcjk4|ECp4EoN7=i5mg7CmznAQ1+)TA$ydR6Mn&VkLc51KFNMKp*=75j>xq)k@< zu^~(eT|WBZ(qUWY>l1AmU*p%O`LUw6u|^K!?po)dSUhN<K=E<P1-3cnuj5cC@r{lJ zc*@F&sOUImpyeCKe7c#QM~LS*HgYMBX=r$?7+<(__R_gaG6GJbxEO>qR)KAH3>KFP z14~~T7GE|e@CP7+B*I}^l+*ToJ~GsFIW)ezNO_E0S_g|a#;>8|M~pM@A%HAtp2l?! zSE~6^fyA%RKk~7nxJ=kuO$8W$IyzeI=tydJcxZG9n}M2c7Q&H~)8b%io({p}57xT3 zkS14=|J&_VX{zrg@hIOBe-EAtJezy8-M(RdeWNffmf+%S8m1_U^<lZ%2Vmla3Sv>t zJ#O~`fN;lM@@yoIKS{L$Na0%q=6KuSbLtUA7AJf#=Zn?7oeg`;*4X4YA7>vDEl^Fq zuAvRF8EeC)3i1k+uQ#twEXOqx-r&GZ5w3s$R+ul+El%qE^eg%<wj3csMYI*y@I2e_ zi__yaV<Ga#Uc#4k5<7bN&Jb`)qiD{}X?KfR#&>6WZrtD(UP+y$yfrVd=Jf~-jU<hT zsv7-i5z-q-jQXbT30nd`XgNRNDJ;Qe#UND7USERPTU8hEikx1!!op&!CL$j$nS37) z+luTh5D@GDX1R|Av`SEIm!?D?iEYv69_<7Kj+<KMB#dd%v9pg2jTne=H5%LKVDMNx znCx!AMz8l~{DG0}WkUNFA?mSmR!<n5&J$7)#1*n)a8*K(i&RIP&@SwE+Gqt*$C9tH z3GGRbPh9gFjSw(y=2^H@&hs#g&oRcNRiRCqXh3$31-RZTW_xS<e86NHfQf00&pb^m zd`1B-h0a!~53l=V=p7MeXH5DWhy&Rm<8#R9LABP^#z38?yx8z3k?+QIob{NF1UaTl z))Su?wl2?ctT`ZHi;W2zwq+xp6>+J?mH5n@IJ?$OYkpFjl#wFZGKhY}(Z-;KVw6B% zo;N3ZK>%u45?aFxjr{!BWBRJQs2&SG&b$_iW--G>zWzSx+`UFPtZEqmaBJ-B97Vyv zVysTKQUU~MD=ZX~8n6~23Dx<a;mI<R_S}SUPiGbcX=+9v+dvh`tBDkf@N8Sz=e)yp za&GWqpBo}RLKQlif?CcG4f7BCW}umpUwLf9)6^_Q4rth?nQM<H3Pvf2Eo4Nem{@F+ zy~o3;mEGIE*bwPi-q{0$`-Lk@#Z4K!FnyHlt~zh<2hr<=t4#bA9WESX6N6rW27rj5 z<0GfK;$p}IMO%Mip`piVF|d0Z#%P$dbg)3c`TlBH$VL^e=mdcX2-Z>{S7#fjLLekm zDUdyD7R2f9;-<c{aWp23A?G`zMct1zYneNKl#J9#jW72F6NI4)vBS1rG9hM9LP{cQ zL0UnuymWB{&*cC!K3Y9#_^xheZAU6zN*h`n47R(w%|}d+WX#Cb><5X-&dkp*jHbab zXG;f=+wmTT?WHPtwBmu7SIAdR5uB3>@8Y1w#B5!Y$OyG}Q?sH@m{`v7%c&no*crB; zb?O$GOTM5{Mi=?MaLR(_?(TCI$UPSHG7B2K?7M6^{K&-C#4He2+IZYy{0X>ZpEwL` zEvGz!ob;lFCaO67NdpukE~#2&_MrSJGoMw|1+)h<Sj5#a#QcYO-9fB73P};TW)QfR z`IF$az~3msm-Vc~Pt^p%+q%~P+0D3Wibx4Zx+WM!xh#xEQhaykeQmzTwQ+L=GxQ|H z6CS#^)7uD`tJfm8(X7~N*SBRhH!+n4BIOc6hD4>5)|{K+i$v<k`LM27^5YXOh$f(l z8Rw0U$*tcb3sAPi7ZAwu>4AwvDmy#va^P^GGfvFu!Or5ytzYcYz*(wu;^NLZq*&Ru zR<>`y+DTvnoKscnb4|{9qLVn518U7JSf-?Qy5>bBTnHeckjdiO3C9kz@XlqZToTem z%~`#z&R!brG*%G3d{%Q8$PO_GDL<;m<H%z-2&K8?$RgF2*HXXaqL6>Q#*wG46$ipv zVO(g7#(A3KIy<YXER&~CM51zCK_Ha{fk|s79ah6}${~9_ntKp2!|E(%7x{3ZmXP6T zWx7U++b}R63oq-<ss_7;Iv&Y+$=S6sxX?5ty_@)Kc9Cr6;zF;8YmVhc^$zR#tO#_E z_WV`NLzqQ}pFFoP0o!wH*w;Z+OQMCM;6&Lq6Q!i*mxGc;GrnsimrgH8S+D9GS~UTc zfIly!-cDi$>ZitQ5sxntc04ydYRn-*+&P^y&V(CXKDvDmB@j|%3!pA~P^VU)zT3Tr zwvL@q%_dG3I$5!t_|Q`k0~zyCVHHU*vRov^V$r6mw$PGFjO7Tw0?mxBvp5Nu%971E z%qVPsrS5Lt+QXC=Dazug2o}B>7;num0Z$ixv4VrZkc%2r$5Kor)E39gAt`}Li*iaX zZD3w9j%o6AN#HaWfwp4ZD=mA1aqQ*jtl1H?ri@V`msM8<b<3_}987M_j42rRhKg;d zJyZpWKBFN{5zi}P1cA`Bf{JXZk9R<gf&nHN<iI(nzv!ak{rL1{lv;=u=zbtUJTOc{ zpr{IYCX{E)A>gP>onuXOqS8!adC={Z4Wgp%LAS*?#X#qv+1=e;M%_88G<(7>4<Zs} zf(_l}5|Oa}1;XV5f1=<*^e8B##Te&_PktExGqsxUL1Lq*LKR90(`Mhlk5u9YPB+;l zq=w8oC$aN&GgVjs*}lDU)DV#-3?KkQJq{C+;2b*)i;=k&yk5+#oW+9ls`1|QTP0%3 z>|AOmLUAW3>_M{`78XgU-<p)pmWg<tC8V0zQrNX>9w9<KXAVGL#b9U477yLLVTOy5 zI`2UM3R7hE=tRv}o01FS`V<$A_R%<Hnqe-+Ym}vKjJ4$z^}Ix&HCmla41KaqjPl&2 z!gV^bO}85kzgXfdeK!2U8!UZ3{BqE-r7wnGBpgdWR&3wC%WlEebCM$VciB?fea;T0 zoWwp{T-SMDOFbsfx?|6H5yQ&_9|E>cgnR2qxVO%Pd+SiR_j9j!pJAmv86AKr8<K66 zXw#XKWQ`Eu+W^d$iZM*~DzG4TnTZ)1^_yXJy}K5EA^=!S%3d6!sK%(KQ$JHD4Lr&+ z_~^y}qMOGs#NZC0Y293bY^!_B!UF#-6y5dq`p(Lx&L^;}VcVfn9tVswztgj79VAqT z>Hos~Omh+B#Gb=e5)9P_LY4NOK;PYJ@9%aBJA5N#4(k^vP*bQz{fdK0z)g^~xm6K9 z`PiJZQ@XV$w#X*cBwI<Eyu^#Pway^REVSChvo)vJWwVqKtX1Ho$9Gl)#*(1{5m=dF zMSC1?qxQ1gDQBi1JA01sDB#v*0`Z<-VMrURYi;esuXo_t9H+nCJ?Lx{-OcuGIz}h< ztc1LxrU;0`HzlR7+1+|~W23XyUhVFzvUueSgs6(Yko@X82YU$B+-&!Di_z|_Nz{sB zi(Ss%{?2Z3fSb*B=;hevn)S3;m4{T@y#wNi=pw^uYtLc=<M+-!ZYmsThu4Eg4&NN3 z#+{-?%<P6WVOxu<n{58gw#Ev2*wJYhY_D$GW}G&+<=dz(D&9~a*p>=bz{A<MBN&-) zh_G`B^R!>~Y3+9;{GKiDvZ>eG*xyrCKyQD$%}x+I=Y^cRKsz=b{go*v3}skEcs^sT zhL;Yq+O}@`>#0-g#huO$zClcxo)M|LcUOqLx3YCh5NBtdU1b}x&D|~p7>9<&V_e0= z>dwkmdu*rIJt*f?U0}`G==inK@oS^wSI3+aWPuj|-ZEBF-z*Rm`C&TOFhs~l373=2 zm2EJKLNZkre4J>v*z0Xm_5hR+&g?34e0tH^;@8^Z*V^J2haStHD&+kJ&Jmt$t&-;; z$`Ffh9uP+93m;JERc$ZxqlHwWJLkyl?e#V*-LUGP@2;VUQC{7(F6qYlq#Ns$Zq61y zwotW|qzNm?ua)DMr46rJ;saawTk=(mkqd7dX45*<KNW9gLN)e)*Jf1vZou@r;PLwn z-x%@X1=a3twRdr$F_fH{U=CMqb?gnD?!9s=)N<gpplmIa3yNrg)#v2T!P=lt%&cR{ z%}vb^vnh1aBo$$)$DUAfs$hyWecj!F*&-7A+qRh6+7l|qh*$+7P&|3BxZT_7zMrLQ zghhu#pzrRqx9RY9ZwFM}i>n?g!9;`joz51o>o9Zch%Laj`9P}Qx6BPE^xixSTPTCg z!dFbdEtU=LZ@3Rhm9=R4=t6+eN86h$flI~RxTrPWK(4a&lPFf9DELCoe<E2%yR@2p zNeecBU_&l)fzTpLLY6|`K+Hz$#jt&Y2-Hk*yI?Lr9eljt9n*{2tNXj4sHII4l>S~0 zvsM*I)4wW)(dpjl*r~2?HBh$@xZ7Jd#mFQjU_o(uqRwT<oBOCBjBzxSXEc0>mh&3W zUwxI~^^jL&%)i*(SfR-ka}OD7d&(#tzH{wOZ*6yV0~XwQpH;}-JRTHA8MVbLcNot2 z12=d0AXv{`E97(6DZB=6hOWq2MC0%_{PFWEu>IC_(dyjkY_&SK*m*aaA0|cYLq0-D zx@ccp*+^0|ijqkP@!`3VOP4Ofw8y3<*o{FT9@n=SPD#3A_mf*TJS|Z&`uM8Li;_uE zu;vk~C)o>;%j5{=_{Q5B_+Q!o{`dz-qcUHaTW*XE4>!)AId^6lSC!!lLl=e~YYgmw zSTN(k#=Dz~vp>+`kcYLk&f4kor*A^OS8q3VI(N(`i=zTBUK~FEp2q3T)$RQ!SDEY1 z!RgJjr1x&)g3vg9i~IQ@{&pLu*EjJzfnJ<;3)GW5Uf=4S4ncDy)@4tIg`M67t@+hE znx>RCxeA?YiQNT2CsCJ;?Hr;b;uiini5WJl0yO54gqeZChQ=+)P|h3*)@oH>9*Wqv zYd*JakaYOs!2$E9wo=1<K5hZ!Rk4$H)<RnbL6^HK^<fcn=UvG-^eerk7vyKmJB<Nc z1DHIWm=<N#Y9&KO=srbnEHx<?#lEbZ=_6F<LS&X9yomTD703~)y9H92f2NS?iN<D^ zW3FF((Q)i4a7>P`QDUywR)P@p8psDe2!6`UF*!Ndc(j2tbr93b8nA6&h)_u`&CA=& za;MPX@OBb3xC9VC+au1m4LeQ3e}I#dIjr3o*&Z5-GaI~}SPU9U-rJ|1LbW?I9<8EU zK`*24V1_Xx(zls0W-F+f8p)NhF`SXL-j?Jw*jVrFG+0}WiLkaB7#?)&RBvZ@@IQJv zezUEO_~Jhg=!pmXCKmrNt|{*+nnOiVtaMgxc8g<g<@Pm9tmpt9fv^3R`(|Hv{98}H z;n-h4_U$L$c<eimz3H`YIaWMCsjqV#D~`YT-~+EO9wDvk%lwV<*L?8gj~r`0IM96k zeeZtoWb^f}Z~n%E%8%tP9V?0pWw|#}ZaFXa-73trO}PVpn-AXqBga2NjVej{4a(&D z0{O4y*V}vjeewAhk9hvoBc2z>``2^-5zikw;`tkoc-}bT`M?p+hicFJ!CSB?P85YE zFTndDptF#}QSer|A<CVrmV0Nva%+^EvU2x-=(uK3HNNY?`)vk4^PtV2>iZ<+9-xoS z2Os#*37?tU%?Iwgar_GpK0w*N_#qhl(rfPBU(LJ9eSvc7dz{y+0fS=x15CQ+I_8gu ze7&Rhb@@094}~>1^6@svSGflDT;e|Am&SYD#@lxcuY|fkYVV}6tN!Dcedxsic`A2< zx)*>IK>X0j9}Z9&07{MHKO?xlo^r7)x5dKATG<aDqwq_|PJHiiD_+Ne2Jh@K51(K` zjB}sHpx(UO#}Lc>Ic1jWWo}l>T)v<A$;${9$6Hn?*7H@$d^RuBP?;4gQ}3VV;th=H zGq1b%oU3k?`!eM|k=JeQUrFt&%*VbZ&TB>wZumH2d#_OD$E=<-_wUc=K9-|Maic7! z)}GDF^&8JC^kMt26vbTmo}j&wzo+_D?q$mTjcU1WUak?!@l$+;zcha~?rS!vSXYD2 ze2lqHWiHX`iC;VBBQFZA3$>~1t^CDxF(1}NeJm>f3#_qU{;LuH1*_NJ*UHwJ^1pmU zej~hp>Y><PHXn1|t5{~~Rg`&=GDFmv#wVyc>J_n`Pu`;*!Abr7*OWP9^`yD4(788; zawi`yiZ`)FV|!vMG4GMTR$VK~i}fFnS6L&zo|oc0#J<u@@e%%F{SVqY8BKGlzUula ze;ExGzdXJh=tzUSSZ>YA1sDrIZdYMUc5%C2rgyl^v-L9FYMCL3>JR2+G!M^K%a9#t zbJm~P!)5N|^{CHx4wt!^ml2FMyiA0*+IrT?Bw8yNJr_Wfa6{#;8LbU{()u|5Us+`h z@**5RnU^tW|0^pK+k27m{~_hGIT=z->!HC|jv~cx^(pskpSk-_tz77r#`yj!9G3oi zQG7fvWBqb~#`eBSnFp-z2@cjTgfC+xvE0dTFN)9QbzOpm3?1)yi!K91SUCT_|35qa zLGk$?Ir)(j%?G{spBuj!{hi<7wO{=e32qJk;(PxxhvBn=&cCd{kfOyle;EulqKMXg z`RWtU>{safhwMFDyN)q6*-_<gvrwnXa>CF<GN#Ju@_r;*(97v>ohAx~pW(e<p#GO^ zjP{<b+@H%{jOB*DGxFV3|Mjex!A$k-QSN`I?kX+VHkdU+o6mk1FwWs>t^Vf;uBu1Z zZ`S(tCs~8BUn;j=EBEtRx%#*nZt=_TDqWxA4`le@$q$|QVdQO_E9Jce!+6C?9R1&k zf=2y<3QIH%!qUt4H9QRi<2rY&2>B;1&3_^7MDeFT9m^v?aUn;Ad<b!NohT4Svg<^F z0FhlMiU73m>_ia;nbLwpd7UUEk(JkpLYQA(CkmKhcAfBUr6(tfhf4_X^kng+uYX6% z)y*;E(_c={jup!P;{-O(mrmoC=iA`z!NbM(#4LVe{a*`UR{h^s%NL)Qj^Nj^;vzT4 zNDuLQobqb_RF<#u(iQwVR!nj;O!^$ZvHY`HzKt);uNn&D4P8E7T=R+^8emN5ik2Ve zUn5X?biq*mq`^lzh+p2nkJr*4zEb9^ztTng^70=Jyj3l#{+ALwA1-diqWlVedS5z; zUk;!Do^%eMSF(K7_e9p;UPud*k5QxQlkVb|w|~E*F^_zHrMu+$-<_rPzI2j2U%H@Q z4;L@QTYh8zrDyo%?R_~b|G}8WZ^W0&S^xho&y~*mFMYx<ukQ<4TK$tQk>@{=mZ6VN zdPJW8#VoD&r9<TTA4>E0aPjwJ7Qb<P(jWZt`T4b=PegqDVwSJ@8PCS|iI9%tQ$Dzu z@Kfojls;*)ozk)VuabX?v`|R+tNu$*@yp@!V~Nc8_@$%d`G1t9^}h6zJbx{bC9m%h zHE!3##c#)3e&hT-8|b6fo9dH3;+MBCy(3RccZg|?_X~-vdHIuxta<yNs-?f2^+&Q% zykdW5GWh*5nMyyvoW}Ja9mB6<#pk&BA4y;0H_qRmXZZ%-Ed75_?klzOkA&Ha>q$C@ zUp^k`8+lr~MV^)(k*B3I<Z0;!d0P5FObdS7we-oUGGG0dj^LNW^As{=Oe<e9cAl2Z znWrTW=4r`(F|GE$_HAWa^-1RQ%iH^-TKeTgj~*`meJsjvTwjvA{POpokw9RV!&CBB zOsoA**3vTxpC2y17K`#5>z6#`m)HLW<e`{0cw}kSzmcVtFZszY?~i1qm{$3Jowa{F z(fYFemsE*e-u{jMq?#T|`0M=XvuXW2T>P~@^{r*^e@~zMgDhWsFJ2KIFJ}4b|K&Hu z5<b51T6!-_tNcf^G<{E3tp6vn{NL}BUkVWpk5fsgI95E?r~FWs4{a@mNzc%#)~`VO zVwOKk{s&0EHRL}_`r!sV1DYSpe>^L%@jO7jUtZrsSz7s@drQa;?Y-f9%e3;h)tFuW z{wK4v^1nI|vcvmd%hJkU8m#8u$kNLHg)FV{ekw~V|K!`s_n+$nzx%U%m4CydW%=Dc z<=>d)tNgQB`h`B_*Rp(-|6-O_fA2q4wx|5dwe*dXksqEc9`95COs)LKM#}mO9$8xT z|Izts{ui_Khx*jN_gGo}$NS`eILlZ4pUKkyMW6D&ndPhe%Wp61|1bNLe<jOT`THL) z%Pak{*Oc&48u=`6jFZJb?Ni@F+55lHC;yo&U-f-7OaBjj%6}}&7rZ~0rGK|i`NoqJ zvg=r;Ta@&0EzAGCKJWidmj9=H^56PYS^pRN<iC{VYkZ%{(*Jj#@}JG}RetClW&N*B zvTWJ^b6LL1Pi5(E?^Avz%UAgum&^JE&u6l<@;}<F=Kn;Nw*HM(^Uq~z<v%fA&A(hr zzf?>AdM*8jwe<0cYJJyg>Hj86H~Ng<lsK!x>HRNHR_lAYmj2T$t^KKZMgH>dv;1N5 zzxzroajbYd>2Jx>mq|a6rKd>0F-tFyj#sRIAj>y+XX$7Als}i{Z}rK)oaMjJCx0f( z|It4AH?sVn>XW~g<^OD-{Ov6NQ+@JZ%<_Mwmap;u^mK%f&)*y8%JgsbDgV;D%6z^5 z;aXbyjF)hE=W9<_%fF#keyWz9$<lv7`}^PN_N}+TU;mW!b?|YCD!-NVS4ek|cO>E} zEn9_f=C!0%{z3GF@5s{MLpsktL;4><@3bWJ{$<kt;xTXzI->LhY1t1>lK(Ig=T*|5 z<zClA<gbt(4DeO?+obdQ4@kc+%WvLS6#pIkJ@)^H$^U<l7oMR$z5fx?U!v{U|DPuP zW)hb|erbzP`(OI{|3v;^Hoo5>owxsa($eP|y#H`<qWJS#{?|wsFW;wZtM35~G)upc z^qaH#zn}D<W&Jx#`lDgK1dn%+enpjWDGl$h^yhXheYckW+ob<3^Km)A|L>CiKnA~m zNLu)Mz^|-fKg(}E-hWn0|2FAU@Kb(l{(hgEyubg3wD1}6(dzp==^uh$%#hZ6{5#T; zU-+^2T~}3Uhu6v1l=vrn`&QE5&-((2-v3V0dH+t;(od3>Onf1fpCtXG;NRtto+G`? zYI<u(e}tx^z4D>rzTyV?(l5M!$BWyfKfrqU%~1aL&|UVaFRqUs`TyIb`tJREf%NOL z`TYp#;w8&AeE2ESPlK-!KmUpHFW=wbf6M<xrNbqB{1wvwH8?)bGmZcENjJ0k`xDYR zJie&+g@atemt)|1UVmxJDvAbK-$8!<{vhcS6XklkRLj5hI<)xjaeJHkbETGlo%E+C zOZeU-{hrIV=B@v|TKT_8I>(<MCp`=Qe<<MVKOij{<nwW?_!-ilXAXXhzN`IDlI|e? zyf>sjMfxu$i$Wr<@;^)ZJ;MKx{yoz9c>irJ{Uy>lJ$fy$=Q8@M`S>={`TO5Ty2PK8 z#iOMEj5&BDwD%<G*;Bv+Q?>dtReS%s($HhgukgK1`t|f7;@54`#Y<)T&y$vX`yn2S zetwYj`7z&XQvDw#{T1>?`BVBIkbWKQtA3^bDe1ibzf?>A7U{oaO$Y`m{|BVs_g8%X zT<Oo%%72OU>(H0teEkLKcnMzX;LGnaKQ}^sC#m~~=*(nD|5egIm*Lx+NJo3~LyYfx zN&jRM8Wr$ii1ZNjXMp!Le%UTpzN@gk7{PCW^h+6izE1idfiF{`y$<Po{ClLGT4|EM z^!1lWzXtot=R*0vO}d=l`-;D(^4Wa+W72tjzexJa6w#&i_b*5vW3Vri7X1E@^m*`G zCKjcoXa5H9i1b6Y*1W#^fM1^eHqxJ`e;*3(zm;^{Pf&Z0k<RJ+1nEyRe}5yC|21&y zF7)hVNWYW(zXY~CHvIbw*4ocQKeX4V{;iV#X6BDBT6&B0cc8D%g!CTiyni1g{V?yw z`u+~-pL`QGqEP<tk$&?7?i-={e}=T=qgUvo_|MOgUdDd*@lgI{(oa*_LYV*GCEd9~ zX2}0HO4Hw|kp45$r!)HgRnk9%((p>iKLIY}{ry(b%F`wIy_K}&FQ&ozGeY`&*52Qu zt)GSd#qm5vzVP*=l|NaGlg{g3Ce0P-$7_oBlKyS@*=-(b{QH&s<HZZ48ySE7Nzx_$ zoh<$d=|7;hGvWPDkk0Y#mr1`S_)4h$&ys#R>;L~k`hOmWhllsSK)PIS$BX}q^v`GT z`+rGGez^?%CGXtNJUx>2?;+Anfb~nEzV9NP%Ws3EFK6p<75IJr?PdFqlg}04^QEs( zdfMoZ@S#QeeYAZL>VJl`_5&Q=$BPc>CgZsr@^_S<_3tIp--ms7Ddhhs>3n{Eiu6AC z*$DX`C;b74uk7Z6-#;VWWwA#5`c=}uNctuEBzhy;<FO3i|5wrv!*6~tyf3`Y+xto_ z{aV(-2N?ZODE~0&e|KNmU#*q9^gqJ)6zO657wdnFbm!4>y);SxCF|z_`ltRckbVYv z>oRH4%j=}S!kYL*Xzv#3*$h8+NlyTe*q>sRP>sEn9R)aTY_ASqJb%!>AouJ?)`~~= z$W;VHI=j>T^m#IOZJMJ6ES!_GmJfYZw|rr{N7NNDLpsfv_v|-(&oLhMSwCyh4`NJ_ zavrr^Kf@vm+AhyN;T;c*BMyYdh)>BPF5;~Mj6ATz10oJNrndnJAq?Fus@Uvo5*5P@ zfoDC1+^rMWu-nniw#Boo+ilyAl-(wxuR|&P?Dw{JdfR7)DaLu97EM*G?{+%RsrX)J zV}oCXH+Fm6>~uDJcT^`$-62dwckkO#t9;gp10?Nc2N!>C)VbZ8JF17a)(NNRtZl5k z|8A(8h{E>z`o{k5Z53Ew>uvj6L~0yttI_rb2kiNsMO%1ts&(~thky+Ng*4+HFV2k} z1kEpiSlzyRrWYVGyn^%n&D(^j8i3Bl$2<j|#E@-w4!V03_p}2orq(r-m>>piPxX4i z0E(EjQN@IRC^8kb?vsk~Aa))vzV~!Ci;VG*5~AAVOx<2v-Q2byH%%{*#C)lDL`Rdy z!>sJ2&RHU|;seFgWci0cZWC3+^ISuaMSE|BFlS#@j7yMEm+X_Kv0@*t52?7b>$t>m zO*?CoEBhOJsRI@R>t}&e)g7WZ@Mrg``T7;H5KEjXo=Ov}+9b~7PL}|}tlJ(Poxa~z z_CfKX?ZuT%zQbnU-}H2Ime^JfuONCn7M+`&PWLvVH3F`;*65N2{Zt384908U>5CQU z!+jM{>-#K~5(;<QRghG>?UPnUd+KHTqH?T__}G5qWHoGoEu7hUpx}^rKyyTTaulvg zjzSn`Cpkj+HXiz<Iq9Xv$G)fLTT84OTPuzol~&VtX=68T@=<F|P+YiKWS&Q<q<9Pt znGgY?DM!Ta$a=A?$erqJd(Sw_5|r2qI1!%JCaLWGp#yFmwY10-b3fi$7ed7@Ypgom zkmHdiI6$l&fI*YMVf)S$%YUZ3$&eJek>gP8xh<hRMJVUF7R-}joD+wA4KuyC*1c1- zT6{^bQjXODE*T3di*D|3aQcq-6X1q(R02Iq#W==jgBUT+#y28V7-0nST6qf~Vg>K| zVJtPql`zv=)w!bn#exL14m0ftQS1Gk^)O4}%d_!~7{iv1{!g>$4H!}I)trX2#(~Tp zLuWYECa{knBEooxpiAGqj13s=s;nQ!0}Io;UY-^poUM%CxKJFhEdeE<<V=><b4e&~ z5e=+yr)RtSHxUImLEJuKX=jG#q}G}arw1nPZ9@rP1dn}pSa{ot*fbEbIGJYuNLbOn z!}%kt&n@+~g)x<3(pgsBVS*ETxh^#0RMW)G+VIvL*x2)FAQ~u?GRKnejlI~zdJt!} zYB(@}qYAZd#ORz-EoKq^vz^V^l`U3wNiP#mcGh3$Q})>!Xz?+{*szNi)sqimSbg8% z*4o+X-Yc<9D2|1O>NHE8xobGlPEq(ypQc5;^bxD9JADAmU?VNnsRA0farDB!_ax-3 zt_w}&{+8xmr^HMwUYp>gsxbqWQFt+pB7EzbqX29*v}3Fy80Ult9N5_lM-tGgM=%EF zYCPu9c?as5ix6qDMX!ibZFj6qhr+l*_;q4JfDtGEFhWS*Za6O77ho>Rltt}C3g=Ui zT^6_6+v{7`oH=ve19BV(BHOuZc1CH$&9xEYs9~Q#he4~sGSr>p3M#W;pC@;wkxhJv zl^1@dpkf2F;&?~*cdP6K0a#oheF`mN+3Xmfa?M*S!4d$VwH%IaFQcccf!%5r%9Iwc zM|QJPy1kozxKjnGG&Lsc74X*%3hwURP2?ng_lO?X@9lVJ?E8$(m;K*1?sP`9=u91} z&N#&gMFROav(~w}e+$;kL9XF`<>pO7Y*UJ$TcYe^vYJAL*h%kM^n9p8`UJxLrcQn@ z&Jb&OW@T@0r+ags&nm>K>{JqTuUC6v+CqzSdy2n<jZen#aG`qJ^=AH8In--iXq3mL z*QZPRvaavvFO@^DFJ3-owl&M-zgSN8Q`N2dWFI((lKTjD&3MIf7kQxiLQ_^QmeFr4 zC;d5=`)TX}sxQA{x#g^!>>fvzdrv4A>rlD#Qi{VB`crgC$9rXUuj1pH{Kd+==WFHu z`7_6hmjf{MUaaG9W%qjiH=jLTJk+P$Pt?l&oz>&TrOSH5uUOwdCK>OQ^BX^Ny!iFE zcp3d4^L{?uOE1^;<G+5qSoyTy>wlHgpX>zsjphE&A30I{G3j{4a-Ze_-QJGRf9u01 zis6{xSLJm5EB@lW(qE(8SFvHlE6$rhnt`GC<Uc=A{7EdtZ>&SV`OJU$Cr+3@6()`1 a&19-Rkk>rJ^ZL&Hw<n4NY!mT{_5FW=9|>Uq diff --git a/TP1_labyrinth_slave_etu/Debug/libMyLab_lib.a b/TP1_labyrinth_slave_etu/Debug/libMyLab_lib.a deleted file mode 100644 index a1719c2b85c94b5e654936c41a3f48c616a4ae6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964832 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ⅇ&R2+iq<Y_^_~;; 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®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 XPo68|Ug{Q>_r>>My?pRPEAM{*)O-iP diff --git a/TP1_labyrinth_slave_etu/Debug/makefile b/TP1_labyrinth_slave_etu/Debug/makefile deleted file mode 100644 index f02c0d3..0000000 --- a/TP1_labyrinth_slave_etu/Debug/makefile +++ /dev/null @@ -1,50 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - --include ../makefile.init - -RM := rm -rf - -# All of the sources participating in the build are defined here --include sources.mk --include src/subdir.mk --include subdir.mk --include objects.mk - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - --include ../makefile.defs - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: TP1_labyrinth_slave_etu.axf - -# Tool invocations -TP1_labyrinth_slave_etu.axf: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: MCU Linker' - arm-none-eabi-gcc -nostdlib -L"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\TP1_labyrinth_slave_etu\Debug" -L"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\Debug" -Xlinker -Map="TP1_labyrinth_slave_etu.map" -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T "Labo4_langton_Debug.ld" -o "TP1_labyrinth_slave_etu.axf" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - $(MAKE) --no-print-directory post-build - -# Other Targets -clean: - -$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) TP1_labyrinth_slave_etu.axf - -@echo ' ' - -post-build: - -@echo 'Performing post-build steps' - -arm-none-eabi-size "TP1_labyrinth_slave_etu.axf"; # arm-none-eabi-objcopy -v -O binary "TP1_labyrinth_slave_etu.axf" "TP1_labyrinth_slave_etu.bin" ; # checksum -p LPC1769 -d "TP1_labyrinth_slave_etu.bin"; - -@echo ' ' - -.PHONY: all clean dependents -.SECONDARY: post-build - --include ../makefile.targets diff --git a/TP1_labyrinth_slave_etu/Debug/objects.mk b/TP1_labyrinth_slave_etu/Debug/objects.mk deleted file mode 100644 index 17104bb..0000000 --- a/TP1_labyrinth_slave_etu/Debug/objects.mk +++ /dev/null @@ -1,8 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -USER_OBJS := - -LIBS := -lMyLab_lib -lCMSISv2p00_LPC17xx - diff --git a/TP1_labyrinth_slave_etu/Debug/sources.mk b/TP1_labyrinth_slave_etu/Debug/sources.mk deleted file mode 100644 index 2cc4ffb..0000000 --- a/TP1_labyrinth_slave_etu/Debug/sources.mk +++ /dev/null @@ -1,18 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -OBJ_SRCS := -S_SRCS := -ASM_SRCS := -C_SRCS := -S_UPPER_SRCS := -O_SRCS := -EXECUTABLES := -OBJS := -C_DEPS := - -# Every subdirectory with source files must be described here -SUBDIRS := \ -src \ - diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.d b/TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.d deleted file mode 100644 index 80adc3d..0000000 --- a/TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.d +++ /dev/null @@ -1,26 +0,0 @@ -src/Labo1_mylab2_correction2.o src/Labo1_mylab2_correction2.d: \ - ../src/Labo1_mylab2_correction2.c \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/lcd.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/ssp.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/fonts.h - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/lcd.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/ssp.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\MyLab_lib\inc/fonts.h: diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.o b/TP1_labyrinth_slave_etu/Debug/src/Labo1_mylab2_correction2.o deleted file mode 100644 index 6008df21886f74bdbae56ef310af70f69b9dc262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58068 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 diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.d b/TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.d deleted file mode 100644 index 67614e0..0000000 --- a/TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.d +++ /dev/null @@ -1,24 +0,0 @@ -src/Labo2_mylab2_correction2.o src/Labo2_mylab2_correction2.d: \ - ../src/Labo2_mylab2_correction2.c \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - ../src/lcd.h ../src/ssp.h ../src/fonts.h - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -../src/lcd.h: - -../src/ssp.h: - -../src/fonts.h: diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.o b/TP1_labyrinth_slave_etu/Debug/src/Labo2_mylab2_correction2.o deleted file mode 100644 index 3ae29261285f42a317c5dd5e4c768cf0ec19daa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58308 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 O!i!wp!^|II_<sNrC{1zz diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.d b/TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.d deleted file mode 100644 index a8c4af5..0000000 --- a/TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.d +++ /dev/null @@ -1,24 +0,0 @@ -src/Labo4_mylab2_correction.o src/Labo4_mylab2_correction.d: \ - ../src/Labo4_mylab2_correction.c \ - C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ - C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h \ - C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ - C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ - C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ - ../src/lcd.h ../src/ssp.h ../src/fonts.h - -C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/LPC17xx.h: - -C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cm3.h: - -C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: - -C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: - -C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\snu\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: - -../src/lcd.h: - -../src/ssp.h: - -../src/fonts.h: diff --git a/TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.o b/TP1_labyrinth_slave_etu/Debug/src/Labo4_mylab2_correction.o deleted file mode 100644 index 60ac82dd8cf275a88c6231bd0f18379a9308cb6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58424 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 F{{cX%V~PL( diff --git a/TP1_labyrinth_slave_etu/Debug/src/subdir.mk b/TP1_labyrinth_slave_etu/Debug/src/subdir.mk deleted file mode 100644 index 5998540..0000000 --- a/TP1_labyrinth_slave_etu/Debug/src/subdir.mk +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../src/cr_startup_lpc175x_6x.c \ -../src/crp.c \ -../src/labyrinth_slave.c \ -../src/tools.c - -OBJS += \ -./src/cr_startup_lpc175x_6x.o \ -./src/crp.o \ -./src/labyrinth_slave.o \ -./src/tools.o - -C_DEPS += \ -./src/cr_startup_lpc175x_6x.d \ -./src/crp.d \ -./src/labyrinth_slave.d \ -./src/tools.d - - -# Each subdirectory must supply rules for building sources it contributes -src/%.o: ../src/%.c - @echo 'Building file: $<' - @echo 'Invoking: MCU C Compiler' - arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -DCORE_M3 -D__USE_CMSIS=CMSIS_CORE_LPC17xx -D__LPC17XX__ -I"C:\Users\vince\Documents\LPCXpresso_5.2.6_2137\ptr\CMSISv2p00_LPC17xx\inc" -O0 -g3 -Wall -c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections -mcpu=cortex-m3 -mthumb -D__REDLIB__ -specs=redlib.specs -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -MT"$(@:%.o=%.d)" -o "$@" "$<" - @echo 'Finished building: $<' - @echo ' ' - - diff --git a/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Debug.launch b/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Debug.launch deleted file mode 100644 index abbf69c..0000000 --- a/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Debug.launch +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> - <stringAttribute key="com.crt.ctrlcenter.OFSemuDetails" value="LinkServer"/> - <booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> - <stringAttribute key="com.crt.ctrlcenter.currentWireType" value="SWD"/> - <stringAttribute key="com.crt.ctrlcenter.serialNumber" value="LinkServerNXPNXP CMSIS-DAP"/> - <stringAttribute key="com.crt.ctrlcenter.targetbase" value="NXP LPC17xx"/> - <stringAttribute key="com.crt.ctrlcenter.targetconfig" value="<?xml version="1.0" encoding="UTF-8"?> <config chipvendor="NXP" genname="NXP LPC17xx" id="config.gdb.stub"><parameters><params><param default="true" description="Vector catch" name="Vector catch" value="false" var="vector.catch"><enum value="True"/> <enum value="False"/> </param> </params> <initValue value="false" var="vector.catch"/> <params><param default="On" description="Enablement of semihosting support" name="Semihosting support" value="On" var="internal.semihost"><enum value="On"/> <enum value="Off"/> <enum value="Auto"/> </param> </params> <params><param default="" description="Maximum wire speed in KHz (leave blank to Auto-detect). Not all values are supported by all targets" name="Maximum wire speed" probe="^(?!Redlink Server|LinkServer$).*$" type="nullString" value="" var="emu.speed"><enum value=""/> <enum value="30000"/> <enum value="15000"/> <enum value="10000"/> <enum value="7500"/> <enum value="6000"/> <enum value="5000"/> <enum value="3750"/> <enum value="3000"/> <enum value="2500"/> <enum value="2000"/> <enum value="1500"/> <enum value="1250"/> <enum value="1200"/> <enum value="1000"/> <enum value="750"/> <enum value="600"/> <enum value="500"/> <enum value="400"/> <enum value="300"/> <enum value="250"/> <enum value="200"/> <enum value="150"/> </param> </params> <params><param content="serverScript" description="Connect script" name="Connect Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.reset.script"/> <param default="" description="Select the reset handling type for this debug connection" name="Reset Handling" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="VECTRESET" var="internal.resethandling"><enum value="SYSRESETREQ"/> <enum value="VECTRESET"/> <enum value="Default"/> <enum value=""/> </param> <param default="" description="Additional options" name="Additional options" value="" var="misc.options"/> <param default="2" description="Set stub debug level (1-4)" name="Debug Level " value="2" var="debug.level"/> <param default="False" description="when True, attach to running target only (without loading image)" name="Attach only" required="true" value="False" var="attach"><enum value="True"/> <enum value="False"/> </param> <param default="True" description="Deprecated. Functionality superseded by &apos;Attach only&apos;" name="Load image" type="boolean" value="True" var="load"><enum value="True"/> <enum value="False"/> </param> <param default="cont" description="Run, continue or (do nothing)" name="Run/Continue image" value="cont" var="run"><enum value="run"/> <enum value="cont"/> <enum value=""/> </param> <param default="off" description="If on is specified, make the debugger treat unknown memory as non-existent and refuse \naccesses to such memory. If off is specified, treat the memory as RAM" name="Memory Access Checking" value="off" var="mem.access"><enum value="on"/> <enum value="off"/> </param> <param default="cont" description="choose the disconnect behavior for the target" name="Disconnect behavior" value="cont" var="ondisconnect"><enum value="nochange"/> <enum value="stop"/> <enum value="cont"/> <enum value="run_cont"/> </param> <param default="" description="Command to run before starting the debugger" name="Pre launch command" value="" var="internal.prelaunch.command"/> <param default="" description="Target Wirespeed in Hz" name="Wirespeed (Hz)" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="" var="internal.wirespeed"/> </params> <initvalue value="VECTRESET" var="internal.resethandling"/> <params><param default="SWD" description="Internal wiretypes" mode="hidden" name="Wiretype" probe="NEVER" value="SWD*,JTAG" var="internal.wiretype"></param> <param default="false" description="Chip supports SWO" mode="hidden" name="Has SWO" probe="NEVER" value="true" var="internal.has_swo"></param> </params> <initvalue value="SWD*,JTAG" var="internal.wiretype"/> <initvalue value="true" var="internal.has_swo"/> </parameters> <script emulators="${gdb.stub} -mi -info-emu" silent="false" swv="true" type="init">set remotetimeout 60000&#x0A;##target_extended_remote##&#x0A;set mem inaccessible-by-default ${mem.access}&#x0A;mon ondisconnect ${ondisconnect}&#x0A;set arm force-mode thumb&#x0A;${load}</script> <script silent="false" type="run">${run}</script> </config> "/> - <intAttribute key="com.crt.ctrlcenter.version" value="3"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=""/> - <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> - <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> - <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\TP1_labyrinth_slave_etu.axf"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="G3_TP1_labyrinth_slave_etu"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.debug.1961788077"/> - <booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> - <stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/> - <stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/> -</launchConfiguration> diff --git a/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Release.launch b/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Release.launch deleted file mode 100644 index 845095c..0000000 --- a/TP1_labyrinth_slave_etu/TP1_labyrinth_slave_etu Release.launch +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> - <booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> - <stringAttribute key="com.crt.ctrlcenter.targetbase" value="NXP LPC17xx"/> - <stringAttribute key="com.crt.ctrlcenter.targetconfig" value="<?xml version="1.0" encoding="UTF-8"?> <config chipvendor="NXP" genname="NXP LPC17xx" id="config.gdb.stub"><parameters><params><param default="true" description="Vector catch" name="Vector catch" value="false" var="vector.catch"><enum value="True"/> <enum value="False"/> </param> </params> <initValue value="false" var="vector.catch"/> <params><param default="On" description="Enablement of semihosting support" name="Semihosting support" value="On" var="internal.semihost"><enum value="On"/> <enum value="Off"/> <enum value="Auto"/> </param> </params> <params><param default="" description="Maximum wire speed in KHz (leave blank to Auto-detect). Not all values are supported by all targets" name="Maximum wire speed" probe="^(?!Redlink Server|LinkServer$).*$" type="nullString" value="" var="emu.speed"><enum value=""/> <enum value="30000"/> <enum value="15000"/> <enum value="10000"/> <enum value="7500"/> <enum value="6000"/> <enum value="5000"/> <enum value="3750"/> <enum value="3000"/> <enum value="2500"/> <enum value="2000"/> <enum value="1500"/> <enum value="1250"/> <enum value="1200"/> <enum value="1000"/> <enum value="750"/> <enum value="600"/> <enum value="500"/> <enum value="400"/> <enum value="300"/> <enum value="250"/> <enum value="200"/> <enum value="150"/> </param> </params> <params><param content="serverScript" description="Connect script" name="Connect Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" required="false" type="nullString" var="internal.reset.script"/> <param default="" description="Select the reset handling type for this debug connection" name="Reset Handling" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="VECTRESET" var="internal.resethandling"><enum value="SYSRESETREQ"/> <enum value="VECTRESET"/> <enum value="Default"/> <enum value=""/> </param> <param default="" description="Additional options" name="Additional options" value="" var="misc.options"/> <param default="2" description="Set stub debug level (1-4)" name="Debug Level " value="2" var="debug.level"/> <param default="False" description="when True, attach to running target only (without loading image)" name="Attach only" required="true" value="False" var="attach"><enum value="True"/> <enum value="False"/> </param> <param default="True" description="Deprecated. Functionality superseded by &apos;Attach only&apos;" name="Load image" type="boolean" value="True" var="load"><enum value="True"/> <enum value="False"/> </param> <param default="cont" description="Run, continue or (do nothing)" name="Run/Continue image" value="cont" var="run"><enum value="run"/> <enum value="cont"/> <enum value=""/> </param> <param default="off" description="If on is specified, make the debugger treat unknown memory as non-existent and refuse \naccesses to such memory. If off is specified, treat the memory as RAM" name="Memory Access Checking" value="off" var="mem.access"><enum value="on"/> <enum value="off"/> </param> <param default="cont" description="choose the disconnect behavior for the target" name="Disconnect behavior" value="cont" var="ondisconnect"><enum value="nochange"/> <enum value="stop"/> <enum value="cont"/> <enum value="run_cont"/> </param> <param default="" description="Command to run before starting the debugger" name="Pre launch command" value="" var="internal.prelaunch.command"/> <param default="" description="Target Wirespeed in Hz" name="Wirespeed (Hz)" probe="(?i)(Redlink\s+Server|CMSIS-DAP|LinkServer)" value="" var="internal.wirespeed"/> </params> <initvalue value="VECTRESET" var="internal.resethandling"/> <params><param default="SWD" description="Internal wiretypes" mode="hidden" name="Wiretype" probe="NEVER" value="SWD*,JTAG" var="internal.wiretype"></param> <param default="false" description="Chip supports SWO" mode="hidden" name="Has SWO" probe="NEVER" value="true" var="internal.has_swo"></param> </params> <initvalue value="SWD*,JTAG" var="internal.wiretype"/> <initvalue value="true" var="internal.has_swo"/> </parameters> <script emulators="${gdb.stub} -mi -info-emu" silent="false" swv="true" type="init">set remotetimeout 60000&#x0A;##target_extended_remote##&#x0A;set mem inaccessible-by-default ${mem.access}&#x0A;mon ondisconnect ${ondisconnect}&#x0A;set arm force-mode thumb&#x0A;${load}</script> <script silent="false" type="run">${run}</script> </config> "/> - <intAttribute key="com.crt.ctrlcenter.version" value="3"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <stringAttribute key="org.eclipse.cdt.debug.mi.core.GDB_INIT" value=""/> - <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> - <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="false"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> - <booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> - <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> - <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Release\TP1_labyrinth_slave_etu.axf"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="G3_TP1_labyrinth_slave_etu"/> - <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.release.955237986"/> - <booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> -</launchConfiguration> diff --git a/TP1_labyrinth_slave_etu/src/accelerometer.h b/TP1_labyrinth_slave_etu/src/accelerometer.h deleted file mode 100644 index 6c2cef1..0000000 --- a/TP1_labyrinth_slave_etu/src/accelerometer.h +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************** - -This software is released under the LGPL-3.0 license: http://www.opensource.org/licenses/lgpl-3.0.html - -Copyright (c) 2013, hepia (ITI) http://www.hepialight.ch - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 3.0 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -*****************************************************************************/ - - -#ifndef ACCELEROMETER_H_ -#define ACCELEROMETER_H_ - -#include <stdint.h> - -#define accel_addr_X 0x00 -#define accel_addr_Y 0x01 -#define accel_addr_Z 0x02 -#define accel_mode_reg 0x07 - -#define ACCEL_INT_PIN 11 -#define ACCEL_I2C_ADDR 0x1D<<1 - -#define LSM303D_REG_WHOAMI 0x0F -#define LSM303D_REG_CTRL0 0x1F -#define LSM303D_REG_CTRL1 0x20 -#define LSM303D_REG_CTRL2 0x21 -#define LSM303D_REG_CTRL3 0x22 -#define LSM303D_REG_CTRL4 0x23 -#define LSM303D_REG_CTRL5 0x24 -#define LSM303D_REG_CTRL6 0x25 -#define LSM303D_REG_CTRL7 0x26 -#define LSM303D_REG_TEMP_OUT_L 0x05 -#define LSM303D_REG_TEMP_OUT_H 0x06 -#define LSM303D_REG_STATUS_M 0x07 -#define LSM303D_REG_OUT_X_L_M 0x08 -#define LSM303D_REG_OUT_X_H_M 0x09 -#define LSM303D_REG_OUT_Y_L_M 0x0a -#define LSM303D_REG_OUT_Y_H_M 0x0b -#define LSM303D_REG_OUT_Z_L_M 0x0c -#define LSM303D_REG_OUT_Z_H_M 0x0d -#define LSM303D_REG_STATUS_A 0x27 -#define LSM303D_REG_OUT_X_L_A 0x28 -#define LSM303D_REG_OUT_X_H_A 0x29 -#define LSM303D_REG_OUT_Y_L_A 0x2a -#define LSM303D_REG_OUT_Y_H_A 0x2b -#define LSM303D_REG_OUT_Z_L_A 0x2c -#define LSM303D_REG_OUT_Z_H_A 0x2d - -#define ACC_NOT_INITIALISED -21 -#define ACC_INIT_I2C_FAILED -22 -#define ACC_NOERROR 0 - - -typedef struct -{ - float accel_x; - float accel_y; - float accel_z; - int16_t magneto_x; - int16_t magneto_y; - int16_t magneto_z; - int16_t temperature; -} accel_t; - -int accel_init(void); -int accel_read(accel_t *accel); - - -#endif /* ACCELEROMETER_H_ */ diff --git a/TP1_labyrinth_slave_etu/src/cr_startup_lpc175x_6x.c b/TP1_labyrinth_slave_etu/src/cr_startup_lpc175x_6x.c deleted file mode 100644 index f4624e0..0000000 --- a/TP1_labyrinth_slave_etu/src/cr_startup_lpc175x_6x.c +++ /dev/null @@ -1,371 +0,0 @@ -//***************************************************************************** -// LPC175x_6x Microcontroller Startup code for use with LPCXpresso IDE -// -// Version : 140114 -//***************************************************************************** -// -// Copyright(C) NXP Semiconductors, 2014 -// All rights reserved. -// -// Software that is described herein is for illustrative purposes only -// which provides customers with programming information regarding the -// LPC products. This software is supplied "AS IS" without any warranties of -// any kind, and NXP Semiconductors and its licensor disclaim any and -// all warranties, express or implied, including all implied warranties of -// merchantability, fitness for a particular purpose and non-infringement of -// intellectual property rights. NXP Semiconductors assumes no responsibility -// or liability for the use of the software, conveys no license or rights under any -// patent, copyright, mask work right, or any other intellectual property rights in -// or to any products. NXP Semiconductors reserves the right to make changes -// in the software without notification. NXP Semiconductors also makes no -// representation or warranty that such application will be suitable for the -// specified use without further testing or modification. -// -// Permission to use, copy, modify, and distribute this software and its -// documentation is hereby granted, under NXP Semiconductors' and its -// licensor's relevant copyrights in the software, without fee, provided that it -// is used in conjunction with NXP Semiconductors microcontrollers. This -// copyright, permission, and disclaimer notice must appear in all copies of -// this code. -//***************************************************************************** - -#if defined (__cplusplus) -#ifdef __REDLIB__ -#error Redlib does not support C++ -#else -//***************************************************************************** -// -// The entry point for the C++ library startup -// -//***************************************************************************** -extern "C" { - extern void __libc_init_array(void); -} -#endif -#endif - -#define WEAK __attribute__ ((weak)) -#define ALIAS(f) __attribute__ ((weak, alias (#f))) - -//***************************************************************************** -#if defined (__cplusplus) -extern "C" { -#endif - -//***************************************************************************** -#if defined (__USE_CMSIS) || defined (__USE_LPCOPEN) -// Declaration of external SystemInit function -extern void SystemInit(void); -#endif - -//***************************************************************************** -// -// Forward declaration of the default handlers. These are aliased. -// When the application defines a handler (with the same name), this will -// automatically take precedence over these weak definitions -// -//***************************************************************************** - void ResetISR(void); -WEAK void NMI_Handler(void); -WEAK void HardFault_Handler(void); -WEAK void MemManage_Handler(void); -WEAK void BusFault_Handler(void); -WEAK void UsageFault_Handler(void); -WEAK void SVC_Handler(void); -WEAK void DebugMon_Handler(void); -WEAK void PendSV_Handler(void); -WEAK void SysTick_Handler(void); -WEAK void IntDefaultHandler(void); - -//***************************************************************************** -// -// Forward declaration of the specific IRQ handlers. These are aliased -// to the IntDefaultHandler, which is a 'forever' loop. When the application -// defines a handler (with the same name), this will automatically take -// precedence over these weak definitions -// -//***************************************************************************** -void WDT_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER0_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER1_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER2_IRQHandler(void) ALIAS(IntDefaultHandler); -void TIMER3_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART0_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART1_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART2_IRQHandler(void) ALIAS(IntDefaultHandler); -void UART3_IRQHandler(void) ALIAS(IntDefaultHandler); -void PWM1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C0_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C1_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2C2_IRQHandler(void) ALIAS(IntDefaultHandler); -void SPI_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP0_IRQHandler(void) ALIAS(IntDefaultHandler); -void SSP1_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL0_IRQHandler(void) ALIAS(IntDefaultHandler); -void RTC_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT0_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT1_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT2_IRQHandler(void) ALIAS(IntDefaultHandler); -void EINT3_IRQHandler(void) ALIAS(IntDefaultHandler); -void ADC_IRQHandler(void) ALIAS(IntDefaultHandler); -void BOD_IRQHandler(void) ALIAS(IntDefaultHandler); -void USB_IRQHandler(void) ALIAS(IntDefaultHandler); -void CAN_IRQHandler(void) ALIAS(IntDefaultHandler); -void DMA_IRQHandler(void) ALIAS(IntDefaultHandler); -void I2S_IRQHandler(void) ALIAS(IntDefaultHandler); -#if defined (__USE_LPCOPEN) -void ETH_IRQHandler(void) ALIAS(IntDefaultHandler); -#else -void ENET_IRQHandler(void) ALIAS(IntDefaultHandler); -#endif -void RIT_IRQHandler(void) ALIAS(IntDefaultHandler); -void MCPWM_IRQHandler(void) ALIAS(IntDefaultHandler); -void QEI_IRQHandler(void) ALIAS(IntDefaultHandler); -void PLL1_IRQHandler(void) ALIAS(IntDefaultHandler); -void USBActivity_IRQHandler(void) ALIAS(IntDefaultHandler); -void CANActivity_IRQHandler(void) ALIAS(IntDefaultHandler); - -//***************************************************************************** -// -// The entry point for the application. -// __main() is the entry point for Redlib based applications -// main() is the entry point for Newlib based applications -// -//***************************************************************************** -#if defined (__REDLIB__) -extern void __main(void); -#endif -extern int main(void); -//***************************************************************************** -// -// External declaration for the pointer to the stack top from the Linker Script -// -//***************************************************************************** -extern void _vStackTop(void); - -//***************************************************************************** -#if defined (__cplusplus) -} // extern "C" -#endif -//***************************************************************************** -// -// The vector table. -// This relies on the linker script to place at correct location in memory. -// -//***************************************************************************** -extern void (* const g_pfnVectors[])(void); -__attribute__ ((section(".isr_vector"))) -void (* const g_pfnVectors[])(void) = { - // Core Level - CM3 - &_vStackTop, // The initial stack pointer - ResetISR, // The reset handler - NMI_Handler, // The NMI handler - HardFault_Handler, // The hard fault handler - MemManage_Handler, // The MPU fault handler - BusFault_Handler, // The bus fault handler - UsageFault_Handler, // The usage fault handler - 0, // Reserved - 0, // Reserved - 0, // Reserved - 0, // Reserved - SVC_Handler, // SVCall handler - DebugMon_Handler, // Debug monitor handler - 0, // Reserved - PendSV_Handler, // The PendSV handler - SysTick_Handler, // The SysTick handler - - // Chip Level - LPC17 - WDT_IRQHandler, // 16, 0x40 - WDT - TIMER0_IRQHandler, // 17, 0x44 - TIMER0 - TIMER1_IRQHandler, // 18, 0x48 - TIMER1 - TIMER2_IRQHandler, // 19, 0x4c - TIMER2 - TIMER3_IRQHandler, // 20, 0x50 - TIMER3 - UART0_IRQHandler, // 21, 0x54 - UART0 - UART1_IRQHandler, // 22, 0x58 - UART1 - UART2_IRQHandler, // 23, 0x5c - UART2 - UART3_IRQHandler, // 24, 0x60 - UART3 - PWM1_IRQHandler, // 25, 0x64 - PWM1 - I2C0_IRQHandler, // 26, 0x68 - I2C0 - I2C1_IRQHandler, // 27, 0x6c - I2C1 - I2C2_IRQHandler, // 28, 0x70 - I2C2 - SPI_IRQHandler, // 29, 0x74 - SPI - SSP0_IRQHandler, // 30, 0x78 - SSP0 - SSP1_IRQHandler, // 31, 0x7c - SSP1 - PLL0_IRQHandler, // 32, 0x80 - PLL0 (Main PLL) - RTC_IRQHandler, // 33, 0x84 - RTC - EINT0_IRQHandler, // 34, 0x88 - EINT0 - EINT1_IRQHandler, // 35, 0x8c - EINT1 - EINT2_IRQHandler, // 36, 0x90 - EINT2 - EINT3_IRQHandler, // 37, 0x94 - EINT3 - ADC_IRQHandler, // 38, 0x98 - ADC - BOD_IRQHandler, // 39, 0x9c - BOD - USB_IRQHandler, // 40, 0xA0 - USB - CAN_IRQHandler, // 41, 0xa4 - CAN - DMA_IRQHandler, // 42, 0xa8 - GP DMA - I2S_IRQHandler, // 43, 0xac - I2S -#if defined (__USE_LPCOPEN) - ETH_IRQHandler, // 44, 0xb0 - Ethernet -#else - ENET_IRQHandler, // 44, 0xb0 - Ethernet -#endif - RIT_IRQHandler, // 45, 0xb4 - RITINT - MCPWM_IRQHandler, // 46, 0xb8 - Motor Control PWM - QEI_IRQHandler, // 47, 0xbc - Quadrature Encoder - PLL1_IRQHandler, // 48, 0xc0 - PLL1 (USB PLL) - USBActivity_IRQHandler, // 49, 0xc4 - USB Activity interrupt to wakeup - CANActivity_IRQHandler, // 50, 0xc8 - CAN Activity interrupt to wakeup -}; - -//***************************************************************************** -// Functions to carry out the initialization of RW and BSS data sections. These -// are written as separate functions rather than being inlined within the -// ResetISR() function in order to cope with MCUs with multiple banks of -// memory. -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void data_init(unsigned int romstart, unsigned int start, unsigned int len) { - unsigned int *pulDest = (unsigned int*) start; - unsigned int *pulSrc = (unsigned int*) romstart; - unsigned int loop; - for (loop = 0; loop < len; loop = loop + 4) - *pulDest++ = *pulSrc++; -} - -__attribute__ ((section(".after_vectors"))) -void bss_init(unsigned int start, unsigned int len) { - unsigned int *pulDest = (unsigned int*) start; - unsigned int loop; - for (loop = 0; loop < len; loop = loop + 4) - *pulDest++ = 0; -} - -//***************************************************************************** -// The following symbols are constructs generated by the linker, indicating -// the location of various points in the "Global Section Table". This table is -// created by the linker via the Code Red managed linker script mechanism. It -// contains the load address, execution address and length of each RW data -// section and the execution and length of each BSS (zero initialized) section. -//***************************************************************************** -extern unsigned int __data_section_table; -extern unsigned int __data_section_table_end; -extern unsigned int __bss_section_table; -extern unsigned int __bss_section_table_end; - -//***************************************************************************** -// Reset entry point for your code. -// Sets up a simple runtime environment and initializes the C/C++ -// library. -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void -ResetISR(void) { - - // - // Copy the data sections from flash to SRAM. - // - unsigned int LoadAddr, ExeAddr, SectionLen; - unsigned int *SectionTableAddr; - - // Load base address of Global Section Table - SectionTableAddr = &__data_section_table; - - // Copy the data sections from flash to SRAM. - while (SectionTableAddr < &__data_section_table_end) { - LoadAddr = *SectionTableAddr++; - ExeAddr = *SectionTableAddr++; - SectionLen = *SectionTableAddr++; - data_init(LoadAddr, ExeAddr, SectionLen); - } - // At this point, SectionTableAddr = &__bss_section_table; - // Zero fill the bss segment - while (SectionTableAddr < &__bss_section_table_end) { - ExeAddr = *SectionTableAddr++; - SectionLen = *SectionTableAddr++; - bss_init(ExeAddr, SectionLen); - } - -#if defined (__USE_CMSIS) || defined (__USE_LPCOPEN) - SystemInit(); -#endif - -#if defined (__cplusplus) - // - // Call C++ library initialisation - // - __libc_init_array(); -#endif - -#if defined (__REDLIB__) - // Call the Redlib library, which in turn calls main() - __main() ; -#else - main(); -#endif - - // - // main() shouldn't return, but if it does, we'll just enter an infinite loop - // - while (1) { - ; - } -} - -//***************************************************************************** -// Default exception handlers. Override the ones here by defining your own -// handler routines in your application code. -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void NMI_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void HardFault_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void MemManage_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void BusFault_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void UsageFault_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void SVC_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void DebugMon_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void PendSV_Handler(void) -{ while(1) {} -} - -__attribute__ ((section(".after_vectors"))) -void SysTick_Handler(void) -{ while(1) {} -} - -//***************************************************************************** -// -// Processor ends up here if an unexpected interrupt occurs or a specific -// handler is not present in the application code. -// -//***************************************************************************** -__attribute__ ((section(".after_vectors"))) -void IntDefaultHandler(void) -{ while(1) {} -} diff --git a/TP1_labyrinth_slave_etu/src/crp.c b/TP1_labyrinth_slave_etu/src/crp.c deleted file mode 100644 index fa9a0d5..0000000 --- a/TP1_labyrinth_slave_etu/src/crp.c +++ /dev/null @@ -1,38 +0,0 @@ -//***************************************************************************** -// crp.c -// -// Source file to create CRP word expected by LPCXpresso IDE linker -//***************************************************************************** -// -// Copyright(C) NXP Semiconductors, 2013 -// All rights reserved. -// -// Software that is described herein is for illustrative purposes only -// which provides customers with programming information regarding the -// LPC products. This software is supplied "AS IS" without any warranties of -// any kind, and NXP Semiconductors and its licensor disclaim any and -// all warranties, express or implied, including all implied warranties of -// merchantability, fitness for a particular purpose and non-infringement of -// intellectual property rights. NXP Semiconductors assumes no responsibility -// or liability for the use of the software, conveys no license or rights under any -// patent, copyright, mask work right, or any other intellectual property rights in -// or to any products. NXP Semiconductors reserves the right to make changes -// in the software without notification. NXP Semiconductors also makes no -// representation or warranty that such application will be suitable for the -// specified use without further testing or modification. -// -// Permission to use, copy, modify, and distribute this software and its -// documentation is hereby granted, under NXP Semiconductors' and its -// licensor's relevant copyrights in the software, without fee, provided that it -// is used in conjunction with NXP Semiconductors microcontrollers. This -// copyright, permission, and disclaimer notice must appear in all copies of -// this code. -//***************************************************************************** - -#if defined (__CODE_RED) -#include <NXP/crp.h> -// Variable to store CRP value in. Will be placed automatically -// by the linker when "Enable Code Read Protect" selected. -// See crp.h header for more information -__CRP const unsigned int CRP_WORD = CRP_NO_CRP ; -#endif diff --git a/TP1_labyrinth_slave_etu/src/ethernet_mgt.h b/TP1_labyrinth_slave_etu/src/ethernet_mgt.h deleted file mode 100644 index c7ba8bc..0000000 --- a/TP1_labyrinth_slave_etu/src/ethernet_mgt.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * ethernet_mgt.h - * - * Description: Ethernet driver. Note: RX/TX buffers must be in RAM2 - * since SRAM is deactivated during WFI (the DMA can not copy data during a WFI in SRAM) - * Created on: 13.4.2018 - * Author: Pilloux V. - */ - -#ifndef ETHERNET_MGT_H_ -#define ETHERNET_MGT_H_ - -/* Description: callback prototype for ethernet_init() - * - * Parameter: data: pointer on data to be received - * length: data length [bytes] - */ -typedef void (*rx_eth_callback_t)(void *data, int len); - -/* Description: initialise Ethernet connection. RX/TX buffers MUST be declared in RAM2 - * since SRAM is deactivated during WFI (the DMA can not copy data during a WFI in SRAM) - * - * Parameters: - * tx_double_buf: pointer on the transmission double buffer (can be NULL if not used) - * rx_double_buf: pointer on the receiving double buffer (can be NULL if not used) - * double_len_tx: maximum length of the transmission double buffers - * double_len_rx: maximum length of the receiving double buffers - * rx_callback: pointer on a callback function which is called - * each time data is received by Ethernet. If rx_callback==NULL, - * no callback is used. - * Return: pointer on the data frame to be filled for transmission - */ -unsigned char *ethernet_init(unsigned char *tx_double_buf, int double_len_tx, unsigned char *rx_double_buf, - int double_len_rx, rx_eth_callback_t rx_callback); - -/* Description: send raw data to Ethernet (no address management) - * - * Parameter: length: data length [bytes]. Note that length can be lower than double_len/2 - * but not bigger - * blocking: if true, waits the frame transmission - * Return: pointer on the next data frame to transmit - */ -unsigned char *send_eth(int length, bool blocking); - -/* Description: receive raw data from Ethernet (no address management). - * This function blocks until data is received. - * - * Parameter: length: pointer on the received data length [bytes] - * Return: pointer on the received data - */ -unsigned char *rec_eth(int *length); - -#endif /* ETHERNET_MGT_H_ */ diff --git a/TP1_labyrinth_slave_etu/src/ethmac.h b/TP1_labyrinth_slave_etu/src/ethmac.h deleted file mode 100644 index 86c0018..0000000 --- a/TP1_labyrinth_slave_etu/src/ethmac.h +++ /dev/null @@ -1,347 +0,0 @@ -/****************************************************************** - ***** ***** - ***** Name: cs8900.h ***** - ***** Ver.: 1.0 ***** - ***** Date: 07/05/2001 ***** - ***** Auth: Andreas Dannenberg ***** - ***** HTWK Leipzig ***** - ***** university of applied sciences ***** - ***** Germany ***** - ***** adannenb@et.htwk-leipzig.de ***** - ***** Func: header-file for cs8900.c ***** - ***** ***** - ******************************************************************/ - -// Modifications by Code Red Technologies for NXP LPC1768 -// Filename changed to ethmac.h as no longer for cs8900 - -// CodeRed - update for new header filename - -#ifndef __ETHMAC_H -#define __ETHMAC_H - -#define MYMAC_1 1 // our ethernet (MAC) address -#define MYMAC_2 2 // (MUST be unique in LAN!) -#define MYMAC_3 3 -#define MYMAC_4 4 -#define MYMAC_5 5 -#define MYMAC_6 6 - - -// ******* -// CodeRed - defines for LPC1768 ethernet -// ******* - -/* EMAC Memory Buffer configuration for 16K Ethernet RAM. */ -#define NUM_RX_FRAG 4 /* Num.of RX Fragments 4*1536= 6.0kB */ -#define NUM_TX_FRAG 2 /* Num.of TX Fragments 3*1536= 4.6kB */ -#define ETH_FRAG_SIZE 1536 /* Packet Fragment size 1536 Bytes */ - -#define ETH_MAX_FLEN 1536 /* Max. Ethernet Frame Size */ - -/* EMAC variables located in AHB SRAM bank 1*/ -// Below is base address for first silicon -//#define RX_DESC_BASE 0x20004000 -// Below is base address for production silicon -#define RX_DESC_BASE 0x2007c000 -#define RX_STAT_BASE (RX_DESC_BASE + NUM_RX_FRAG*8) -#define TX_DESC_BASE (RX_STAT_BASE + NUM_RX_FRAG*8) -#define TX_STAT_BASE (TX_DESC_BASE + NUM_TX_FRAG*8) -#define RX_BUF_BASE (TX_STAT_BASE + NUM_TX_FRAG*4) -#define TX_BUF_BASE (RX_BUF_BASE + NUM_RX_FRAG*ETH_FRAG_SIZE) - -/* RX and TX descriptor and status definitions. */ -#define RX_DESC_PACKET(i) (*(unsigned int *)(RX_DESC_BASE + 8*i)) -#define RX_DESC_CTRL(i) (*(unsigned int *)(RX_DESC_BASE+4 + 8*i)) -#define RX_STAT_INFO(i) (*(unsigned int *)(RX_STAT_BASE + 8*i)) -#define RX_STAT_HASHCRC(i) (*(unsigned int *)(RX_STAT_BASE+4 + 8*i)) -#define TX_DESC_PACKET(i) (*(unsigned int *)(TX_DESC_BASE + 8*i)) -#define TX_DESC_CTRL(i) (*(unsigned int *)(TX_DESC_BASE+4 + 8*i)) -#define TX_STAT_INFO(i) (*(unsigned int *)(TX_STAT_BASE + 4*i)) -#define RX_BUF(i) (RX_BUF_BASE + ETH_FRAG_SIZE*i) -#define TX_BUF(i) (TX_BUF_BASE + ETH_FRAG_SIZE*i) - -/* MAC Configuration Register 1 */ -#define MAC1_REC_EN 0x00000001 /* Receive Enable */ -#define MAC1_PASS_ALL 0x00000002 /* Pass All Receive Frames */ -#define MAC1_RX_FLOWC 0x00000004 /* RX Flow Control */ -#define MAC1_TX_FLOWC 0x00000008 /* TX Flow Control */ -#define MAC1_LOOPB 0x00000010 /* Loop Back Mode */ -#define MAC1_RES_TX 0x00000100 /* Reset TX Logic */ -#define MAC1_RES_MCS_TX 0x00000200 /* Reset MAC TX Control Sublayer */ -#define MAC1_RES_RX 0x00000400 /* Reset RX Logic */ -#define MAC1_RES_MCS_RX 0x00000800 /* Reset MAC RX Control Sublayer */ -#define MAC1_SIM_RES 0x00004000 /* Simulation Reset */ -#define MAC1_SOFT_RES 0x00008000 /* Soft Reset MAC */ - -/* MAC Configuration Register 2 */ -#define MAC2_FULL_DUP 0x00000001 /* Full Duplex Mode */ -#define MAC2_FRM_LEN_CHK 0x00000002 /* Frame Length Checking */ -#define MAC2_HUGE_FRM_EN 0x00000004 /* Huge Frame Enable */ -#define MAC2_DLY_CRC 0x00000008 /* Delayed CRC Mode */ -#define MAC2_CRC_EN 0x00000010 /* Append CRC to every Frame */ -#define MAC2_PAD_EN 0x00000020 /* Pad all Short Frames */ -#define MAC2_VLAN_PAD_EN 0x00000040 /* VLAN Pad Enable */ -#define MAC2_ADET_PAD_EN 0x00000080 /* Auto Detect Pad Enable */ -#define MAC2_PPREAM_ENF 0x00000100 /* Pure Preamble Enforcement */ -#define MAC2_LPREAM_ENF 0x00000200 /* Long Preamble Enforcement */ -#define MAC2_NO_BACKOFF 0x00001000 /* No Backoff Algorithm */ -#define MAC2_BACK_PRESSURE 0x00002000 /* Backoff Presurre / No Backoff */ -#define MAC2_EXCESS_DEF 0x00004000 /* Excess Defer */ - -/* Back-to-Back Inter-Packet-Gap Register */ -#define IPGT_FULL_DUP 0x00000015 /* Recommended value for Full Duplex */ -#define IPGT_HALF_DUP 0x00000012 /* Recommended value for Half Duplex */ - -/* Non Back-to-Back Inter-Packet-Gap Register */ -#define IPGR_DEF 0x00000012 /* Recommended value */ - -/* Collision Window/Retry Register */ -#define CLRT_DEF 0x0000370F /* Default value */ - -/* PHY Support Register */ -#define SUPP_SPEED 0x00000100 /* Reduced MII Logic Current Speed */ - -/* Test Register */ -#define TEST_SHCUT_PQUANTA 0x00000001 /* Shortcut Pause Quanta */ -#define TEST_TST_PAUSE 0x00000002 /* Test Pause */ -#define TEST_TST_BACKP 0x00000004 /* Test Back Pressure */ - -/* MII Management Configuration Register */ -#define MCFG_SCAN_INC 0x00000001 /* Scan Increment PHY Address */ -#define MCFG_SUPP_PREAM 0x00000002 /* Suppress Preamble */ -#define MCFG_CLK_SEL 0x0000001C /* Clock Select Mask */ -#define MCFG_RES_MII 0x00008000 /* Reset MII Management Hardware */ - -#define MCFG_CLK_DIV28 0x0000001C /* MDC = hclk / 28 */ -#define MCFG_CLK_DIV36 0x00000020 -#define MCFG_CLK_DIV64 0x0000003c - -/* MII Management Command Register */ -#define MCMD_READ 0x00000001 /* MII Read */ -#define MCMD_SCAN 0x00000002 /* MII Scan continuously */ - -#define MII_WR_TOUT 0x00050000 /* MII Write timeout count */ -#define MII_RD_TOUT 0x00050000 /* MII Read timeout count */ - -/* MII Management Address Register */ -#define MADR_REG_ADR 0x0000001F /* MII Register Address Mask */ -#define MADR_PHY_ADR 0x00001F00 /* PHY Address Mask */ - -/* MII Management Indicators Register */ -#define MIND_BUSY 0x00000001 /* MII is Busy */ -#define MIND_SCAN 0x00000002 /* MII Scanning in Progress */ -#define MIND_NOT_VAL 0x00000004 /* MII Read Data not valid */ -#define MIND_MII_LINK_FAIL 0x00000008 /* MII Link Failed */ - -/* Command Register */ -#define CR_RX_EN 0x00000001 /* Enable Receive */ -#define CR_TX_EN 0x00000002 /* Enable Transmit */ -#define CR_REG_RES 0x00000008 /* Reset Host Registers */ -#define CR_TX_RES 0x00000010 /* Reset Transmit Datapath */ -#define CR_RX_RES 0x00000020 /* Reset Receive Datapath */ -#define CR_PASS_RUNT_FRM 0x00000040 /* Pass Runt Frames */ -#define CR_PASS_RX_FILT 0x00000080 /* Pass RX Filter */ -#define CR_TX_FLOW_CTRL 0x00000100 /* TX Flow Control */ -#define CR_RMII 0x00000200 /* Reduced MII Interface */ -#define CR_FULL_DUP 0x00000400 /* Full Duplex */ - -/* Status Register */ -#define SR_RX_EN 0x00000001 /* Enable Receive */ -#define SR_TX_EN 0x00000002 /* Enable Transmit */ - -/* Transmit Status Vector 0 Register */ -#define TSV0_CRC_ERR 0x00000001 /* CRC error */ -#define TSV0_LEN_CHKERR 0x00000002 /* Length Check Error */ -#define TSV0_LEN_OUTRNG 0x00000004 /* Length Out of Range */ -#define TSV0_DONE 0x00000008 /* Tramsmission Completed */ -#define TSV0_MCAST 0x00000010 /* Multicast Destination */ -#define TSV0_BCAST 0x00000020 /* Broadcast Destination */ -#define TSV0_PKT_DEFER 0x00000040 /* Packet Deferred */ -#define TSV0_EXC_DEFER 0x00000080 /* Excessive Packet Deferral */ -#define TSV0_EXC_COLL 0x00000100 /* Excessive Collision */ -#define TSV0_LATE_COLL 0x00000200 /* Late Collision Occured */ -#define TSV0_GIANT 0x00000400 /* Giant Frame */ -#define TSV0_UNDERRUN 0x00000800 /* Buffer Underrun */ -#define TSV0_BYTES 0x0FFFF000 /* Total Bytes Transferred */ -#define TSV0_CTRL_FRAME 0x10000000 /* Control Frame */ -#define TSV0_PAUSE 0x20000000 /* Pause Frame */ -#define TSV0_BACK_PRESS 0x40000000 /* Backpressure Method Applied */ -#define TSV0_VLAN 0x80000000 /* VLAN Frame */ - -/* Transmit Status Vector 1 Register */ -#define TSV1_BYTE_CNT 0x0000FFFF /* Transmit Byte Count */ -#define TSV1_COLL_CNT 0x000F0000 /* Transmit Collision Count */ - -/* Receive Status Vector Register */ -#define RSV_BYTE_CNT 0x0000FFFF /* Receive Byte Count */ -#define RSV_PKT_IGNORED 0x00010000 /* Packet Previously Ignored */ -#define RSV_RXDV_SEEN 0x00020000 /* RXDV Event Previously Seen */ -#define RSV_CARR_SEEN 0x00040000 /* Carrier Event Previously Seen */ -#define RSV_REC_CODEV 0x00080000 /* Receive Code Violation */ -#define RSV_CRC_ERR 0x00100000 /* CRC Error */ -#define RSV_LEN_CHKERR 0x00200000 /* Length Check Error */ -#define RSV_LEN_OUTRNG 0x00400000 /* Length Out of Range */ -#define RSV_REC_OK 0x00800000 /* Frame Received OK */ -#define RSV_MCAST 0x01000000 /* Multicast Frame */ -#define RSV_BCAST 0x02000000 /* Broadcast Frame */ -#define RSV_DRIB_NIBB 0x04000000 /* Dribble Nibble */ -#define RSV_CTRL_FRAME 0x08000000 /* Control Frame */ -#define RSV_PAUSE 0x10000000 /* Pause Frame */ -#define RSV_UNSUPP_OPC 0x20000000 /* Unsupported Opcode */ -#define RSV_VLAN 0x40000000 /* VLAN Frame */ - -/* Flow Control Counter Register */ -#define FCC_MIRR_CNT 0x0000FFFF /* Mirror Counter */ -#define FCC_PAUSE_TIM 0xFFFF0000 /* Pause Timer */ - -/* Flow Control Status Register */ -#define FCS_MIRR_CNT 0x0000FFFF /* Mirror Counter Current */ - -/* Receive Filter Control Register */ -#define RFC_UCAST_EN 0x00000001 /* Accept Unicast Frames Enable */ -#define RFC_BCAST_EN 0x00000002 /* Accept Broadcast Frames Enable */ -#define RFC_MCAST_EN 0x00000004 /* Accept Multicast Frames Enable */ -#define RFC_UCAST_HASH_EN 0x00000008 /* Accept Unicast Hash Filter Frames */ -#define RFC_MCAST_HASH_EN 0x00000010 /* Accept Multicast Hash Filter Fram.*/ -#define RFC_PERFECT_EN 0x00000020 /* Accept Perfect Match Enable */ -#define RFC_MAGP_WOL_EN 0x00001000 /* Magic Packet Filter WoL Enable */ -#define RFC_PFILT_WOL_EN 0x00002000 /* Perfect Filter WoL Enable */ - -/* Receive Filter WoL Status/Clear Registers */ -#define WOL_UCAST 0x00000001 /* Unicast Frame caused WoL */ -#define WOL_BCAST 0x00000002 /* Broadcast Frame caused WoL */ -#define WOL_MCAST 0x00000004 /* Multicast Frame caused WoL */ -#define WOL_UCAST_HASH 0x00000008 /* Unicast Hash Filter Frame WoL */ -#define WOL_MCAST_HASH 0x00000010 /* Multicast Hash Filter Frame WoL */ -#define WOL_PERFECT 0x00000020 /* Perfect Filter WoL */ -#define WOL_RX_FILTER 0x00000080 /* RX Filter caused WoL */ -#define WOL_MAG_PACKET 0x00000100 /* Magic Packet Filter caused WoL */ - -/* Interrupt Status/Enable/Clear/Set Registers */ -#define INT_RX_OVERRUN 0x00000001 /* Overrun Error in RX Queue */ -#define INT_RX_ERR 0x00000002 /* Receive Error */ -#define INT_RX_FIN 0x00000004 /* RX Finished Process Descriptors */ -#define INT_RX_DONE 0x00000008 /* Receive Done */ -#define INT_TX_UNDERRUN 0x00000010 /* Transmit Underrun */ -#define INT_TX_ERR 0x00000020 /* Transmit Error */ -#define INT_TX_FIN 0x00000040 /* TX Finished Process Descriptors */ -#define INT_TX_DONE 0x00000080 /* Transmit Done */ -#define INT_SOFT_INT 0x00001000 /* Software Triggered Interrupt */ -#define INT_WAKEUP 0x00002000 /* Wakeup Event Interrupt */ - -/* Power Down Register */ -#define PD_POWER_DOWN 0x80000000 /* Power Down MAC */ - -/* RX Descriptor Control Word */ -#define RCTRL_SIZE 0x000007FF /* Buffer size mask */ -#define RCTRL_INT 0x80000000 /* Generate RxDone Interrupt */ - -/* RX Status Hash CRC Word */ -#define RHASH_SA 0x000001FF /* Hash CRC for Source Address */ -#define RHASH_DA 0x001FF000 /* Hash CRC for Destination Address */ - -/* RX Status Information Word */ -#define RINFO_SIZE 0x000007FF /* Data size in bytes */ -#define RINFO_CTRL_FRAME 0x00040000 /* Control Frame */ -#define RINFO_VLAN 0x00080000 /* VLAN Frame */ -#define RINFO_FAIL_FILT 0x00100000 /* RX Filter Failed */ -#define RINFO_MCAST 0x00200000 /* Multicast Frame */ -#define RINFO_BCAST 0x00400000 /* Broadcast Frame */ -#define RINFO_CRC_ERR 0x00800000 /* CRC Error in Frame */ -#define RINFO_SYM_ERR 0x01000000 /* Symbol Error from PHY */ -#define RINFO_LEN_ERR 0x02000000 /* Length Error */ -#define RINFO_RANGE_ERR 0x04000000 /* Range Error (exceeded max. size) */ -#define RINFO_ALIGN_ERR 0x08000000 /* Alignment Error */ -#define RINFO_OVERRUN 0x10000000 /* Receive overrun */ -#define RINFO_NO_DESCR 0x20000000 /* No new Descriptor available */ -#define RINFO_LAST_FLAG 0x40000000 /* Last Fragment in Frame */ -#define RINFO_ERR 0x80000000 /* Error Occured (OR of all errors) */ - -#define RINFO_ERR_MASK (RINFO_FAIL_FILT | RINFO_CRC_ERR | RINFO_SYM_ERR | \ - RINFO_LEN_ERR | RINFO_ALIGN_ERR | RINFO_OVERRUN) - -/* TX Descriptor Control Word */ -#define TCTRL_SIZE 0x000007FF /* Size of data buffer in bytes */ -#define TCTRL_OVERRIDE 0x04000000 /* Override Default MAC Registers */ -#define TCTRL_HUGE 0x08000000 /* Enable Huge Frame */ -#define TCTRL_PAD 0x10000000 /* Pad short Frames to 64 bytes */ -#define TCTRL_CRC 0x20000000 /* Append a hardware CRC to Frame */ -#define TCTRL_LAST 0x40000000 /* Last Descriptor for TX Frame */ -#define TCTRL_INT 0x80000000 /* Generate TxDone Interrupt */ - -/* TX Status Information Word */ -#define TINFO_COL_CNT 0x01E00000 /* Collision Count */ -#define TINFO_DEFER 0x02000000 /* Packet Deferred (not an error) */ -#define TINFO_EXCESS_DEF 0x04000000 /* Excessive Deferral */ -#define TINFO_EXCESS_COL 0x08000000 /* Excessive Collision */ -#define TINFO_LATE_COL 0x10000000 /* Late Collision Occured */ -#define TINFO_UNDERRUN 0x20000000 /* Transmit Underrun */ -#define TINFO_NO_DESCR 0x40000000 /* No new Descriptor available */ -#define TINFO_ERR 0x80000000 /* Error Occured (OR of all errors) */ - -/* ENET Device Revision ID */ -#define OLD_EMAC_MODULE_ID 0x39022000 /* Rev. ID for first rev '-' */ - -/* DP83848C PHY Registers */ -#define PHY_REG_BMCR 0x00 /* Basic Mode Control Register */ -#define PHY_REG_BMSR 0x01 /* Basic Mode Status Register */ -#define PHY_REG_IDR1 0x02 /* PHY Identifier 1 */ -#define PHY_REG_IDR2 0x03 /* PHY Identifier 2 */ -#define PHY_REG_ANAR 0x04 /* Auto-Negotiation Advertisement */ -#define PHY_REG_ANLPAR 0x05 /* Auto-Neg. Link Partner Abitily */ -#define PHY_REG_ANER 0x06 /* Auto-Neg. Expansion Register */ -#define PHY_REG_ANNPTR 0x07 /* Auto-Neg. Next Page TX */ - -/* PHY Extended Registers */ -#define PHY_REG_STS 0x10 /* Status Register */ -#define PHY_REG_MICR 0x11 /* MII Interrupt Control Register */ -#define PHY_REG_MISR 0x12 /* MII Interrupt Status Register */ -#define PHY_REG_FCSCR 0x14 /* False Carrier Sense Counter */ -#define PHY_REG_RECR 0x15 /* Receive Error Counter */ -#define PHY_REG_PCSR 0x16 /* PCS Sublayer Config. and Status */ -#define PHY_REG_RBR 0x17 /* RMII and Bypass Register */ -#define PHY_REG_LEDCR 0x18 /* LED Direct Control Register */ -#define PHY_REG_PHYCR 0x19 /* PHY Control Register */ -#define PHY_REG_10BTSCR 0x1A /* 10Base-T Status/Control Register */ -#define PHY_REG_CDCTRL1 0x1B /* CD Test Control and BIST Extens. */ -#define PHY_REG_EDCR 0x1D /* Energy Detect Control Register */ - -#define PHY_FULLD_100M 0x2100 /* Full Duplex 100Mbit */ -#define PHY_HALFD_100M 0x2000 /* Half Duplex 100Mbit */ -#define PHY_FULLD_10M 0x0100 /* Full Duplex 10Mbit */ -#define PHY_HALFD_10M 0x0000 /* Half Duplex 10MBit */ -#define PHY_AUTO_NEG 0x3000 /* Select Auto Negotiation */ - -#define DP83848C_DEF_ADR 0x0100 /* Default PHY device address */ -#define DP83848C_ID 0x20005C90 /* PHY Identifier */ - -// Ethernet power/clock control bit in PCONP register -#define PCENET 0x40000000 -// Ethernet configuration for PINSEL2, as per user guide section 5.3 -#define ENET_PINSEL2_CONFIG 0x50150105 -// Ethernet configuration for PINSEL3, as per user guide section 5.4 -#define ENET_PINSEL3_CONFIG 0x00000005 -// Only bottom byte of PINSEL3 relevant to Ethernet -#define ENET_PINSEL3_MASK 0x0000000F - - -/************************************************* - * CodeRed - PHY definitions for RDB1768 rev 2 - * which uses SMSC LAN8720 PHY instead of DP83848C - *************************************************/ -#define LAN8720_ID 0x0007C0F0 /* PHY Identifier */ - - -void Init_EthMAC(void); -void RequestSend(unsigned short FrameSize); -unsigned short StartReadingFrame(void); -void StopReadingFrame(void); -unsigned int CheckIfFrameReceived(void); -void WriteFrame_EthMAC(unsigned char Data); -unsigned char ReadFrame_EthMAC(void); -void ethernet_power_down(void); - - -#endif - diff --git a/TP1_labyrinth_slave_etu/src/fonts.h b/TP1_labyrinth_slave_etu/src/fonts.h deleted file mode 100644 index 602ae77..0000000 --- a/TP1_labyrinth_slave_etu/src/fonts.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * fonts.h - * - * Created on: 19 avr. 2016 - * Author: cma - */ - -#ifndef INC_FONTS_H_ -#define INC_FONTS_H_ - -#define fontdatatype const unsigned char -extern fontdatatype SmallFont[]; -extern fontdatatype BigFont[]; - -#define SMALLFONT 0 -#define BIGFONT 1 - -#endif /* INC_FONTS_H_ */ diff --git a/TP1_labyrinth_slave_etu/src/labyrinth_slave.c b/TP1_labyrinth_slave_etu/src/labyrinth_slave.c deleted file mode 100644 index ac49ec0..0000000 --- a/TP1_labyrinth_slave_etu/src/labyrinth_slave.c +++ /dev/null @@ -1,77 +0,0 @@ -/* -=============================================================================== - Name : labyrinth_slave.c - Author : V. Pilloux - Date : 23.10.2017 - Description : TP1 Labyrinth solution, slave code. The slave only transmits - the accelerometer data to the master and displays the balls at - the positions given by the master. - The Ethernet interrupt is masked when the data has to be used - in the main to avoid an overriding during the variables use. -=============================================================================== -*/ - -#include "LPC17xx.h" - -#include <stdbool.h> -#include <stdio.h> -#include <string.h> -#include <cr_section_macros.h> -#include "lcd.h" -#include "accelerometer.h" -#include "ethernet_mgt.h" -#include "tools.h" - -#define NUMBER_OF_BALLS 5 // min 1 -#define BALL_DISP_PERIOD 20 // ms -#define BALL_RADIUS 5 -#define LCD_YELLOW (LCD_GREEN | LCD_RED) -#define NONE -1 - -#define GOAL_H_WALL (LCD_MAX_WIDTH-(2*BALL_RADIUS+1+WALL_WIDTH)) -#define GOAL_V_WALL (LCD_MAX_HEIGHT-(2*BALL_RADIUS+1+WALL_WIDTH)-1) - - -static coord_fx_t labyrinth_points[]={ - {80,280},{40,280},{40,190},{END_OF_LINE,LCD_WHITE}, - {40,100},{150,100},{150,160},{70,160},{END_OF_LINE,LCD_WHITE}, - {0,160},{40,160},{END_OF_LINE,LCD_WHITE}, - {70,190},{180,190},{180,80},{END_OF_LINE,LCD_WHITE}, - {210,100},{238,100},{END_OF_LINE,LCD_WHITE}, - {180,220},{238,220},{END_OF_LINE,LCD_WHITE}, - {0,40},{100,40},{END_OF_LINE,LCD_WHITE}, - {140,40},{237,40},{END_OF_LINE,LCD_WHITE}, - {120,220},{120,300},{END_OF_LINE,LCD_GREEN}, - {GOAL_H_WALL-2*BALL_RADIUS,GOAL_V_WALL},{LCD_MAX_WIDTH-1,GOAL_V_WALL},{END_OF_LINE,LCD_GREEN}, - {GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,LCD_MAX_HEIGHT-WALL_WIDTH},{GOAL_H_WALL-4*BALL_RADIUS-WALL_WIDTH-1,GOAL_V_WALL},{END_OF_WALLS,END_OF_WALLS} -}; - - -/* Description: Callback of ethernet module. This function is called when a message is received. - * Each ball of the master send its own coordinates that are saved here. - * Parameters: data: pointer on data received - * len: length of the data [bytes] - */ -void master_info_rx(void *data, int len) -{ - // receive master_tx structure -} - -int main(void) -{ - init_lcd(); - if(accel_init() != 0) - { - printf("Accelerometer initialisation failed!\n"); - return 1; - } - //ethernet_init(..., master_info_rx); - - draw_labyrinth(labyrinth_points); - - while(1) - { - - } -} - diff --git a/TP1_labyrinth_slave_etu/src/lcd.h b/TP1_labyrinth_slave_etu/src/lcd.h deleted file mode 100644 index b07e4d8..0000000 --- a/TP1_labyrinth_slave_etu/src/lcd.h +++ /dev/null @@ -1,231 +0,0 @@ -/* - * lcd.h - * - * Created on: 27 févr. 2014 - * Updated on: 28.9.2016 - * Authors: F. Vannel, V. Pilloux - * - * Note: the RGB screen colors (if coded with 16 bits) have the following format: - * blue: bits 4..0 - * green: bits 10..5 - * red: bits 15..11 - */ - -#ifndef LCD_H_ -#define LCD_H_ - -#ifdef __USE_CMSIS -#include "LPC17xx.h" -#endif - -#include <stdarg.h> -#include <stdbool.h> -#include <stdint.h> -#include "ssp.h" -#include "fonts.h" - -// LCD predefined colors -#define LCD_BLUE (0xF<<1) -#define LCD_GREEN (0x3f<<5) -#define LCD_RED (0x1f<<11) -#define LCD_WHITE 0xFFFF -#define LCD_BLACK 0 - -// screen size -#define LCD_MAX_HEIGHT (320) -#define LCD_MAX_WIDTH (240) - - -#define DISPLAY_ON() Write_Instruction(0xaf) // Display on -#define DISPLAY_OFF() Write_Instruction(0xae) // Display off -#define SET_ADC() Write_Instruction(0xa1) // Reverse disrect (SEG128-SEG0) -#define CLEAR_ADC() Write_Instruction(0xa0) // Normal disrect (SEG0-SEG128) -#define REVERSE_DISPLAY_ON() Write_Instruction(0xa7) // Reverse display : 0 illuminated -#define REVERSE_DISPLAY_OFF() Write_Instruction(0xa6) // Normal display : 1 illuminated -#define ENTIRE_DISPLAY_ON() Write_Instruction(0xa5) // Entire display Force whole LCD point -#define ENTIRE_DISPLAY_OFF() Write_Instruction(0xa4) // Normal display -#define SET_BIAS() Write_Instruction(0xa3) // bias 1 1/7 bias -#define CLEAR_BIAS() Write_Instruction(0xa2) // bias 0 1/9 bias -#define SET_MODIFY_READ() Write_Instruction(0xe0) // Stop automatic increment of the column address by the read instruction -#define RESET_MODIFY_READ() Write_Instruction(0xee) // Cancel Modify_read, column address return to its initial value just before the Set Modify Read instruction is started -#define RESET() Write_Instruction(0xe2) -#define SET_SHL() Write_Instruction(0xc8) // SHL 1,COM33-COM0 -#define CLEAR_SHL() Write_Instruction(0xc0) // SHL 0,COM0-COM33 - -#define LCD_CS_PIN 16 -#define LCD_RS_PORT 1 // D/C DATA/COMMAND SELECT -#define LCD_RS_PIN 30 - -// sck, mosi, miso is setup within ssp_init -// LCD_RS = D/Cx line. Must be 0 for a command, 1 for data. -// WARNING: LCD_CS_ENA() is called by lcd_init() only. If another peripheral uses SSP, LCD_CS_DIS() must be called. -// If the screen is required again, LCD_CS_ENA() must be called again! -#define LCD_CS_ENA() {LPC_GPIO0->FIOCLR=(1<<LCD_CS_PIN);} -#define LCD_CS_DIS() { while ((LPC_SSP0->SR & SSPSR_BSY)); \ - LPC_GPIO0->FIOSET=(1<<LCD_CS_PIN);} - - -/* Description: LCD initialisation. Must be called before any other function. */ -void init_lcd(void); - -/* Description: fill the screen with the defined color in RGB format (see above) - * Parameter: color: RGB 16 bits color (see format description above) - */ -void clear_screen(unsigned int color); - -/* Description: print text (with printf equivalent formatting) at the last line of screen with - * specified color. Automatic line wrapping is implemented, as \n and \r characters. - * Parameters: color: RGB 16 bits color of the text - * back_color: RGB 16 bits color of the text backround - * st: string in "printf format" followed by any parameter - * Return: string length [pixels] - */ -uint16_t lcd_printf(int color, int back_color, char *st, ...); - -/* Description: print text (with printf equivalent formatting) at the specified position and color - * Parameters: x: horizontal position of the text to print - * y: vertical position of the text to print - * font_size: BIGFONT or SMALLFONT - * color: RGB 16 bits color of the text - * back_color: RGB 16 bits color of the text backround - * st: string in "printf format" followed by any parameter - * Return: string length [char] - */ -uint16_t lcd_print(int x, int y, int font_size, int color, int back_color, char *st, ...); - -/* Description: setup scroll type - * Parameter: top_fixed_lines: number of the first lines that are fixed (not scrolled) - * scroll_lines: number of lines to scroll - * bottom_fixed_lines: number of the last lines that are fixed (not scrolled) - */ -void setup_scroll(uint16_t top_fixed_lines, uint16_t scroll_lines, uint16_t bottom_fixed_lines); - -/* Description: scroll the screen vertically - * Parameter: offset: scroll length [pixels] - */ -void lcd_scroll(int offset); - -/* Description: print one character at any position - * Parameter: c: character to print - * x: horizontal position of the character to print - * y: vertical position of the character to print - * color:RGB 16 bits color of the text - * font_size: BIGFONT or SMALLFONT - */ -void lcd_print_char(char c, int x, int y, int color, int back_color, int font_size); - -/* Description: draw an empty circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits color of the text - */ -void lcd_circle(int x_centre, int y_centre, int r, unsigned int color); - -/* Description: draw a filled circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits color of the circle - */ -void lcd_filled_circle(int x_centre, int y_centre, int r, unsigned int color); - -/* Description: draw a filled circle - * Parameter: x_centre: horizontal position of the center of the circle - * y_centre: vertical position of the center of the circle - * r: circle radius - * color:RGB 16 bits foreground color of the circle - * background_color: background color of the square around the circle - */ -void lcd_filled_circle_on_square(int x_centre, int y_centre, int r, - unsigned int color, unsigned int background_color); - -/* Description: draw a line - * Parameter: x1: horizontal position of one line extremity - * y1: vertical position of one line extremity - * x2: horizontal position of the second line extremity - * y2: vertical position of the second line extremity - * color:RGB 16 bits color of the text - */ -void lcd_line(int x1, int y1, int x2, int y2, unsigned int color); - -/* Description: draw an horizontal line - * Parameter: x1: left horizontal position of one the line - * y1: vertical position of the line - * l: line length - * color:RGB 16 bits color of the text - */ -void lcd_lineH(int x, int y, int l, unsigned int color) ; - -/* Description: draw an vertical line - * Parameter: x1: left horizontal position of one the line - * y1: vertical position of the line - * l: line length - * color:RGB 16 bits color of the text - */ -void lcd_lineV(int x, int y, int l, unsigned int color); - -/* Description: draw an empty rectangle - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * color:RGB 16 bits color of the text - */ -void lcd_empty_rectangle(int x1, int y1, int x2, int y2, int color); - -/* Description: draw plain rectangle - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * color:RGB 16 bits color of the text - */ -void lcd_filled_rectangle(int x1, int y1, int x2, int y2, int color); - -/* Description: read an image in a file of BMP format, adapts it to the LCD format and - * put it in memory. The number of pixel of the image width must be a multiple of 4. - * Parameter: filename: filename of a BMP file - * - * Return: width: image width [pixels] - * height: image height [pixels] - * return value: pointer on the image in memory or NULL if an error occurred - */ -uint16_t *read_bmp_file(char *filename, uint16_t *width, uint16_t *height); - -/* Description: display an image stored in memory - * Parameter: bitmap: pointer on the image in memory. Each word of 16 bits represents the - * color of one pixel. The pixel are stored from left to right line by - * line from top to bottom. - * x: horizontal position of the top left corner - * y: vertical position of the top left corner - * width: image width - * height: image height - */ -void display_bitmap16(uint16_t *bitmap, uint16_t x, uint16_t y, uint16_t width, uint16_t height); - -/* Description: get pixel colors in a rectangle (16 bits format) - * Parameter: x1: horizontal position of the top left corner - * y1: vertical position of the top left corner - * x2: horizontal position of the bottom right corner - * y2: vertical position of the bottom right corner - * out: pointer on the 16 bits colors of the pixels in the rectangle - */ -void read_pixels(uint8_t x1, uint16_t y1, uint8_t x2, uint16_t y2, uint16_t *out); - - -/* Description: reads data of any command that gets data on LCD - * Parameter: read_cmd: LCD command word - * data_read: pointer on data to be read - * len: data length - */ -void read_cmd(uint8_t read_cmd, uint8_t *data_read, uint16_t len); - -// macro utilities -#define swap(type, i, j) {type t = i; i = j; j = t;} -#define MAX(x,y) (((x)>(y))?(x):(y)) -#define MIN(x,y) (((x)<(y))?(x):(y)) -#define ABS(x) (((x)<0)?-(x):(x)) - - -#endif /* LCD_H_ */ diff --git a/TP1_labyrinth_slave_etu/src/ssp.h b/TP1_labyrinth_slave_etu/src/ssp.h deleted file mode 100644 index 5584d85..0000000 --- a/TP1_labyrinth_slave_etu/src/ssp.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * ssp.h - * - * Created on: 12 mars 2014 - * Author: christian - */ - -#ifndef SSP_H_ -#define SSP_H_ - -#include "LPC17xx.h" - -#define SSPSR_TFE (1 << 0) -#define SSPSR_TNF (1 << 1) -#define SSPSR_RNE (1 << 2) -#define SSPSR_RFF (1 << 3) -#define SSPSR_BSY (1 << 4) - - -void ssp_init_custom(uint8_t data_size_select, uint8_t scr); -void ssp_send_buf(uint8_t *buf, uint32_t length); -void ssp_receive_buf(uint8_t *buf, uint32_t length); - -#endif /* SSP_H_ */ diff --git a/TP1_labyrinth_slave_etu/src/tools.c b/TP1_labyrinth_slave_etu/src/tools.c deleted file mode 100644 index a7b6264..0000000 --- a/TP1_labyrinth_slave_etu/src/tools.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * tools.c - * - * Created on: 22 oct. 2017 - * Author: vince - */ - -#include <math.h> -#include "tools.h" -#include "lcd.h" - -int round(float x) -{ - if (x>=.5) - return (int)ceil(x); - if (x<=-.5) - return (int)floor(x); - return 0; -} - - -void draw_labyrinth(coord_fx_t *labyrinth_points) -{ - int i=0, color=LCD_WHITE; - - clear_screen(LCD_BLACK); - do { - while (labyrinth_points[++i].x>=0) - { - lcd_filled_rectangle( - labyrinth_points[i-1].x>labyrinth_points[i].x?labyrinth_points[i-1].x+WALL_WIDTH-1:labyrinth_points[i-1].x, - labyrinth_points[i-1].y>labyrinth_points[i].y?labyrinth_points[i-1].y+WALL_WIDTH-1:labyrinth_points[i-1].y, - labyrinth_points[i-1].x==labyrinth_points[i].x?labyrinth_points[i].x+WALL_WIDTH-1:labyrinth_points[i].x, - labyrinth_points[i-1].y==labyrinth_points[i].y?labyrinth_points[i].y+WALL_WIDTH-1:labyrinth_points[i].y, - color); - } - color=labyrinth_points[i].y; - } while (labyrinth_points[i++].x!=END_OF_WALLS); -} - - -/* detect all collisions among all object in every direction - * Return: collision vector index or NO_COLLISION - */ -int test_collision(object_t *object) -{ - uint16_t tp[2*MAX_RADIUS+1], i, k; - int offset_x, offset_y; - int col_dir_idx=0; // keep track of collision points around max_dir - coord_fx_t speed, pos; - float speed_max; - - // test collision at next position of the object. ! to rounding ! - pos.x=round(object->pos.x+object->speed.x); - pos.y=round(object->pos.y+object->speed.y); - speed.x=pos.x-round(object->pos.x); - speed.y=pos.y-round(object->pos.y); - // test screen bounds: - if (pos.x<object->radius) - col_dir_idx|=TOUCH_LEFT; - if (pos.x>LCD_MAX_WIDTH-object->radius-1) - col_dir_idx|=TOUCH_RIGHT; - if (pos.y<object->radius) - col_dir_idx|=TOUCH_UP; - if (pos.y>LCD_MAX_HEIGHT-object->radius-1) - col_dir_idx|=TOUCH_DOWN; - if (col_dir_idx) - return col_dir_idx; - - speed_max=MAX(ABS(speed.x), ABS(speed.y)); - for (k=1; k<=speed_max; k++) // test line by line if there is a collision, going forward of 1 pixel - { - pos.x=round(object->pos.x+object->speed.x*(float)k/speed_max); - pos.y=round(object->pos.y+object->speed.y*(float)k/speed_max); - speed.x=pos.x-round(object->pos.x); - speed.y=pos.y-round(object->pos.y); - offset_x=speed.x?1:0; // to adjust size of the front detection line - offset_y=speed.y?1:0; - if (speed.y>0) // test low horizontal line of pixel of the object width (on new position), except pixel on corner! - { - read_pixels((uint8_t)(pos.x-object->radius+offset_x), (uint16_t)(pos.y+object->radius), - (uint8_t)(pos.x+object->radius-offset_x), (uint16_t)(pos.y+object->radius), tp); - for (i=0; i<=2*(object->radius-offset_x); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_DOWN; - break; - } - } - if (speed.y<0) - { - read_pixels((uint8_t)(pos.x-object->radius+offset_x), (uint16_t)(pos.y-object->radius), - (uint8_t)(pos.x+object->radius-offset_x), (uint16_t)(pos.y-object->radius), tp); - for (i=0; i<=2*(object->radius-offset_x); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_UP; - break; - } - } - if (speed.x>0) // test right vertical line of pixel of the object width (on new position) except corner pixel - { - read_pixels((uint8_t)(pos.x+object->radius), (uint16_t)(pos.y-object->radius+offset_y), - (uint8_t)(pos.x+object->radius), (uint16_t)(pos.y+object->radius-offset_y), tp); - for (i=0; i<=2*(object->radius-offset_y); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_RIGHT; - break; - } - } - if (speed.x<0) - { - read_pixels((uint8_t)(pos.x-object->radius), (uint16_t)(pos.y-object->radius+offset_y), - (uint8_t)(pos.x-object->radius), (uint16_t)(pos.y+object->radius-offset_y), tp); - for (i=0; i<=2*(object->radius-offset_y); i++) - if (tp[i]) - { - col_dir_idx|=TOUCH_LEFT; - break; - } - } - if (col_dir_idx) - break; - } - return col_dir_idx; -} diff --git a/TP1_labyrinth_slave_etu/src/tools.h b/TP1_labyrinth_slave_etu/src/tools.h deleted file mode 100644 index e996599..0000000 --- a/TP1_labyrinth_slave_etu/src/tools.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Name : tools.h - * Author : VP - * Date : 23.10.2017 - * Description : utility functions to draw the labyrinth and to test object collisions - */ - -#ifndef TOOLS_H_ -#define TOOLS_H_ - -#include <stdint.h> - -#define MAX_RADIUS 15 // maximum radius of an object -#define WALL_WIDTH 3 // labyrinth wall width -#define END_OF_LINE -1 // 'x' coordinate of labyrinth indicating the end of a wall -#define END_OF_WALLS -2 // ^y' coordinate of labyrinth indicating the end of the point table - -// constants used to build the collision vector (see function test_collision) -enum { - NO_COLLISION=0, - TOUCH_LEFT=(1<<2), - TOUCH_RIGHT=(1<<0), - TOUCH_UP=(1<<1), - TOUCH_DOWN=(1<<3), -}; - -typedef struct -{ - float x; - float y; -} coord_t; - -typedef struct -{ - int x; - int y; -} coord_fx_t; - -// defines a "squared" object. "pos" defines the position of the center of the object -// and radius is the number of pixels considered around pos in x and y directions -typedef struct -{ - coord_t pos; - coord_t speed; - uint8_t radius; - uint16_t color; - uint16_t period; // display period [ms] -} object_t; - -typedef struct { - int ball_id; - coord_fx_t ball_coord; - uint16_t color; - uint8_t radius; - int8_t winner; - //uint32_t dbg_cptr; -} master_tx_t; - -// rounds a float on an integer, whatever its sign -int round(float x); - - -/* draw the labyrinth. The wall description is an array of points. 2 successive points must have at least - * one common coordinate, either x or y since only vertical or horizontal lines are allowed. To end a line, - * END_OF_LINE must replace the x coordinate, while feeding y with the line color of the next line. The end of the array - * is marked with the point {END_OF_WALLS,END_OF_WALLS} - * Parameter: labyrinth_points: pointer on the array of points - * */ -void draw_labyrinth(coord_fx_t *labyrinth_points); - -/* detect all collisions among all objects in every direction. - * Parameter: object: object that tests collisions - * Return: collision vector index or NO_COLLISION. The vector is a bit vector indicating where the object touched - * an obstacle. Example of value returned: TOUCH_RIGHT | TOUCH_UP. - */ -int test_collision(object_t *object); - -#endif /* TOOLS_H_ */ -- GitLab