From 785a840278781966e2a9737ff51997c629e52a19 Mon Sep 17 00:00:00 2001 From: iliya <iliya.saroukha@hes-so.ch> Date: Wed, 15 Nov 2023 14:13:21 +0100 Subject: [PATCH] feat: init labo ex dma --- CMSISv2p00_LPC17xx/.gitignore | 1 + .../.settings/language.settings.xml | 6 +- .../Debug/libCMSISv2p00_LPC17xx.a | Bin 82860 -> 90608 bytes CMSISv2p00_LPC17xx/Debug/makefile | 110 +- CMSISv2p00_LPC17xx/Debug/sources.mk | 32 +- CMSISv2p00_LPC17xx/Debug/src/core_cm3.d | 2 +- CMSISv2p00_LPC17xx/Debug/src/core_cm3.o | Bin 27204 -> 30832 bytes CMSISv2p00_LPC17xx/Debug/src/subdir.mk | 53 +- CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d | 21 +- CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o | Bin 55324 -> 59444 bytes .../.settings/language.settings.xml | 4 +- labo4.1_DMA_new/.cproject | 432 ++++++ labo4.1_DMA_new/.project | 27 + .../.settings/language.settings.xml | 25 + .../org.eclipse.core.resources.prefs | 2 + labo4.1_DMA_new/Debug/labo4.1_DMA.map | 467 +++++++ labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf | Bin 0 -> 127100 bytes labo4.1_DMA_new/Debug/labo4.1_DMA_new.map | 458 ++++++ labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld | 203 +++ .../Debug/labo4_1_DMA_Debug_library.ld | 16 + .../Debug/labo4_1_DMA_Debug_memory.ld | 32 + .../Debug/labo4_1_DMA_new_Debug.ld | 200 +++ .../Debug/labo4_1_DMA_new_Debug_library.ld | 15 + .../Debug/labo4_1_DMA_new_Debug_memory.ld | 31 + labo4.1_DMA_new/Debug/labo6_DMA.map | 440 ++++++ labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld | 158 +++ .../Debug/labo6_DMA_Debug_library.ld | 14 + .../Debug/labo6_DMA_Debug_memory.ld | 31 + labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld | 163 +++ labo4.1_DMA_new/Debug/labo7_DMA.axf | Bin 0 -> 192267 bytes labo4.1_DMA_new/Debug/labo7_DMA.map | 404 ++++++ labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld | 155 +++ labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld | 14 + labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld | 25 + labo4.1_DMA_new/Debug/labo_DMA.axf | Bin 0 -> 192043 bytes labo4.1_DMA_new/Debug/labo_DMA.map | 403 ++++++ labo4.1_DMA_new/Debug/labo_DMA_Debug.ld | 154 ++ labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld | 13 + labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld | 21 + labo4.1_DMA_new/Debug/makefile | 60 + labo4.1_DMA_new/Debug/objects.mk | 8 + labo4.1_DMA_new/Debug/sources.mk | 18 + labo4.1_DMA_new/Debug/src/config_LPC1769.su | 1 + .../Debug/src/cr_startup_lpc176x.d | 1 + .../Debug/src/cr_startup_lpc176x.o | Bin 0 -> 26828 bytes .../Debug/src/cr_startup_lpc176x.su | 13 + labo4.1_DMA_new/Debug/src/crp.d | 1 + labo4.1_DMA_new/Debug/src/crp.o | Bin 0 -> 20676 bytes labo4.1_DMA_new/Debug/src/crp.su | 0 labo4.1_DMA_new/Debug/src/dma.d | 13 + labo4.1_DMA_new/Debug/src/dma.o | Bin 0 -> 61376 bytes labo4.1_DMA_new/Debug/src/dma.su | 3 + labo4.1_DMA_new/Debug/src/dmatest.d | 12 + labo4.1_DMA_new/Debug/src/dmatest.o | Bin 0 -> 59640 bytes labo4.1_DMA_new/Debug/src/dmatest.su | 4 + labo4.1_DMA_new/Debug/src/subdir.mk | 47 + .../labo4.1_DMA_new LinkServer Debug.launch | 99 ++ labo4.1_DMA_new/labo6_DMA Debug.launch | 22 + labo4.1_DMA_new/labo6_DMA Release.launch | 18 + labo4.1_DMA_new/src/cr_startup_lpc176x.c | 421 ++++++ labo4.1_DMA_new/src/crp.c | 38 + labo4.1_DMA_new/src/dma.c | 50 + labo4.1_DMA_new/src/dma.h | 36 + labo4.1_DMA_new/src/dmatest.c | 80 ++ .../CMSISv2p00_LPC17xx/.cproject | 510 +++++++ .../CMSISv2p00_LPC17xx/.project | 81 ++ .../.settings/language.settings.xml | 25 + .../Debug/libCMSISv2p00_LPC17xx.a | Bin 0 -> 90076 bytes .../CMSISv2p00_LPC17xx/Debug/makefile | 60 + .../CMSISv2p00_LPC17xx/Debug/objects.mk | 8 + .../CMSISv2p00_LPC17xx/Debug/sources.mk | 18 + .../CMSISv2p00_LPC17xx/Debug/src/core_cm3.d | 1 + .../CMSISv2p00_LPC17xx/Debug/src/core_cm3.o | Bin 0 -> 30504 bytes .../CMSISv2p00_LPC17xx/Debug/src/core_cm3.su | 0 .../CMSISv2p00_LPC17xx/Debug/src/subdir.mk | 34 + .../Debug/src/system_LPC17xx.d | 8 + .../Debug/src/system_LPC17xx.o | Bin 0 -> 59240 bytes .../Debug/src/system_LPC17xx.su | 2 + .../docs/CMSIS END USER LICENCE AGREEMENT.pdf | Bin 0 -> 51511 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 +++++++ .../labo4.1_DMA_new/.cproject | 432 ++++++ .../labo4.1_DMA_new/.project | 27 + .../.settings/language.settings.xml | 25 + .../labo4.1_DMA_new/Debug/labo4.1_DMA.map | 467 +++++++ .../labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf | Bin 0 -> 124768 bytes .../labo4.1_DMA_new/Debug/labo4.1_DMA_new.map | 450 ++++++ .../Debug/labo4_1_DMA_Debug.ld | 203 +++ .../Debug/labo4_1_DMA_Debug_library.ld | 16 + .../Debug/labo4_1_DMA_Debug_memory.ld | 32 + .../Debug/labo4_1_DMA_new_Debug.ld | 201 +++ .../Debug/labo4_1_DMA_new_Debug_library.ld | 16 + .../Debug/labo4_1_DMA_new_Debug_memory.ld | 32 + .../labo4.1_DMA_new/Debug/labo6_DMA.map | 440 ++++++ .../labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld | 158 +++ .../Debug/labo6_DMA_Debug_library.ld | 14 + .../Debug/labo6_DMA_Debug_memory.ld | 31 + .../Debug/labo6_DMA_Debug_old.ld | 163 +++ .../labo4.1_DMA_new/Debug/labo7_DMA.axf | Bin 0 -> 192267 bytes .../labo4.1_DMA_new/Debug/labo7_DMA.map | 404 ++++++ .../labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld | 155 +++ .../Debug/labo7_DMA_Debug_lib.ld | 14 + .../Debug/labo7_DMA_Debug_mem.ld | 25 + .../labo4.1_DMA_new/Debug/labo_DMA.axf | Bin 0 -> 192043 bytes .../labo4.1_DMA_new/Debug/labo_DMA.map | 403 ++++++ .../labo4.1_DMA_new/Debug/labo_DMA_Debug.ld | 154 ++ .../Debug/labo_DMA_Debug_lib.ld | 13 + .../Debug/labo_DMA_Debug_mem.ld | 21 + .../labo4.1_DMA_new/Debug/makefile | 60 + .../labo4.1_DMA_new/Debug/objects.mk | 8 + .../labo4.1_DMA_new/Debug/sources.mk | 18 + .../Debug/src/config_LPC1769.su | 1 + .../Debug/src/cr_startup_lpc176x.d | 1 + .../Debug/src/cr_startup_lpc176x.o | Bin 0 -> 27024 bytes .../Debug/src/cr_startup_lpc176x.su | 13 + .../labo4.1_DMA_new/Debug/src/crp.d | 1 + .../labo4.1_DMA_new/Debug/src/crp.o | Bin 0 -> 20332 bytes .../labo4.1_DMA_new/Debug/src/crp.su | 0 .../labo4.1_DMA_new/Debug/src/dma.d | 13 + .../labo4.1_DMA_new/Debug/src/dma.o | Bin 0 -> 58004 bytes .../labo4.1_DMA_new/Debug/src/dma.su | 2 + .../labo4.1_DMA_new/Debug/src/dmatest.d | 12 + .../labo4.1_DMA_new/Debug/src/dmatest.o | Bin 0 -> 59224 bytes .../labo4.1_DMA_new/Debug/src/dmatest.su | 4 + .../labo4.1_DMA_new/Debug/src/subdir.mk | 47 + .../labo4.1_DMA_new/labo6_DMA Debug.launch | 22 + .../labo4.1_DMA_new/labo6_DMA Release.launch | 18 + .../labo4.1_DMA_new/src/cr_startup_lpc176x.c | 421 ++++++ .../labo4.1_DMA_new/src/crp.c | 38 + .../labo4.1_DMA_new/src/dma.c | 40 + .../labo4.1_DMA_new/src/dma.h | 36 + .../labo4.1_DMA_new/src/dmatest.c | 80 ++ 139 files changed, 15328 insertions(+), 108 deletions(-) create mode 100644 CMSISv2p00_LPC17xx/.gitignore create mode 100644 labo4.1_DMA_new/.cproject create mode 100644 labo4.1_DMA_new/.project create mode 100644 labo4.1_DMA_new/.settings/language.settings.xml create mode 100644 labo4.1_DMA_new/.settings/org.eclipse.core.resources.prefs create mode 100644 labo4.1_DMA_new/Debug/labo4.1_DMA.map create mode 100755 labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf create mode 100644 labo4.1_DMA_new/Debug/labo4.1_DMA_new.map create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld create mode 100644 labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld create mode 100644 labo4.1_DMA_new/Debug/labo6_DMA.map create mode 100644 labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld create mode 100644 labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld create mode 100644 labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld create mode 100644 labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld create mode 100644 labo4.1_DMA_new/Debug/labo7_DMA.axf create mode 100644 labo4.1_DMA_new/Debug/labo7_DMA.map create mode 100644 labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld create mode 100644 labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld create mode 100644 labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld create mode 100644 labo4.1_DMA_new/Debug/labo_DMA.axf create mode 100644 labo4.1_DMA_new/Debug/labo_DMA.map create mode 100644 labo4.1_DMA_new/Debug/labo_DMA_Debug.ld create mode 100644 labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld create mode 100644 labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld create mode 100644 labo4.1_DMA_new/Debug/makefile create mode 100644 labo4.1_DMA_new/Debug/objects.mk create mode 100644 labo4.1_DMA_new/Debug/sources.mk create mode 100644 labo4.1_DMA_new/Debug/src/config_LPC1769.su create mode 100644 labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d create mode 100644 labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o create mode 100644 labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su create mode 100644 labo4.1_DMA_new/Debug/src/crp.d create mode 100644 labo4.1_DMA_new/Debug/src/crp.o create mode 100644 labo4.1_DMA_new/Debug/src/crp.su create mode 100644 labo4.1_DMA_new/Debug/src/dma.d create mode 100644 labo4.1_DMA_new/Debug/src/dma.o create mode 100644 labo4.1_DMA_new/Debug/src/dma.su create mode 100644 labo4.1_DMA_new/Debug/src/dmatest.d create mode 100644 labo4.1_DMA_new/Debug/src/dmatest.o create mode 100644 labo4.1_DMA_new/Debug/src/dmatest.su create mode 100644 labo4.1_DMA_new/Debug/src/subdir.mk create mode 100644 labo4.1_DMA_new/labo4.1_DMA_new LinkServer Debug.launch create mode 100644 labo4.1_DMA_new/labo6_DMA Debug.launch create mode 100644 labo4.1_DMA_new/labo6_DMA Release.launch create mode 100644 labo4.1_DMA_new/src/cr_startup_lpc176x.c create mode 100644 labo4.1_DMA_new/src/crp.c create mode 100644 labo4.1_DMA_new/src/dma.c create mode 100644 labo4.1_DMA_new/src/dma.h create mode 100644 labo4.1_DMA_new/src/dmatest.c create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.cproject create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.project create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.settings/language.settings.xml create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/makefile create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/objects.mk create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/sources.mk create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.o create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.su create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/subdir.mk create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/history.txt create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/LPC17xx.h create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cm3.h create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmFunc.h create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmInstr.h create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/core_cm3.c create mode 100644 labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/system_LPC17xx.c create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/.cproject create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/.project create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/.settings/language.settings.xml create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA.map create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA.map create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.axf create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.map create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.axf create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.map create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/makefile create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/objects.mk create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/sources.mk create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/config_LPC1769.su create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.d create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.o create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.su create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.d create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.o create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.su create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.d create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.o create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.su create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/subdir.mk create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Debug.launch create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Release.launch create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/cr_startup_lpc176x.c create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/crp.c create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.c create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.h create mode 100644 labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dmatest.c diff --git a/CMSISv2p00_LPC17xx/.gitignore b/CMSISv2p00_LPC17xx/.gitignore new file mode 100644 index 0000000..f240e72 --- /dev/null +++ b/CMSISv2p00_LPC17xx/.gitignore @@ -0,0 +1 @@ +Debug/ diff --git a/CMSISv2p00_LPC17xx/.settings/language.settings.xml b/CMSISv2p00_LPC17xx/.settings/language.settings.xml index f50a266..a6ba73f 100644 --- a/CMSISv2p00_LPC17xx/.settings/language.settings.xml +++ b/CMSISv2p00_LPC17xx/.settings/language.settings.xml @@ -3,8 +3,8 @@ <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 copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> - <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="227759477465743802" 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"> + <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="1278103089121256333" 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> @@ -15,7 +15,7 @@ <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="234512289041408538" 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"> + <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1284855900696921069" 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> diff --git a/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a b/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a index 19a1e00e3178e911307cbd9c5ea9c4ac0345b32a..a4742592d3e8b98c1fbf22f273324af36b58aa38 100644 GIT binary patch literal 90608 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 delta 36658 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 diff --git a/CMSISv2p00_LPC17xx/Debug/makefile b/CMSISv2p00_LPC17xx/Debug/makefile index d573372..2002ae8 100644 --- a/CMSISv2p00_LPC17xx/Debug/makefile +++ b/CMSISv2p00_LPC17xx/Debug/makefile @@ -1,50 +1,60 @@ -################################################################################ -# 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: libCMSISv2p00_LPC17xx.a - -# Tool invocations -libCMSISv2p00_LPC17xx.a: $(OBJS) $(USER_OBJS) - @echo 'Building target: $@' - @echo 'Invoking: MCU Archiver' - arm-none-eabi-ar -r "libCMSISv2p00_LPC17xx.a" $(OBJS) $(USER_OBJS) $(LIBS) - @echo 'Finished building target: $@' - @echo ' ' - $(MAKE) --no-print-directory post-build - -# Other Targets -clean: - -$(RM) $(OBJS)$(ARCHIVES)$(C_DEPS) 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 -.SECONDARY: post-build - --include ../makefile.targets +################################################################################ +# 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/sources.mk b/CMSISv2p00_LPC17xx/Debug/sources.mk index b73fb96..52857d9 100644 --- a/CMSISv2p00_LPC17xx/Debug/sources.mk +++ b/CMSISv2p00_LPC17xx/Debug/sources.mk @@ -1,18 +1,18 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -OBJ_SRCS := -S_SRCS := -ASM_SRCS := -C_SRCS := -S_UPPER_SRCS := -O_SRCS := -OBJS := -ARCHIVES := -C_DEPS := - -# Every subdirectory with source files must be described here +################################################################################ +# 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.d b/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d index d76bd14..dc66f06 100644 --- a/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d +++ b/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d @@ -1 +1 @@ -src/core_cm3.o src/core_cm3.d: ../src/core_cm3.c +src/core_cm3.o src/core_cm3.d: ../src/core_cm3.c diff --git a/CMSISv2p00_LPC17xx/Debug/src/core_cm3.o b/CMSISv2p00_LPC17xx/Debug/src/core_cm3.o index 128ee21e8a72ab6654e4428f1e17a9df5dd4b2d0..e9e546d1e35e666b8ef75b6deca5df2d86263065 100644 GIT binary patch literal 30832 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 literal 27204 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 BqM-l) diff --git a/CMSISv2p00_LPC17xx/Debug/src/subdir.mk b/CMSISv2p00_LPC17xx/Debug/src/subdir.mk index fe6f04c..f2f8505 100644 --- a/CMSISv2p00_LPC17xx/Debug/src/subdir.mk +++ b/CMSISv2p00_LPC17xx/Debug/src/subdir.mk @@ -1,27 +1,34 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -# Add inputs and outputs from these tool invocations to the build variables +################################################################################ +# 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 - -OBJS += \ -./src/core_cm3.o \ -./src/system_LPC17xx.o - +../src/system_LPC17xx.c + C_DEPS += \ ./src/core_cm3.d \ -./src/system_LPC17xx.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 -I../inc -O0 -Os -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 ' ' - - +./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 -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.d b/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d index a132246..30469e0 100644 --- a/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d +++ b/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d @@ -1,13 +1,8 @@ -src/system_LPC17xx.o src/system_LPC17xx.d: ../src/system_LPC17xx.c \ - ../inc/LPC17xx.h ../inc/core_cm3.h ../inc/core_cmInstr.h \ - ../inc/core_cmFunc.h ../inc/system_LPC17xx.h - -../inc/LPC17xx.h: - -../inc/core_cm3.h: - -../inc/core_cmInstr.h: - -../inc/core_cmFunc.h: - -../inc/system_LPC17xx.h: +src/system_LPC17xx.o src/system_LPC17xx.d: ../src/system_LPC17xx.c \ + ../inc/LPC17xx.h ../inc/core_cm3.h ../inc/core_cmInstr.h \ + ../inc/core_cmFunc.h ../inc/system_LPC17xx.h +../inc/LPC17xx.h: +../inc/core_cm3.h: +../inc/core_cmInstr.h: +../inc/core_cmFunc.h: +../inc/system_LPC17xx.h: diff --git a/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o b/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o index 1478507dc774750d650918f90db6ee713abe2462..6a2b8f93459c0527f2bdff4b9bfa438b33b425ce 100644 GIT binary patch delta 26158 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 DfTN9l delta 22617 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 MOmdL+9H=w}0P3^y<p2Nx diff --git a/TP2_bpsk_demod/.settings/language.settings.xml b/TP2_bpsk_demod/.settings/language.settings.xml index 2e56cdf..7e54123 100644 --- a/TP2_bpsk_demod/.settings/language.settings.xml +++ b/TP2_bpsk_demod/.settings/language.settings.xml @@ -4,7 +4,7 @@ <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="173379824774954439" 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"> + <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1223723436430466970" 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> @@ -15,7 +15,7 @@ <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="173378930678947018" 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"> + <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="1223722542334459549" 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> diff --git a/labo4.1_DMA_new/.cproject b/labo4.1_DMA_new/.cproject new file mode 100644 index 0000000..ffc8711 --- /dev/null +++ b/labo4.1_DMA_new/.cproject @@ -0,0 +1,432 @@ +<?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.759137190"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.759137190" 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.759137190" 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.759137190." name="/" resourcePath=""> + <toolChain id="com.crt.advproject.toolchain.exe.debug.1684703405" 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.133767262" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/> + <builder buildPath="${workspace_loc:/DMA}/Debug" id="com.crt.advproject.builder.exe.debug.1951708241" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/> + <tool id="com.crt.advproject.cpp.exe.debug.257202383" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug"> + <option id="com.crt.advproject.cpp.hdrlib.1013517114" name="Library headers" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.cpp.fpu.1048262649" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="false"/> + <option id="gnu.cpp.compiler.option.preprocessor.def.84294886" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/> + </tool> + <tool id="com.crt.advproject.gcc.exe.debug.539033493" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug"> + <option id="com.crt.advproject.gcc.arch.1170544040" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="false" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gcc.thumb.1968363922" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> + <option id="com.crt.advproject.gcc.hdrlib.1612087667" 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.912508532" 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.1763946515" 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.1707353691" 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.1661516376" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.fpu.720820219" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.c.misc.dialect.1446333440" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.dialect.flags.1307425866" name="Other dialect flags" superClass="gnu.c.compiler.option.dialect.flags" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.preprocessor.nostdinc.909615971" name="Do not search system directories (-nostdinc)" superClass="gnu.c.compiler.option.preprocessor.nostdinc" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.preprocess.439797842" name="Preprocess only (-E)" superClass="gnu.c.compiler.option.preprocessor.preprocess" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.undef.symbol.449042763" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.include.files.974785944" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.optimization.flags.1931586061" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.exe.debug.option.debugging.level.1769226226" name="Debug Level" superClass="com.crt.advproject.gcc.exe.debug.option.debugging.level" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.other.548900667" name="Other debugging flags" superClass="gnu.c.compiler.option.debugging.other" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.prof.1369720924" name="Generate prof information (-p)" superClass="gnu.c.compiler.option.debugging.prof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.gprof.98222825" name="Generate gprof information (-pg)" superClass="gnu.c.compiler.option.debugging.gprof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.codecov.812325675" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.compiler.option.debugging.codecov" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.syntax.410747835" name="Check syntax only (-fsyntax-only)" superClass="gnu.c.compiler.option.warnings.syntax" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.187076573" name="Pedantic (-pedantic)" superClass="gnu.c.compiler.option.warnings.pedantic" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.error.337179168" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.nowarn.1154615046" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.allwarn.1926999418" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.extrawarn.101320728" name="Extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.toerrors.648255684" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wconversion.593992824" name="Implicit conversion warnings (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.verbose.856337646" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.ansi.822433816" name="Support ANSI programs (-ansi)" superClass="gnu.c.compiler.option.misc.ansi" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.pic.1229372871" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.514477504" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.gcc.lto" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.fat.496636765" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.gcc.lto.fat" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.thumbinterwork.1788425183" name="Enable Thumb interworking" superClass="com.crt.advproject.gcc.thumbinterwork" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.securestate.2016941803" name="TrustZone Project Type" superClass="com.crt.advproject.gcc.securestate" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.stackusage.1302681121" name="Generate Stack Usage Info (-fstack-usage)" superClass="com.crt.advproject.gcc.stackusage" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.specs.1825616703" name="Specs" superClass="com.crt.advproject.gcc.specs" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.config.1968497993" name="Obsolete (Config)" superClass="com.crt.advproject.gcc.config" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.store.2121378136" name="Obsolete (Store)" superClass="com.crt.advproject.gcc.store" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitaddress.1012825298" name="Sanitize address (-fsanitize=address)" superClass="gnu.c.compiler.option.debugging.sanitaddress" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitpointers.1095888294" name="Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)" superClass="gnu.c.compiler.option.debugging.sanitpointers" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitthread.147499038" name="Sanitize data race in multi-thread (-fsanitize=thread)" superClass="gnu.c.compiler.option.debugging.sanitthread" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitleak.2123069367" name="Sanitize memory leak (-fsanitize=leak)" superClass="gnu.c.compiler.option.debugging.sanitleak" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitundef.1043848099" name="Sanitize undefined behavior (-fsanitize=undefined)" superClass="gnu.c.compiler.option.debugging.sanitundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastalign.819576431" name="Pointer cast with different alignment (-Wcast-align)" superClass="gnu.c.compiler.option.warnings.wcastalign" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastqual.1611000716" name="Removing type qualifier from cast target type (-Wcast-qual)" superClass="gnu.c.compiler.option.warnings.wcastqual" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wdisabledopt.1948858424" name="Requested optimization pass is disabled (-Wdisabled-optimization)" superClass="gnu.c.compiler.option.warnings.wdisabledopt" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wlogicalop.1736477901" name="Suspicious uses of logical operators (-Wlogical-op)" superClass="gnu.c.compiler.option.warnings.wlogicalop" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingdecl.255181734" name="Global function without previous declaration (-Wmissing-declarations)" superClass="gnu.c.compiler.option.warnings.wmissingdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingincdir.65784046" name="User-supplied include directory does not exist (-Wmissing-include-dirs)" superClass="gnu.c.compiler.option.warnings.wmissingincdir" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wredundantdecl.1007310115" name="More than one declaration in the same scope (-Wredundant-decls)" superClass="gnu.c.compiler.option.warnings.wredundantdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wshadow.2144318796" name="Local symbol shadows upper scope symbol (-Wshadow)" superClass="gnu.c.compiler.option.warnings.wshadow" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wsignconv.1966295846" name="Implicit conversions that may change the sign (-Wsign-conversion)" superClass="gnu.c.compiler.option.warnings.wsignconv" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wswitchdef.1236642997" name="A switch statement does not have a default case (-Wswitch-default)" superClass="gnu.c.compiler.option.warnings.wswitchdef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wundef.811191702" name="An undefined identifier is evaluated in an #if directive (-Wundef)" superClass="gnu.c.compiler.option.warnings.wundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wwritestrings.333633367" name="Treat strings always as const (-Wwrite-strings)" superClass="gnu.c.compiler.option.warnings.wwritestrings" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wfloatequal.511042916" name="Direct float equal check (-Wfloat-equal)" superClass="gnu.c.compiler.option.warnings.wfloatequal" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.hardening.1561241787" name="Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)" superClass="gnu.c.compiler.option.misc.hardening" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.randomization.1905345776" name="Address randomization (-fPIE)" superClass="gnu.c.compiler.option.misc.randomization" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.merge.constants.354617686" name="Merge Identical Constants (-fmerge-constants)" superClass="com.crt.advproject.gcc.merge.constants" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.prefixmap.769520238" name="Remove path from __FILE__ (-fmacro-prefix-map)" superClass="com.crt.advproject.gcc.prefixmap" useByScannerDiscovery="false"/> + <inputType id="com.crt.advproject.compiler.input.1553950747" superClass="com.crt.advproject.compiler.input"/> + </tool> + <tool id="com.crt.advproject.gas.exe.debug.318240918" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug"> + <option id="com.crt.advproject.gas.arch.454612405" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gas.thumb.2142253947" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> + <option id="gnu.both.asm.option.flags.crt.1278636689" 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.1686431646" 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.1622170602" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> + <option id="gnu.both.asm.option.include.paths.1724194092" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/> + <option id="gnu.both.asm.option.warnings.nowarn.1675556306" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/> + <option id="gnu.both.asm.option.version.1644366591" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/> + <option id="com.crt.advproject.gas.exe.debug.option.debugging.level.402058090" name="Debug level" superClass="com.crt.advproject.gas.exe.debug.option.debugging.level"/> + <option id="com.crt.advproject.gas.thumbinterwork.74935041" name="Enable Thumb interworking" superClass="com.crt.advproject.gas.thumbinterwork"/> + <option id="com.crt.advproject.gas.specs.485248268" name="Specs" superClass="com.crt.advproject.gas.specs"/> + <option id="com.crt.advproject.gas.config.309143222" name="Obsolete (Config)" superClass="com.crt.advproject.gas.config"/> + <option id="com.crt.advproject.gas.store.883639415" name="Obsolete (Store)" superClass="com.crt.advproject.gas.store"/> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.895668814" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <inputType id="com.crt.advproject.assembler.input.1159773651" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> + </tool> + <tool id="com.crt.advproject.link.cpp.exe.debug.1354615354" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug"> + <option id="com.crt.advproject.link.cpp.hdrlib.2131198946" name="Library" superClass="com.crt.advproject.link.cpp.hdrlib"/> + <option id="com.crt.advproject.link.cpp.fpu.1093423018" name="Floating point" superClass="com.crt.advproject.link.cpp.fpu"/> + </tool> + <tool id="com.crt.advproject.link.exe.debug.421327955" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"> + <option id="com.crt.advproject.link.arch.2069944773" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.link.thumb.349317828" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> + <option id="com.crt.advproject.link.script.1594733055" name="Linker script" superClass="com.crt.advproject.link.script" value="labo4_1_DMA_new_Debug.ld" valueType="string"/> + <option id="com.crt.advproject.link.manage.934372619" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> + <option id="gnu.c.link.option.nostdlibs.138138192" 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.1913094978" 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.925832417" 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.121590758" name="Libraries (-l)" superClass="gnu.c.link.option.libs" useByScannerDiscovery="false" valueType="libs"> + <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> + </option> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.155586263" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Debug}""/> + </option> + <option id="com.crt.advproject.link.crpenable.246438003" 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.136827212" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.468052586" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" useByScannerDiscovery="false" valueType="userObjs"/> + <option id="com.crt.advproject.link.memory.load.image.1003890442" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" useByScannerDiscovery="false" value="" valueType="string"/> + <option id="com.crt.advproject.link.memory.heapAndStack.1397681202" 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.1667087043" name="Global data placement" superClass="com.crt.advproject.link.memory.data" useByScannerDiscovery="false" value="" valueType="string"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.872715273" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" useByScannerDiscovery="false" valueType="stringList"/> + <option id="com.crt.advproject.link.fpu.342615623" name="Floating point" superClass="com.crt.advproject.link.fpu"/> + <option id="gnu.c.link.option.nostart.888635043" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart"/> + <option id="gnu.c.link.option.nodeflibs.202013517" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.c.link.option.nodeflibs"/> + <option id="gnu.c.link.option.strip.1055550263" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip"/> + <option id="gnu.c.link.option.noshared.771216685" name="No shared libraries (-static)" superClass="gnu.c.link.option.noshared"/> + <option id="gnu.c.link.option.ldflags.1237289977" name="Linker flags" superClass="gnu.c.link.option.ldflags"/> + <option id="gnu.c.link.option.userobjs.1620371415" name="Other objects" superClass="gnu.c.link.option.userobjs"/> + <option id="gnu.c.link.option.shared.1806849252" name="Shared (-shared)" superClass="gnu.c.link.option.shared"/> + <option id="gnu.c.link.option.soname.1129001480" name="Shared object name (-Wl,-soname=)" superClass="gnu.c.link.option.soname"/> + <option id="gnu.c.link.option.implname.521377172" name="Import Library name (-Wl,--out-implib=)" superClass="gnu.c.link.option.implname"/> + <option id="gnu.c.link.option.defname.211755723" name="DEF file name (-Wl,--output-def=)" superClass="gnu.c.link.option.defname"/> + <option id="gnu.c.link.option.debugging.prof.2041696934" name="Generate prof information (-p)" superClass="gnu.c.link.option.debugging.prof"/> + <option id="gnu.c.link.option.debugging.gprof.1710536806" name="Generate gprof information (-pg)" superClass="gnu.c.link.option.debugging.gprof"/> + <option id="gnu.c.link.option.debugging.codecov.377978008" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.link.option.debugging.codecov"/> + <option id="com.crt.advproject.link.gcc.lto.1873314970" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.link.gcc.lto"/> + <option id="com.crt.advproject.link.gcc.lto.optmization.level.410725501" name="Link-time optimization level" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> + <option id="com.crt.advproject.link.scriptdir.646612389" name="Script path" superClass="com.crt.advproject.link.scriptdir"/> + <option id="com.crt.advproject.link.flashconfigenable.307625287" name="Enable automatic placement of Flash Configuration field in image" superClass="com.crt.advproject.link.flashconfigenable"/> + <option id="com.crt.advproject.link.ecrp.945603073" name="Enhanced CRP" superClass="com.crt.advproject.link.ecrp"/> + <option id="com.crt.advproject.link.gcc.nanofloat.353709284" name="Enable printf float " superClass="com.crt.advproject.link.gcc.nanofloat"/> + <option id="com.crt.advproject.link.gcc.nanofloat.scanf.144698109" name="Enable scanf float " superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> + <option id="com.crt.advproject.link.toram.951984683" name="Link application to RAM" superClass="com.crt.advproject.link.toram"/> + <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.1473205692" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" useByScannerDiscovery="false" valueType="enumerated"/> + <option id="com.crt.advproject.link.stackOffset.1127819895" name="Stack offset" superClass="com.crt.advproject.link.stackOffset"/> + <option id="com.crt.advproject.link.gcc.multicore.master.1220355213" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> + <option id="com.crt.advproject.link.gcc.multicore.empty.1226824105" name="No Multicore options for this project" superClass="com.crt.advproject.link.gcc.multicore.empty"/> + <option id="com.crt.advproject.link.config.1264595433" name="Obsolete (Config)" superClass="com.crt.advproject.link.config"/> + <option id="com.crt.advproject.link.store.147301444" name="Obsolete (Store)" superClass="com.crt.advproject.link.store"/> + <option id="com.crt.advproject.link.securestate.1107759183" name="TrustZone Project Type" superClass="com.crt.advproject.link.securestate"/> + <option id="com.crt.advproject.link.sgstubs.placement.1810442581" name="Secure Gateway Placement" superClass="com.crt.advproject.link.sgstubs.placement"/> + <option id="com.crt.advproject.link.sgstubenable.481587220" name="Enable generation of Secure Gateway Import Library" superClass="com.crt.advproject.link.sgstubenable"/> + <option id="com.crt.advproject.link.nonsecureobject.1675102921" name="Secure Gateway Import Library" superClass="com.crt.advproject.link.nonsecureobject"/> + <option id="com.crt.advproject.link.inimplib.1113076906" name="Input Secure Gateway Import Library" superClass="com.crt.advproject.link.inimplib"/> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.3351919" 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.759783939" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.debug"> + <option id="com.crt.advproject.linkserver.debug.prevent.debug.1727300294" name="Prevent Debugging" superClass="com.crt.advproject.linkserver.debug.prevent.debug"/> + <option id="com.crt.advproject.miscellaneous.end_of_heap.1663011008" name="Last used address of the heap" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> + <option id="com.crt.advproject.miscellaneous.pvHeapStart.1885244500" name="First address of the heap" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> + <option id="com.crt.advproject.miscellaneous.pvHeapLimit.2142979611" name="Maximum extent of heap" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> + <option id="com.crt.advproject.debugger.security.nonsecureimageenable.1370883303" name="Enable pre-programming of Non-Secure Image" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> + <option id="com.crt.advproject.debugger.security.nonsecureimage.343349864" name="Non-Secure Project" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> + </tool> + </toolChain> + </folderInfo> + <fileInfo id="com.crt.advproject.config.exe.debug.759137190.src/cr_startup_lpc176x.c" name="cr_startup_lpc176x.c" rcbsApplicability="disable" resourcePath="src/cr_startup_lpc176x.c" toolsToInvoke="com.crt.advproject.gcc.exe.debug.539033493.1521387832"> + <tool id="com.crt.advproject.gcc.exe.debug.539033493.1521387832" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug.539033493"> + <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.786117415" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" value="gnu.c.optimization.level.size" valueType="enumerated"/> + <inputType id="com.crt.advproject.compiler.input.315735395" superClass="com.crt.advproject.compiler.input"/> + </tool> + </fileInfo> + <sourceEntries> + <entry excluding="dmatest_corrige.c|dma_corrige.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.1841072117"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.1841072117" 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.1841072117" 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.1841072117." name="/" resourcePath=""> + <toolChain id="com.crt.advproject.toolchain.exe.release.946991508" 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.369361787" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/> + <builder buildPath="${workspace_loc:/DMA}/Release" id="com.crt.advproject.builder.exe.release.522510712" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/> + <tool id="com.crt.advproject.cpp.exe.release.1931373182" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release"/> + <tool id="com.crt.advproject.gcc.exe.release.782394619" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release"> + <option id="com.crt.advproject.gcc.arch.1968046138" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="false" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gcc.thumb.1106364987" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> + <option id="com.crt.advproject.gcc.hdrlib.529149763" 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.2045331867" 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="__USE_CMSIS=CMSISv2p00_LPC17xx"/> + </option> + <option id="gnu.c.compiler.option.misc.other.8759860" 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.866863291" 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.release.option.optimization.level.2121311730" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.c.optimization.level.size" valueType="enumerated"/> + <option id="com.crt.advproject.c.misc.dialect.1214139660" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.dialect.flags.2126908280" name="Other dialect flags" superClass="gnu.c.compiler.option.dialect.flags" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.preprocessor.nostdinc.370944889" name="Do not search system directories (-nostdinc)" superClass="gnu.c.compiler.option.preprocessor.nostdinc" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.preprocess.915512290" name="Preprocess only (-E)" superClass="gnu.c.compiler.option.preprocessor.preprocess" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.undef.symbol.553705064" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.include.files.1742334706" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.optimization.flags.22012920" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.exe.release.option.debugging.level.106272493" name="Debug Level" superClass="com.crt.advproject.gcc.exe.release.option.debugging.level" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.other.1650289295" name="Other debugging flags" superClass="gnu.c.compiler.option.debugging.other" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.prof.1142499179" name="Generate prof information (-p)" superClass="gnu.c.compiler.option.debugging.prof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.gprof.82585139" name="Generate gprof information (-pg)" superClass="gnu.c.compiler.option.debugging.gprof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.codecov.624171351" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.compiler.option.debugging.codecov" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.syntax.233524565" name="Check syntax only (-fsyntax-only)" superClass="gnu.c.compiler.option.warnings.syntax" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.1095145725" name="Pedantic (-pedantic)" superClass="gnu.c.compiler.option.warnings.pedantic" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.error.2047825567" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.nowarn.1254513261" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.allwarn.2106441859" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.extrawarn.656303608" name="Extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.toerrors.1249479833" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wconversion.176670457" name="Implicit conversion warnings (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.verbose.957383665" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.ansi.843374979" name="Support ANSI programs (-ansi)" superClass="gnu.c.compiler.option.misc.ansi" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.pic.387756101" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.932446329" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.gcc.lto" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.fat.167486860" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.gcc.lto.fat" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.fpu.1250815240" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.thumbinterwork.1787668880" name="Enable Thumb interworking" superClass="com.crt.advproject.gcc.thumbinterwork" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.securestate.1566755253" name="TrustZone Project Type" superClass="com.crt.advproject.gcc.securestate" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.stackusage.1682849053" name="Generate Stack Usage Info (-fstack-usage)" superClass="com.crt.advproject.gcc.stackusage" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.specs.2062589239" name="Specs" superClass="com.crt.advproject.gcc.specs" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.config.912057910" name="Obsolete (Config)" superClass="com.crt.advproject.gcc.config" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.store.1645493582" name="Obsolete (Store)" superClass="com.crt.advproject.gcc.store" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitaddress.1870660741" name="Sanitize address (-fsanitize=address)" superClass="gnu.c.compiler.option.debugging.sanitaddress" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitpointers.1950182223" name="Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)" superClass="gnu.c.compiler.option.debugging.sanitpointers" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitthread.401834893" name="Sanitize data race in multi-thread (-fsanitize=thread)" superClass="gnu.c.compiler.option.debugging.sanitthread" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitleak.1587206872" name="Sanitize memory leak (-fsanitize=leak)" superClass="gnu.c.compiler.option.debugging.sanitleak" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitundef.1561180447" name="Sanitize undefined behavior (-fsanitize=undefined)" superClass="gnu.c.compiler.option.debugging.sanitundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastalign.417402416" name="Pointer cast with different alignment (-Wcast-align)" superClass="gnu.c.compiler.option.warnings.wcastalign" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastqual.1965307955" name="Removing type qualifier from cast target type (-Wcast-qual)" superClass="gnu.c.compiler.option.warnings.wcastqual" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wdisabledopt.795254616" name="Requested optimization pass is disabled (-Wdisabled-optimization)" superClass="gnu.c.compiler.option.warnings.wdisabledopt" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wlogicalop.993199517" name="Suspicious uses of logical operators (-Wlogical-op)" superClass="gnu.c.compiler.option.warnings.wlogicalop" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingdecl.340592262" name="Global function without previous declaration (-Wmissing-declarations)" superClass="gnu.c.compiler.option.warnings.wmissingdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingincdir.1457007981" name="User-supplied include directory does not exist (-Wmissing-include-dirs)" superClass="gnu.c.compiler.option.warnings.wmissingincdir" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wredundantdecl.883170380" name="More than one declaration in the same scope (-Wredundant-decls)" superClass="gnu.c.compiler.option.warnings.wredundantdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wshadow.1513206692" name="Local symbol shadows upper scope symbol (-Wshadow)" superClass="gnu.c.compiler.option.warnings.wshadow" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wsignconv.1814948810" name="Implicit conversions that may change the sign (-Wsign-conversion)" superClass="gnu.c.compiler.option.warnings.wsignconv" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wswitchdef.42797210" name="A switch statement does not have a default case (-Wswitch-default)" superClass="gnu.c.compiler.option.warnings.wswitchdef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wundef.1663779544" name="An undefined identifier is evaluated in an #if directive (-Wundef)" superClass="gnu.c.compiler.option.warnings.wundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wwritestrings.451470164" name="Treat strings always as const (-Wwrite-strings)" superClass="gnu.c.compiler.option.warnings.wwritestrings" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wfloatequal.1416937000" name="Direct float equal check (-Wfloat-equal)" superClass="gnu.c.compiler.option.warnings.wfloatequal" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.hardening.246059169" name="Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)" superClass="gnu.c.compiler.option.misc.hardening" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.randomization.69400333" name="Address randomization (-fPIE)" superClass="gnu.c.compiler.option.misc.randomization" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.merge.constants.581917526" name="Merge Identical Constants (-fmerge-constants)" superClass="com.crt.advproject.gcc.merge.constants" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.prefixmap.715058638" name="Remove path from __FILE__ (-fmacro-prefix-map)" superClass="com.crt.advproject.gcc.prefixmap" useByScannerDiscovery="false"/> + <inputType id="com.crt.advproject.compiler.input.1420027587" superClass="com.crt.advproject.compiler.input"/> + </tool> + <tool id="com.crt.advproject.gas.exe.release.1494281660" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release"> + <option id="com.crt.advproject.gas.arch.1698607553" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gas.thumb.436607810" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> + <option id="gnu.both.asm.option.flags.crt.1160661734" 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.1399168515" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.codered" valueType="enumerated"/> + <option id="gnu.both.asm.option.include.paths.398875581" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/> + <option id="gnu.both.asm.option.warnings.nowarn.1970393382" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/> + <option id="gnu.both.asm.option.version.85414546" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/> + <option id="com.crt.advproject.gas.debug.450099385" name="Debug level" superClass="com.crt.advproject.gas.debug"/> + <option id="com.crt.advproject.gas.fpu.2079816022" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> + <option id="com.crt.advproject.gas.thumbinterwork.569080769" name="Enable Thumb interworking" superClass="com.crt.advproject.gas.thumbinterwork"/> + <option id="com.crt.advproject.gas.specs.752438368" name="Specs" superClass="com.crt.advproject.gas.specs"/> + <option id="com.crt.advproject.gas.config.1124610759" name="Obsolete (Config)" superClass="com.crt.advproject.gas.config"/> + <option id="com.crt.advproject.gas.store.491813452" name="Obsolete (Store)" superClass="com.crt.advproject.gas.store"/> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1021996605" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <inputType id="com.crt.advproject.assembler.input.1186012747" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> + </tool> + <tool id="com.crt.advproject.link.cpp.exe.release.1980771017" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release"/> + <tool id="com.crt.advproject.link.exe.release.1506193941" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"> + <option id="com.crt.advproject.link.arch.2007013968" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.link.thumb.2105574667" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> + <option id="com.crt.advproject.link.script.1734953788" name="Linker script" superClass="com.crt.advproject.link.script" value="labo4_1_DMA_new_Release.ld" valueType="string"/> + <option id="com.crt.advproject.link.manage.1175383760" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> + <option id="gnu.c.link.option.nostdlibs.1419685492" 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.970107469" 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.1032851739" 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.359770168" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> + <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> + </option> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.1335196407" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Release}""/> + </option> + <option id="com.crt.advproject.link.crpenable.935889190" name="Enable automatic placement of Code Read Protection field in image" superClass="com.crt.advproject.link.crpenable" value="true" valueType="boolean"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.154967142" 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.1419936824" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> + <option id="com.crt.advproject.link.memory.heapAndStack.1309512246" 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.823769171" 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.1813894001" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> + <option id="gnu.c.link.option.nostart.1045631650" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart"/> + <option id="gnu.c.link.option.nodeflibs.250579603" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.c.link.option.nodeflibs"/> + <option id="gnu.c.link.option.strip.1607503900" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip"/> + <option id="gnu.c.link.option.noshared.1463015268" name="No shared libraries (-static)" superClass="gnu.c.link.option.noshared"/> + <option id="gnu.c.link.option.ldflags.451509536" name="Linker flags" superClass="gnu.c.link.option.ldflags"/> + <option id="gnu.c.link.option.userobjs.58820326" name="Other objects" superClass="gnu.c.link.option.userobjs"/> + <option id="gnu.c.link.option.shared.1558705923" name="Shared (-shared)" superClass="gnu.c.link.option.shared"/> + <option id="gnu.c.link.option.soname.1825582049" name="Shared object name (-Wl,-soname=)" superClass="gnu.c.link.option.soname"/> + <option id="gnu.c.link.option.implname.1918902641" name="Import Library name (-Wl,--out-implib=)" superClass="gnu.c.link.option.implname"/> + <option id="gnu.c.link.option.defname.1628206978" name="DEF file name (-Wl,--output-def=)" superClass="gnu.c.link.option.defname"/> + <option id="gnu.c.link.option.debugging.prof.1397167834" name="Generate prof information (-p)" superClass="gnu.c.link.option.debugging.prof"/> + <option id="gnu.c.link.option.debugging.gprof.1898614305" name="Generate gprof information (-pg)" superClass="gnu.c.link.option.debugging.gprof"/> + <option id="gnu.c.link.option.debugging.codecov.1240379180" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.link.option.debugging.codecov"/> + <option id="com.crt.advproject.link.gcc.lto.1955762538" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.link.gcc.lto"/> + <option id="com.crt.advproject.link.gcc.lto.optmization.level.1639229211" name="Link-time optimization level" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> + <option id="com.crt.advproject.link.fpu.801096643" name="Floating point" superClass="com.crt.advproject.link.fpu"/> + <option id="com.crt.advproject.link.scriptdir.597538810" name="Script path" superClass="com.crt.advproject.link.scriptdir"/> + <option id="com.crt.advproject.link.flashconfigenable.71680999" name="Enable automatic placement of Flash Configuration field in image" superClass="com.crt.advproject.link.flashconfigenable"/> + <option id="com.crt.advproject.link.ecrp.2091489368" name="Enhanced CRP" superClass="com.crt.advproject.link.ecrp"/> + <option id="com.crt.advproject.link.gcc.nanofloat.1490251268" name="Enable printf float " superClass="com.crt.advproject.link.gcc.nanofloat"/> + <option id="com.crt.advproject.link.gcc.nanofloat.scanf.357004004" name="Enable scanf float " superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> + <option id="com.crt.advproject.link.toram.278924672" name="Link application to RAM" superClass="com.crt.advproject.link.toram"/> + <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.167163028" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> + <option id="com.crt.advproject.link.stackOffset.657955377" name="Stack offset" superClass="com.crt.advproject.link.stackOffset"/> + <option id="com.crt.advproject.link.gcc.multicore.slave.828057994" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> + <option id="com.crt.advproject.link.gcc.multicore.master.1572423994" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> + <option id="com.crt.advproject.link.gcc.multicore.empty.1131987246" name="No Multicore options for this project" superClass="com.crt.advproject.link.gcc.multicore.empty"/> + <option id="com.crt.advproject.link.config.1933325719" name="Obsolete (Config)" superClass="com.crt.advproject.link.config"/> + <option id="com.crt.advproject.link.store.1524379902" name="Obsolete (Store)" superClass="com.crt.advproject.link.store"/> + <option id="com.crt.advproject.link.securestate.1006925001" name="TrustZone Project Type" superClass="com.crt.advproject.link.securestate"/> + <option id="com.crt.advproject.link.sgstubs.placement.1895966724" name="Secure Gateway Placement" superClass="com.crt.advproject.link.sgstubs.placement"/> + <option id="com.crt.advproject.link.sgstubenable.1655157146" name="Enable generation of Secure Gateway Import Library" superClass="com.crt.advproject.link.sgstubenable"/> + <option id="com.crt.advproject.link.nonsecureobject.76604719" name="Secure Gateway Import Library" superClass="com.crt.advproject.link.nonsecureobject"/> + <option id="com.crt.advproject.link.inimplib.260516828" name="Input Secure Gateway Import Library" superClass="com.crt.advproject.link.inimplib"/> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1818815528" 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.49401002" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.release"> + <option id="com.crt.advproject.linkserver.debug.prevent.release.1261097250" name="Prevent Debugging" superClass="com.crt.advproject.linkserver.debug.prevent.release"/> + <option id="com.crt.advproject.miscellaneous.end_of_heap.1337945569" name="Last used address of the heap" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> + <option id="com.crt.advproject.miscellaneous.pvHeapStart.408114869" name="First address of the heap" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> + <option id="com.crt.advproject.miscellaneous.pvHeapLimit.1846745703" name="Maximum extent of heap" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> + <option id="com.crt.advproject.debugger.security.nonsecureimageenable.397342540" name="Enable pre-programming of Non-Secure Image" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> + <option id="com.crt.advproject.debugger.security.nonsecureimage.569413961" name="Non-Secure Project" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> + </tool> + </toolChain> + </folderInfo> + <sourceEntries> + <entry excluding="dmatest_corrige.c|dma_corrige.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="DMA.com.crt.advproject.projecttype.exe.830553069" 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/labo4.1_DMA_new/.project b/labo4.1_DMA_new/.project new file mode 100644 index 0000000..668034c --- /dev/null +++ b/labo4.1_DMA_new/.project @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>labo4.1_DMA_new</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/labo4.1_DMA_new/.settings/language.settings.xml b/labo4.1_DMA_new/.settings/language.settings.xml new file mode 100644 index 0000000..394c5b0 --- /dev/null +++ b/labo4.1_DMA_new/.settings/language.settings.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<project> + <configuration id="com.crt.advproject.config.exe.debug.759137190" 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="1223723436430466970" 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.1841072117" 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="1223722542334459549" 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/labo4.1_DMA_new/.settings/org.eclipse.core.resources.prefs b/labo4.1_DMA_new/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/labo4.1_DMA_new/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/labo4.1_DMA_new/Debug/labo4.1_DMA.map b/labo4.1_DMA_new/Debug/labo4.1_DMA.map new file mode 100644 index 0000000..1c663f4 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4.1_DMA.map @@ -0,0 +1,467 @@ +Archive member included to satisfy reference by file (symbol) + +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + ./src/dmatest.o (memset) +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest.o +src2 0x400 ./src/dmatest.o +src3 0x400 ./src/dmatest.o +i 0x4 ./src/dmatest.o +src1 0x1000 ./src/dmatest.o +LLI 0x20 ./src/dmatest.o + +Discarded input sections + + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .text 0x00000000 0x0 ./src/config_LPC1769.o + .data 0x00000000 0x0 ./src/config_LPC1769.o + .bss 0x00000000 0x0 ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .group 0x00000000 0xc ./src/crp.o + .group 0x00000000 0xc ./src/crp.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .debug_macro 0x00000000 0xaa2 ./src/crp.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .text 0x00000000 0x0 ./src/dma.o + .data 0x00000000 0x0 ./src/dma.o + .bss 0x00000000 0x0 ./src/dma.o + .bss.DMAErrCount + 0x00000000 0x4 ./src/dma.o + .debug_macro 0x00000000 0xaa2 ./src/dma.o + .debug_macro 0x00000000 0x10 ./src/dma.o + .debug_macro 0x00000000 0x12e ./src/dma.o + .debug_macro 0x00000000 0x5b3 ./src/dma.o + .debug_macro 0x00000000 0x331 ./src/dma.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .text 0x00000000 0x0 ./src/dmatest.o + .data 0x00000000 0x0 ./src/dmatest.o + .bss 0x00000000 0x0 ./src/dmatest.o + .debug_macro 0x00000000 0xaa2 ./src/dmatest.o + .debug_macro 0x00000000 0x10 ./src/dmatest.o + .debug_macro 0x00000000 0x12e ./src/dmatest.o + .debug_macro 0x00000000 0x5b3 ./src/dmatest.o + .debug_macro 0x00000000 0x52 ./src/dmatest.o + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x34 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.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/config_LPC1769.o +LOAD ./src/cr_startup_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma.o +LOAD ./src/dmatest.o +START GROUP +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.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 0x550 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x550 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x550 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x2828 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 0x74 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 PWM1_IRQHandler + 0x00000106 I2C1_IRQHandler + 0x00000106 EINT2_IRQHandler + 0x00000106 UART1_IRQHandler + 0x00000106 EINT3_IRQHandler + 0x00000106 CANActivity_IRQHandler + 0x00000106 TIMER3_IRQHandler + 0x00000106 UART0_IRQHandler + 0x00000106 MCPWM_IRQHandler + 0x00000106 I2C0_IRQHandler + 0x00000106 IntDefaultHandler + 0x00000106 RIT_IRQHandler + 0x00000106 CAN_IRQHandler + 0x00000106 PLL1_IRQHandler + 0x00000106 SSP0_IRQHandler + 0x00000106 I2S_IRQHandler + 0x00000106 I2C2_IRQHandler + 0x00000106 RTC_IRQHandler + 0x00000106 TIMER0_IRQHandler + 0x00000106 SPI_IRQHandler + 0x00000106 UART3_IRQHandler + 0x00000106 EINT1_IRQHandler + 0x00000106 TIMER1_IRQHandler + 0x00000106 UART2_IRQHandler + 0x00000106 ADC_IRQHandler + 0x00000106 SSP1_IRQHandler + 0x00000106 USB_IRQHandler + 0x00000106 BOD_IRQHandler + 0x00000106 USBActivity_IRQHandler + 0x00000106 WDT_IRQHandler + 0x00000106 PLL0_IRQHandler + 0x00000106 QEI_IRQHandler + 0x00000106 EINT0_IRQHandler + 0x00000106 TIMER2_IRQHandler + 0x00000106 ENET_IRQHandler + 0x00000108 data_init + 0x0000011a bss_init + 0x0000012a ResetISR + 0x000002fc . = 0x2fc + *fill* 0x00000168 0x194 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.init 0x00000300 0x38 ./src/config_LPC1769.o + 0x00000300 init + .text.DMA_IRQHandler + 0x00000338 0xc ./src/dma.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x00000344 0x28 ./src/dma.o + 0x00000344 DMA_Init + .text.single_copy + 0x0000036c 0x68 ./src/dmatest.o + 0x0000036c single_copy + .text.LLI_copy + 0x000003d4 0xcc ./src/dmatest.o + 0x000003d4 LLI_copy + .text.check_res + 0x000004a0 0x3c ./src/dmatest.o + 0x000004a0 check_res + .text.main 0x000004dc 0x38 ./src/dmatest.o + 0x000004dc main + .text.memset 0x00000514 0x4 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + 0x00000514 memset + .text.__weak_main + 0x00000518 0x4 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + 0x00000518 __weak_main + 0x00000518 __main + .text.__aeabi_memset_lowlevel + 0x0000051c 0x32 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + 0x0000051c __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x00000550 . = ALIGN (0x4) + *fill* 0x0000054e 0x2 ff + +.glue_7 0x00000550 0x0 + .glue_7 0x00000550 0x0 linker stubs + +.glue_7t 0x00000550 0x0 + .glue_7t 0x00000550 0x0 linker stubs + +.vfp11_veneer 0x00000550 0x0 + .vfp11_veneer 0x00000550 0x0 linker stubs + +.v4_bx 0x00000550 0x0 + .v4_bx 0x00000550 0x0 linker stubs + +.iplt 0x00000550 0x0 + .iplt 0x00000550 0x0 ./src/config_LPC1769.o + +.rel.dyn 0x00000550 0x0 + .rel.iplt 0x00000550 0x0 ./src/config_LPC1769.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + +.ARM.exidx 0x00000550 0x0 + 0x00000550 __exidx_start = . + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000550 __exidx_end = . + 0x00000550 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x00000550 + 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 0x0 load address 0x00000550 + FILL mask 0xff + 0x10000000 _data = . + [!provide] PROVIDE (__start_data_RAM = .) + [!provide] PROVIDE (__start_data_RamLoc32 = .) + *(vtable) + *(.ramfunc*) + *(CodeQuickAccess) + *(DataQuickAccess) + *(RamFunction) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + [!provide] PROVIDE (__end_data_RAM = .) + [!provide] PROVIDE (__end_data_RamLoc32 = .) + +.igot.plt 0x10000000 0x0 load address 0x00000550 + .igot.plt 0x10000000 0x0 ./src/config_LPC1769.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 0x10000000 0x2828 + 0x10000000 _bss = . + [!provide] PROVIDE (__start_bss_RAM = .) + [!provide] PROVIDE (__start_bss_RamLoc32 = .) + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma.o + 0x10000000 DMATCCount + *(COMMON) + COMMON 0x10000004 0x2824 ./src/dmatest.o + 0x10000004 dest + 0x10001004 src2 + 0x10001404 src3 + 0x10001804 i + 0x10001808 src1 + 0x10002808 LLI + 0x10002828 . = ALIGN (0x4) + 0x10002828 _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 0x10002828 0x0 + 0x10002828 _noinit = . + [!provide] PROVIDE (__start_noinit_RAM = .) + [!provide] PROVIDE (__start_noinit_RamLoc32 = .) + *(.noinit*) + 0x10002828 . = ALIGN (0x4) + 0x10002828 _end_noinit = . + [!provide] PROVIDE (__end_noinit_RAM = .) + [!provide] PROVIDE (__end_noinit_RamLoc32 = .) + [!provide] 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) + 0x00000550 _image_end = (LOADADDR (.data) + SIZEOF (.data)) + 0x00000550 _image_size = (_image_end - _image_start) +OUTPUT(labo4.1_DMA.axf elf32-littlearm) +LOAD linker stubs + +.debug_info 0x00000000 0x731 + .debug_info 0x00000000 0xba ./src/config_LPC1769.o + .debug_info 0x000000ba 0x2e3 ./src/cr_startup_lpc176x.o + .debug_info 0x0000039d 0x40 ./src/crp.o + .debug_info 0x000003dd 0x148 ./src/dma.o + .debug_info 0x00000525 0x20c ./src/dmatest.o + +.debug_abbrev 0x00000000 0x44b + .debug_abbrev 0x00000000 0x8b ./src/config_LPC1769.o + .debug_abbrev 0x0000008b 0x156 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x000001e1 0x38 ./src/crp.o + .debug_abbrev 0x00000219 0xf2 ./src/dma.o + .debug_abbrev 0x0000030b 0x140 ./src/dmatest.o + +.debug_aranges 0x00000000 0x118 + .debug_aranges + 0x00000000 0x20 ./src/config_LPC1769.o + .debug_aranges + 0x00000020 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x000000a0 0x18 ./src/crp.o + .debug_aranges + 0x000000b8 0x28 ./src/dma.o + .debug_aranges + 0x000000e0 0x38 ./src/dmatest.o + +.debug_ranges 0x00000000 0xc0 + .debug_ranges 0x00000000 0x10 ./src/config_LPC1769.o + .debug_ranges 0x00000010 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000080 0x18 ./src/dma.o + .debug_ranges 0x00000098 0x28 ./src/dmatest.o + +.debug_macro 0x00000000 0x2461 + .debug_macro 0x00000000 0x4b ./src/config_LPC1769.o + .debug_macro 0x0000004b 0xaa2 ./src/config_LPC1769.o + .debug_macro 0x00000aed 0x10 ./src/config_LPC1769.o + .debug_macro 0x00000afd 0x12e ./src/config_LPC1769.o + .debug_macro 0x00000c2b 0x5b3 ./src/config_LPC1769.o + .debug_macro 0x000011de 0x331 ./src/config_LPC1769.o + .debug_macro 0x0000150f 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x0000152c 0xaa8 ./src/cr_startup_lpc176x.o + .debug_macro 0x00001fd4 0x1a ./src/crp.o + .debug_macro 0x00001fee 0x34 ./src/crp.o + .debug_macro 0x00002022 0x54 ./src/dma.o + .debug_macro 0x00002076 0x52 ./src/dma.o + .debug_macro 0x000020c8 0x62 ./src/dmatest.o + .debug_macro 0x0000212a 0x337 ./src/dmatest.o + +.debug_line 0x00000000 0x997 + .debug_line 0x00000000 0x1b6 ./src/config_LPC1769.o + .debug_line 0x000001b6 0x26f ./src/cr_startup_lpc176x.o + .debug_line 0x00000425 0xb1 ./src/crp.o + .debug_line 0x000004d6 0x1a3 ./src/dma.o + .debug_line 0x00000679 0x31e ./src/dmatest.o + +.debug_str 0x00000000 0x638e + .debug_str 0x00000000 0x5db0 ./src/config_LPC1769.o + 0x5e2e (size before relaxing) + .debug_str 0x00005db0 0x2c2 ./src/cr_startup_lpc176x.o + 0x2f8a (size before relaxing) + .debug_str 0x00006072 0xe9 ./src/crp.o + 0x2e80 (size before relaxing) + .debug_str 0x0000615b 0x192 ./src/dma.o + 0x5fa3 (size before relaxing) + .debug_str 0x000062ed 0xa1 ./src/dmatest.o + 0x6018 (size before relaxing) + +.comment 0x00000000 0x4c + .comment 0x00000000 0x4c ./src/config_LPC1769.o + 0x4d (size before relaxing) + .comment 0x0000004c 0x4d ./src/cr_startup_lpc176x.o + .comment 0x0000004c 0x4d ./src/crp.o + .comment 0x0000004c 0x4d ./src/dma.o + .comment 0x0000004c 0x4d ./src/dmatest.o + .comment 0x0000004c 0x4d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .comment 0x0000004c 0x4d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x2b + .ARM.attributes + 0x00000000 0x2d ./src/config_LPC1769.o + .ARM.attributes + 0x0000002d 0x2d ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x0000005a 0x33 ./src/crp.o + .ARM.attributes + 0x0000008d 0x2d ./src/dma.o + .ARM.attributes + 0x000000ba 0x2d ./src/dmatest.o + .ARM.attributes + 0x000000e7 0x2d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .ARM.attributes + 0x00000114 0x2d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000141 0x1b c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x208 + .debug_frame 0x00000000 0x30 ./src/config_LPC1769.o + .debug_frame 0x00000030 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x00000124 0x58 ./src/dma.o + .debug_frame 0x0000017c 0x8c ./src/dmatest.o + +.debug_loc 0x00000000 0x16a + .debug_loc 0x00000000 0x16a ./src/cr_startup_lpc176x.o diff --git a/labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf b/labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf new file mode 100755 index 0000000000000000000000000000000000000000..c8a29e2213e2f4ac2b2894829ec7c4775d17fd5c GIT binary patch literal 127100 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 I$UYDY0D%%WP5=M^ literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map b/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map new file mode 100644 index 0000000..24f30df --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map @@ -0,0 +1,458 @@ +Archive member included to satisfy reference by file (symbol) + +/opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + ./src/dmatest.o (memset) +/opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +/opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Discarded input sections + + .group 0x0000000000000000 0xc ./src/cr_startup_lpc176x.o + .text 0x0000000000000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x0000000000000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x0000000000000000 0x0 ./src/cr_startup_lpc176x.o + .group 0x0000000000000000 0xc ./src/crp.o + .group 0x0000000000000000 0xc ./src/crp.o + .text 0x0000000000000000 0x0 ./src/crp.o + .data 0x0000000000000000 0x0 ./src/crp.o + .bss 0x0000000000000000 0x0 ./src/crp.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .group 0x0000000000000000 0xc ./src/dma.o + .text 0x0000000000000000 0x0 ./src/dma.o + .data 0x0000000000000000 0x0 ./src/dma.o + .bss 0x0000000000000000 0x0 ./src/dma.o + .bss.DMAErrCount + 0x0000000000000000 0x4 ./src/dma.o + .debug_macro 0x0000000000000000 0xaae ./src/dma.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .group 0x0000000000000000 0xc ./src/dmatest.o + .text 0x0000000000000000 0x0 ./src/dmatest.o + .data 0x0000000000000000 0x0 ./src/dmatest.o + .bss 0x0000000000000000 0x0 ./src/dmatest.o + .debug_macro 0x0000000000000000 0xaae ./src/dmatest.o + .debug_macro 0x0000000000000000 0x10 ./src/dmatest.o + .debug_macro 0x0000000000000000 0x12e ./src/dmatest.o + .debug_macro 0x0000000000000000 0x5b3 ./src/dmatest.o + .debug_macro 0x0000000000000000 0x52 ./src/dmatest.o + .debug_macro 0x0000000000000000 0x1c ./src/dmatest.o + .debug_macro 0x0000000000000000 0x2e ./src/dmatest.o + .debug_macro 0x0000000000000000 0x18 ./src/dmatest.o + .debug_macro 0x0000000000000000 0x7af ./src/dmatest.o + .debug_macro 0x0000000000000000 0x2c7 ./src/dmatest.o + .text 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + .data 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + .bss 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + .text 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + .data 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + .bss 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + .text 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .data 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .bss 0x0000000000000000 0x0 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x0000000000000000 0x34 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x0000000000000000 0x1c /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x0000000000000000 0x8 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x0000000000000000 0xa /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + +Memory Configuration + +Name Origin Length Attributes +MFlash512 0x0000000000000000 0x0000000000080000 xr +RamLoc32 0x0000000010000000 0x0000000000008000 xrw +RamAHB32 0x000000002007c000 0x0000000000008000 xrw +*default* 0x0000000000000000 0xffffffffffffffff + +Linker script and memory map + +LOAD ./src/cr_startup_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma.o +LOAD ./src/dmatest.o +LOAD /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a +START GROUP +LOAD /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a +LOAD /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a +LOAD /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libgcc.a +END GROUP + 0x0000000000000000 __base_MFlash512 = 0x0 + 0x0000000000000000 __base_Flash = 0x0 + 0x0000000000080000 __top_MFlash512 = 0x80000 + 0x0000000000080000 __top_Flash = 0x80000 + 0x0000000010000000 __base_RamLoc32 = 0x10000000 + 0x0000000010000000 __base_RAM = 0x10000000 + 0x0000000010008000 __top_RamLoc32 = 0x10008000 + 0x0000000010008000 __top_RAM = 0x10008000 + 0x000000002007c000 __base_RamAHB32 = 0x2007c000 + 0x000000002007c000 __base_RAM2 = 0x2007c000 + 0x0000000020084000 __top_RamAHB32 = 0x20084000 + 0x0000000020084000 __top_RAM2 = 0x20084000 + +.text 0x0000000000000000 0x5c4 + FILL mask 0xff + 0x0000000000000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x0000000000000000 0xcc ./src/cr_startup_lpc176x.o + 0x0000000000000000 g_pfnVectors + 0x00000000000000cc . = ALIGN (0x4) + 0x00000000000000cc __section_table_start = . + 0x00000000000000cc __data_section_table = . + 0x00000000000000cc 0x4 LONG 0x5c4 LOADADDR (.data) + 0x00000000000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x00000000000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x00000000000000d8 0x4 LONG 0x5c4 LOADADDR (.data_RAM2) + 0x00000000000000dc 0x4 LONG 0x2007c000 ADDR (.data_RAM2) + 0x00000000000000e0 0x4 LONG 0x0 SIZEOF (.data_RAM2) + 0x00000000000000e4 __data_section_table_end = . + 0x00000000000000e4 __bss_section_table = . + 0x00000000000000e4 0x4 LONG 0x10000000 ADDR (.bss) + 0x00000000000000e8 0x4 LONG 0x2828 SIZEOF (.bss) + 0x00000000000000ec 0x4 LONG 0x2007c000 ADDR (.bss_RAM2) + 0x00000000000000f0 0x4 LONG 0x0 SIZEOF (.bss_RAM2) + 0x00000000000000f4 __bss_section_table_end = . + 0x00000000000000f4 __section_table_end = . + *(.after_vectors*) + .after_vectors + 0x00000000000000f4 0x74 ./src/cr_startup_lpc176x.o + 0x00000000000000f4 NMI_Handler + 0x00000000000000f6 HardFault_Handler + 0x00000000000000f8 MemManage_Handler + 0x00000000000000fa BusFault_Handler + 0x00000000000000fc UsageFault_Handler + 0x00000000000000fe SVC_Handler + 0x0000000000000100 DebugMon_Handler + 0x0000000000000102 PendSV_Handler + 0x0000000000000104 SysTick_Handler + 0x0000000000000106 TIMER2_IRQHandler + 0x0000000000000106 RIT_IRQHandler + 0x0000000000000106 I2C0_IRQHandler + 0x0000000000000106 USBActivity_IRQHandler + 0x0000000000000106 PWM1_IRQHandler + 0x0000000000000106 I2C1_IRQHandler + 0x0000000000000106 EINT2_IRQHandler + 0x0000000000000106 UART1_IRQHandler + 0x0000000000000106 EINT3_IRQHandler + 0x0000000000000106 CANActivity_IRQHandler + 0x0000000000000106 TIMER3_IRQHandler + 0x0000000000000106 UART0_IRQHandler + 0x0000000000000106 IntDefaultHandler + 0x0000000000000106 PLL0_IRQHandler + 0x0000000000000106 CAN_IRQHandler + 0x0000000000000106 PLL1_IRQHandler + 0x0000000000000106 SSP0_IRQHandler + 0x0000000000000106 I2S_IRQHandler + 0x0000000000000106 I2C2_IRQHandler + 0x0000000000000106 RTC_IRQHandler + 0x0000000000000106 TIMER0_IRQHandler + 0x0000000000000106 SPI_IRQHandler + 0x0000000000000106 EINT1_IRQHandler + 0x0000000000000106 TIMER1_IRQHandler + 0x0000000000000106 UART2_IRQHandler + 0x0000000000000106 ADC_IRQHandler + 0x0000000000000106 SSP1_IRQHandler + 0x0000000000000106 USB_IRQHandler + 0x0000000000000106 BOD_IRQHandler + 0x0000000000000106 WDT_IRQHandler + 0x0000000000000106 QEI_IRQHandler + 0x0000000000000106 EINT0_IRQHandler + 0x0000000000000106 UART3_IRQHandler + 0x0000000000000106 MCPWM_IRQHandler + 0x0000000000000106 ENET_IRQHandler + 0x0000000000000108 data_init + 0x000000000000011a bss_init + 0x000000000000012a ResetISR + 0x00000000000002fc . = 0x2fc + *fill* 0x0000000000000168 0x194 ff + 0x00000000000002fc PROVIDE (__CRP_WORD_START__ = .) + *(.crp) + .crp 0x00000000000002fc 0x4 ./src/crp.o + 0x00000000000002fc CRP_WORD + 0x0000000000000300 PROVIDE (__CRP_WORD_END__ = .) + 0x0000000000000001 ASSERT (! ((__CRP_WORD_START__ == __CRP_WORD_END__)), Linker CRP Enabled, but no CRP_WORD provided within application) + *(.text*) + .text.NVIC_EnableIRQ + 0x0000000000000300 0x30 ./src/dma.o + .text.DMA_IRQHandler + 0x0000000000000330 0xc ./src/dma.o + 0x0000000000000330 DMA_IRQHandler + .text.DMA_Init + 0x000000000000033c 0xa4 ./src/dma.o + 0x000000000000033c DMA_Init + .text.single_copy + 0x00000000000003e0 0x68 ./src/dmatest.o + 0x00000000000003e0 single_copy + .text.LLI_copy + 0x0000000000000448 0xcc ./src/dmatest.o + 0x0000000000000448 LLI_copy + .text.check_res + 0x0000000000000514 0x3c ./src/dmatest.o + 0x0000000000000514 check_res + .text.main 0x0000000000000550 0x38 ./src/dmatest.o + 0x0000000000000550 main + .text.memset 0x0000000000000588 0x4 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + 0x0000000000000588 memset + .text.__weak_main + 0x000000000000058c 0x4 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + 0x000000000000058c __main + 0x000000000000058c __weak_main + .text.__aeabi_memset_lowlevel + 0x0000000000000590 0x32 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + 0x0000000000000590 __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x00000000000005c4 . = ALIGN (0x4) + *fill* 0x00000000000005c2 0x2 ff + +.glue_7 0x00000000000005c4 0x0 + .glue_7 0x00000000000005c4 0x0 linker stubs + +.glue_7t 0x00000000000005c4 0x0 + .glue_7t 0x00000000000005c4 0x0 linker stubs + +.vfp11_veneer 0x00000000000005c4 0x0 + .vfp11_veneer 0x00000000000005c4 0x0 linker stubs + +.v4_bx 0x00000000000005c4 0x0 + .v4_bx 0x00000000000005c4 0x0 linker stubs + +.iplt 0x00000000000005c4 0x0 + .iplt 0x00000000000005c4 0x0 ./src/cr_startup_lpc176x.o + +.rel.dyn 0x00000000000005c4 0x0 + .rel.iplt 0x00000000000005c4 0x0 ./src/cr_startup_lpc176x.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + +.ARM.exidx 0x00000000000005c4 0x0 + 0x00000000000005c4 __exidx_start = . + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000000000005c4 __exidx_end = . + 0x00000000000005c4 _etext = . + +.data_RAM2 0x000000002007c000 0x0 load address 0x00000000000005c4 + 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.*) + 0x000000002007c000 . = ALIGN (0x4) + [!provide] PROVIDE (__end_data_RAM2 = .) + [!provide] PROVIDE (__end_data_RamAHB32 = .) + +.uninit_RESERVED + 0x0000000010000000 0x0 + 0x0000000010000000 _start_uninit_RESERVED = . + *(.bss.$RESERVED*) + 0x0000000010000000 . = ALIGN (0x4) + 0x0000000010000000 _end_uninit_RESERVED = . + +.data 0x0000000010000000 0x0 load address 0x00000000000005c4 + FILL mask 0xff + 0x0000000010000000 _data = . + [!provide] PROVIDE (__start_data_RAM = .) + [!provide] PROVIDE (__start_data_RamLoc32 = .) + *(vtable) + *(.ramfunc*) + *(CodeQuickAccess) + *(DataQuickAccess) + *(RamFunction) + *(.data*) + 0x0000000010000000 . = ALIGN (0x4) + 0x0000000010000000 _edata = . + [!provide] PROVIDE (__end_data_RAM = .) + [!provide] PROVIDE (__end_data_RamLoc32 = .) + +.igot.plt 0x0000000010000000 0x0 load address 0x00000000000005c4 + .igot.plt 0x0000000010000000 0x0 ./src/cr_startup_lpc176x.o + +.bss_RAM2 0x000000002007c000 0x0 + [!provide] PROVIDE (__start_bss_RAM2 = .) + [!provide] PROVIDE (__start_bss_RamAHB32 = .) + *(.bss.$RAM2) + *(.bss.$RamAHB32) + *(.bss.$RAM2.*) + *(.bss.$RamAHB32.*) + 0x000000002007c000 . = ALIGN ((. != 0x0)?0x4:0x1) + [!provide] PROVIDE (__end_bss_RAM2 = .) + [!provide] PROVIDE (__end_bss_RamAHB32 = .) + +.bss 0x0000000010000000 0x2828 + 0x0000000010000000 _bss = . + [!provide] PROVIDE (__start_bss_RAM = .) + [!provide] PROVIDE (__start_bss_RamLoc32 = .) + *(.bss*) + .bss.DMATCCount + 0x0000000010000000 0x4 ./src/dma.o + 0x0000000010000000 DMATCCount + .bss.LLI 0x0000000010000004 0x20 ./src/dmatest.o + 0x0000000010000004 LLI + .bss.src3 0x0000000010000024 0x400 ./src/dmatest.o + 0x0000000010000024 src3 + .bss.i 0x0000000010000424 0x4 ./src/dmatest.o + 0x0000000010000424 i + .bss.src1 0x0000000010000428 0x1000 ./src/dmatest.o + 0x0000000010000428 src1 + .bss.dest 0x0000000010001428 0x1000 ./src/dmatest.o + 0x0000000010001428 dest + .bss.src2 0x0000000010002428 0x400 ./src/dmatest.o + 0x0000000010002428 src2 + *(COMMON) + 0x0000000010002828 . = ALIGN (0x4) + 0x0000000010002828 _ebss = . + [!provide] PROVIDE (__end_bss_RAM = .) + [!provide] PROVIDE (__end_bss_RamLoc32 = .) + [!provide] PROVIDE (end = .) + +.noinit_RAM2 0x000000002007c000 0x0 + [!provide] PROVIDE (__start_noinit_RAM2 = .) + [!provide] PROVIDE (__start_noinit_RamAHB32 = .) + *(.noinit.$RAM2) + *(.noinit.$RamAHB32) + *(.noinit.$RAM2.*) + *(.noinit.$RamAHB32.*) + 0x000000002007c000 . = ALIGN (0x4) + [!provide] PROVIDE (__end_noinit_RAM2 = .) + [!provide] PROVIDE (__end_noinit_RamAHB32 = .) + +.noinit 0x0000000010002828 0x0 + 0x0000000010002828 _noinit = . + [!provide] PROVIDE (__start_noinit_RAM = .) + [!provide] PROVIDE (__start_noinit_RamLoc32 = .) + *(.noinit*) + 0x0000000010002828 . = ALIGN (0x4) + 0x0000000010002828 _end_noinit = . + [!provide] PROVIDE (__end_noinit_RAM = .) + [!provide] PROVIDE (__end_noinit_RamLoc32 = .) + [!provide] PROVIDE (_pvHeapStart = DEFINED (__user_heap_base)?__user_heap_base:.) + 0x0000000010008000 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)))) + 0x0000000000000000 _image_start = LOADADDR (.text) + 0x00000000000005c4 _image_end = (LOADADDR (.data) + SIZEOF (.data)) + 0x00000000000005c4 _image_size = (_image_end - _image_start) +OUTPUT(labo4.1_DMA_new.axf elf32-littlearm) +LOAD linker stubs + +.debug_info 0x0000000000000000 0xbdd + .debug_info 0x0000000000000000 0x2c6 ./src/cr_startup_lpc176x.o + .debug_info 0x00000000000002c6 0x41 ./src/crp.o + .debug_info 0x0000000000000307 0x6be ./src/dma.o + .debug_info 0x00000000000009c5 0x218 ./src/dmatest.o + +.debug_abbrev 0x0000000000000000 0x4af + .debug_abbrev 0x0000000000000000 0x177 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x0000000000000177 0x37 ./src/crp.o + .debug_abbrev 0x00000000000001ae 0x1a4 ./src/dma.o + .debug_abbrev 0x0000000000000352 0x15d ./src/dmatest.o + +.debug_loclists + 0x0000000000000000 0xe8 + .debug_loclists + 0x0000000000000000 0xe8 ./src/cr_startup_lpc176x.o + +.debug_aranges 0x0000000000000000 0x100 + .debug_aranges + 0x0000000000000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x0000000000000080 0x18 ./src/crp.o + .debug_aranges + 0x0000000000000098 0x30 ./src/dma.o + .debug_aranges + 0x00000000000000c8 0x38 ./src/dmatest.o + +.debug_rnglists + 0x0000000000000000 0xa1 + .debug_rnglists + 0x0000000000000000 0x5b ./src/cr_startup_lpc176x.o + .debug_rnglists + 0x000000000000005b 0x20 ./src/dma.o + .debug_rnglists + 0x000000000000007b 0x26 ./src/dmatest.o + +.debug_macro 0x0000000000000000 0x28f8 + .debug_macro 0x0000000000000000 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x000000000000001d 0xab4 ./src/cr_startup_lpc176x.o + .debug_macro 0x0000000000000ad1 0x1a ./src/crp.o + .debug_macro 0x0000000000000aeb 0xaae ./src/crp.o + .debug_macro 0x0000000000001599 0x34 ./src/crp.o + .debug_macro 0x00000000000015cd 0x7e ./src/dma.o + .debug_macro 0x000000000000164b 0x1c ./src/dma.o + .debug_macro 0x0000000000001667 0x2e ./src/dma.o + .debug_macro 0x0000000000001695 0x10 ./src/dma.o + .debug_macro 0x00000000000016a5 0x12e ./src/dma.o + .debug_macro 0x00000000000017d3 0x5b3 ./src/dma.o + .debug_macro 0x0000000000001d86 0x18 ./src/dma.o + .debug_macro 0x0000000000001d9e 0x7af ./src/dma.o + .debug_macro 0x000000000000254d 0x2c7 ./src/dma.o + .debug_macro 0x0000000000002814 0x52 ./src/dma.o + .debug_macro 0x0000000000002866 0x92 ./src/dmatest.o + +.debug_line 0x0000000000000000 0x8bc + .debug_line 0x0000000000000000 0x258 ./src/cr_startup_lpc176x.o + .debug_line 0x0000000000000258 0xa4 ./src/crp.o + .debug_line 0x00000000000002fc 0x26e ./src/dma.o + .debug_line 0x000000000000056a 0x352 ./src/dmatest.o + +.debug_str 0x0000000000000000 0x8f12 + .debug_str 0x0000000000000000 0x2f81 ./src/cr_startup_lpc176x.o + 0x2f94 (size before relaxing) + .debug_str 0x0000000000002f81 0x1b5 ./src/crp.o + 0x2e93 (size before relaxing) + .debug_str 0x0000000000003136 0x5d5e ./src/dma.o + 0x8b79 (size before relaxing) + .debug_str 0x0000000000008e94 0x7e ./src/dmatest.o + 0x874f (size before relaxing) + +.comment 0x0000000000000000 0x45 + .comment 0x0000000000000000 0x45 ./src/cr_startup_lpc176x.o + 0x46 (size before relaxing) + .comment 0x0000000000000045 0x46 ./src/crp.o + .comment 0x0000000000000045 0x46 ./src/dma.o + .comment 0x0000000000000045 0x46 ./src/dmatest.o + .comment 0x0000000000000045 0x46 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + .comment 0x0000000000000045 0x46 /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x0000000000000000 0x2b + .ARM.attributes + 0x0000000000000000 0x2d ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x000000000000002d 0x2d ./src/crp.o + .ARM.attributes + 0x000000000000005a 0x2d ./src/dma.o + .ARM.attributes + 0x0000000000000087 0x2d ./src/dmatest.o + .ARM.attributes + 0x00000000000000b4 0x2d /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(memset.o) + .ARM.attributes + 0x00000000000000e1 0x2d /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp/libcr_c.a(__weak__main.o) + .ARM.attributes + 0x000000000000010e 0x1b /opt/mcuxpresso-ide/ide/plugins/com.nxp.mcuxpresso.tools.linux_11.8.0.202306131047/tools/bin/../lib/gcc/arm-none-eabi/12.2.1/thumb/v7-m/nofp/libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x0000000000000000 0x1fc + .debug_frame 0x0000000000000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x00000000000000f4 0x7c ./src/dma.o + .debug_frame 0x0000000000000170 0x8c ./src/dmatest.o diff --git a/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld new file mode 100644 index 0000000..60863d7 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld @@ -0,0 +1,203 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +INCLUDE "labo4_1_DMA_Debug_library.ld" +INCLUDE "labo4_1_DMA_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 + + .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 : 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 : 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/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld new file mode 100644 index 0000000..6e4a567 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld @@ -0,0 +1,16 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +GROUP ( + "libcr_c.a" + "libcr_eabihelpers.a" + "libgcc.a" +) diff --git a/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld new file mode 100644 index 0000000..ff5f730 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld @@ -0,0 +1,32 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +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/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld new file mode 100644 index 0000000..af059fb --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld @@ -0,0 +1,200 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright 2008-2013 Code Red Technologies Ltd, + * Copyright 2013-2023 NXP + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.8.0 [Build 1165] [2023-07-26] on 15 Nov 2023, 14:07:03 + */ + +INCLUDE "labo4_1_DMA_new_Debug_library.ld" +INCLUDE "labo4_1_DMA_new_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 */ + *(.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/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld new file mode 100644 index 0000000..f6dd191 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld @@ -0,0 +1,15 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright 2008-2013 Code Red Technologies Ltd, + * Copyright 2013-2023 NXP + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.8.0 [Build 1165] [2023-07-26] on 15 Nov 2023, 14:07:03 + */ + +GROUP ( + "libcr_c.a" + "libcr_eabihelpers.a" + "libgcc.a" +) diff --git a/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld new file mode 100644 index 0000000..29824ac --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld @@ -0,0 +1,31 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright 2008-2013 Code Red Technologies Ltd, + * Copyright 2013-2023 NXP + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.8.0 [Build 1165] [2023-07-26] on 15 Nov 2023, 14:07:03 + */ + +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/labo4.1_DMA_new/Debug/labo6_DMA.map b/labo4.1_DMA_new/Debug/labo6_DMA.map new file mode 100644 index 0000000..d3cae22 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo6_DMA.map @@ -0,0 +1,440 @@ +Archive member included because of file (symbol) + +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +delta_t_ref 0x4 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +t_start 0x4 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +delta_t 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .text 0x00000000 0x0 ./src/config_LPC1769.o + .data 0x00000000 0x0 ./src/config_LPC1769.o + .bss 0x00000000 0x0 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.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 0x86e ./src/crp.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .debug_macro 0x00000000 0x86e ./src/dma_corrige.o + .debug_macro 0x00000000 0x10 ./src/dma_corrige.o + .debug_macro 0x00000000 0x12d ./src/dma_corrige.o + .debug_macro 0x00000000 0x5b2 ./src/dma_corrige.o + .debug_macro 0x00000000 0x331 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x86e ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x10 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x12d ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x5b2 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x52 ./src/dmatest_corrige.o + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x34 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.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/config_LPC1769.o +LOAD ./src/cr_startup_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +START GROUP +LOAD c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/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 0x6b8 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x6b8 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x6b8 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x2838 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 0x7c ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 PWM1_IRQHandler + 0x00000106 I2C1_IRQHandler + 0x00000106 EINT2_IRQHandler + 0x00000106 UART1_IRQHandler + 0x00000106 EINT3_IRQHandler + 0x00000106 CANActivity_IRQHandler + 0x00000106 TIMER3_IRQHandler + 0x00000106 UART0_IRQHandler + 0x00000106 MCPWM_IRQHandler + 0x00000106 I2C0_IRQHandler + 0x00000106 IntDefaultHandler + 0x00000106 RIT_IRQHandler + 0x00000106 CAN_IRQHandler + 0x00000106 PLL1_IRQHandler + 0x00000106 SSP0_IRQHandler + 0x00000106 I2S_IRQHandler + 0x00000106 I2C2_IRQHandler + 0x00000106 RTC_IRQHandler + 0x00000106 TIMER0_IRQHandler + 0x00000106 SPI_IRQHandler + 0x00000106 UART3_IRQHandler + 0x00000106 EINT1_IRQHandler + 0x00000106 TIMER1_IRQHandler + 0x00000106 UART2_IRQHandler + 0x00000106 ADC_IRQHandler + 0x00000106 SSP1_IRQHandler + 0x00000106 USB_IRQHandler + 0x00000106 BOD_IRQHandler + 0x00000106 USBActivity_IRQHandler + 0x00000106 WDT_IRQHandler + 0x00000106 PLL0_IRQHandler + 0x00000106 QEI_IRQHandler + 0x00000106 EINT0_IRQHandler + 0x00000106 TIMER2_IRQHandler + 0x00000106 ENET_IRQHandler + 0x00000108 data_init + 0x0000011e bss_init + 0x00000130 ResetISR + 0x000002fc . = 0x2fc + *fill* 0x00000170 0x18c 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.init 0x00000300 0x38 ./src/config_LPC1769.o + 0x00000300 init + .text.DMA_IRQHandler + 0x00000338 0x60 ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x00000398 0x9c ./src/dma_corrige.o + 0x00000398 DMA_Init + .text.single_copy + 0x00000434 0xbc ./src/dmatest_corrige.o + 0x00000434 single_copy + .text.LLI_copy + 0x000004f0 0x108 ./src/dmatest_corrige.o + 0x000004f0 LLI_copy + .text.check_res + 0x000005f8 0x40 ./src/dmatest_corrige.o + 0x000005f8 check_res + .text.main 0x00000638 0x44 ./src/dmatest_corrige.o + 0x00000638 main + .text.memset 0x0000067c 0x4 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x0000067c memset + .text.__weak_main + 0x00000680 0x4 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x00000680 __weak_main + 0x00000680 __main + .text.__aeabi_memset_lowlevel + 0x00000684 0x32 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x00000684 __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x000006b8 . = ALIGN (0x4) + *fill* 0x000006b6 0x2 ff + +.glue_7 0x000006b8 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x000006b8 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x000006b8 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x000006b8 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.iplt 0x000006b8 0x0 + .iplt 0x00000000 0x0 ./src/config_LPC1769.o + +.rel.dyn 0x000006b8 0x0 + .rel.iplt 0x00000000 0x0 ./src/config_LPC1769.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x000006b8 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x000006b8 __exidx_end = . + 0x000006b8 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x000006b8 + FILL mask 0xff + 0x2007c000 PROVIDE (__start_data_RAM2, .) + *(.ramfunc.$RAM2) + *(.ramfunc.$RamAHB32) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + 0x2007c000 PROVIDE (__end_data_RAM2, .) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x000006b8 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.ramfunc*) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.igot.plt 0x10000000 0x0 load address 0x000006b8 + .igot.plt 0x00000000 0x0 ./src/config_LPC1769.o + +.bss_RAM2 0x2007c000 0x0 + 0x2007c000 PROVIDE (__start_bss_RAM2, .) + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x2007c000 PROVIDE (__end_bss_RAM2, .) + +.bss 0x10000000 0x2838 + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2830 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 delta_t_ref + 0x1000100c src2 + 0x1000140c t_start + 0x10001410 src3 + 0x10001810 i + 0x10001814 delta_t + 0x10001818 src1 + 0x10002818 LLI + 0x10002838 . = ALIGN (0x4) + 0x10002838 _ebss = . + 0x10002838 PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x10002838 0x0 + 0x10002838 _noinit = . + *(.noinit*) + 0x10002838 . = ALIGN (0x4) + 0x10002838 _end_noinit = . + 0x10002838 PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) + 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) + 0xefff79f2 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(labo6_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0x644 + .debug_info 0x00000000 0x81 ./src/config_LPC1769.o + .debug_info 0x00000081 0x26f ./src/cr_startup_lpc176x.o + .debug_info 0x000002f0 0x3f ./src/crp.o + .debug_info 0x0000032f 0x11a ./src/dma_corrige.o + .debug_info 0x00000449 0x1fb ./src/dmatest_corrige.o + +.debug_abbrev 0x00000000 0x341 + .debug_abbrev 0x00000000 0x45 ./src/config_LPC1769.o + .debug_abbrev 0x00000045 0x120 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x00000165 0x36 ./src/crp.o + .debug_abbrev 0x0000019b 0xa2 ./src/dma_corrige.o + .debug_abbrev 0x0000023d 0x104 ./src/dmatest_corrige.o + +.debug_aranges 0x00000000 0x118 + .debug_aranges + 0x00000000 0x20 ./src/config_LPC1769.o + .debug_aranges + 0x00000020 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x000000a0 0x18 ./src/crp.o + .debug_aranges + 0x000000b8 0x28 ./src/dma_corrige.o + .debug_aranges + 0x000000e0 0x38 ./src/dmatest_corrige.o + +.debug_ranges 0x00000000 0xc0 + .debug_ranges 0x00000000 0x10 ./src/config_LPC1769.o + .debug_ranges 0x00000010 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000080 0x18 ./src/dma_corrige.o + .debug_ranges 0x00000098 0x28 ./src/dmatest_corrige.o + +.debug_macro 0x00000000 0x1ff7 + .debug_macro 0x00000000 0x4b ./src/config_LPC1769.o + .debug_macro 0x0000004b 0x86e ./src/config_LPC1769.o + .debug_macro 0x000008b9 0x10 ./src/config_LPC1769.o + .debug_macro 0x000008c9 0x12d ./src/config_LPC1769.o + .debug_macro 0x000009f6 0x5b2 ./src/config_LPC1769.o + .debug_macro 0x00000fa8 0x331 ./src/config_LPC1769.o + .debug_macro 0x000012d9 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x000012f6 0x874 ./src/cr_startup_lpc176x.o + .debug_macro 0x00001b6a 0x1a ./src/crp.o + .debug_macro 0x00001b84 0x34 ./src/crp.o + .debug_macro 0x00001bb8 0x54 ./src/dma_corrige.o + .debug_macro 0x00001c0c 0x52 ./src/dma_corrige.o + .debug_macro 0x00001c5e 0x62 ./src/dmatest_corrige.o + .debug_macro 0x00001cc0 0x337 ./src/dmatest_corrige.o + +.debug_line 0x00000000 0x58d + .debug_line 0x00000000 0x122 ./src/config_LPC1769.o + .debug_line 0x00000122 0xbc ./src/cr_startup_lpc176x.o + .debug_line 0x000001de 0x78 ./src/crp.o + .debug_line 0x00000256 0x141 ./src/dma_corrige.o + .debug_line 0x00000397 0x1f6 ./src/dmatest_corrige.o + +.debug_str 0x00000000 0x5ac2 + .debug_str 0x00000000 0x54d4 ./src/config_LPC1769.o + 0x5552 (size before relaxing) + .debug_str 0x000054d4 0x29f ./src/cr_startup_lpc176x.o + 0x263f (size before relaxing) + .debug_str 0x00005773 0xe9 ./src/crp.o + 0x2540 (size before relaxing) + .debug_str 0x0000585c 0x1a1 ./src/dma_corrige.o + 0x56d6 (size before relaxing) + .debug_str 0x000059fd 0xc5 ./src/dmatest_corrige.o + 0x5769 (size before relaxing) + +.comment 0x00000000 0xe0 + .comment 0x00000000 0x70 ./src/config_LPC1769.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/cr_startup_lpc176x.o + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000070 0x70 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x71 (size before relaxing) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/config_LPC1769.o + .ARM.attributes + 0x00000033 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000066 0x33 ./src/crp.o + .ARM.attributes + 0x00000099 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x000000cc 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x20c + .debug_frame 0x00000000 0x30 ./src/config_LPC1769.o + .debug_frame 0x00000030 0xf0 ./src/cr_startup_lpc176x.o + .debug_frame 0x00000120 0x60 ./src/dma_corrige.o + .debug_frame 0x00000180 0x8c ./src/dmatest_corrige.o + +.debug_loc 0x00000000 0x1be + .debug_loc 0x00000000 0x1be ./src/cr_startup_lpc176x.o diff --git a/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld b/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld new file mode 100644 index 0000000..5965732 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld @@ -0,0 +1,158 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +INCLUDE "labo6_DMA_Debug_library.ld" +INCLUDE "labo6_DMA_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 Protect 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 Protect */ + } >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/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld new file mode 100644 index 0000000..af97581 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld @@ -0,0 +1,14 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +GROUP ( + libcr_c.a + libcr_eabihelpers.a +) diff --git a/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld new file mode 100644 index 0000000..247ebe9 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld @@ -0,0 +1,31 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +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/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld new file mode 100644 index 0000000..a0693af --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld @@ -0,0 +1,163 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-13 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (8.0.0 ()) + * By LPCXpresso v8.0.0 [Build 526] [2015-11-23] on Thu Jan 19 07:46:58 CET 2017 + */ + + +INCLUDE "labo6_DMA_Debug_library.ld" +INCLUDE "labo6_DMA_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 Protect 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 Protect */ + + } >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); +} diff --git a/labo4.1_DMA_new/Debug/labo7_DMA.axf b/labo4.1_DMA_new/Debug/labo7_DMA.axf new file mode 100644 index 0000000000000000000000000000000000000000..3afac83f168d619448067e191671069e2206e77d GIT binary patch literal 192267 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�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�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 literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/labo7_DMA.map b/labo4.1_DMA_new/Debug/labo7_DMA.map new file mode 100644 index 0000000..7971490 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo7_DMA.map @@ -0,0 +1,404 @@ +Archive member included because of file (symbol) + +C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + ./src/cr_startup_lpc176x.o (SystemInit) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .text 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .bss 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text.SystemCoreClockUpdate + 0x00000000 0xcc C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data.SystemCoreClock + 0x00000000 0x4 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv + 0x00000000 0x10 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidiv + 0x00000000 0x10 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldivmod + 0x00000000 0x26 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uldivmod + 0x00000000 0x174 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x26 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.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_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +LOAD C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a +START GROUP +LOAD c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a +END GROUP + 0x00080000 __top_MFlash512 = 0x80000 + 0x10008000 __top_RamLoc32 = 0x10008000 + 0x20084000 __top_RamAHB32 = 0x20084000 + +.text 0x00000000 0x898 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x898 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x898 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x282c 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 0x78 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 data_init + 0x00000118 bss_init + 0x00000128 ResetISR + 0x00000168 UART1_IRQHandler + 0x00000168 EINT3_IRQHandler + 0x00000168 CANActivity_IRQHandler + 0x00000168 TIMER3_IRQHandler + 0x00000168 UART0_IRQHandler + 0x00000168 EINT2_IRQHandler + 0x00000168 I2C1_IRQHandler + 0x00000168 IntDefaultHandler + 0x00000168 PLL0_IRQHandler + 0x00000168 PWM1_IRQHandler + 0x00000168 PLL1_IRQHandler + 0x00000168 SSP0_IRQHandler + 0x00000168 I2S_IRQHandler + 0x00000168 I2C2_IRQHandler + 0x00000168 RTC_IRQHandler + 0x00000168 TIMER0_IRQHandler + 0x00000168 SPI_IRQHandler + 0x00000168 USBActivity_IRQHandler + 0x00000168 EINT1_IRQHandler + 0x00000168 TIMER1_IRQHandler + 0x00000168 UART2_IRQHandler + 0x00000168 ADC_IRQHandler + 0x00000168 SSP1_IRQHandler + 0x00000168 USB_IRQHandler + 0x00000168 BOD_IRQHandler + 0x00000168 I2C0_IRQHandler + 0x00000168 WDT_IRQHandler + 0x00000168 RIT_IRQHandler + 0x00000168 QEI_IRQHandler + 0x00000168 EINT0_IRQHandler + 0x00000168 CAN_IRQHandler + 0x00000168 TIMER2_IRQHandler + 0x00000168 UART3_IRQHandler + 0x00000168 MCPWM_IRQHandler + 0x00000168 ENET_IRQHandler + 0x000002fc . = 0x2fc + *fill* 0x0000016c 0x190 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 0x38 ./src/dma_corrige.o + .text.DMA_IRQHandler + 0x00000338 0x7c ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x000003b4 0xc0 ./src/dma_corrige.o + 0x000003b4 DMA_Init + .text.single_copy + 0x00000474 0xa8 ./src/dmatest_corrige.o + 0x00000474 single_copy + .text.LLI_copy + 0x0000051c 0x1e4 ./src/dmatest_corrige.o + 0x0000051c LLI_copy + .text.check_res + 0x00000700 0x4c ./src/dmatest_corrige.o + 0x00000700 check_res + .text.main 0x0000074c 0x3c ./src/dmatest_corrige.o + 0x0000074c main + .text.SystemInit + 0x00000788 0xe4 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x00000788 SystemInit + .text.memset 0x0000086c 0x4 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x0000086c memset + .text.__weak_main + 0x00000870 0x4 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x00000870 __weak_main + 0x00000870 __main + .text.__aeabi_memset_lowlevel + 0x00000874 0x24 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x00000874 __aeabi_lowlevel_memset + *(.rodata .rodata.*) + 0x00000898 . = ALIGN (0x4) + +.glue_7 0x00000898 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x00000898 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x00000898 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x00000898 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x00000898 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000898 __exidx_end = . + 0x00000898 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x00000898 + FILL mask 0xff + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x00000898 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.bss_RAM2 0x2007c000 0x0 + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.bss 0x10000000 0x282c + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2824 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 src2 + 0x10001408 src3 + 0x10001808 i + 0x1000180c src1 + 0x1000280c LLI + 0x1000282c . = ALIGN (0x4) + 0x1000282c _ebss = . + 0x1000282c PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x1000282c 0x0 + 0x1000282c _noinit = . + *(.noinit*) + 0x1000282c . = ALIGN (0x4) + 0x1000282c _end_noinit = . + 0x1000282c PROVIDE (_pvHeapStart, .) + 0x10008000 PROVIDE (_vStackTop, (__top_RamLoc32 - 0x0)) +OUTPUT(labo7_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0xd1b + .debug_info 0x00000000 0x2dd ./src/cr_startup_lpc176x.o + .debug_info 0x000002dd 0x48 ./src/crp.o + .debug_info 0x00000325 0x400 ./src/dma_corrige.o + .debug_info 0x00000725 0x267 ./src/dmatest_corrige.o + .debug_info 0x0000098c 0x38f C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_abbrev 0x00000000 0x4a9 + .debug_abbrev 0x00000000 0x12b ./src/cr_startup_lpc176x.o + .debug_abbrev 0x0000012b 0x39 ./src/crp.o + .debug_abbrev 0x00000164 0x144 ./src/dma_corrige.o + .debug_abbrev 0x000002a8 0x11e ./src/dmatest_corrige.o + .debug_abbrev 0x000003c6 0xe3 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_loc 0x00000000 0x286 + .debug_loc 0x00000000 0x102 ./src/cr_startup_lpc176x.o + .debug_loc 0x00000102 0xa8 ./src/dma_corrige.o + .debug_loc 0x000001aa 0xbc ./src/dmatest_corrige.o + .debug_loc 0x00000266 0x20 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_aranges 0x00000000 0x110 + .debug_aranges + 0x00000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x00000080 0x30 ./src/dma_corrige.o + .debug_aranges + 0x000000b0 0x38 ./src/dmatest_corrige.o + .debug_aranges + 0x000000e8 0x28 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_ranges 0x00000000 0xd0 + .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000070 0x20 ./src/dma_corrige.o + .debug_ranges 0x00000090 0x28 ./src/dmatest_corrige.o + .debug_ranges 0x000000b8 0x18 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_line 0x00000000 0x1114 + .debug_line 0x00000000 0x3da ./src/cr_startup_lpc176x.o + .debug_line 0x000003da 0xac ./src/crp.o + .debug_line 0x00000486 0x406 ./src/dma_corrige.o + .debug_line 0x0000088c 0x49c ./src/dmatest_corrige.o + .debug_line 0x00000d28 0x3ec C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_macinfo 0x00000000 0x22317 + .debug_macinfo + 0x00000000 0x3d45 ./src/cr_startup_lpc176x.o + .debug_macinfo + 0x00003d45 0x238b ./src/crp.o + .debug_macinfo + 0x000060d0 0x9e68 ./src/dma_corrige.o + .debug_macinfo + 0x0000ff38 0x9eae ./src/dmatest_corrige.o + .debug_macinfo + 0x00019de6 0x8531 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_str 0x00000000 0x792 + .debug_str 0x00000000 0x263 ./src/cr_startup_lpc176x.o + 0x28b (size before relaxing) + .debug_str 0x00000263 0x16 ./src/crp.o + 0xb8 (size before relaxing) + .debug_str 0x00000279 0x2db ./src/dma_corrige.o + 0x3f6 (size before relaxing) + .debug_str 0x00000554 0x88 ./src/dmatest_corrige.o + 0x1c4 (size before relaxing) + .debug_str 0x000005dc 0x1b6 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x2c8 (size before relaxing) + +.comment 0x00000000 0x70 + .comment 0x00000000 0x70 ./src/cr_startup_lpc176x.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000000 0x71 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000033 0x33 ./src/crp.o + .ARM.attributes + 0x00000066 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x00000099 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000cc 0x33 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .ARM.attributes + 0x00000186 0x21 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x218 + .debug_frame 0x00000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x000000f4 0x68 ./src/dma_corrige.o + .debug_frame 0x0000015c 0x80 ./src/dmatest_corrige.o + .debug_frame 0x000001dc 0x3c C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld b/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld new file mode 100644 index 0000000..fb58006 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld @@ -0,0 +1,155 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (LPCXpresso v6.0 (4 [Build 159] [2013-10-09] )) + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015 + */ + + +INCLUDE "labo7_DMA_Debug_lib.ld" +INCLUDE "labo7_DMA_Debug_mem.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 Protect 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 Protect */ + + } >MFlash512 + + .text : ALIGN(4) + { + *(.text*) + *(.rodata .rodata.*) + . = 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) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + . = ALIGN(4) ; + } > 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) + *(.data*) + . = ALIGN(4) ; + _edata = . ; + } > RamLoc32 AT>MFlash512 + + /* BSS section for RamAHB32 */ + .bss_RAM2 : ALIGN(4) + { + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + . = ALIGN(4) ; + } > 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 = .); + PROVIDE(_vStackTop = __top_RamLoc32 - 0); +} diff --git a/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld b/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld new file mode 100644 index 0000000..e88af09 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld @@ -0,0 +1,14 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Generated linker script file for LPC1769 + * Created from LibIncTemplate.ld (LPCXpresso v6.0 (4 [Build 159] [2013-10-09] )) + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015 + */ + + + GROUP( + libcr_c.a + libcr_eabihelpers.a + ) diff --git a/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld b/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld new file mode 100644 index 0000000..37ce01f --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld @@ -0,0 +1,25 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Linker script memory definitions + * Created from LinkMemoryTemplate + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015) +*/ + +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/labo4.1_DMA_new/Debug/labo_DMA.axf b/labo4.1_DMA_new/Debug/labo_DMA.axf new file mode 100644 index 0000000000000000000000000000000000000000..a9b9018a5d156f8da8d33bad3f370b608ddac789 GIT binary patch literal 192043 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 W_JQIHB^UXEm*gU)2H3O-Oa}m9ihqaz literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/labo_DMA.map b/labo4.1_DMA_new/Debug/labo_DMA.map new file mode 100644 index 0000000..d34e2ea --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo_DMA.map @@ -0,0 +1,403 @@ +Archive member included because of file (symbol) + +C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + ./src/cr_startup_lpc176x.o (SystemInit) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .text.single_copy + 0x00000000 0xc4 ./src/dmatest_corrige.o + .text 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .bss 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text.SystemCoreClockUpdate + 0x00000000 0xcc C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data.SystemCoreClock + 0x00000000 0x4 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv + 0x00000000 0x10 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidiv + 0x00000000 0x10 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldivmod + 0x00000000 0x26 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uldivmod + 0x00000000 0x174 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x26 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.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_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +LOAD C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a +START GROUP +LOAD c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a +END GROUP + 0x00080000 __top_MFlash512 = 0x80000 + 0x10008000 __top_RamLoc32 = 0x10008000 + 0x20084000 __top_RamAHB32 = 0x20084000 + +.text 0x00000000 0x7f8 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x7f8 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x7f8 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x282c 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 0x78 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 data_init + 0x00000118 bss_init + 0x00000128 ResetISR + 0x00000168 UART1_IRQHandler + 0x00000168 EINT3_IRQHandler + 0x00000168 CANActivity_IRQHandler + 0x00000168 TIMER3_IRQHandler + 0x00000168 UART0_IRQHandler + 0x00000168 EINT2_IRQHandler + 0x00000168 I2C1_IRQHandler + 0x00000168 IntDefaultHandler + 0x00000168 PLL0_IRQHandler + 0x00000168 PWM1_IRQHandler + 0x00000168 PLL1_IRQHandler + 0x00000168 SSP0_IRQHandler + 0x00000168 I2S_IRQHandler + 0x00000168 I2C2_IRQHandler + 0x00000168 RTC_IRQHandler + 0x00000168 TIMER0_IRQHandler + 0x00000168 SPI_IRQHandler + 0x00000168 USBActivity_IRQHandler + 0x00000168 EINT1_IRQHandler + 0x00000168 TIMER1_IRQHandler + 0x00000168 UART2_IRQHandler + 0x00000168 ADC_IRQHandler + 0x00000168 SSP1_IRQHandler + 0x00000168 USB_IRQHandler + 0x00000168 BOD_IRQHandler + 0x00000168 I2C0_IRQHandler + 0x00000168 WDT_IRQHandler + 0x00000168 RIT_IRQHandler + 0x00000168 QEI_IRQHandler + 0x00000168 EINT0_IRQHandler + 0x00000168 CAN_IRQHandler + 0x00000168 TIMER2_IRQHandler + 0x00000168 UART3_IRQHandler + 0x00000168 MCPWM_IRQHandler + 0x00000168 ENET_IRQHandler + 0x000002fc . = 0x2fc + *fill* 0x0000016c 0x190 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 0x38 ./src/dma_corrige.o + .text.DMA_IRQHandler + 0x00000338 0x94 ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x000003cc 0xa4 ./src/dma_corrige.o + 0x000003cc DMA_Init + .text.LLI_copy + 0x00000470 0x200 ./src/dmatest_corrige.o + 0x00000470 LLI_copy + .text.check_res + 0x00000670 0x4c ./src/dmatest_corrige.o + 0x00000670 check_res + .text.main 0x000006bc 0x2c ./src/dmatest_corrige.o + 0x000006bc main + .text.SystemInit + 0x000006e8 0xe4 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x000006e8 SystemInit + .text.memset 0x000007cc 0x4 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x000007cc memset + .text.__weak_main + 0x000007d0 0x4 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x000007d0 __weak_main + 0x000007d0 __main + .text.__aeabi_memset_lowlevel + 0x000007d4 0x24 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x000007d4 __aeabi_lowlevel_memset + *(.rodata .rodata.*) + 0x000007f8 . = ALIGN (0x4) + +.glue_7 0x000007f8 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x000007f8 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x000007f8 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x000007f8 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x000007f8 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x000007f8 __exidx_end = . + 0x000007f8 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x000007f8 + FILL mask 0xff + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x000007f8 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.bss_RAM2 0x2007c000 0x0 + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.bss 0x10000000 0x282c + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2824 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 src2 + 0x10001408 src3 + 0x10001808 i + 0x1000180c src1 + 0x1000280c LLI + 0x1000282c . = ALIGN (0x4) + 0x1000282c _ebss = . + 0x1000282c PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x1000282c 0x0 + 0x1000282c _noinit = . + *(.noinit*) + 0x1000282c . = ALIGN (0x4) + 0x1000282c _end_noinit = . + 0x1000282c PROVIDE (_pvHeapStart, .) + 0x10008000 PROVIDE (_vStackTop, (__top_RamLoc32 - 0x0)) +OUTPUT(labo_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0xd1b + .debug_info 0x00000000 0x2dd ./src/cr_startup_lpc176x.o + .debug_info 0x000002dd 0x48 ./src/crp.o + .debug_info 0x00000325 0x400 ./src/dma_corrige.o + .debug_info 0x00000725 0x267 ./src/dmatest_corrige.o + .debug_info 0x0000098c 0x38f C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_abbrev 0x00000000 0x4a9 + .debug_abbrev 0x00000000 0x12b ./src/cr_startup_lpc176x.o + .debug_abbrev 0x0000012b 0x39 ./src/crp.o + .debug_abbrev 0x00000164 0x144 ./src/dma_corrige.o + .debug_abbrev 0x000002a8 0x11e ./src/dmatest_corrige.o + .debug_abbrev 0x000003c6 0xe3 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_loc 0x00000000 0x286 + .debug_loc 0x00000000 0x102 ./src/cr_startup_lpc176x.o + .debug_loc 0x00000102 0xa8 ./src/dma_corrige.o + .debug_loc 0x000001aa 0xbc ./src/dmatest_corrige.o + .debug_loc 0x00000266 0x20 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_aranges 0x00000000 0x110 + .debug_aranges + 0x00000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x00000080 0x30 ./src/dma_corrige.o + .debug_aranges + 0x000000b0 0x38 ./src/dmatest_corrige.o + .debug_aranges + 0x000000e8 0x28 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_ranges 0x00000000 0xd0 + .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000070 0x20 ./src/dma_corrige.o + .debug_ranges 0x00000090 0x28 ./src/dmatest_corrige.o + .debug_ranges 0x000000b8 0x18 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_line 0x00000000 0x110e + .debug_line 0x00000000 0x3d8 ./src/cr_startup_lpc176x.o + .debug_line 0x000003d8 0xad ./src/crp.o + .debug_line 0x00000485 0x403 ./src/dma_corrige.o + .debug_line 0x00000888 0x495 ./src/dmatest_corrige.o + .debug_line 0x00000d1d 0x3f1 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_macinfo 0x00000000 0x22317 + .debug_macinfo + 0x00000000 0x3d45 ./src/cr_startup_lpc176x.o + .debug_macinfo + 0x00003d45 0x238b ./src/crp.o + .debug_macinfo + 0x000060d0 0x9e68 ./src/dma_corrige.o + .debug_macinfo + 0x0000ff38 0x9eae ./src/dmatest_corrige.o + .debug_macinfo + 0x00019de6 0x8531 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_str 0x00000000 0x783 + .debug_str 0x00000000 0x25b ./src/cr_startup_lpc176x.o + 0x283 (size before relaxing) + .debug_str 0x0000025b 0x16 ./src/crp.o + 0xb0 (size before relaxing) + .debug_str 0x00000271 0x2db ./src/dma_corrige.o + 0x3ee (size before relaxing) + .debug_str 0x0000054c 0x88 ./src/dmatest_corrige.o + 0x1bc (size before relaxing) + .debug_str 0x000005d4 0x1af C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x2c1 (size before relaxing) + +.comment 0x00000000 0x70 + .comment 0x00000000 0x70 ./src/cr_startup_lpc176x.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000000 0x71 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000033 0x33 ./src/crp.o + .ARM.attributes + 0x00000066 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x00000099 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000cc 0x33 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .ARM.attributes + 0x00000186 0x21 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x218 + .debug_frame 0x00000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x000000f4 0x68 ./src/dma_corrige.o + .debug_frame 0x0000015c 0x80 ./src/dmatest_corrige.o + .debug_frame 0x000001dc 0x3c C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld b/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld new file mode 100644 index 0000000..46f8ad1 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld @@ -0,0 +1,154 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (vLPCXpresso v5.2 (6 [Build 2137] [2013-07-08] )) + * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Fri Jan 09 22:38:35 CET 2015 + */ + + +INCLUDE "labo_DMA_Debug_lib.ld" +INCLUDE "labo_DMA_Debug_mem.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 Protect 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 Protect */ + + } >MFlash512 + + .text : ALIGN(4) + { + *(.text*) + *(.rodata .rodata.*) + . = 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) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + . = ALIGN(4) ; + } > 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) + *(.data*) + . = ALIGN(4) ; + _edata = . ; + } > RamLoc32 AT>MFlash512 + + /* BSS section for RamAHB32 */ + .bss_RAM2 : ALIGN(4) + { + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + . = ALIGN(4) ; + } > 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 = .); + PROVIDE(_vStackTop = __top_RamLoc32 - 0); +} diff --git a/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld b/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld new file mode 100644 index 0000000..2e8b5b9 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld @@ -0,0 +1,13 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * 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 Fri Jan 09 22:38:35 CET 2015 + */ + + + GROUP( + libcr_c.a + libcr_eabihelpers.a + ) diff --git a/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld b/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld new file mode 100644 index 0000000..de3f6c5 --- /dev/null +++ b/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld @@ -0,0 +1,21 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * Linker script memory definitions + * Created from LinkMemoryTemplate + * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Fri Jan 09 22:38:35 CET 2015) +*/ + +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/labo4.1_DMA_new/Debug/makefile b/labo4.1_DMA_new/Debug/makefile new file mode 100644 index 0000000..ec1ba87 --- /dev/null +++ b/labo4.1_DMA_new/Debug/makefile @@ -0,0 +1,60 @@ +################################################################################ +# 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 := labo4.1_DMA_new +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: labo4.1_DMA_new.axf + +# Tool invocations +labo4.1_DMA_new.axf: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) + @echo 'Building target: $@' + @echo 'Invoking: MCU Linker' + arm-none-eabi-gcc -nostdlib -L"/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/Debug" -Xlinker -Map="labo4.1_DMA_new.map" -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T labo4_1_DMA_new_Debug.ld -o "labo4.1_DMA_new.axf" $(OBJS) $(USER_OBJS) $(LIBS) -lCMSISv2p00_LPC17xx + @echo 'Finished building target: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) labo4.1_DMA_new.axf + -@echo ' ' + +post-build: + -@echo 'Performing post-build steps' + -arm-none-eabi-size "labo4.1_DMA_new.axf"; # arm-none-eabi-objcopy -O binary "labo4.1_DMA_new.axf" "labo4.1_DMA_new.bin" ; checksum -p LPC1769 -d "labo4.1_DMA_new.bin"; + -@echo ' ' + +.PHONY: all clean dependents main-build post-build + +-include ../makefile.targets diff --git a/labo4.1_DMA_new/Debug/objects.mk b/labo4.1_DMA_new/Debug/objects.mk new file mode 100644 index 0000000..dc31e16 --- /dev/null +++ b/labo4.1_DMA_new/Debug/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/labo4.1_DMA_new/Debug/sources.mk b/labo4.1_DMA_new/Debug/sources.mk new file mode 100644 index 0000000..6b18dbc --- /dev/null +++ b/labo4.1_DMA_new/Debug/sources.mk @@ -0,0 +1,18 @@ +################################################################################ +# 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 := \ +src \ + diff --git a/labo4.1_DMA_new/Debug/src/config_LPC1769.su b/labo4.1_DMA_new/Debug/src/config_LPC1769.su new file mode 100644 index 0000000..ef495e2 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/config_LPC1769.su @@ -0,0 +1 @@ +config_LPC1769.c:4:6:init 4 static diff --git a/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d b/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d new file mode 100644 index 0000000..e517810 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d @@ -0,0 +1 @@ +src/cr_startup_lpc176x.o: ../src/cr_startup_lpc176x.c diff --git a/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o b/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o new file mode 100644 index 0000000000000000000000000000000000000000..2fcc5e81a92b80eca6af761a423c6308a573fd2f GIT binary patch literal 26828 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 DuuM^p literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su b/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su new file mode 100644 index 0000000..1946209 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su @@ -0,0 +1,13 @@ +../src/cr_startup_lpc176x.c:346:6:NMI_Handler 0 static +../src/cr_startup_lpc176x.c:353:6:HardFault_Handler 0 static +../src/cr_startup_lpc176x.c:360:6:MemManage_Handler 0 static +../src/cr_startup_lpc176x.c:367:6:BusFault_Handler 0 static +../src/cr_startup_lpc176x.c:374:6:UsageFault_Handler 0 static +../src/cr_startup_lpc176x.c:381:6:SVC_Handler 0 static +../src/cr_startup_lpc176x.c:388:6:DebugMon_Handler 0 static +../src/cr_startup_lpc176x.c:395:6:PendSV_Handler 0 static +../src/cr_startup_lpc176x.c:402:6:SysTick_Handler 0 static +../src/cr_startup_lpc176x.c:416:6:IntDefaultHandler 0 static +../src/cr_startup_lpc176x.c:216:6:data_init 8 static +../src/cr_startup_lpc176x.c:225:6:bss_init 0 static +../src/cr_startup_lpc176x.c:271:1:ResetISR 16 static diff --git a/labo4.1_DMA_new/Debug/src/crp.d b/labo4.1_DMA_new/Debug/src/crp.d new file mode 100644 index 0000000..e2ac2b2 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/crp.d @@ -0,0 +1 @@ +src/crp.o src/crp.d: ../src/crp.c diff --git a/labo4.1_DMA_new/Debug/src/crp.o b/labo4.1_DMA_new/Debug/src/crp.o new file mode 100644 index 0000000000000000000000000000000000000000..2d87517f774c7ff05cef5993ea01e7bb1189dbb1 GIT binary patch literal 20676 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 literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/src/crp.su b/labo4.1_DMA_new/Debug/src/crp.su new file mode 100644 index 0000000..e69de29 diff --git a/labo4.1_DMA_new/Debug/src/dma.d b/labo4.1_DMA_new/Debug/src/dma.d new file mode 100644 index 0000000..6e353db --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/dma.d @@ -0,0 +1,13 @@ +src/dma.o src/dma.d: ../src/dma.c \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/LPC17xx.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cm3.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmInstr.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmFunc.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h \ + ../src/dma.h +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/LPC17xx.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cm3.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmInstr.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmFunc.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h: +../src/dma.h: diff --git a/labo4.1_DMA_new/Debug/src/dma.o b/labo4.1_DMA_new/Debug/src/dma.o new file mode 100644 index 0000000000000000000000000000000000000000..c0af232df8ca3f575c7a6023951b85f29ab17706 GIT binary patch literal 61376 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 Prwk0Beho+tgkkCcc}a8i literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/src/dma.su b/labo4.1_DMA_new/Debug/src/dma.su new file mode 100644 index 0000000..007d558 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/dma.su @@ -0,0 +1,3 @@ +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cm3.h:928:22:NVIC_EnableIRQ 16 static +../src/dma.c:16:6:DMA_IRQHandler 4 static +../src/dma.c:35:6:DMA_Init 24 static diff --git a/labo4.1_DMA_new/Debug/src/dmatest.d b/labo4.1_DMA_new/Debug/src/dmatest.d new file mode 100644 index 0000000..b5a6d95 --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/dmatest.d @@ -0,0 +1,12 @@ +src/dmatest.o src/dmatest.d: ../src/dmatest.c ../src/dma.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/LPC17xx.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cm3.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmInstr.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmFunc.h \ + /home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h +../src/dma.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/LPC17xx.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cm3.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmInstr.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/core_cmFunc.h: +/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h: diff --git a/labo4.1_DMA_new/Debug/src/dmatest.o b/labo4.1_DMA_new/Debug/src/dmatest.o new file mode 100644 index 0000000000000000000000000000000000000000..d58011a3a25a319b303f75f280727f801442aa0b GIT binary patch literal 59640 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.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 literal 0 HcmV?d00001 diff --git a/labo4.1_DMA_new/Debug/src/dmatest.su b/labo4.1_DMA_new/Debug/src/dmatest.su new file mode 100644 index 0000000..e7a27aa --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/dmatest.su @@ -0,0 +1,4 @@ +../src/dmatest.c:17:6:single_copy 8 static +../src/dmatest.c:30:6:LLI_copy 8 static +../src/dmatest.c:52:5:check_res 16 static +../src/dmatest.c:67:5:main 8 static diff --git a/labo4.1_DMA_new/Debug/src/subdir.mk b/labo4.1_DMA_new/Debug/src/subdir.mk new file mode 100644 index 0000000..2ccfefc --- /dev/null +++ b/labo4.1_DMA_new/Debug/src/subdir.mk @@ -0,0 +1,47 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../src/cr_startup_lpc176x.c \ +../src/crp.c \ +../src/dma.c \ +../src/dmatest.c + +C_DEPS += \ +./src/cr_startup_lpc176x.d \ +./src/crp.d \ +./src/dma.d \ +./src/dmatest.d + +OBJS += \ +./src/cr_startup_lpc176x.o \ +./src/crp.o \ +./src/dma.o \ +./src/dmatest.o + + +# Each subdirectory must supply rules for building sources it contributes +src/cr_startup_lpc176x.o: ../src/cr_startup_lpc176x.c src/subdir.mk + @echo 'Building file: $<' + @echo 'Invoking: MCU C Compiler' + arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -I"/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc" -Os -g3 -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 "$@" "$<" + @echo 'Finished building: $<' + @echo ' ' + +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"/home/iliya/isc/pro/labo/CMSISv2p00_LPC17xx/inc" -O0 -g3 -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_lpc176x.d ./src/cr_startup_lpc176x.o ./src/crp.d ./src/crp.o ./src/dma.d ./src/dma.o ./src/dmatest.d ./src/dmatest.o + +.PHONY: clean-src + diff --git a/labo4.1_DMA_new/labo4.1_DMA_new LinkServer Debug.launch b/labo4.1_DMA_new/labo4.1_DMA_new LinkServer Debug.launch new file mode 100644 index 0000000..f3af3f4 --- /dev/null +++ b/labo4.1_DMA_new/labo4.1_DMA_new LinkServer Debug.launch @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> + <stringAttribute key=".gdbinit" value=""/> + <booleanAttribute key="attach" value="false"/> + <booleanAttribute key="boot.config.enable" value="false"/> + <stringAttribute key="boot.configuration.control" value=""/> + <stringAttribute key="bootrom.stall" value=""/> + <stringAttribute key="com.crt.ctrlcenter.OFSemuDetails" value="LinkServer"/> + <booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> + <stringAttribute key="com.crt.ctrlcenter.currentWireType" value="SWD"/> + <booleanAttribute key="com.crt.ctrlcenter.mainBreakIsHardware" value="true"/> + <stringAttribute key="com.crt.ctrlcenter.serialNumber" value="LinkServerNXP SemiconductorsLPC11U3x CMSIS-DAP v1.0.40102C036"/> + <mapAttribute key="com.crt.ctrlcenter.symbolsGroupSettings"/> + <intAttribute key="com.crt.ctrlcenter.version" value="6"/> + <stringAttribute key="com.nxp.mcuxpresso.flash.base.address" value="0x0"/> + <booleanAttribute key="com.nxp.mcuxpresso.flash.clear.console" value="true"/> + <booleanAttribute key="com.nxp.mcuxpresso.flash.confirm" value="false"/> + <stringAttribute key="com.nxp.mcuxpresso.flash.erase.algorithm" value="Mass erase"/> + <stringAttribute key="com.nxp.mcuxpresso.flash.executable" value="axf"/> + <stringAttribute key="com.nxp.mcuxpresso.flash.program.action" value="Program"/> + <booleanAttribute key="com.nxp.mcuxpresso.flash.reset.target" value="true"/> + <stringAttribute key="com.nxp.mcuxpresso.ide.probe.manufacturer" value="NXP Semiconductors"/> + <stringAttribute key="com.nxp.mcuxpresso.ide.probe.name" value="LPC11U3x CMSIS-DAP v1.0.4"/> + <stringAttribute key="com.nxp.mcuxpresso.ide.probe.type" value="LinkServer"/> + <stringAttribute key="debug.level" value="2"/> + <stringAttribute key="emu.speed" value=""/> + <stringAttribute key="flash.driver.reset" value=""/> + <stringAttribute key="gdbserver.host" value="localhost"/> + <stringAttribute key="gdbserver.port" value="10989"/> + <booleanAttribute key="gdbserver.start" value="true"/> + <stringAttribute key="internal.connect.script" value=""/> + <booleanAttribute key="internal.has_swo" value="true"/> + <stringAttribute key="internal.prelaunch.command" value=""/> + <stringAttribute key="internal.reset.script" value=""/> + <stringAttribute key="internal.resethandling" value="VECTRESET"/> + <stringAttribute key="internal.semihost" value="On"/> + <stringAttribute key="internal.wirespeed" value=""/> + <stringAttribute key="internal.wiretype" value="SWD*,JTAG"/> + <stringAttribute key="isp.control" value="xxxx"/> + <stringAttribute key="launch.config.handler" value="com.crt.ctrlcenter.launch.CRTLaunchConfigHandler"/> + <booleanAttribute key="mem.access" value="false"/> + <stringAttribute key="misc.options" value=""/> + <stringAttribute key="ondisconnect" value="cont"/> + <intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="0"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set non-stop on set pagination off set mi-async set remotetimeout 60000 ##target_extended_remote## set mem inaccessible-by-default ${mem.access} mon ondisconnect ${ondisconnect} set arm force-mode thumb ${load} 	"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/> + <intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="10989"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=" ${run} 	"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/> + <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/> + <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/> + <stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/> + <booleanAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_ON_FORK" value="false"/> + <booleanAttribute key="org.eclipse.cdt.dsf.gdb.EXTERNAL_CONSOLE" value="false"/> + <stringAttribute key="org.eclipse.cdt.dsf.gdb.GDB_INIT" value=""/> + <booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="true"/> + <booleanAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE" value="false"/> + <stringAttribute key="org.eclipse.cdt.dsf.gdb.REVERSE_MODE" value="UseSoftTrace"/> + <stringAttribute key="org.eclipse.cdt.dsf.gdb.TRACEPOINT_MODE" value="TP_NORMAL_ONLY"/> + <booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/> + <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> + <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/> + <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/> + <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/labo4.1_DMA_new.axf"/> + <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="labo4.1_DMA_new"/> + <booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/> + <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.debug.759137190"/> + <booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> + <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> + <listEntry value="/labo4.1_DMA_new"/> + </listAttribute> + <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> + <listEntry value="4"/> + </listAttribute> + <mapAttribute key="org.eclipse.debug.core.preferred_launchers"> + <mapEntry key="[debug]" value="com.nxp.mcuxpresso.core.debug.support.linkserver.launch.LinkServerGdbLaunch"/> + </mapAttribute> + <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="com.nxp.mcuxpresso.core.debug.override.MCXProcessFactory"/> + <booleanAttribute key="redlink.disable.preconnect.script" value="false"/> + <booleanAttribute key="redlink.enable.flashhashing" value="true"/> + <booleanAttribute key="redlink.enable.rangestepping" value="true"/> + <stringAttribute key="run" value="cont"/> + <booleanAttribute key="vector.catch" value="false"/> +</launchConfiguration> diff --git a/labo4.1_DMA_new/labo6_DMA Debug.launch b/labo4.1_DMA_new/labo6_DMA Debug.launch new file mode 100644 index 0000000..159c237 --- /dev/null +++ b/labo4.1_DMA_new/labo6_DMA Debug.launch @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> +<stringAttribute key="LAUNCH_ID.OFSemuDetails" value="LPC-Link (HID)"/> +<booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> +<stringAttribute key="com.crt.ctrlcenter.currentWireType" value="SWD"/> +<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$).*$" 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)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP)" 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)" 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)" 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\labo6_DMA.axf"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="labo6_DMA"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.debug.759137190"/> +<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/labo4.1_DMA_new/labo6_DMA Release.launch b/labo4.1_DMA_new/labo6_DMA Release.launch new file mode 100644 index 0000000..3c50751 --- /dev/null +++ b/labo4.1_DMA_new/labo6_DMA Release.launch @@ -0,0 +1,18 @@ +<?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$).*$" 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)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP)" 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)" 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)" 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\labo6_DMA.axf"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="labo6_DMA"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.release.1841072117"/> +<booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> +</launchConfiguration> diff --git a/labo4.1_DMA_new/src/cr_startup_lpc176x.c b/labo4.1_DMA_new/src/cr_startup_lpc176x.c new file mode 100644 index 0000000..d847441 --- /dev/null +++ b/labo4.1_DMA_new/src/cr_startup_lpc176x.c @@ -0,0 +1,421 @@ +//***************************************************************************** +// +--+ +// | ++----+ +// +-++ | +// | | +// +-+--+ | +// | +--+--+ +// +----+ Copyright (c) 2009-12 Code Red Technologies Ltd. +// +// Microcontroller Startup code for use with Red Suite +// +// Version : 120126 +// +// 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 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); +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); + +//***************************************************************************** +// +// 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 + ENET_IRQHandler, // 44, 0xb0 - 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; +} + +#ifndef USE_OLD_STYLE_DATA_BSS_INIT +//***************************************************************************** +// 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; +#else +//***************************************************************************** +// The following symbols are constructs generated by the linker, indicating +// the load address, execution address and length of the RW data section and +// the execution and length of the BSS (zero initialized) section. +// Note that these symbols are not normally used by the managed linker script +// mechanism in Red Suite/LPCXpresso 3.6 (Windows) and LPCXpresso 3.8 (Linux). +// They are provide here simply so this startup code can be used with earlier +// versions of Red Suite which do not support the more advanced managed linker +// script mechanism introduced in the above version. To enable their use, +// define "USE_OLD_STYLE_DATA_BSS_INIT". +//***************************************************************************** +extern unsigned int _etext; +extern unsigned int _data; +extern unsigned int _edata; +extern unsigned int _bss; +extern unsigned int _ebss; +#endif + + +//***************************************************************************** +// 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) { + +#ifndef USE_OLD_STYLE_DATA_BSS_INIT + // + // 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); + } +#else + // Use Old Style Data and BSS section initialization. + // This will only initialize a single RAM bank. + unsigned int * LoadAddr, *ExeAddr, *EndAddr, SectionLen; + + // Copy the data segment from flash to SRAM. + LoadAddr = &_etext; + ExeAddr = &_data; + EndAddr = &_edata; + SectionLen = (void*)EndAddr - (void*)ExeAddr; + data_init((unsigned int)LoadAddr, (unsigned int)ExeAddr, SectionLen); + // Zero fill the bss segment + ExeAddr = &_bss; + EndAddr = &_ebss; + SectionLen = (void*)EndAddr - (void*)ExeAddr; + bss_init ((unsigned int)ExeAddr, SectionLen); +#endif + +#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) { + ; + } +} + +//***************************************************************************** +// 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/labo4.1_DMA_new/src/crp.c b/labo4.1_DMA_new/src/crp.c new file mode 100644 index 0000000..fa9a0d5 --- /dev/null +++ b/labo4.1_DMA_new/src/crp.c @@ -0,0 +1,38 @@ +//***************************************************************************** +// 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/labo4.1_DMA_new/src/dma.c b/labo4.1_DMA_new/src/dma.c new file mode 100644 index 0000000..dc1312a --- /dev/null +++ b/labo4.1_DMA_new/src/dma.c @@ -0,0 +1,50 @@ +/**************************************************************************** + DMA driver +****************************************************************************/ + +#include "LPC17xx.h" +#include "dma.h" + +/* to be incremented when terminal count reached */ +volatile uint32_t DMATCCount = 0; +/* to be incremented if an error occurred during transfer */ +volatile uint32_t DMAErrCount = 0; + +/****************************************************************************** +* Descriptions: DMA interrupt handler +******************************************************************************/ +void DMA_IRQHandler (void) +{ + /*...*/ +} + + +/****************************************************************************** +* Function name: DMA_Init +* +* Description: initialise DMA 0 channel for 32 bits access with increment on +* source and destination addresses +* +* parameters: +* src: source address +* dest: destination address +* len: number of words to transfer +* LLI: pointer on LLI structure if used or 0 +* +******************************************************************************/ +void DMA_Init(uint32_t *src, uint32_t *dest, uint32_t len, uint32_t LLI) +{ + LPC_SC->PCONP |= (1 << 29); /* Enable GPDMA clock */ + LPC_GPDMACH0->DMACCConfig |= (1 << 0); // Enabling channel 0 (bit 1 is associated with endianness [by default val = 0] => little-endian) + LPC_GPDMA->DMACIntTCClear |= (1 << 0); // Clears the channels terminal count interrupt + LPC_GPDMA->DMACIntErrClr |= (1 << 0); // Clears the channels error interrupt + LPC_GPDMACH0->DMACCSrcAddr = (uint32_t)src; + LPC_GPDMACH0->DMACCDestAddr = (uint32_t)dest; + LPC_GPDMACH0->DMACCLLI = LLI; + LPC_GPDMACH0->DMACCControl |= (len & 0xFFF); // Setting transfer size + LPC_GPDMACH0->DMACCControl |= (1 << 12); // Burst size of 4 for src + LPC_GPDMACH0->DMACCControl |= (1 << 15); // Burst size of 4 for dst + LPC_GPDMACH0->DMACCControl |= (1 << 31); // Enabling interrupt on terminal count + NVIC_EnableIRQ(DMA_IRQn); + /*...*/ +} diff --git a/labo4.1_DMA_new/src/dma.h b/labo4.1_DMA_new/src/dma.h new file mode 100644 index 0000000..3381a2c --- /dev/null +++ b/labo4.1_DMA_new/src/dma.h @@ -0,0 +1,36 @@ +/**************************************************************************** + DMA constants definition +****************************************************************************/ +#ifndef __DMA_H +#define __DMA_H + +#define DMA_SRC 0x2007C000 +#define DMA_DST 0x20080000 +#define DMA_SIZE 0x1000 + +#define M2M 0x00 +#define M2P 0x01 +#define P2M 0x02 +#define P2P 0x03 + +#define BURST4 0x04 +#define WORD32_TRANSFER 0x2 +#define INCREMENT 1 +#define TERMINAL_INTERRUPT 0x80000000 + +#define DMA_CFG ((BURST4 << 12) | (BURST4 << 15) \ + | (WORD32_TRANSFER << 18) | (WORD32_TRANSFER << 21) | (INCREMENT << 26) | (INCREMENT << 27) | \ + TERMINAL_INTERRUPT) + +void DMA_Init(uint32_t *src, uint32_t *dest, uint32_t len, uint32_t LLI); + +typedef struct +{ + volatile uint32_t DMACCSrcAddr; + volatile uint32_t DMACCDestAddr; + volatile uint32_t DMACCLLI; + volatile uint32_t DMACCControl; +} GPDMALLI_t; + +#endif + diff --git a/labo4.1_DMA_new/src/dmatest.c b/labo4.1_DMA_new/src/dmatest.c new file mode 100644 index 0000000..c8339c6 --- /dev/null +++ b/labo4.1_DMA_new/src/dmatest.c @@ -0,0 +1,80 @@ +/**************************************************************************** + Single DMA transfer and DMA with LLI transfer +****************************************************************************/ +#include <string.h> +#include <stdint.h> +#include "dma.h" +#include "LPC17xx.h" + +extern volatile uint32_t DMATCCount; + +GPDMALLI_t LLI[2]; +uint32_t src3[DMA_SIZE/16], i; +uint32_t src1[DMA_SIZE/4], dest[DMA_SIZE/4]; +uint32_t src2[DMA_SIZE/16]; + +// copy 1 source buffers in 1 destination buffer with DMA +void single_copy() +{ + for (i = 0; i < DMA_SIZE/4; i++) + { + src1[i] = i; + dest[i] = 0; // clear destination vector + } + DMA_Init(src1, dest, DMA_SIZE/4, 0); + + while (!DMATCCount); /* Wait until DMA is done */ +} + +// copy 3 source buffers in 1 destination buffer with DMA linked lists +void LLI_copy() +{ + DMATCCount = 0; + for (i = 0; i < DMA_SIZE/8; i++) + { + src1[i] = i; + dest[i] = dest[i+DMA_SIZE/8] = 0; // clear destination vector + } + for (i = 0; i < DMA_SIZE/16; i++) + { + src2[i] = i + DMA_SIZE/8; + src3[i] = i + DMA_SIZE/8 + DMA_SIZE/16; + } + + /*...*/ + + DMA_Init(src1, dest, DMA_SIZE/8, (uint32_t)&LLI[0]); + + while (DMATCCount < 3); /* Wait until DMA is done (3 interrupts here) */ +} + +/* Verify copy result */ +int check_res() +{ + int i; + + for (i = 0; i < DMA_SIZE/4; i++) + { + if (dest[i]!=i) + { + return 1; // error + } + } + return 0; +} + + +int main (void) +{ + memset(LLI, 0, sizeof(GPDMALLI_t)*2); + + single_copy(); + if (check_res()) + while(1); // error + LLI_copy(); + if (check_res()) + while(1); // error + + while (1); /* Done here, never exit from main for easier debugging. */ +} + diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.cproject b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.cproject new file mode 100644 index 0000000..788ef8d --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.cproject @@ -0,0 +1,510 @@ +<?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.272231997" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> + <option id="gnu.cpp.compiler.option.preprocessor.def.553298622" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.cpp.fpu.1349475907" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="true"/> + </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="false" 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.1435475958" superClass="com.crt.advproject.gcc.hdrlib" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.fpu.366329797" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="true"/> + <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.1711820262" superClass="com.crt.advproject.gas.hdrlib"/> + <option id="com.crt.advproject.gas.fpu.1790612321" superClass="com.crt.advproject.gas.fpu"/> + <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.135189044" 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.1840607818" 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_2="LPC175x_6x_32.cfx" property_3="NXP" property_4="LPC1751" property_count="5" version="100300"/> +<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"/> +</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="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="com.crt.advproject"/> + <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> +</cproject> \ No newline at end of file diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.project b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.project new file mode 100644 index 0000000..5cd9643 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.project @@ -0,0 +1,81 @@ +<?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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.settings/language.settings.xml b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.settings/language.settings.xml new file mode 100644 index 0000000..d3aa711 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/.settings/language.settings.xml @@ -0,0 +1,25 @@ +<?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="1932461160191779786" 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="1997921476337375981" 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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/libCMSISv2p00_LPC17xx.a new file mode 100644 index 0000000000000000000000000000000000000000..3ba9b6b1c03469978fa898664ce37396123e9657 GIT binary patch literal 90076 zcmY$iNi0gvu;bEKKm~?omX=1A7AEE<3JL~bDP&SX!ORRSsGy*bz{SA8z|6o<VFAOz zmBl5gxz71Tsm?k1$=RU=DTyVi3=mPzyv!0P6Rv=PK_A_EnBh2RLkpNh0#`BEws@Za zXG8Of3cY-NuH^ip)cE9FW4(NcvAFzVXkcIl@`tg3seuXDzyz*(S06V<Mn(o0U}Vr> zK=2qCDvH1|tR`SegF%i#7A()tz`!8DzyM|oGB7X*LD|9#3=ASrwkQJwgBSw?Lka@} z0}EI`3uA!^0|U<n0S1O#Hn0eoU}EGrY{9_5%)*+PSHi%=!a7%vfq{vIJ&T2bfr*19 z-hqLEiIL5Shk=2KiS>dmh+^Mq2a;o5s0gCi9l&l8WK`u7=4R%T<`WQ~=_Jm;z@);! z&27ic%*VjM3}tda9moW>8R9H36YNN^C_9MH%)rPj!Nkgw!^FVA%*PBCV__A1WW>P0 zEW*Mp!wL~$fl#a}&utkPSXIx+g1pMYz`)ADqY5I=nS#iB>L79kCy1P41|qw4KqMzv z<sLN<d!qx0e8dGJud{>5bt)k80UL;Hu>g^AU^DkygV^O@H6BVJ_9k5rsREW=YY1YS zae&B=b|7*F*nD$V5c?C@#`TIIHj6lj%mkBtU|Bb?tJuNrRL}&;{x<@V=dD2GXRu4Y z3xU|T!FFkbJk4+q>^3&A30_(tSvw~X`BNW6>Vn<rtOsHXNrA}AU>E+70I`>X&DR9G z^8(ma?(!h<&jKK_2`u~B62vyO2ay`uAkqQsl2ouudcfvfvH^*I<pz<v7(nEAX%MLa zcKLL$3(LUfWblH-vt&SIHaN6Dfz3P#Hd6>3R<9*NvXjB?3<Uc^*Z?Hr4UWe?eh`}n zY*z?a{Rgm0NfVH`8aM>bGJ)7>U~{a%u`|UOB$5pd)$PI{b|*OWB*0;H1{_~^<v`-9 zVD}#at6U0p+aYjhXoKzg367&wu!ss+eIA%Rr~%dsPBT?t)5Li|B7bE;WB}NwFO@;; zd0_Erjv%%-IMv+(hl~YSr32V6T9EhxyHF79m-AqEJ_4todEhW%6$6=&F9;$d!G13U zr-62GOs(PriAyko$Re<-rhwCoJy?9UGf3PEoc6ARV~Q7S?_+Q{Zvp3#58(8`4R)su zILudq{rDIhcWK}l?*hAg7T66sU~}ex&EEoc0}EJ9EI9V{A!!dBdW~Qo<%450O#$SR zXmCpV3y!-su-kgT@%syGf(|%soCT-Mtzf<SU^ke7eUuGOy_><h+L=M7tpkUWIyja+ z!D09rOsa$Z(hfFL8k~AJf%9)VIFH-~`|dc{CG)`UzX^^V3osc04jCn|dUdc}N?`TA z;1Gxr0ol6~97hwu;t#-abQ>K0jbPW#28WLxICo2eMFPO?*#^!*ZD2P{2ZzrTaIV<} z4uO^6blV2bHGSZexe^=~+rVk;A~;=zf=eWEusOHEYBq!2;|;bk3G9+YaH<Ofhsi8+ zkZb3H&D;rgNewtO(!e472^=FUz@#iVtfIlG5mec*GJFJwMiSVT$>7qJ4IBb@z-lbO z>KB7e;{&H>7H~)gfaAyl9KVfVl0_8c22OB3$^e_A3r>N@!KR%7$D=+teNF(U-deC9 znZaRO5B7y2IQ>+D)9NyCPOkyGY6e*REjW~Jf%85y*k8%ukXHbQMj1HdJ;3gC0OxB} za2gf`hnOQc%&&mmb_eW>60m#1!12onPT}vt<-<3ydp3Y$feCEd3UD5r0ap1GEOG`M z7vI5V#)H#OJUFI`!Kug-9R3TyzJ37?lLD~ITfz34f%TSyUFZw8aThpV=7GzcBVgAW zgKZH3oBtUcGO}PbGT_it1*ak}a2R@n!#NrpK0CnXmx5&vgKcaBr`2uXkXZ*#jeEc* zxPo(T6POeR$3h+0zxTl@$`fot5ZEsnV7>m}92yFa%~RmGW(S9PEjVo_flJg9a0)*R z&QsUHVX_z;Q!QW@UIvR#2gm6?u*gTS+a7`a6$>`M30yi^fMcx<>~~492nRT9KY`Qs zUvNx)1(%b~;I#1woDQFYZ7c-4L<Ag?O5l)}2CIAu_K^&@%y|s<??P~1dj|H)HgH<v z0Ef?6uq`LRwv>V6f(2}HCD`Rp!0r?Tr_br&(C!DDHVYg_U0}bcfXhY$u<tCuW%wL$ znEwFR6dd4u$_<WpU9f5QL>L&@7@EOhwHKV%YBfP3Gr=WZk0^-k#ttHF96=;EFNll- zr(Rzk5PO#`hztdbzXqq$esDNkmjsDV<^qvB!0zDzrwRjRkjPfBd*Z-(xk?En;sEw< zH#kq70hg|#U^Q33ajgnY8_&f+DmlPDHB|)V_dnp!Qvv(S#F&ABje*GsM7o1*sd50Z zMRY)9Iv<DxH3iuizJguVBL@;uU;>efVD}#Yr{pu>I5h@`^FDAKDG7ko+yST95^&5e z1D8&|EFkeMVDT?1AofSFnQUO&Puqh;D)d0)S#1!x23)_q0q4HeVBcwg!{h@vHe0|c z=Q}tqKq8<<Hmk%!km=GD%HZ}a1FP_LkYA;?fnq>I3=}p7=Rhgc&>fU=O)i5{g!wU$ z8moh#JZc*RN~aD#L8XFoDJWgLiGlKp=MPYd^YH|Qw|@@EmqDjNsWmhJRNh2*f^tmK zGmzb>B_P+OJqD$t+!G*ISBqLOFtF9U2AS5txI}`1fvu6z6O^V~7}G$-c`M^Xklm9Q zzk-UJ?Tnv6?m5jk10;8iaXu(^uQSGj1aB}FfNZ+Qm;lPm4;hm|W<Fzl1aibLMgfqS zzZu;@mi}S%0F{k@8P9<{`j62^k%57=f$2Xe$u%)O1*N1eCL2&?dw^*bCp5I=b3l3& zCW3sgd<GQ0D*2!gQaujJS89tvIa6I5<Zq2OkpJ|)fnrGi2dIoNZ~=v@NeU>mOy7d? zq}du!%$Y9(r2vagP!6%&4k~A@Qa~nHzXIhS8*h*kY`=iaw=)N&PNyj#(m4^N%Ox9> zs$8dnQkdIbkS=!>kgSI~$Tyy@AX%?@AalH3K&jj(6_j&)KY-Gu-(-*)|3px11ayJC z9e4v2T0yTsF&XR)a(RdrD9?xP0l7Ks3Mdf6^FeVKa|%?F#&&|DBf%bIZz2;Y9Fm$q zE=l$RsZTKj`6bmHR2FCb0O`uM2C2zO0hPRY450ENzYt_g!Do<op)n|Yiq?Q!Tl@~> z>ym1aNa;F|Y*{8K?#kss>9m3c6oJ(nLE&Fh4DwN}Cdh4d>Y%h<zX6o`8W?|ovUnro zL{RC}#JCpZ<z_}PQ0TNUDuW!}%D4;^K5dNBpyIHdaVn^u>R_A*3hGYA7*HH{G3tTj zx*0!#Qhg6&IVhNV8AU*;ppUTxlt}s+Z-DHZz_=9TkSUByLFsQQ;{%Y<vlx$q95I{m z5GY9JFdBf|J(qDO$jo_+C7^Jd&o~*ReF38mNZ&%nOQ0mNh|v;MaxZ4Q1xngW7$rdo zeJNuI$cAN%he5tv&R7mgFe?~?L8h!^yb6lmRg6ub@LbJ!3Pi18Y*AuhU|q}D1d5Jz zjL$)-a6Mxb$SoTfuYuCfM#eOdeVZ6Bg39^Lj47Z(a|`1NP%Lg`JOYZkZH#K56tbOB z1e67LFzSF@wv#acR4DIaQ~(9*ZpQtfsMy1J1Z3u3Mk|m-`xv!BuHMhM50uOfFtUS! z?jWN$$YqBZ&w+yHFry5}EhiX#K&946Mng~zKF6p6%DU$nt3kXAjJrW4<3+{}P-Ev3 zqa!HjE;E{g?7PDF6%^}N8CQXF@HNKAptNzF@dzk+-C)!P<*=KKCqW7C7Gpms9&R%p z02Od|7{x(m-eqh6`QaX;0VwG1GhP5i_ya~mkVOv}1wm#$Vq^iSe9RaQQu2hc0hD^4 zGTMPmdB!*ilp>!q3hOd3u)bjA1%<>*Mmvy2uNZwmg0C67K`P%cJ^`tG%P0)0Sl=-= zfE@Uq@f9cwePH|ylKaS52#SDDj7LCz|ID}uWYHJK<)Bpem602i8NM-kfD-L@Mh#GQ zXk=OfiuWd_Qc!{0%)|#uM6FC`K`Eq-DIDa7b|yBEVI54<K`E<~X$dGXbTRz|S=-HI z4@x~fOxr*)*30Aw%8Y$XQ$eooXQ~FJx*1IKK{;m@QvyhEHq#xDljbl<f!s2WNeZNW zK9dnh`vRuzAWtu3dI_>`5z}l?DqqZW6_lNpFl_-PsijOkpy*h}#0v7}a;Bvq`&KaR z1x3J0rgNa6Tg4Oyiqths0w8a$WpW0oT*o8_%3~XtI6;YMBU3-f(_5HcffDpqrrV(K z+|CpMN=rMKu7RxG#dHCbOm{PV5ocgvh+_l|#YHfJ#)p3M@iH(%hO!tL7#Q{R^oxs< z8IrAH@+t~qa+6Cd3W`#Ti}N#6QsWH`_007Q<1LMh3}Z4=Qez5oO4Bp*ier-VbM^8n z3iJ@F^-A*dbBguKGxLm%pxX3|42+Bo3=J&}EKMzA!16IgsVO;`Nimsu$vLGdsRLqZ zOmSr~0|R_0Fd5WYDlSRM%q!8$02Rd$C&rhh78Pga=jmmDhA?w7lallE(lXQ0xVni& zxey_S_;|-4-*`7y$B@t<*Lb%8L$mlWSLYD_pm@h1&kzq^*AP!<hWPkkPxpAo5Px4! z=XhVoi1>H~g9`IB2w;eh4{?llbMg#{k5@1=1}lzo^>>T+@%M9AFky&~ck>A`Hj0RM zadr0eb@YjM@pO-mS1>eZh>s6-3vzT0iT8wPHh`&(_izl3_w;k~^z#gf1gQlX>g-qQ z<`^7eW}={!lT)e$((UON5)Tryh!2SjaE*^wD9tO*OwUVAQ2>oIf-N>P0Xx_=A^>EL zff2|(!Onj9hGq&%8TlYnpsoXX3q=*oa6_~Ba8H*IkN9{6V<U$6cz0)KSWtwx28YBu z`nkjhyN1Mv1ckbWIr=CVGQ`IR1bL=_9A<2!pp*i#Bp}E$!a_kQBO?OJOYw1a3=RRi z0<0j^$I;n2)HmKWAlTE#-wzzZh5@?9Mxj355Z_lIbX0&0L5{azPhS_X<3JV%gakot z1$!;t*U>Ko8t7o}hXw~Chd4+J$gLo^K%C;~7h)0btdXp#kPJ;9ey$)Vf!yH<j@ocg z;DF*A7Mx%^!ND1bVtA+v3O6{!1*Fp>-qX+7C)CB&MFA4!;5dp`FxE3MFtRW*HZe0Z zwlFoaurN#2HnwmB+3W0=>FXE)iuz2D=Utq9;(a~+;vq4np=)ShWT?py4^DFs0v2ax zASWWlnX`vukfB+8NW71~vv<5(kgKZ#C{~d})7ix}-q}AO$RC{Yq3I43Jm6FZQW*>l z29RO#A>c#~5(Z}<H~%1C$B=kWS65eP=)rQAv%hbEk81?TnLZc^AM7J=*3!^O$uCXH zN!2veGq*H1votm|HnA`>GBz|dPt`Uyu<+4jC`v6ZDauSPQHYO+G2`PwIU*QhE+}Z? z6%6zYLOp^QLP0?eieX4zP%x-~WLyLp>f-}S*nXkTpg{Ex0wr|@PrndQo^aMEOUx-v z)l|^X$jQ%3R{#;3P%%)52Rr+vfMXw=c0i%v80;G#9O)P07!e=p=jrC@>H^Ao3}|^X zAjmTloT5Q_1RSRUL7o*LXIdyIVI*+ppvZs_e}?#YP%!!V2l+x%3=v@!9}fxuLo-B* zhQ=O<iiag)P)vf71*9A)&d4t+K`%`}E(WE746tiKx}k+!yo-ORlMkr;u>d7iNZJ6E zesBqB%qxKNA1pd7pngCpO8tXeT!Z4BJl*46{aid9K?Q+{u@R_D3H5;{8c?jnD;Pw$ zp@9HhGm}sspCFJMoc$`m#SJ(hoxw>xB;Li<&C?H*=U^@XB?wPH1r1$;3JU{N;Nt^| z+)$*F9h8qip^sFYn1V`sQ0T^kW75n7Rt|#_2{@&ohM}`nOlWaxQE^OJW?ph?UWr~o zW=>9iX+?}nesXDUYF<fkj7MrgW@3y_fO7<-I*&KiGtx7QH!?Ifk0~h1k8$=5_6#mF zDljmB&5*^oq$ZW7GsMS(d<6{~<jM(JZ3Vf4+~}$Ra&kaOkc+3A8_czk$^w)E;zRv{ zJ>C7FDK<Vn*x3)9BtdBu9F(4ZA?T?Dq8pU(Vfj2T$i)|w%RvbmuG0q;cF?NNlp#Le zKOn@@*E0%~YCy3IE2=?tD~@6iT)_K4>j`L;X>0__r^ZI0q=Z^0L%kjB8W`^!9HIcS z5>)SjQw6x7#!SEphDHqW&c&6*@tMUXC6)0SX&IUd@$qm04UNpa63w&>P|ASn4)*X5 z0%aj12LBKb*P!@t{~(umNE&wY4~lmSi1!Qib#e^~h9t^-Q2qwxA+QTT5eABs5agTy zsXZeg)jYVi403h%3=VM(iVp~Kb@K!T5Tw!orCvnU22YEiBmk+r6qJ<}AVpiSvtK5} zL`dFs_R9xb3=so6#wjwy73%VMg?K2-$1^0v#}%FxA@+ho+tV-J&;VZh7@H#niJOnV zV@P~FEX#w61Zc*E#+d;q$^t@yu*6xAZ@goWvxkB?D7ZpgoZ~}7+~SRmz~yIrT0wkX zeo<~>PG(iAMn-0OhE7g?xu!z30!X4XHz~D9p(Hi8z*+%PeSkTJ)?i96MZs19qy@^& z)XUAuSFlwufbb2WvI@FT)z%6*`Q-}QwqUNIHCU?xgr}EctxyZ8Q@}xJXa@BMs5%LS zW<w+ya7zZ%Rs?wooX0>B1ZhBmYAnnIjoKvj3-xskf;2mQJ^dg$Ae9_EIKlZe1(egk zb+h?xnr!D9$Y_t2~m<m%%X;p(CQYGxv5S4gex3#tM^sT$-Ru%kg90%4G+pt%lG zuWINTL>LAb8~S*|8KC$Ng?R<)K`aF{s5u92&%v5|5CcIKHCWiqCj_(Yi=0j1r8USx zNST3XF&gR_S{fNx8d+GHni`l}7#f+T>YBTOi;YkhM_8K=%m<kX%8S^FY)FBI+6XMk zD9ufRq(f*6J2@k<2ppw;DUe(Q4tr3z8XJL{^T8pGA+F%YFeE;ZDs3F?8aHrL4OGiQ z3<PIYkV9dq3D%@DG=mfpDbN;SiV`SCL9!)EWd;f)M67s%DpPP!gTp!?$P-csfXX9C zR{-RCSRwA>9}*Dc?*eVYff~RN-)4f+S*8*s2Y`YQWUpfcQmYD-UXV?4_6-KL1VQyA zDA(icsu&xA<KD#;98~d0VFwk0Bo-4rOA`Y#Q!^7&3ll>l6EjnjR9#~u6G-TR8oC~i zVXmMCm@~Kxatv~XbWy?`1L6(Ah6cma0yrem+ZE=R?FwT^vjWsr07nKSg1|8jiXc!h zfJ<Xg;f!d`fHDsVgIkx#Ap*{E!Oo68j%eLXP&Wx0so<g?lpi2<CMe2bRzZp!a2^E} zEFddD%~xmVcsyP=0(%{lx<IbAP*4IVFBf>v)fiL@gB%Ge1N_}U4PkI^)zvT57pyfj z*cH?%^$Y=ZOCcpPxG(7G>Kt!sYN-G&*3C@f2{o8QgR%DXEJ8g%9X(jn1X_k5H)J5$ z9n>`r4E1ykiT4Ay4nfX_mnPu;1GbhSsNew^5AAS6O$V1y0lJ1}q2NX%q*#T?nY#t( zntOmGK%wI5=;R6YbU=`2DI@`uDly<_>BWP(z?tBF0XUpJ{Xk_h)M&V;KrsixK0crf z3~xmG!b>^KHYsG-M;~b%1l;gLYe9rUYg|OxXix#|O@llHN=V>zY-|K;1A_elDfvMD z1Ixla86OWb5UI`y4MFMJy85}qI|q4&cse`!#DkhF{(c&o3Mu&t)wK%c8JRh$3K|CB z@(6A@QjP%y0y2iQT0p5k$k7Gd<N>$yz=ItSZAgthm_|@GD=DcgFUl-Q)krE$)5%HA z(<z5H;UMA$I^aeeNL~}90PG}q34l~Yg2D;ZWW}1^ASoD99)U_!P}0H?<c8o53CPpn zd<P3}NKiwn29On)qdh6$av5C4fKxtb00~?&LafDA3>q6%Kx&6lXh8z*v_tb8bd(Cz zyb1@mMX(pfpynb{3IL~IP*^~0hW9y*^o)#54a|)#Of5_e%#92TK_xM`e-0md0tYA# zb&wJpn(4p_HFOR1OoPA#C|*E?IkfEp3O{f!4nAN3?VjVwQV<`4LLojL&V~#VK;jQA zcNm(5g5nWc{y_^O@Yn{ZBLfZ(aFl>MLJ$+6*#TUQfci>cMUZR*Rt4$wKq@py;Ngfi zA8>sN?xe$q8{h*5;NCd$m;)r)fV>WGgc}=x8rslkhB^x@0_lxIeFN?8yLtM!dN}&I z__#s`3Q>klz_H)~js}k)P&|a9RG6T89Aq_8IS+R!xD){q$gYLgn&7?{I6;F-R8T`d z-Zdg5-qXc13|h2;#9<APP(Mc>a9<Q$`+y21a0XIPf+T2XKcwOn)UyMJJ*aU4?#{rY z3?u@M3s}7aayxAJAV3#d?SMRGYy=%5f%Ka|O>Ly=5mEqwEddv{-~tF#Y=dfJqyifh zV6a*iWH&hTfCh=6u7@<%AZ0zg=>)IFL5UC407q#~dHRKb8cyid0@S8_aIk_s4btuJ zhB4{_PM#qippK{yG@#L%!%m*=?%=UpP>B1w`hmK%pwt6x_CwPXxaAxQODpiY795D6 z;t~{y;366vK;ZTXtZW9g2_fBLv@WHBp^>o(IPpV*1gsV8dyp1LdnUluIn>87#M9p| zKG@OCH9pMIClu1OhW9vN#RsHcg6Np|c!NU8HNrC_J~-6b*)=#=!GHmEFdu9gsBH^x z3V}OK&^(6L(KP_~bYY1RR2<|ZHH8t5hxi-h1!$H;D{IWbjU8CB0GR{M7ocJelui(1 zETDP<I=luN>-BLA4gu!}aFu{IrC<s2MTlci2+<WW!X9uLgF0FTZo@=?Q#{ClkfD2c z)c_XC1ou23F^9Kah8DoE9t=1oAr<f7x(Ky=5A{H4UO*de&<f1Z43zUA_JT4IQvL%q znLu%lT$DKbM1cbhJSGVypoIXomKeA_g}Yw}YLtL<BT8OyMuFxOkPN7B!R$jA8~T8| zUGQoGoNd7+6D$>@r4fjZAXgV3Pp9}W*Pvif2JnanO&Oqg&L28b4=QIti3d{ufYXzk zOMs^{xXSbL4TyINb&CfT5ei0-!VIJst@MJ09<03wskA^%9B?xR;(65R6p&j$WjSPU z2sHA5InM>^*MJies6+(!Y(S9@$=#8DSUPGZ;P`?ha*!K9X+K^;L)XyA6co9j(j8Q> zE9K;XLogJxI))cUARj`?D)_iRC|@GWV{ZjPZFh`-j&m6rfnplg4uZ$OhORNBRDe}5 z(9#m57?fLJ86`g6Jt86=)Qy0~rGlY>A!tw;Vh^mF2XYr^_6f5Y02*;Xu2&%?6sYkC z?H@zB%%FZfC}tta09-GCq75`R7w_vD;^7aPjsT4Tfsz7j1Rs<s6hJNpJ0=3NBMvI6 z;4uhJTcENEECR{+;Nl)uk3ovRv@}qY95jdwne79oc(7h@f$Zk!=@S|RDaax52g}`{ zK`T%Kfj0gijW_feD_Exw8r<L_#naEn(+||B$;r%1MVe=V8VsJDg=Q#7V8K0M0iWaq zg#xI>1JwhrJRy++&D<4fX-E|o#P{Gz1m<f94e7&xvO7vjg^Zvhj7m#maB+1Cbq6PS zP+o$yf82Z>K}`_UkO2(?fbuywQGtUJ)bs)6s(f%!Yys-GL&tzX83o!(hLyYE5hi3y zoLxXeGtjOJ)W_hF08kDCTLR8spfm-JYj6~T(-g>KpkxM{t%8RndYuBQ!C?IXP+~>z zyn}24n+-{@F#A%#R>8bjilhSE{&NRS)&+xxh#_$fYu7lz=hsa^RRk!ULBWrEP{tM3 zBmxBss2q#;40enMx0XN&2qpMoAp;pVgSZzQ7;ry;9S!qB1w;jy3(A6^f-GLaP|wiZ z)Wp)n*wnzn$jHdT+%#1eGRcdS<U#onZH5+_Ga=;!xQPOB8(OVlXbS4YfFcZ<D&pfo zlhDw(1t$QgN$3+<(DDF8fqOk3@L@7gmH@SRz`g?qKW1QoW|6^jC*XcIXzoM@)(6kc zPf3MMq=02L(lTI@phOB9Nr1W!QpSP`8?ap|$O9~pgamFXfCgCO!R1x3vmYdFfP4#f z8ayGwS4E(X*g{*=uq**CH;_W!$=}}xE#$$yI8aIgMIQDkX;9?{TCL$4@9P-i5%2Hk z16sEME@dIH1kr8~0cse4#+5*klvtDtO}3!Gg?j+xdvJ0G=Ra@`0HrVRU=lbjLEQtd zhE0vZ<q@Lw398>vM`uDk;H_IwWP(Bsnt8!t2FuJK8^Kn910>it-p$9+J>EYwBp@^- z80=P1NeF6jp^x~2qrNybH5(lB1^LCW2nUJ5Ce9#ZFCa;V_;_eJ?CBTc8sz5a><Vw< z#48wsnjw%;jC@e;Rm#Z$XERqHH?SihGbG^58W7|U>di95$2<FY$A>t3D;OFWFo4%* zfOLBLg+N>jnV120u%YWZKwbp5KwQEdgWQbbo!va+9fKibouDWHg%2oBz!3oQHl(Bn z*K?2(9zjCNdScpupm+zRP>AWEt{&JxSj7n{@u3|ow0vy=TFMX)TY2N?92n{u1X;QP z%CP=!py^))6O_J<r=NlWgNJ``NW71uvv+X3qmPfjGe$iFS?QqwE>XY*Dx_uvB?*xC z!N~z?1-Mj-2Nw?DW)PxjgjiSvPPyRB3yv~q74Gcs7aZyfsq10AV^CrP_l`k@6<8a{ zKCmvN5JJhPpkl|#&Co0!y2!-QC&V?#&oRU^3{;JQ%z=cff)dyma5BKwxPzIGTwQ|F zoB?=<66{TAhK2VKK+|KWbvG!^K=FlEdxBQe1cOT{nA1Ty4wQpoZUYA?v{*puxEh*5 z=F<#K!JSrUm_s{%kkSt3Lkp+}!L?w3V~Dedk82pTCWHA6lJ3F76p(}pnj?sa01rTV z`nmbXy9S0j`hXUgL26L&ydbEd4ss@><^s3WL2X!&5GZoM(FGl`gS4rk1)8BLXaE2l z-jG_(08|FSnrP6%9bD9cDniIGCfEQRbN!%jh1vrSAy5wlWCN(61Sb_x;>iG)U7$1p znx2Yx3jp<ho&8V;K0!?c&@8f{8MNpCc@b;`IFW+A2(by;kOUXn&VHo`8zAK^*c~{A zGJT-y2GVj;^FRe4tndTzVTGS2s6B$xvPY_yklXcO>p(3fv@u~&f#nIAY>9`>u7ey4 zDw`mY4K7L`k)4(n3QDnHvp_Kd??6EpiosXYK;s77Fn}gGSbH0i(;@TuNDCYAEf0XE zYH-v-Dm&0*T7WL3RRS^}-p&T622kX|8oa@dkf9Aw93uiBqz6*Efy(oEa0eE-*8+-j zq{W%wSkll1sY6?_sjC24AqUN_XvM1;c#01cl;EK@^y&?DO&!?j&|(@IexM<BP^L$l zQGt()LK-hn&%mP(+_``n1W$e-M<9kaFkAvE1Hi!pF5*A|7~mWXF4a*-Oh5%VSRJ^y z2@Q4)iuZAJa`i!9MiLM0J%UmRsDWc*U<f)Wz|6$h$i%|X+%Q$w#1ymy5ye^1LKQUB zi#})sDlfqK3tnKj1fndD1+_(>o`sf-`H<oU?jcx;@No%pjesl$K}0dERE0!>vmZ(e z0TdiC-QbD>>tbGypb(Ur7uwVSx3Cb70Idaf3~~<!<y%nQk2c5zsV@u+AS=ZngPQ>^ z0r15#3dSaeMht%be$bJ24GmC31;WwP&^6QqHGNT+qJoR_cm+dHt_C;K;|Z6PuwXz; zNrF3DScV2c^)4t6DdpsV%W-(y2wZG{YBNyL0V*}%MI<C%z-1&zH#l0sX$ourxVT4; z4oFuYq7gFI4XR1e$F5NW4>{Icf?>rtI6A;Zd}ts%1%XlwG#7y?I!F-(avL<YLB=s5 zxeYpIh?di#v%Sv#F0P<9C^+YUiX2cK2XQvoPLP=hA+Ucz7J`Go%miMFfy+%uNFwJ6 zhy%cJ7y;^%qpX&K3>P7L8k|%y7X*N_7sM!J)u0Iz1w(L~ACxXpN(fLCf-s~-isXQJ z1srvk8)U{X7#_snUT%m-kgFqjc`~%TgcJ|pxgj6$+>j4=ZV1+{frK2msDV@;5cS|@ z0A!#Flng-S3)T*l8#o+c&2ETc@P;>XVF*sEAP<5txQYWs6f{=g%cH@|b)fY<xC#VS zr|1I@;1xd5NJFZM8RFx?2^->G#A4x4P&oje-T+m$XoUedFT<zWz%693y_jqMvr~)m zQgh-<Q!>j84K&I$6*M$pm4v2-MwzCjz9F~~3QCf&8~{mQNE2?Lb%;o7kVD{cXJ`bf zh(KfK(0U16!+?u!NMeSUd!X<`#*hR9R|)bXq!zD$sRFm?pp_NWbWm=DENwunI0TRR zc_3V53QnltfP)OhB8`=Sj0Dve5Vygj51N9o*bmM6;1)WVfVYd0S7CvC0q_08LRSGa zehO+WfJ%Q@sRa%maNdHJI*2hFkRhNn04g#OsQ?}rK0XZKmXVnWbiE<SXlFn03Qt(` z9MslDls?#(r$IWVkR*<K)&b-g{7nmRasy>L%z<f8QRnL!90Hm-02S?^&<2&_;Bp-r zq5=Nkj(9wzK!uK{gS-!#%>cFGKp4DK2GoNMa|-~iZH4p{;d2F$_yRAgfv5(px&gJ? zLp*(5<B`^1gIZ_ceH7pj1m_mS_yi~c!=|fY(FCsKz=au6trf6xP`Uz_3*dHsrV;~a zg=?^DM7+NXXjL0@UJevupos<0ibit}NC(W^1Ka@v7569(0F9b}4FgvYpyoKVcMA(V zv>7b)oB_&W?tY;P&W7d+h6Z}ZdWH%{21bSk7Dgrt8bzr&sfop@nhLtP$pxjh$@xVk zsTI1p#tOQ*;L=P%H#aROKe0qNF)7owI6tjKK{pq4)RS#uQEr*JZmxoEy0L<;zk!0T zf3bpYT5f7_abkL^Zcb`mdP#<@fr4&YUcPQpX=YAIW}bp>T3Tsda!F=>o^Ej}m<H)d zNi0c3=I5psrKjp9=jRodB<7WXR1}vaCTHuGf=otA?x3m{+-!mlfFP1QWYv)&Wa10b z%R-Zctgr%A@X#h9yzLVKEvj&>mV{JWpv^qc!Uz)Up#C0of+ap)!N|bS+|U5prUCDt z0y(x6JXQ`al3;^ou;ve_lZ@El1Z&Zw4G4k?4Djfaxi7Sm0hQK>#8#>V9f9)nQ-GA+ zkfpnzstTNdz|9G);Q{GLgU4Y&BRBAs_@I0X%CnGJSm+ogG=IX!C?IhH*(e3_X9Z+# z8oaOpb3O^J5(x-$boX@xHHpC6BtT0u{2ZY}Ho^XGA#UIuWZ=Rab(J5yfCV>KKm<~6 z7FyjEr(~9CROnQKs=G=}eT@oDaCaEqe1Qc&tat@iB9L|iBEf(fFa{<jW(FpfMy3YF zhQ@}ex`t-ZrURt%1+T{k4MoQXM+V3Hcse=z`?-0#$D{7J0+o4a<&m==(rQ{*N#Ppi z>IZHgBIR`-aJ7TT>4prj!V0~O3u+U9Y5-6yLAu}Y(QR-o0cqucGY+&IadZxh4|4SZ z7l@z|ADlw5RSNJR2Q?1i9B2gxN-Ch(2N&-kV?YjowsSzSgJok1xXS?Aqlnbsz?bhp zMI$)5!)tU<1cK&EK;wdhVhofWp(z;ZERZ+iL0y)3)M-l4SQ>0v6;e`z27<tACqTXg zRb&<lN)V4iTP8@w2;7y%M)3AJxR3w^3Z%xx-AaI@C&=g<c%}iY31lOp9)^cJ$o+8J zKw*N^JOm{J(3BlWs|9ppBI>R{c;NwxHE`Vmsp=p;#xY+6_6Vp(0>=ZmQ~_&+q;1GH zE)@4c8&#fu3h?D{purMQs}|&9a4!NHi|{q$C?%^iWG@gT*;XKmP!!#u3=EnK0q;Qo zc>t2~VLKGTZEi@5$~+CE4!r*rY7KY@8Y!!RGc#Jz3#!#YAqgrA!KEmC9}(E&kQNDu z>F*W~D!swk7qpEFnl8Zo4A2k?%n)$?17}mTr9R-5KH!Le^x#lE0?#po5<9ee1+oD- zZHENM8(Nr|8O9rfdNd4>jeVeA3fiDwK#(WWPBst^=5TOd3se)q#ybL?JRt*Upp*zw zg-EEN^a<W2k_i%rE&c|%31lUD#|WI#A;}6_2ZP$bkcKMOvIJs0YSu?tC5l;UgSXd# zhN!@O9I#)YbJeIl38ebN&_JUCRDV>!x=6^L_XW=YI0iTe!}kk;mS7`x#ek-E;^PyG zbD?34GU^3)EUx95piB%37J`K_JY8T5SWpOo0ubIr2d&x!84J%spzH(c6oFa_kQe}M zng%CySb+yBBqEd;im`3c1W#LoW`bOU!u^B1p^cLe_(U!^^+R(9xa|#X??aP0$jvC} z4_>vwO9zkxL4)(4GzNAc`gA`^nS(h|r(h0h-^0r-P&S4P<AV$YCr;F&8q%#npJ)Q5 zT$I8EvMdNCK{$r^hWdcQ!U8%tpI?xgr;(SKo2mnvkOnXQhVJgeA_Ex`gbZeZLL598 z0dh8o11@MWyY?W<z-=wi3?pa}sSg8WD;k5ZV?=O>e~_z!L4|=aC<xQipc`wzTS2hR zW~EkSmT2U`CK3`03cv!Obckr(D&g!!fcA*PgAOIR!4oJ(LWFD-h7Ny&N+pz@KPc^j z(g!r(Knhyq0Cx^@2G>d8v;;0U5cYz`2@qp=pcDWbRf6^zLDS;UJ|kkmJUD$J4Mc!y zCs5#l+7CX^z6P}FFgAqNV@QJ};2eU~6a_6rLLO-bWhijz18zTn;ue(t;PDH}m!L2L zVbFFxkj=;#)SCl!WZ}~cC~X<kEd`KaGw8S(WZ(?6ZU^i^a25d9LZG@0T#<wGJA8%) zQNw_{Q}9jB;P}Oe5|FbYZ5v3T0*^>of`cA)0Ule2=8WW={NhyPc`L90Wa0|62^N&< zz_t-?9)jWq-h4oFIcPWl+!cg1>7bDZN*$majo}wqnSegt3QCI@*^j~9+1W}#1JuEG zEXq}I%}q*8Nl8sn2+7aSNzO>j%meqibwNFDJwpRcFb``FoWW6tfq@}0H8ClZfl&!` zf{nSZF9RDFyDuk`5Q_+-D5E&D1fwLQ6r&uA67pHXptICK7+H*k;p2ah7z{Hru)>&N znwfzOOv4Cf2JnHqFfIc#1L#0sIG2H$0dzbwGM^j40UzAVi^dm6<4d6NK_?v}gqRsX zryV2nK_?y~^F<kW5M1y{$i^sqCWagoJ~P8&6h7*a#LNtmD6-59QfPeS&;*@^13tnS zu7(+O&I_Cel4n6VC8j*rM9)Ca%*fb0B`Mk5*f1&4+%n1B(9km3(9*;_+0f9`AkD;_ z0i+E51Q|Ue6FrkO6XO)~q+~-QlSEUKq_k8+BLf3dgOn5l;}o+bV~9rhF*D#}W%LX! z^^8r-jf|5mO_GyR3@uG9EetJ<5);jm3{x%4(~=WS48iunPOs53Hq<k<FtoHtNi|7L zv@|wIOR}&uH#0RgF}F0ZG)y%#Pc{dq5+*hVaM&|(F@R$UM1#(t2GO8UWa4CCkYxa! z7tO$+0;0JX7>uB_C6so6((X{&4@!qZ=@=-T45dM-lZh1+t_%zy^FgVRi5qeTHppHX zkUAa)2GDVQAif@m&&$AI3ZnTK7;Hc^7XyP6lm?}KkUCJR1<|0?2BJZ!6hwpF&xJ5g z6RJ-iN`uYiVqma_@*SZx%s;+RelV1dgwpX)Iu%N1L+L^&T@Iydp>#8p?u63)P<kqq zo(-iJLTS)RS0MMVh4ME;>77t|Ka@TSrB6fYi%|MHl)ek4A4BPvQ2ITT{tBgkLut^_ z<{*37L1#p9F);8#X<;ZW38m$sv?`R=hSG*m+8j#TLTP6x?Fps*p>!yej)u~SP&yq- z=R#@FsdgZDRYLjoP`VXLcSGrkP<lF)o(rWHL+O=JdOeih3Z-{L>4Q-EIFtq*AO^Dc zGL(N4O5calPoeZ{C=ELI6r}z;l>Zk>Gcz$TfW$eWG(VIUh0@YcS`kXCLut?{q9A?7 zP`)LUwujQLP}&<x2SVv^C=EJ$6{J5I%Fl$-`B1tPN>@W^&`HlA_3co8FO;4PrDsCv z`A`~ka2ZJbYAAmrl->@d_d@BzQ2Hd4J`bg@Lh0L3`XQ8l4yE5h>CaI5CzSpVrCFIF z;mQrA1);P!l$M3k%1~MpO6x;uQz&f>r5&L(=zLR<zkH$mU??34rQ@M=DwNKK(uGjE z97@+h>1HV138nj?^i(K48%i&P(#xUrS}464O7Dcy`=RtvD191AUxd=vq4ZrS4LS=D z<e!&N{(C6>6-xhx(u|-h1h^O&*r7Bplop24l2BS6N~=O?Z76LBrOlzVEtGbK(w<P- zA4-Qp>1ZgO2&L1ZbS{)GhSHT#x*kfmLg{WOJrPPzhthMQ^kOKz5=yU!(p#bQZYX^a zN*{;PXQA|ED18%3--psqq4aAg{SiukhthwcG&3tCopM5Hekd&prKO>?B9vB#(z;OE z7)o10X?rN`3Z=cFbRd)thtjc7IvGl5Lg{=cT?(bEp>!jZZimvnP<k?yo(ZMrL+PbZ zdNq{Z2&K0}>Ag_;FqA$CrO!j@t5Etjlzs@MpF`=lQ2H~J{t2c3LupnvNVsxCX+bD0 z4y9$Gv@(>|gwpy@+7wD#Lup4S?GB}Vp>!~mj)c<jP&yS#XG7^iC|wSvYoT;Al<tJm z{ZM);l%5Tx7eeXfP<kzt-VCL8Lh1cb`Y4n>4W%za>FZGXE|h)@rC&nn_fYyPl>QB+ z8QCG>$quD?p|miRmW0ysP+ApAYeQ*6C~Xd<ZK1R?l=g(u{!ls;N=HNKL?{h9;U839 z<wE(zP`VOI*F))6DBTUECqn7zP<k$uUJRvILh1ETdMlLP4W$o4>ElrPER?<srEfy% z`%wBRlzt7RKSJs6Q2H;FX6Ar|D<_oZhti@@S{h0#LTPm<tqY}%p|mBGwujQLP}&<x z2SVv^C>;x>lc6-|)L>A!=0o|VP`VmQH$v%lDBTOCCqwC(P<lR;UJ9jGL+OoBdOMWf z3#AW3>61|UJe0l)rEf#&hfw-Clzt1PL8rok-2D^E{|}{EIU(W74W$L4v^bQOh0@AU zS`$j^LupeeZ4IRzp|m@c_Jz{HP&yJy$3y8<D4h+Z3!!v5l&*!+%}}}%O7}zQsZe@0 zlwJs>mqY2bP<k_z-U+4mL+PVX`ZScj2&Jz>>AO(+F_eA@rQbv8uTc6olxF0DgeN<c z=7rM2P+Ag7%R^~ZD6I{p4WTsXlxt9Y*+TiwP}&np`$OqaC>;%@6QOiEl+K0H#ZVf( zzlY8rYW=@y(0<okD7^$quZGf_pfs%CcL2&i4yDgQ>8nus4wQ!V_g+EyAEERQC=D7! z0>uv-w0{EY=ZQf1(oh;SAO%vV3FQy<@E+}NL-IGh``a6!>1R8X-Up?RLg_P58rILg z1?4}4(l4O&dno-4O2hisEYSWSH<T8F(vnabbPEM29mD$7dQfpwC~X6!ouRZBl!o=E zBcS|vD4hnSbD?wzl!o=Ao1pwoC_Mp6PlwX;pfs%iyavkO45fEL>4Q-E1eAvLo3BCn zccC=s?h=syUPJkxpfs$%3>wx1$+JWId3;b>6iUlLX;?p53(7Zy(iTwK9!k4GX;}X_ z1j>(w(n(M{6G|6AX;{Cw4$5zZ(mhamGL)VLrD6Ty6;S?qC=I%w1LU8*Q2r4p4eJMA zg7R-d=?75yIh1|}rD6TwKTtk1w7<p$r3In11eAvLd)1(PT_|k=rLCc~6O@MacLSjO za3~!IrBk7F4wQ!VbE}~IMkw6@rTd}uG$;-0-!6gjS3~JdP<khnJ^-a*{n~R-{#7V_ z2TDJN(yyR2tUvn$%Ks0gLATd|!k-t~4-<jXuzsu(ln=Ux0;J9W$_L%52jbg7`LO=0 z50oDarK6y9B9zX6(y)GO8I)fOrCXqMH<X?PrD6Tm1yKHSD7_9!Gw2mp=9VNTG3XVS z6hY_=7^@_;qJ%*Yw2F~IFR8egL9Zw^M=u3*I&OSsURpi_l%1HARFqnVESp%An3tZ4 zq9Hdixd^TUe3}4McX3G(gI;oeF6g*k20h0hU%kYVlA_F{(h`sX=|%aa1xV8o1ex;~ zAY=J3g`j&VLGvrp3=9mQnHkV*2?(RB1C8Uu)Pe4X1gQaGbag%qkU0a8d7!oyNDT<1 ztBXKV2fFJLqy~gR`am-<pm_k08$ownf@m0q&BiE#XM!N}1Ryzdbs#f9;_3_x;2AAu z5C?j9CX@-LVCoE@=79yF>M~#)BstJj9q4i!P<Vi(Ped^=R4_0wfZPq5s{r`{M1$rb zU}l5Vonc^L0L?9c*dPp(1I>rP*dXz*3=9m&GiES3F9rq%WP2T=A^rl{3!2-2*_(*u zR*-q1cAE!?0mU%$V$sa=h-P2_sRNk@n$g2B4;t{G@%Rd)DM1YLpz0<>GcbJMg@g+% zU4g;{?mnoxv)l~edrzUx1KqL!X2RVERo9RSQ3rA#EL~wU?=Ck3gC5LLNMV6)-h@mB zh5|;2`#>{}xcm#cZ)-ECQ44kz<bGBV6Wu(9YzBr4Y!LH6b7U~{@{rsB(zj2DfguTt z`>LSoK<N;qPC<l$;S}hKGY|(V2h!FGWy93H3TI#dr46VuaQK1Lfo>LLW?+Dq4JHu` z47xByP%}VWkXmREgSZSS5ey6y7#SEq^K76wK9D~^`5lz@V0j3n@Jl2E!xaz%ib3Xp zn4q{pR(GM0fng~~0*Ybk^dZ*)gKy0R5rpp8HMKM{foLIo$L^1NV9Vfl?3yu{g2M$g z(+f&JAUA;g2b%i>vE>*T804X0qQJnw04rNSbMc^gMvxlN{3hrgQ4m{=fq?;3u7KDY z(0mPIYcVh|XfrS{SZr1IR`<F5qeJ1)XT~IEt;;`n6q!CSGwEMs)VlnmLqOsJlh(n{ ze2gF!mw&JXN?wrlU^HY<Uih1V@z7^>Cq|?H-~au8wTVF)!cs`E*b7rH>;cljX!!iO z|CcHU24%4N-wX_lMv`uipI`pLV#ug<dlU0VMrO7POj>LgIJ`Ff{`^@v;qG&Gub<ET zzx;Cg_MG7WKcx5)s$yU;%VT8Vv}ItB-p-()WaNGL#{$L6KNctku>HQutaSJXiz0&( zqr%}ID-;j^Sfi-zb@&Gl<0{3&KUx$*l@9;t5jgy#N8#{~1_l^g(HrEeKt_n}28C51 zRS>lbAQ_<#4)wn-C@X=?SfaoPmRTck_{SQB!#@@<9R2}e3wU4tu|gq;6=KQ)uqkUG zY85~-LSI0paCja5aYTVZ>F|#eic%R$UkaR@zBD*VB^0<b><9TVnSqtzUb_Yh!^5wv z&di{TghA<oh4FYY0|U>oItGRiP-+E<Az>y)4hKo(yOZaOfbUM8<PVzYW;yEtx*LZL zJe<$O8eIgwJ6XShfq~^u4Fd!7WHCF?0uE3q$CeA~N^`IZxq&pYe~V{eU<ZkVdYBv_ zReTJbbv6tPEXsl)VXiZbOa+`%nHU(j!E+%+f*}12+^V4KnTrKM5-i-F-V6*(C19Bb z?!{^h3{0h9P78NmG6MrsnIPzP=??B6puw7QuuKoPn+gL1Q-vU?BQb${KB!w%36@#F zt)Icbz*Gh1Ea7$o`L7ymzzXhcUIqrH8nDb7?i_gr2BuoD0UNmMLKqmB>cBDwxTk`g zQxE1G;bv83U|?zx1Qk#xc;1^aFfcWOWmp(_mSr(8Fg1aB9E?0yoER9Gn!!9CMxJ}s z3=B*yV4eUY&&Eau2BuapPlS<24P<1SAn1lz2}YjnCJYQr?O-_vMjlU)Tn9MlTo`$- z7cwv~b%NzQ7<p_$85o$lz&syD9?&(jOx=P<nHU%X7<sfK7#Ns(z;X?YJd-pT7?^qm zL9>i4jJ(0l!3<1&V7Ud1JiH)N`oX*<j64&}85o!*fO#tzd1ium6T!SSj682aAv6gR zLX12zpa7o?mOH@6Q`^eGz%&KSJHp6g1Tu3fn0JB^k{&=215OWe5I)GaU_LX14{|q{ z&k5m!+zRG%L-<db7#P5OHU<_BP%mW~3uuu5A1IwME@I>Y&44m6@c*=BU|_t>2yR#1 z02Ov~1m<WmFfguw2<-q1*)lUQ2)Z#aFn}2WPzHmLw;uxo2s1Dut^^Mi7i7eHEjWu9 z12dl$w>7sVw<qZ0DN_az#ij<P*cll;g&Bnz7&sIeJcaeS85lTCkd)g?+DI}ma0xSV zvqDS&DdpxxQenZ(z`%ndz{<eD%geyb0ny+oY{AOFz-PkXE^NhZ&1%WbB*DPIug737 z33e2#CAYeyAfphQgT!<vNd^W1Jw~iDAbSNnn;01c84ZOQ7=%Cu*huE_fv!M@EP4T# z9iVCw%wPZoB!~qHV-O9)*u+^t7fCTdR$zhdN0(w|<$3K4x*r{S8#=3CPBQ3zbT(!g z(1Z&E0}J$ibY^KL@VYJLWDW=&&k3ekm=m~IC9A?17+?xhSXiY^xZ!-(*-TqN*S^hR zss-JuHkT=-ih+T39#c2yO0oG&_VEl1tP7Z4fo?He$aEGYxQJ;X=w`9SOwyps8kaEr z@nm3NUCOj1nt_3J8Pj&qy=KdqWa1bYShq3F0^MM^ooPPkdb$HlrXdUrtOuDkf^J;< z&onUwbYCR%VP6IY)<)(nB@7I#P0WqW3=FJo%pQph46N<UMnwz^tR2jypo`Z!nLoxd zFtGM9^Js%gZjdz$kAgr~jyi*`J!7Z~1hLCNm#i`9bAj0Bz*p7^XM@;hL09lG%<2HK z^NK-a0O&?KhIG&!c?^p|7ws_!fNof0FaVou2)cofVLIrlH->;zkov_nAo2?6`aFh0 z(6xCC`#{cO=m6UYxjfeZbT=PEUjazvGElHE<b;FR<)BbxXa$7=!!Gc(vu-{hah+fg zxdU`38^aZ_`1>Z1$O5oA2f)5q2X?<O=psi3&t#CS9M}zIU|G;K7%Rgm&=q(LCg~vA zGO)c_V3XxRH{CHD1H~xALD21d3}?Z1O|J*3ybKCYhIj2Cwm9g{IEG6}AhtQ!#_6DY z;}{?p<|={36Z}E4^T76g0bMf5aHSR`5)la^Yr(b{<%8G>VA2M3r5-~FI9@ywK;qZI zcKvDuv42E>NFQ)$|8)Ve{lTtc1e3==_uDaKfK}#z?Ggbc9)_J|AeE(H_50jF>>r>M z!ypfKgCpqLK8AaBAn^&HRL$TGCfUIDE&%%-G~vq1-~dW)3`$_T?8-svzkre|!}n4U zdok$#K894#g^LWwL045WTnAmB$B+xUD33uAOnwKGm%#QmfX$f(cCBs;$b{>li$EC` zg2Ox<9PiUW_b4)GgD!?-I0#N5SzsG|z_GR)9D|@q6IO<upj6NB5|qgpertnFy8y~f z3=QBIDXs*Gq=Q4X9-K05KsPNi7=hFCH?XV}=vG07X<%Q^1c!-|5J*=sIOPbqgV^W6 zx_ZFuBcSUC83e&5Yy({l$Y2LHUk@DeAHaTL0*AH$I7eIv0GTi!oE~_=F?#@P@^x@t zfLwSz3mivl!6{z}RBkYofNnQrcnD4vpeu}78JfW%a2*`8I$+m+0jC`ID3JMTtst@w zoHskbIgTHkFK&WEJI4<s8w2(!H`tuzV85$?E?s1J0M6qKc_1}4;IQ2WP8FbOO;(0C z;PAf%j@c(*b7q2CX$(6mK<X#Ef=F3#&fQoDVsn61T7c6-Y79uE0dyrKLoYZ?u7Tr} z0qkE>(B+;Cy<s3V*FhK9GVBADk_?hyH=F_c?k?D0rJ$QT8FInpfB-mVCxG1_)&SDW z4K_axoJs}3{uKwuV-mQGD)IoS0bifXZ~>gcr9fpW!!mH}Tmj35fm8KEu)lVK<4YEt zr?!D(?Kn8sOb3@Id%)p;4P3%7gHzo*u<cIZuw~8!*|j|sMCyZ0-VPR@4UX#{;Mmy( zs?Hg@!Q!BW4y+8by+P`8!D;CRI4xO&bAc<kT>T185Aono%?78veV_`40esCbgC01| zfEJ9fGJFTyk_66=7T}nw0_V7I;PhPY1+wJ<IOHdT%e@C+SzB;=Py)xDDA?u7;Ba#Q zr!jSK$ZP<YY0Ti1-~<lyE#MOVHkkATr<^2kC}n`->i{_RCBU-Q;IR4%HfJ_CJ(z(i zEQUU?nd0DBHf{sCO&D~4DT4|){F%UMzzJN=KgtEkrh!Y{k6?H5flFh3Fj)gmtNXzI z>H({H2CAGHa=`W7J+Ns%z$U)}rwV^?%25Qz=1OoZCxgo|6L8+F0jKA(G?0zc!6qNg z0<lHGp$eLKU}cB^$ICi!EqM`KuRQ?!?k?Em>)_ni4>nB_EdB$WDrSSjO#&P~+rjaB z2ON)}ehn)F2e@Qo0GoCQoJz$&m%%dlgWbapc6k>#+#JDbSitp83^<luz$tk#sENSv zGy~+?7;u`&0hd=_z#`q?)TIk9PnLj7-Id^Udk&m)*ML+0UU1uBDmaC|0+${^;96ig zxZYs_m(Lf#KH3hBH7;<e9tI8v&=OHrhRfib^$V<bEjX?-!TI_<*vvq1`hN^o9|pQR zmLVPN$J=1P#DRUf0PJQpaD2&v+Z)wjb8NxxZvmUU6`Xn_z~#^BAO;3DhAOZwJFxl= zCy+=lIBnEcfY>u4KxCv9h*YZvkyT)oJ&_>xIk33C8;E@bocmb7DLL32BvO+NA~%6W zI>5Q(4Ol!I?4xVo93d12Qu7{MqwNIy;wL!vTfjAbJ~-ZOszLFx7<}n`1L%%hhKJxf zy&5c=1#Ww65CoZH<qje_tU=^;u*orCKlbE;MEoQ{B%29{TmW|eDRB^cg$9V60WKlE zz$MHla0wF!&I>Z&5Xb_j3OBHbIJnKTvI?YYKDhi}9t>jNF9eZs9UxK_eEEAT8;BiZ z2O`D5sdPFx<h{YE`Z&1MO$CcT0;kd@aP9z!K(2sa0V-dl%R8W#nhUQ7<x8nwpn5<f z6qH^JmVsPt=mZJ_lOLe8V7?Yqi&`mwY7ARdP%Yum2nt>2OCVRf)q+~jp36Y8KG~q0 z<bMH_#)FQ4{1IvcO5G9upxQVo9aQ$DYJt?G%>bqMTvkw=RI7!6u7KYIYGpJq-T~co z-^dsO%8f0I!k|WFE2AK&W}L)$3RInJXPgFVNu6eN0yV#{F&2Z$yX%Y|po;4T;|EY^ z-(zG46*LbS%|LCCXN;3Ug~l(&U{HSh&A0+oEd61O0p+j1j1xeK>>uMyQ1~@4Ie-d; zCMM7n8EY5QeUKv$FtKGpLreZID9<Y-fO5F<8xW~-0~CL%t3V~AS}w>p>bF5*qXE8B zUatvMlIkx7<!XasP<}Hx21=2p)*#!={)0SV?g$D$i^-tU*|G-|8&=?JsI5WE)>v&O zfbzU;5hxh!azM5_se{<g!JzuUMF!+)*Hxg_kDC-ISGd1bWME+R-~xHWb3Z74yzYX+ z&U-cJu5X{2AQ9h<pnA*C1(cKh89;eEpb%6W1>OVId_mhmJ_<exB16<bIVbclC|88l zfNT$60?KtU=Aht>eG77J!Zwh<5?6rYBxyOQ97zrag+q!fNM-6iP}<4*1Cq^t0V=a{ zW`W9%yeFX4pMMGDh5~<3y<YeMRK6G80`+`~gFtmaNi?ViExip&&1I>eQl|Vds2-}= z3`$egQJ~wXYo3GJD7C_%`lBup)Jm)W4~mNh#%rL$tdVgqDE&7vrhqEuW=4KcNz=l( z9Hh0CF$^Tw#>ffsKs#eLC{8*UOF)UYlQ9mIV!IgiL4`v%;~P-^=wUnnD#m&l>p(SN zA7d6Mi24~1fiz5D1g$n^ox)fEsz;|X3V<rWS&VBzX>&H?Wl)trhw&xINpl&sK#?|& zQ5WRj`HUMtQMG_k9OT!9jH#eZyNK}$C>1YeECB`H62`rt_U=-~1d!k|#`U0lvYhcH zNN@#XHz=f5GJ?jhSywT(gW`8J;|fsptYN$g%9Cpuok7`p9pe#DsI6zz19@`;V?W4A z8yRyzg~ukwU{G4#%xD7&<SmSapn7;KV;!jBv5j#KsP(X&@fs+gcQBTKN|>FD>p+6L z82do}+s$YX^4K267*LGwWn2a->h>`{1yTDMe}VKJU{nO9(SwYOKoM|=@js~jbeJ&` z<lGaC9-#bjk`a6Z`8h@&Q0hF-C<4l!7Z@ji9Dk9q4^&`ZV(bUmewh)pa-Q`HqX{U? zt}?C$-7<cS@hzxsyUy4F^2!ayN1#x;$v6>|U~Vy{gIW-`8LL31++n-}%0YJ-13^{y zJ;riS2;OI$4XOwqFrERGcn=wmgR<izM$nQr*2j!(pp5Z^u?dvto-(ckHSwP@MuSSy z=Zw!l-G>*99H7MTl93hU>Q{^cAp2f3{snb%-Y{MSC5E?*+d)O@JH|>-T6)ju46^nE z<2F!{_L1=_C~`hAa)K=S%vcL*-h5$n0wun$j2}RO^^NfqD003twt*T4jZE`Fd8~;k z6cn4yOcOy)YGrZ+b#U95-hgsUJCg?}<U5$IgYsl2Q!*$5x|p0mPU>cw4~n=RrWc@8 z(93iW6q|iaKS3pPKhsH2CvFDQ3{Xiji)kLH2%F6$2Fm?&m|lR~Igg10RFckTx(V{; z0wyJphJ{RhAlnx)iGh;TVx|S4biIVh7!)8&nVdn+UB+}86a>qeghA<g1(P|*)hn4M zgNmkAOj|(p#Tur6Aj8%&<$==DI;K8Qb+dtKA1H-vWSR+zoGna8Kz)v_Op8GIVLQ`a zP!DqllOSk-WEazCP*J~|sSY%X1!^eCgn@EYoHQuV<Fi0EC42&HYy!zC)Pne~*FeR9 zTL!31a90Mo%yS|r{6h^uIV|ifXcQQvTCyEf44z|^2K6)ULFUmw;u%*!DK76Xh%E30 znNrvYN~Tkp9)QAn8dEvQ(=(WgK(R8D=>n**o6RH$Dy!x&f!5Bm&SUxoN<{OSI6zgw zA|@VCX}Oq51Egdr({E79TE=t~6k{uxZi4)`l4%tv0#-BK1_k*VrqiGf**c~QkkRXz zCaW+oux@0k1+{24F?|KuzJ=){C}nMB+6_vy+nJ0(<^2w(8c^ZCi|GU?uk2=W0wspM zOeLTo-^bJdinxPJ8KCreh)D_5v^v6+0?I%~nLs;%SWhrnfC|o&Or4-=>@<@fNZ%Qz z-#H8ntml|~Kt;lNrcjW+i%h#giS`l`8>r~N!ej^vq^nG;K;e0vNdQz|-eB4T^7}0& zH&9#lHd804F?)|G3e;=6&-4~l2|i>h17(CqOy@!Q{RtCj+Y9Scrb1A<e!;{7ir|+_ ze?hVRn&~&F6n?`L2=eqhrgTs|yk|NL%1$4d`aq_9Vgjx9X8pp%4(h>tWikU5dEc3K zf%3`^CT>v5`pxtjRCE4eG6xm#|CsK862*U}yP$@BBlA9xtDBg2gF>){ITe&>TbTtw zU5<9<N>HZkU@ieQVY--AKnbIpc`nEiz08|Hy}Ul=08kuFVEzN@F-&AW1>#L+_5_9Q z6y|53a%md#J5Va0&ddP{&za1=psY5FSrg=lIm~IGl4vfoDX1Wu&%6kvVF9xqsNh`0 zJPp(iSj=nzDs+}Hw}IkeIr9t95Z6lPBv75RidhxZu35tjTJXfWmiZtkYj0ql0?Gy( znYBR`@Mh+vpceHOW(iQL+s4cSih%9RF`(waE@mcB$-bLe1XP{xWp)GA<olR+fg<$) z^HXrLVLk>bN)9ux09AEIm`{T$;bY8|pagcDc`2wFc$fJHC_3&jp8_St2h43C$3J9d z236jVng4)HdBWTd3i)Tu6`*){&Rhpd8n2k|f&BNH`2whzdB<!3O6BjFWk5}lPt1Qn z&i%~102EkXnd?D`;T!WeP}%c?`8Fsc{ABh8)#0mIgh38m!_o(;=GU{dgX)eAETJGL zZDM&2%72?#ghBeYvb2K=vTZC(p!#74%XLr%wv&Yq6rQ_T`ay|y56f(jANH|SfLbB@ zSqed^=OD{wP&zxrG8vS$kFW@WO1Gmdvq2V}U?~BG*+~|EP}zEh#Sc`npJhn~S$lz{ z2b7X8vdjV14_8>WgL1%CmW`k$$90xTpaSOxOCqRCdW$6m6uP%r)`C*`7Zy`ca{J1X z4NA~ISY$wX^C!zZPy_fk%U)2j`NN_I>J0y55dk^(Kg$kK%9_g>2P!}3u{MK}@B-E) zpbB##s}(2%EoN;1)d5Rb*MI_fIjaXK^{im^0_DF|tg;~cR<r&B6>Do*pMx^<I@ZIW z@Z89n07{XYSk*vrw3T%U$f9km3qeV72kQn<3AU4UImny4S-n6;?_vE7a>RbtIiP4f zz<LwZLO;Z+0xIqgvu*+9xTCD)puBmE^)o2-oL~hl-ex_?3R+vudYaV=<jym!ZlF@* z9BVTu?Ve}d0ZQc;S=&Jw;Sy^<C=Fg=tpFK)l{Fbuzh7q!ieX@2y}^1LR1v*rZ3M;9 z2i66kO!<lR7O43B%o+=-@xHSD1~sX^v2Fn6fFG>aL6P&5^`<fd1M6>AW>C=mVYLTk z*ng~TAm9FH{R@h?MmBX&q&Bhb1(i}QY}_EjTG_sXENW*{1!emVw!ff6)WsGL@@+Sp zB`C4?vYi6y>tlNZs+lLSwSzL(M7DFF7TFZGm7sJsm2Ec2fz#R4K!(j=iwEV#*=+2f zQg{yAT~LKNk8KagWAoW;L8)gUn-M4%FJemo<?tnJO`yVKDO)$l%;jwNKxuFVTRo`F zu!_weltNasDS=Y!TDIGuM6{0WHmFwHz$ORkFl}Tz2uiz~*>-?}U<=!RP?vuj+ip-| z*v=*himIJ#Eg(niV)Fti*~2yu6vcbloI$~}pG^T2f(O_xfI6F}*wR4h`ZSw4sB?6N z4Yc8a^(<Q!sQG%1Z3AeG<2>6Ua81J24YJ`9+ip;VUuF{k1<w_>Ga&6(+1x>4c8%>6 zDCys1O9Vy#Ew(+NOw!GnqzLW9&0t>yDgkD)i-N**7W*zxo|w&^07{2**eyZ1d@lPA zP}ZNv?gwfgEM&h9ir+=-WuRbK%)TB}0xV(Y1G#l6J3lC~EMu1fmF~;g8$hXK1^Wb0 zmA#UEBFN*b*dK!u*=qJ3pweg!`&W>A*0MhUm3Qmd4}ntbdiHRTz76buKry<JeH*AA z*u?(8ih+T3GrJQg7`Cy$203>-`)^RAWCwd0C@^=jD}l1&E_PE8Z#TOWDC_TGp9w0@ z_p%#;YMOoQ(xBRTKRXvFx(={&fU@a9_Aj7ZeuUi?REiyCZw8rij9nV!>f`Lrp!9Tt zeG@1ho@D<BitSVE@*uCAW?u|SI%n9QgBoXN+08*o=N$W2P$T3byE7;WTw-SfrTfe5 zVW5O`g?$~UqPog{9#kXVW>*1~%Xio%Kn2!a_8s7c6#HXPC*VH&eNe)Ez#a@5Q+mj5 z1<Iz6*d;(Mn#b&WK!Q)$JwOrglpVCsiS-%#HBbaRXI}`aR9>*hgHrlS_DWE@=oPyF zsQh`&{s<IwZ`gA|k@}WB36%WbvA+U^?tAvjpm6!X9tg^OAKAZwV)_&NJ`nYpeFms_ z{=(h~^2%5CCQt(W#$E|3c)qi9gDm>N?h0x%{bV-;1>`SwFHke!H@hLI$p6D04Kn&K zyCJBI`N#eZr1C$zJjmz<4q*_lkwXvMeBe+4HCmfFK+AMkTR6UhO4L>k4NwKw#=!&1 z8toj5K-si|V<{+jIyo9a2S$MA`Is5N%gY&m^YJn;GJ>|UgVqHx>gnkh7bP?3>FH<Y zB{L*j#pG2K#N;NIRumMa78mDdrliIj8tR$r8OB>085zc8rliIc<dmjo<`u^z=jZC> zRTStURO^-G=jRmbm1pJ|8$q?{85tNE8yFf|8d#cI#(?ExAcsH1WacI3l%}K(h@~;b zmBkDU#g)Y+sk!k!0nUcz6%~5Ppb&v^GC=dwuwx@YE5y+hgXJMUi7!hnD$dN$)5`!2 znZZw}K;!CyPpkl`fL|yKHUrA@%quP_(nA(;E6q!W2r#fRGO&VIsxhx%W@Kd+VP#|! zVC7e0RrF$I(_<A@WR=%rWz%J4Wm9C;VN+pc)nYX_VpY*+Rn})^Wv<d=<z!Q4RbgXf zbyQ^aRAV)>W%blmW7Rca^^|9o^kC&=Q(<LfV-{p&<z!<{RbVw|6J}M>*I`vwW_8qI z<zzDk>-E%UHB)5u1lbbDs>>$I%Bsz3uFPtu0Ag^m*|RFMF{-gjf-F;HWn>cr8CIbH z5@qFNGX&90{0xkY2(R3Rctw<rk(HUvo0V0VRfB<vg^`h!8$t<#C^jfpkCmCtkQJiV z4n!-<vNE&jgIKK0YzC~NY@#3mkP=~es0^F|vH+w6M8mWoXdyO6h|O#YtehY_8Ciuu z6dNOi3$hxf+ZJjef;Isug{s7&(E+4E5#}OMIT#D%6qun1r$GFt&q`A#If9(T%FG51 zMpkAv2Ua;YMpjJ)Rtr5=Q9V{hB_<9AM#lK~&|t?94aXpNLmkH;cOy*&jcSF`%)Am~ zqxcd9(3L{LItrjO$J`ASY!$%jG_64b!M+L_N~Oh#B?_trItr?WItr>rN(xpAO14Ex z3L0RInjo&H5?Gg!rjCLVL<VG+rUKZMAlG1Pg<8;ANT74;Kxak4k3s~WT?xJ}-Nn-# zbm|)Dh%3-N2k;Y)f}Ne>9X*4bgFvU!xd-`&2E+&C7lRL$1f50*I&}(s1{CDXQ|KXE zpd-%W6>ywM2RirEIlm~?1-!uB#nsn2C_c<N-r2+3H7F?Fw>Vot!!XoG!Nx`bx2k~r zVvv83&Rh%!9hw-Ade@$BKxllBV{lM>h-(Dc)rO#(M!^b0{er=F^n(1%5a8ou=<M$Y zJ|Y%!_!RW0?@$Ji_nn=C;{E*noE(E)Lp*|9T>Tuuh8aMPS}O$~#Z{^VRvH%K9~2+r z<m2z=2JwkOg)!)OFgJ*YK&BxpfqDZHcA!(FP!6#JsRr2%x&kBEHN-anbX7TW_+V84 zH4}757$~Yi5d=Ob40iAsByKcxK?g^JZ|X#_KtbvQxd{dR1T4r=$VkWPfsf~c9c%^; zImqE%@RM<oj~oNBLC22y1USbBJI9Aq7NokQrh!8&*f}UZ*vHj1z~2vixgscW8G>b; z-GYPSeO-Os97BCVf`i~;j_tTb&k)~upWvW)$K>SH;$le9LlY626f}6ChQQ89gLwqx zP!RU<VQ>Z?l^g6D5*h$Lixc%;GDwtRoaF^Rs}gdKG5B~i(D{(y8^*Al)Q9&BKj^`_ zi0h}^d>n&4oZZ|(r~HFcFwE&7=YlXOtp>+~5~+fQL4~V<fdL4I`e>qDtpz?0F)fV& zGgQEy3`MzLIl$T9FCacFF$Z+~pNWx$g}I9>gI}1Zvx0^Ohyq8Xf|jNNm;<s}lc6{> zJufu{a%Md^eFlVjy2J-K28H<fL*m7t!p#jSKR6>R0LPAJUI{3L#5+2N_yonfcm}(; zx`l)8fJILGI2D170G)3KKBygf=&>KDa04CJ20DQa6mp0o{=oN-y9GHqhk)<90H3Lj zxXc}tV%-Bg{ow&?WME+FY+zsj3fTDgP<XC_o(Bld>_|j_F7)uY;L75V%;fBN=a3+u zcxNB)VE@n{XIDswKvOCXB~TB+&YlCg9(J}p_y%jxx%SXAgrTK2s1S!HaM(HU-~%*~ zPd&tOa|h@YKG@OXX=$JnJ#k$S0|{dAtz7Z(*zVE+l|HZ&TR~L?I78$^%1Lms2Dv9a zJ|rjrH5i<o;?d=yVSwwfJ@{$J$f*x{U?enF4YA)|X>7y*isBGYUt<Lg4JZ?wu3b{o zKuH@aWDH3Fn&6Vj(-~A8x%#;ThXlKZU^pI48tQg<{DBTHR)8M|4LNlZwIHzsyUE$n z&(RI)C@>q{Sr9=`wo?F?+~BnB=?A^_7j|-Sd_4FBMD$BDVJAC7ngS_G44}#qd=jKf zkgL0=zaO}~1!WmXl7O6U3pq;{{peK4F}lIde&B=ZLGfIw1olF(GbGr+0qYpxWC-DE zgD!UiWg?KXAtfm!RU7Kzxnu?Nv}xE~FNk&mI51$vpNktbmx6SHQX|B#rI5qr@m5sM z9<I*b@j=01E}+{=baE4mvo#e!Oa(OsFb8_vKKLHSV5~Pm8!8xr8Wsj_uC6ZNzy-HN zg2BOR2n$z8oe61kfNNAxNe(&<A9Nc4`Z@Y3;Fbn7s-UJJ7m1)4gbG8`9MXmH;HZsP zfJ7DOlwQzb)<`!h#X|xJmY)<wVHxZ<c|YfpStVsEo%<@Crs|-~<pF>;#E&NDA<P z@<0i|0FnSggPojxyq(?LVf763h9yuSL<Wbr`oemY@g54023I~f81f-03{*B7Az1<9 zL%3i&3=B*RG#L=-1Jc^`_4kW+^+U<GIFvxc5t2zkX%ta!fT9p~?+>Vv1wLpOl&cVj zqk@G%*#ayCQUtlc0hIKR4qAu$7)*gK<pKq1um`A&aS9Cvw|>Bt6H>z%y9%gdL!p%c z$hnY;0$fc5G2pIWz!wjI&tQh$#TXB2?MHx}4L;Zv+=2uZ1lUj61r?HxE@+wE01*$y zCI+AzD$xTuB*+=om^K1kC=NZ~8B}M3uM&U;J93c*IxiXIdq|fAbV-`GYh-YUV+bT) znSrvLAvnu{RDlyFNRgv6=&DVy8Uw_=2jIpKtmy|%ukHaZzK+fw=Fnmn%0(}Dp~B`6 z4{Abndiukv5O5*{HDQqI5Re$W5<$KW6>)I_^k`vdB@V5b+@UUl*o7q<nHai)?_GkH zqiBc0L$2%srBhJyOHsm_7ce>&=n)0VFknUCB!(mlPNmNA;ETX<=O{E)U_(F+(2xLd zuQJTnG1wa#H}Ub{UI6kH>(Jzk)+2%3zXG|W1X4Fa4z7kYOZ?s9p~r;7E}R5qS4dOF z$<rNi*PV&6ks$-DZH-g}ff6jJ2!dY+Wen+*xPUq(F5w{|L5`TM78FUaFTwo*cn>i? z9{qwVM5Ljg(hrI<P>~F~c>&h-f;H&CM^;0}*Wx|m;}t;XNP`P;$idT~Di&0kq@|@H zGQOjar&D~ew`({!w2eVMSWu=0YXi6X;B^p4YbZEj2YC89`}-j$zW^tstZf7-#=$87 z+=YO4AfeY57#o3GOrZ8$aEP~~kEc6oxeLmrD3Z`%Lq7E$cAB!G8S)Y9&Q>v@#i>Qb zF=d%~$*FlIdIgy|Ir*g(F)sPZrManjCB-owsRfydF+Ks#5s(4ccvC$iJ+pWtLu2!p zf};EwXWwAY;4-5E0|Qtk69XQUV2F=LxhM)=szdWoJm|o5<dP6xhJee>OmMjgQkw~> zq+A@)ibkY%5VRVMkB3JDT5A9j6QFPcmu5k(AtC;tW)4dAg+&@1kRWkzs`LQeIP3zB zc2KMb1bISwsUTNYKwKH>7!+avE%?A}^kNSp2(nv26O`I86B;<VXM*cz$Wh?P{VGtC zHwc~@&<0eH+c6+VgVF?=60nEjAvfHEBES{-ssK<FfwBw8KcL$iLww^yKqCv0e&8ww z*?4ftgCqww7czVVY7@aP83Fa^KsSB(gn%xX!5E!^#}_;pKrscvp$zfaL|&E$HUykp z;9VGa>k51;4ya}gcL{+;OSnr2dZd7apivSZ4;j0GRv?C^NX<^qC|7Xg8#2VlLoZ2# z=1@a325@5!+|C1!Re)|j2OX-e1G?}WI!XZ&gPg0LmVtB|I=smlftsz6#lhhVic@ex zbd3PteC-2v4XDzG<!(@;2o&T<1s5nVLD&a$I6Js85D|~sQ!)f~bz%LUcm?=%7@!-M zObyJ9Ele#;4a|)U3{6sXjSVcomv=x70!1kL1tOrc?O~}1HmV7Vd_>&?G8pqx5a?Yg zpr#%u0fMht0Cl#J@7e-|fCs4d0JTR#oFD-JiVj!+z*7JyCXnh_@Bk^O1`ZB!g$%wz zx(_anu-j>&O$ARQXG3U0@ic;uvcWpBAX!K$4(fHmd<whq50nr=4Ms#&3L3A2SEjIw z;vl!|fn1E5Xp#HfAdiAa^<2aJ{lKjT<lKiT3r-*C{ta`E_izkyA!0-rrVMOMd_2;S zu#>;P56Ue(u$=D{8XO5ue@4dOfiO@>;Thr!YKtN}6{Z|21+@Saui$ID<6(tEJSgBG z^*89EEKpE_Yg9;zh7Kiz(lHD}f)=C>q!Ze!0%t-n0WSeS2?0FD1T97(*#mx0A#9i_ zKo@?sf|qYVJZPj0)RI;(f{blAx`4*(Km`e?iH_DR1qnfm4^Yg2vnaH#Kn@CYIcQiw zvl3`X8Qw9{&@~1%I^iV%XzU$qlsRM!97O_Z4roBr*a)TXi4q8K4!BGNO_cb?!)^}( zUqk}RQ~p8mjzOLw9=@(2p3b0R4wOtGxfvWo$ai6c!s9(87+17IWS}ktjXZ%O3lYum zyaDR2K(C_#4Z4Ff24tim0y@|Q9^njf4f70!jjI@dn^xeqJv7IH+31BkL=YN3pcsS< z`2;!oLUqCU=sFP+Al={`k9;v$JmmUOPzZtDi+<4<Xn+7zl4YXaJ_$+&Xsr<Ncs-~X z1J%G_vmky?fix-tT|J>r4RrNHcO*y%<U9pUaBzSI;UFaxq?>~>UStSrk!yl$H1H5= zK#*sci>n)Y<bhHbx;!`vL80dk>PsQpfHEEdu>ce#phN@Dys)+%Ec5#KfZH(O5)L$P z;o|Cw*%LsO1v?-<9(0=*v~D&t0UH9&ZtxlroJ(M1!Ol+csIpK)KnW4G4zxt>(>VtP z2gL`ux(B=ZKpKb!6^78kcBCQ}Sryb=kiWsv2WifLI|4ATgQ{OpX+`i7DUczcz=Jel zk!o_J>=sazTAZAilL~R3F{Ds{6}2J3aA~l+K(U4xH`FkwFflN&01cEthTp;Wj)U)< z^z`%b^m7Hz=7IEh8acz7ve>IaXb%RIF+gL}AV)*eEx6i;jp`%neeex7;OR2Z$e&-R zb9{hfh_i=}YZ!dQ1gYkMm1ptbIV86rS6A=|3#d;Au?5sb^$Wq5#=t#^3Q&VoDJKUs zjT8^|C*lqz_zj`pHd|UwY96S~2D^6&#D}%lkOr+m<s@`01f1GHsRNok;CUNK4LA-! zy;k@|T%c|=wA1Psfw&wTbRQVV0C19pb&o+sgAt<h37Yr_@pSeEB@&Pn_~s*UMF~oB zXyakv4hC2f6i8^2pacNIpusY5mm>uff1q*a6eWfr*I?J6Fjp7Q6^!5@3k`8YT&)JG z7!iX5h*2g`!xC~y5O{bV*VHxW?pBxuW{~<HT(`h$KVu8H1HeHAnOA~V+@Q;%0(2oa zrGiq6r>k?ksi~y`s7D5BJA!-xDs{o_M^G?91i&_cYA;xR1l@=f;_vI}93Si&81Eb$ zqF@Rc8m$0#y(%Ep4!jJ4&a8qX9I1Fgmxo3+sOSe51mJ<cOq3BL@IX#5sC)@>iG*Ze zsDVg@3#uZpsh}(gE_|ImjG)y4l#5;^K!u@0x{&f7Jf`goZm=1eBTY4fM=Ze2D@b)7 z6yX%==H?m{@9G;65~*NNVe05;3c}!81Ki9Cb`5Y0atwj=g}}iMsTCo!WeTWuI;dg? z71IhD8lbcdYB_-#(;zme)&i9spi&W1*nta7P#pn@iF`y5f=d+Co6bSu0qRY|1`I)L z^pF6FAq^O!-xmxjwIF3lK4k7D$PZlbBU%{o@ovt}{u=S|Zt<Rep!)}nLVbJ`v=rjw zeZeF|SYIJN-VahjV2(LMvMD@NAop6vgUd4b%qO%)gAVjS%mB6egTru-S|jAqlZOfJ z>e<i&%TRupbG)Cwa{v+j1eh|ojX@!3qcYGs0W@)71ZfN)rD||5EX+9`G}a8V4HPuy z$TcrC*@H^_P}Bwik}0T)z)lGbcJj<C2`<4f%Q+r2F6!wQ0+};1h8HY`phOuD3F**a zckm1WC`4UdP_iT_onlo4wiYA{Zpwjl28THNpf0_^A`RCDF*G<b7*v|$j$|YSV6Cun z)0hErX((zd#?Tz@KhUTEw44TI!Fb4Bw%{f!%nVa-gAp{QZUQe)JpIwL5Lh0Ppg@@w z-$l`o@gHy*fi{^9%BvxszObHkh^H^QH6U4pEuq2i%F+;2MSu!=Jkx|m3Wi|6xcWN6 zx@jOLx*cFKP^klLD?9r_%LeFVC#X7vw28oLF#>`>OBOssg26R|vwx6lJV=K}yt}KP zYmlciXetd<<3QUNrAnZA69Z@P@)G#iAh-g64i18X($fz%4h7|*I}#?0<j$ZFn6E(D z4OE08&53}7plZRB_4udi!KohHzzA~&wY|U<0w^(gzz0G=qd{&i0iMqB@!%GxXLwM& zV@Q~zkEe?-Sh)e%pYgC&J)pRSjBi6z5rl*8FQ_Qgso>ROX!DguAa{UzK%g2M+7JOP z`h#@bp(Aae`UX4~k7!n6A5QWCrwC_9KUku3cJxDc6G#?0(Lrni^~B>Liwht_t?)`7 z+)V)$T8IJpP^1MIAQ_M!V51x0-~)||z<a^q!F^DD2d;LZ)gA2SY^1KS0c0xA*{=dp zJwe*8&VDH4&7i66cppb+@8EbxA0K~bu;HL_JkY2dbP*xwrcU&t6IA}9b+>RR0T(&J z$ct`V{T!WqU^PFiATbBEPfJpBL8dt8<R@o`7NjJWq=F*=wJiealcM$*4MDTZkd`_u zvw#XtNC62enn7JuQ1BXBfCkM$A%%3;CwRaIL?GYyi8QhY>RG!-M8rEfdB#KA{tAW$ zh9(U0;AVejaY;!fa=RZafN1!G5;&+K0c&-E*yt$<BnEG9ft-)17Q*mX3t(w*Ktr-G zG~ytM&`{6Bz|hFj!o<wP*vQ1f(A+Rp*TmF~AwC{b9Qk;I7O;YwDE`6Dpe0e73ZTY_ zv$KzPyo+ZTsKgHO^mRqP?;hlx5Kmv2Z?KoeaKAuRL#uU2{GrTU89-`zjHP65{ywNx zDRvcLpMw$(c+w~yvbG@188SBkS+59MZwksYD7Wi|LPikK7rrS##st8j@8|0Yu9tDG zE<%zAy8@gBA@fe4(kBBv`vMv&Kom8GdWM!p29`z^mZqi#<`#xVrm4E-Zpf_;XXw~L zcphq70LhEUO28H)$wAvTpqv#F9}Jn0H-c2u&W?W0L6Fi4OEiFD!9WvU{ey~0(2cU- z7Bs>)py~=#x<X17&_W9691nOj7rAo-8%zL8fL#e0F$9msdj>l~rjWoL2{V&;q|68( zW&~wO1rUMAm7t6Pnv`<!42w6wxn>O^3$_=f{BiaV^$T(HadZdQMBuhTDB^BmP;U`b z_`-%YeI1dmfd=0I4C)y|m(M{~Ke+n2cslyI21DA1gfF27djT{90V|n6tJw036%5V5 z9i$*9$Dnve7Z+&c8&rV0tMH|opn)}n3b60Mi4M}y0Y_6lWMLJkHxFJ}0qPBbFlZGa zXy^kRq2O{7yf6l~AP(Ar00jW3tpr{98sZup67T5e0;;RyLxMs<chEzdO5oH4t+2st z^b!ps2(7L`z6R$h(6|ODQ+fKiL)yu>20vhmz@7wYhm_~ArO2T2967mRR{_=>531vw zLw(^BHK5`gJZK&ds_0OspFrk-*F3{k{eYG~gBJaO7R*A1$*?H_TLg+7uzxjzouP|> zLERVw7fa|8IB>fIWGBiBbLeV|;8160*Wh6AI7A4%F=b{9Nfw|5^iGfvgLd{owt+k4 zPN1Z$$pBtzVP>KLy)+zL8GxqEKy@8rWCXm>7BoVR$i)$mL1Jh{i&9XdRkWbxLrA&U zH6kS56O`FNjRc5zfO9ao6#*(Iz$p!!Cc*3SgOL_?7#J8q2H%4NJaLvtMxf?2r~(2_ zlYvt#xDyZJfsKX<dHRKbTSMTHPSBJCWC9ja0fOecy}^xEaPkACs^BotdQnhgz{mpJ z#0YZqg*w8Z!VqLBbY(Fpq9K_)I5HSqq6WDJf&v@d_x4vP%g;$H$;?TG3^t^Iy$a4$ zpjJM3Sp%%K5FZ@s1X>Ud3PAM28nJK(<RnnJ3vc^_O@t04A-B2F6F#yWI3<EA-QeH= zl(<A0$On(#Lc=x_+W!DoR~SxL(9nnncUw?B<m>3^2ihHCXr`%9qkv6CaHtc=0#JJ# zRA@q{B0__mpoIo#RU%qf1SAB`Kp>6K&L?=dL%|4KQ6MkW1P?hu7Ds~y>A)!hX>AI) zWOs3Ojt3Q4@xHDh9{w)zkU<mV0v<eX<>u=H⪼z3lBFxUr$i!0*Vbo23VuR(>Wvv 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 TS>2Pn3=E)gMUWf_!_)x)0}%jG literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/makefile b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/makefile new file mode 100644 index 0000000..632bb01 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/makefile @@ -0,0 +1,60 @@ +################################################################################ +# 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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/objects.mk b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/objects.mk new file mode 100644 index 0000000..dc31e16 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/sources.mk b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/sources.mk new file mode 100644 index 0000000..ad6c692 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/sources.mk @@ -0,0 +1,18 @@ +################################################################################ +# 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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d new file mode 100644 index 0000000..d76bd14 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.d @@ -0,0 +1 @@ +src/core_cm3.o src/core_cm3.d: ../src/core_cm3.c diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.o b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.o new file mode 100644 index 0000000000000000000000000000000000000000..31dd02d8f6cfecf495556c15dbaca10b6bc1058f GIT binary patch literal 30504 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 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.su b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/core_cm3.su new file mode 100644 index 0000000..e69de29 diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/subdir.mk b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/subdir.mk new file mode 100644 index 0000000..2d446c7 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/subdir.mk @@ -0,0 +1,34 @@ +################################################################################ +# 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 -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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d new file mode 100644 index 0000000..c9e1188 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.d @@ -0,0 +1,8 @@ +src/system_LPC17xx.o src/system_LPC17xx.d: ../src/system_LPC17xx.c \ + ../inc/LPC17xx.h ../inc/core_cm3.h ../inc/core_cmInstr.h \ + ../inc/core_cmFunc.h ../inc/system_LPC17xx.h +../inc/LPC17xx.h: +../inc/core_cm3.h: +../inc/core_cmInstr.h: +../inc/core_cmFunc.h: +../inc/system_LPC17xx.h: diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.o new file mode 100644 index 0000000000000000000000000000000000000000..1ec628d39ff0a4c3b5e1cedcefa1dda43568055f GIT binary patch literal 59240 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 S)jhe(zyKOo1j&IgOdS9i>k!8P literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su new file mode 100644 index 0000000..1b9d658 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/Debug/src/system_LPC17xx.su @@ -0,0 +1,2 @@ +../src/system_LPC17xx.c:424:6:SystemCoreClockUpdate 16 static +../src/system_LPC17xx.c:475:6:SystemInit 0 static diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/CMSIS END USER LICENCE AGREEMENT.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e04afaee6286ce461b2ab5f286c6f99b232f5ae0 GIT binary patch literal 51511 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�{Rd@ZGE7}V}sx+~V6HQfG)>|I{-;7hmPbe@vC zwv)rlNk2XA!@osV@7r!ie6XudU*=Ju7`v3gIM4NW_p3MWJ~_wmsxB+iGM>cqv!&AJ z^vReuy`%FUM?AWjQllptyS!wx-dsOD)wQ!-ziQR}Oy3>-{eF(kx3J3pjBVZvS#nHQ z?@F7LXsfy)v8XlnvT?bWt9{Y6<Zn}FA1`|`({FEtPF=_Buiri$=HK!DdA!}xSH9J< zzh6~UZ<lOY8CUxHACs<2*Y+!pGa{4T?|0MNKD%*}#f2v|<>HlJr+-u47V>q?TV?M* z-~PP#d9z!-|Mu;7Mb|^mo3DPm>vl|deaY;_zV~}Sr*41U{&;p-`@Yb<d7mS!*-w5g zxE!CcMeFceuC=RIwoZ0r*<u=>z3}3>fD1lb+?U8&E&1|5O85NcKfxZqXRUmZ_{r@` zuc)5Mp~!*~zy8g+y|&jm?if7W>Y1*2B12PWMcIb)RS)-y`LRB1X1r%`?AnazHH&{= z>pfBzwb|nK0lrN$f4uN#-v6?uq_}(Y409E3Ig#^)w;eA$zGPwIdGF-}OFQOmf^55b zJd3$!YxZ565ZjT+ESVzvbXrB<R|)weQ*#e3XHhk~<!;excJ7>{MBr~0h4yC&VGAZT zG3A}$T*Lk$Mdrf{;Wm-rgkwx6*v?iOF?bpoL<DUp<?B0drStlUDYNZ_%e+rs^jL{= z-fT~aoclqpNUrhg!9vD@Pu~L;*mB8<9`5mYK4;Iou7`>fWA8=lby!ZkA7U}Z!RwzL zmxh*BM>VTA>*1pYftn2=Jl{K$SI(a4qsbTiqk7**^^NgwcllSSUzp4^_u*}+=6O<w zFRshZ|L<?lQ6Sio&U@*_%vVz7f~m`QwD>5k*?CJXvg%_>%)vk6y`L@^PFn0PZYnS1 zCK6!mV&ndthvCAU#-LAD(j3eYW>+|;KXr?dGtV$`HD4>P+_5G<Lfq0=s>}EpTYvJV z##fTRkG!^26Mnt$Z_{Cm6d%QX`gVm}4h1i59<8x|eK6haUho<2Cr2$5Id;E#!l5qp zd1~n94@->wH4JJh!lF0*3ca>RCYOWlczaHG?s3z0?@Ukg(j!GyFS#ZdPtH?&U&Qp* z<H^w(OW3Ex=+2yb(Ppw$`u>n3&W}9Kr#=gvru}&1rlqS5)_1i({j(&y;lLZ)#V@9Q zdc7{-{d=x27Y>})yX4&Lvg-1Vcem1SpBEPjZdZ$s{=2VA`uE$rd7{+}AK%5zJ^FA_ zRq>`Z=N>;-oZB{6Rq4Ffv<?ref<|@|vxWP`zgcfs_>(W^K=_-BVzy6vmfx8#Z*y(h z_P3?}f2Xs|o7l-NR{q%GqP+Lo0%=(tTj@u~?|<C7u1>BYS~hoG{^AK&3xB^%eX}l~ zO>6S274Z{~GlY~F^zwf=mGr@zY5(a%6|y1glfCaVY++^izwcQazwR=tT>IsnpGt%0 zmeulayvcQQ=bOC6$G+UQ@sD3@%Xc~a=YfnZ_PZ|bxVElB=9PM-&fPP~OE(>7c>g(K zr9oxR+F3T&44&*ezNP5=!7p9YPhO0F-*!7s_;<BX`ql2YKet((%>VQ1?)-YrpOcq# z9oBc-T>fvr^7D&{SQ_s}777LmpvJq6jec-uRjPuKCAJ$qz?DKoP->dKXI@HbMYMr} zk!7rYc(kE{k%D0?tY)w@*AL3iFHr!s{Dbs8^V0Ga48d1`c)CQ}BpaC~o0=vYnx-YE zB_*b&8W^M`T9}%cCL5TirKKht+1Z#{nkSkhCmW<BS{fvoB^el{rWqKfrKTFC7#f(E zr<vNtB3C=2J$rc_7$jWo|6D$4f<jg+tB&Hf4Rd5w7Hw)2H1Xp8vG38-d$ENKjJAuu zOqsIqVHtnVg$|QF8TV?sP31Gz-Vs*5YPG2L(>zDrjFfrV@o#o+y(jr2>_yFmuOFEm iOnK6<gjI1#Vo^y&QED15m#Lwlg*h*ms;aBM8!rII?O<U5 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt new file mode 100644 index 0000000..316499c --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/docs/cmsis_readme.txt @@ -0,0 +1,44 @@ +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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/history.txt b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/history.txt new file mode 100644 index 0000000..42ca3af --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/history.txt @@ -0,0 +1,12 @@ +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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/LPC17xx.h b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/LPC17xx.h new file mode 100644 index 0000000..8c4050b --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/LPC17xx.h @@ -0,0 +1,1035 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cm3.h b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cm3.h new file mode 100644 index 0000000..6b019a4 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cm3.h @@ -0,0 +1,1236 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmFunc.h b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmFunc.h new file mode 100644 index 0000000..1ff04d9 --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmFunc.h @@ -0,0 +1,844 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmInstr.h b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmInstr.h new file mode 100644 index 0000000..95ce06c --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/core_cmInstr.h @@ -0,0 +1,775 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h new file mode 100644 index 0000000..e58767e --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/inc/system_LPC17xx.h @@ -0,0 +1,64 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/core_cm3.c b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/core_cm3.c new file mode 100644 index 0000000..fd052ce --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/core_cm3.c @@ -0,0 +1,339 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/system_LPC17xx.c b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/system_LPC17xx.c new file mode 100644 index 0000000..b9d674a --- /dev/null +++ b/labo4.1_dma.zip_expanded/CMSISv2p00_LPC17xx/src/system_LPC17xx.c @@ -0,0 +1,532 @@ +/**************************************************************************//** + * @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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.cproject b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.cproject new file mode 100644 index 0000000..ffc8711 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.cproject @@ -0,0 +1,432 @@ +<?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.759137190"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.debug.759137190" 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.759137190" 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.759137190." name="/" resourcePath=""> + <toolChain id="com.crt.advproject.toolchain.exe.debug.1684703405" 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.133767262" name="ARM-based MCU (Debug)" superClass="com.crt.advproject.platform.exe.debug"/> + <builder buildPath="${workspace_loc:/DMA}/Debug" id="com.crt.advproject.builder.exe.debug.1951708241" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.debug"/> + <tool id="com.crt.advproject.cpp.exe.debug.257202383" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.debug"> + <option id="com.crt.advproject.cpp.hdrlib.1013517114" name="Library headers" superClass="com.crt.advproject.cpp.hdrlib" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.cpp.fpu.1048262649" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="false"/> + <option id="gnu.cpp.compiler.option.preprocessor.def.84294886" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false"/> + </tool> + <tool id="com.crt.advproject.gcc.exe.debug.539033493" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug"> + <option id="com.crt.advproject.gcc.arch.1170544040" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="false" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gcc.thumb.1968363922" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> + <option id="com.crt.advproject.gcc.hdrlib.1612087667" 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.912508532" 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.1763946515" 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.1707353691" 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.1661516376" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.fpu.720820219" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.c.misc.dialect.1446333440" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.dialect.flags.1307425866" name="Other dialect flags" superClass="gnu.c.compiler.option.dialect.flags" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.preprocessor.nostdinc.909615971" name="Do not search system directories (-nostdinc)" superClass="gnu.c.compiler.option.preprocessor.nostdinc" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.preprocess.439797842" name="Preprocess only (-E)" superClass="gnu.c.compiler.option.preprocessor.preprocess" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.undef.symbol.449042763" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.include.files.974785944" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.optimization.flags.1931586061" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.exe.debug.option.debugging.level.1769226226" name="Debug Level" superClass="com.crt.advproject.gcc.exe.debug.option.debugging.level" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.other.548900667" name="Other debugging flags" superClass="gnu.c.compiler.option.debugging.other" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.prof.1369720924" name="Generate prof information (-p)" superClass="gnu.c.compiler.option.debugging.prof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.gprof.98222825" name="Generate gprof information (-pg)" superClass="gnu.c.compiler.option.debugging.gprof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.codecov.812325675" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.compiler.option.debugging.codecov" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.syntax.410747835" name="Check syntax only (-fsyntax-only)" superClass="gnu.c.compiler.option.warnings.syntax" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.187076573" name="Pedantic (-pedantic)" superClass="gnu.c.compiler.option.warnings.pedantic" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.error.337179168" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.nowarn.1154615046" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.allwarn.1926999418" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.extrawarn.101320728" name="Extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.toerrors.648255684" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wconversion.593992824" name="Implicit conversion warnings (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.verbose.856337646" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.ansi.822433816" name="Support ANSI programs (-ansi)" superClass="gnu.c.compiler.option.misc.ansi" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.pic.1229372871" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.514477504" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.gcc.lto" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.fat.496636765" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.gcc.lto.fat" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.thumbinterwork.1788425183" name="Enable Thumb interworking" superClass="com.crt.advproject.gcc.thumbinterwork" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.securestate.2016941803" name="TrustZone Project Type" superClass="com.crt.advproject.gcc.securestate" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.stackusage.1302681121" name="Generate Stack Usage Info (-fstack-usage)" superClass="com.crt.advproject.gcc.stackusage" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.specs.1825616703" name="Specs" superClass="com.crt.advproject.gcc.specs" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.config.1968497993" name="Obsolete (Config)" superClass="com.crt.advproject.gcc.config" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.store.2121378136" name="Obsolete (Store)" superClass="com.crt.advproject.gcc.store" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitaddress.1012825298" name="Sanitize address (-fsanitize=address)" superClass="gnu.c.compiler.option.debugging.sanitaddress" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitpointers.1095888294" name="Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)" superClass="gnu.c.compiler.option.debugging.sanitpointers" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitthread.147499038" name="Sanitize data race in multi-thread (-fsanitize=thread)" superClass="gnu.c.compiler.option.debugging.sanitthread" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitleak.2123069367" name="Sanitize memory leak (-fsanitize=leak)" superClass="gnu.c.compiler.option.debugging.sanitleak" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitundef.1043848099" name="Sanitize undefined behavior (-fsanitize=undefined)" superClass="gnu.c.compiler.option.debugging.sanitundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastalign.819576431" name="Pointer cast with different alignment (-Wcast-align)" superClass="gnu.c.compiler.option.warnings.wcastalign" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastqual.1611000716" name="Removing type qualifier from cast target type (-Wcast-qual)" superClass="gnu.c.compiler.option.warnings.wcastqual" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wdisabledopt.1948858424" name="Requested optimization pass is disabled (-Wdisabled-optimization)" superClass="gnu.c.compiler.option.warnings.wdisabledopt" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wlogicalop.1736477901" name="Suspicious uses of logical operators (-Wlogical-op)" superClass="gnu.c.compiler.option.warnings.wlogicalop" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingdecl.255181734" name="Global function without previous declaration (-Wmissing-declarations)" superClass="gnu.c.compiler.option.warnings.wmissingdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingincdir.65784046" name="User-supplied include directory does not exist (-Wmissing-include-dirs)" superClass="gnu.c.compiler.option.warnings.wmissingincdir" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wredundantdecl.1007310115" name="More than one declaration in the same scope (-Wredundant-decls)" superClass="gnu.c.compiler.option.warnings.wredundantdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wshadow.2144318796" name="Local symbol shadows upper scope symbol (-Wshadow)" superClass="gnu.c.compiler.option.warnings.wshadow" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wsignconv.1966295846" name="Implicit conversions that may change the sign (-Wsign-conversion)" superClass="gnu.c.compiler.option.warnings.wsignconv" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wswitchdef.1236642997" name="A switch statement does not have a default case (-Wswitch-default)" superClass="gnu.c.compiler.option.warnings.wswitchdef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wundef.811191702" name="An undefined identifier is evaluated in an #if directive (-Wundef)" superClass="gnu.c.compiler.option.warnings.wundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wwritestrings.333633367" name="Treat strings always as const (-Wwrite-strings)" superClass="gnu.c.compiler.option.warnings.wwritestrings" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wfloatequal.511042916" name="Direct float equal check (-Wfloat-equal)" superClass="gnu.c.compiler.option.warnings.wfloatequal" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.hardening.1561241787" name="Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)" superClass="gnu.c.compiler.option.misc.hardening" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.randomization.1905345776" name="Address randomization (-fPIE)" superClass="gnu.c.compiler.option.misc.randomization" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.merge.constants.354617686" name="Merge Identical Constants (-fmerge-constants)" superClass="com.crt.advproject.gcc.merge.constants" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.prefixmap.769520238" name="Remove path from __FILE__ (-fmacro-prefix-map)" superClass="com.crt.advproject.gcc.prefixmap" useByScannerDiscovery="false"/> + <inputType id="com.crt.advproject.compiler.input.1553950747" superClass="com.crt.advproject.compiler.input"/> + </tool> + <tool id="com.crt.advproject.gas.exe.debug.318240918" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.debug"> + <option id="com.crt.advproject.gas.arch.454612405" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gas.thumb.2142253947" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> + <option id="gnu.both.asm.option.flags.crt.1278636689" 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.1686431646" 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.1622170602" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> + <option id="gnu.both.asm.option.include.paths.1724194092" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/> + <option id="gnu.both.asm.option.warnings.nowarn.1675556306" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/> + <option id="gnu.both.asm.option.version.1644366591" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/> + <option id="com.crt.advproject.gas.exe.debug.option.debugging.level.402058090" name="Debug level" superClass="com.crt.advproject.gas.exe.debug.option.debugging.level"/> + <option id="com.crt.advproject.gas.thumbinterwork.74935041" name="Enable Thumb interworking" superClass="com.crt.advproject.gas.thumbinterwork"/> + <option id="com.crt.advproject.gas.specs.485248268" name="Specs" superClass="com.crt.advproject.gas.specs"/> + <option id="com.crt.advproject.gas.config.309143222" name="Obsolete (Config)" superClass="com.crt.advproject.gas.config"/> + <option id="com.crt.advproject.gas.store.883639415" name="Obsolete (Store)" superClass="com.crt.advproject.gas.store"/> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.895668814" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <inputType id="com.crt.advproject.assembler.input.1159773651" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> + </tool> + <tool id="com.crt.advproject.link.cpp.exe.debug.1354615354" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.debug"> + <option id="com.crt.advproject.link.cpp.hdrlib.2131198946" name="Library" superClass="com.crt.advproject.link.cpp.hdrlib"/> + <option id="com.crt.advproject.link.cpp.fpu.1093423018" name="Floating point" superClass="com.crt.advproject.link.cpp.fpu"/> + </tool> + <tool id="com.crt.advproject.link.exe.debug.421327955" name="MCU Linker" superClass="com.crt.advproject.link.exe.debug"> + <option id="com.crt.advproject.link.arch.2069944773" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.link.thumb.349317828" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> + <option id="com.crt.advproject.link.script.1594733055" name="Linker script" superClass="com.crt.advproject.link.script" value="labo4_1_DMA_new_Debug.ld" valueType="string"/> + <option id="com.crt.advproject.link.manage.934372619" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> + <option id="gnu.c.link.option.nostdlibs.138138192" 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.1913094978" 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.925832417" 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.121590758" name="Libraries (-l)" superClass="gnu.c.link.option.libs" useByScannerDiscovery="false" valueType="libs"> + <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> + </option> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.155586263" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Debug}""/> + </option> + <option id="com.crt.advproject.link.crpenable.246438003" 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.136827212" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.468052586" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" useByScannerDiscovery="false" valueType="userObjs"/> + <option id="com.crt.advproject.link.memory.load.image.1003890442" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" useByScannerDiscovery="false" value="" valueType="string"/> + <option id="com.crt.advproject.link.memory.heapAndStack.1397681202" 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.1667087043" name="Global data placement" superClass="com.crt.advproject.link.memory.data" useByScannerDiscovery="false" value="" valueType="string"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.872715273" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" useByScannerDiscovery="false" valueType="stringList"/> + <option id="com.crt.advproject.link.fpu.342615623" name="Floating point" superClass="com.crt.advproject.link.fpu"/> + <option id="gnu.c.link.option.nostart.888635043" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart"/> + <option id="gnu.c.link.option.nodeflibs.202013517" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.c.link.option.nodeflibs"/> + <option id="gnu.c.link.option.strip.1055550263" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip"/> + <option id="gnu.c.link.option.noshared.771216685" name="No shared libraries (-static)" superClass="gnu.c.link.option.noshared"/> + <option id="gnu.c.link.option.ldflags.1237289977" name="Linker flags" superClass="gnu.c.link.option.ldflags"/> + <option id="gnu.c.link.option.userobjs.1620371415" name="Other objects" superClass="gnu.c.link.option.userobjs"/> + <option id="gnu.c.link.option.shared.1806849252" name="Shared (-shared)" superClass="gnu.c.link.option.shared"/> + <option id="gnu.c.link.option.soname.1129001480" name="Shared object name (-Wl,-soname=)" superClass="gnu.c.link.option.soname"/> + <option id="gnu.c.link.option.implname.521377172" name="Import Library name (-Wl,--out-implib=)" superClass="gnu.c.link.option.implname"/> + <option id="gnu.c.link.option.defname.211755723" name="DEF file name (-Wl,--output-def=)" superClass="gnu.c.link.option.defname"/> + <option id="gnu.c.link.option.debugging.prof.2041696934" name="Generate prof information (-p)" superClass="gnu.c.link.option.debugging.prof"/> + <option id="gnu.c.link.option.debugging.gprof.1710536806" name="Generate gprof information (-pg)" superClass="gnu.c.link.option.debugging.gprof"/> + <option id="gnu.c.link.option.debugging.codecov.377978008" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.link.option.debugging.codecov"/> + <option id="com.crt.advproject.link.gcc.lto.1873314970" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.link.gcc.lto"/> + <option id="com.crt.advproject.link.gcc.lto.optmization.level.410725501" name="Link-time optimization level" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> + <option id="com.crt.advproject.link.scriptdir.646612389" name="Script path" superClass="com.crt.advproject.link.scriptdir"/> + <option id="com.crt.advproject.link.flashconfigenable.307625287" name="Enable automatic placement of Flash Configuration field in image" superClass="com.crt.advproject.link.flashconfigenable"/> + <option id="com.crt.advproject.link.ecrp.945603073" name="Enhanced CRP" superClass="com.crt.advproject.link.ecrp"/> + <option id="com.crt.advproject.link.gcc.nanofloat.353709284" name="Enable printf float " superClass="com.crt.advproject.link.gcc.nanofloat"/> + <option id="com.crt.advproject.link.gcc.nanofloat.scanf.144698109" name="Enable scanf float " superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> + <option id="com.crt.advproject.link.toram.951984683" name="Link application to RAM" superClass="com.crt.advproject.link.toram"/> + <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.1473205692" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" useByScannerDiscovery="false" valueType="enumerated"/> + <option id="com.crt.advproject.link.stackOffset.1127819895" name="Stack offset" superClass="com.crt.advproject.link.stackOffset"/> + <option id="com.crt.advproject.link.gcc.multicore.master.1220355213" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> + <option id="com.crt.advproject.link.gcc.multicore.empty.1226824105" name="No Multicore options for this project" superClass="com.crt.advproject.link.gcc.multicore.empty"/> + <option id="com.crt.advproject.link.config.1264595433" name="Obsolete (Config)" superClass="com.crt.advproject.link.config"/> + <option id="com.crt.advproject.link.store.147301444" name="Obsolete (Store)" superClass="com.crt.advproject.link.store"/> + <option id="com.crt.advproject.link.securestate.1107759183" name="TrustZone Project Type" superClass="com.crt.advproject.link.securestate"/> + <option id="com.crt.advproject.link.sgstubs.placement.1810442581" name="Secure Gateway Placement" superClass="com.crt.advproject.link.sgstubs.placement"/> + <option id="com.crt.advproject.link.sgstubenable.481587220" name="Enable generation of Secure Gateway Import Library" superClass="com.crt.advproject.link.sgstubenable"/> + <option id="com.crt.advproject.link.nonsecureobject.1675102921" name="Secure Gateway Import Library" superClass="com.crt.advproject.link.nonsecureobject"/> + <option id="com.crt.advproject.link.inimplib.1113076906" name="Input Secure Gateway Import Library" superClass="com.crt.advproject.link.inimplib"/> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.3351919" 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.759783939" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.debug"> + <option id="com.crt.advproject.linkserver.debug.prevent.debug.1727300294" name="Prevent Debugging" superClass="com.crt.advproject.linkserver.debug.prevent.debug"/> + <option id="com.crt.advproject.miscellaneous.end_of_heap.1663011008" name="Last used address of the heap" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> + <option id="com.crt.advproject.miscellaneous.pvHeapStart.1885244500" name="First address of the heap" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> + <option id="com.crt.advproject.miscellaneous.pvHeapLimit.2142979611" name="Maximum extent of heap" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> + <option id="com.crt.advproject.debugger.security.nonsecureimageenable.1370883303" name="Enable pre-programming of Non-Secure Image" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> + <option id="com.crt.advproject.debugger.security.nonsecureimage.343349864" name="Non-Secure Project" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> + </tool> + </toolChain> + </folderInfo> + <fileInfo id="com.crt.advproject.config.exe.debug.759137190.src/cr_startup_lpc176x.c" name="cr_startup_lpc176x.c" rcbsApplicability="disable" resourcePath="src/cr_startup_lpc176x.c" toolsToInvoke="com.crt.advproject.gcc.exe.debug.539033493.1521387832"> + <tool id="com.crt.advproject.gcc.exe.debug.539033493.1521387832" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.debug.539033493"> + <option id="com.crt.advproject.gcc.exe.debug.option.optimization.level.786117415" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.debug.option.optimization.level" value="gnu.c.optimization.level.size" valueType="enumerated"/> + <inputType id="com.crt.advproject.compiler.input.315735395" superClass="com.crt.advproject.compiler.input"/> + </tool> + </fileInfo> + <sourceEntries> + <entry excluding="dmatest_corrige.c|dma_corrige.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.1841072117"> + <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.crt.advproject.config.exe.release.1841072117" 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.1841072117" 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.1841072117." name="/" resourcePath=""> + <toolChain id="com.crt.advproject.toolchain.exe.release.946991508" 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.369361787" name="ARM-based MCU (Release)" superClass="com.crt.advproject.platform.exe.release"/> + <builder buildPath="${workspace_loc:/DMA}/Release" id="com.crt.advproject.builder.exe.release.522510712" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="com.crt.advproject.builder.exe.release"/> + <tool id="com.crt.advproject.cpp.exe.release.1931373182" name="MCU C++ Compiler" superClass="com.crt.advproject.cpp.exe.release"/> + <tool id="com.crt.advproject.gcc.exe.release.782394619" name="MCU C Compiler" superClass="com.crt.advproject.gcc.exe.release"> + <option id="com.crt.advproject.gcc.arch.1968046138" name="Architecture" superClass="com.crt.advproject.gcc.arch" useByScannerDiscovery="false" value="com.crt.advproject.gcc.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gcc.thumb.1106364987" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" useByScannerDiscovery="false" value="true" valueType="boolean"/> + <option id="com.crt.advproject.gcc.hdrlib.529149763" 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.2045331867" 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="__USE_CMSIS=CMSISv2p00_LPC17xx"/> + </option> + <option id="gnu.c.compiler.option.misc.other.8759860" 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.866863291" 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.release.option.optimization.level.2121311730" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.c.optimization.level.size" valueType="enumerated"/> + <option id="com.crt.advproject.c.misc.dialect.1214139660" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.dialect.flags.2126908280" name="Other dialect flags" superClass="gnu.c.compiler.option.dialect.flags" useByScannerDiscovery="true"/> + <option id="gnu.c.compiler.option.preprocessor.nostdinc.370944889" name="Do not search system directories (-nostdinc)" superClass="gnu.c.compiler.option.preprocessor.nostdinc" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.preprocess.915512290" name="Preprocess only (-E)" superClass="gnu.c.compiler.option.preprocessor.preprocess" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.preprocessor.undef.symbol.553705064" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.include.files.1742334706" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.optimization.flags.22012920" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.exe.release.option.debugging.level.106272493" name="Debug Level" superClass="com.crt.advproject.gcc.exe.release.option.debugging.level" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.other.1650289295" name="Other debugging flags" superClass="gnu.c.compiler.option.debugging.other" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.prof.1142499179" name="Generate prof information (-p)" superClass="gnu.c.compiler.option.debugging.prof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.gprof.82585139" name="Generate gprof information (-pg)" superClass="gnu.c.compiler.option.debugging.gprof" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.codecov.624171351" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.compiler.option.debugging.codecov" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.syntax.233524565" name="Check syntax only (-fsyntax-only)" superClass="gnu.c.compiler.option.warnings.syntax" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.1095145725" name="Pedantic (-pedantic)" superClass="gnu.c.compiler.option.warnings.pedantic" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.pedantic.error.2047825567" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.nowarn.1254513261" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.allwarn.2106441859" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.extrawarn.656303608" name="Extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.toerrors.1249479833" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wconversion.176670457" name="Implicit conversion warnings (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.verbose.957383665" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.ansi.843374979" name="Support ANSI programs (-ansi)" superClass="gnu.c.compiler.option.misc.ansi" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.pic.387756101" name="Position Independent Code (-fPIC)" superClass="gnu.c.compiler.option.misc.pic" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.932446329" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.gcc.lto" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.lto.fat.167486860" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.gcc.lto.fat" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.fpu.1250815240" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.thumbinterwork.1787668880" name="Enable Thumb interworking" superClass="com.crt.advproject.gcc.thumbinterwork" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.securestate.1566755253" name="TrustZone Project Type" superClass="com.crt.advproject.gcc.securestate" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.stackusage.1682849053" name="Generate Stack Usage Info (-fstack-usage)" superClass="com.crt.advproject.gcc.stackusage" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.specs.2062589239" name="Specs" superClass="com.crt.advproject.gcc.specs" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.config.912057910" name="Obsolete (Config)" superClass="com.crt.advproject.gcc.config" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.store.1645493582" name="Obsolete (Store)" superClass="com.crt.advproject.gcc.store" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitaddress.1870660741" name="Sanitize address (-fsanitize=address)" superClass="gnu.c.compiler.option.debugging.sanitaddress" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitpointers.1950182223" name="Sanitize pointer operations (-fsanitize=pointer-compare -fsanitize=pointer-subtract)" superClass="gnu.c.compiler.option.debugging.sanitpointers" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitthread.401834893" name="Sanitize data race in multi-thread (-fsanitize=thread)" superClass="gnu.c.compiler.option.debugging.sanitthread" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitleak.1587206872" name="Sanitize memory leak (-fsanitize=leak)" superClass="gnu.c.compiler.option.debugging.sanitleak" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.debugging.sanitundef.1561180447" name="Sanitize undefined behavior (-fsanitize=undefined)" superClass="gnu.c.compiler.option.debugging.sanitundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastalign.417402416" name="Pointer cast with different alignment (-Wcast-align)" superClass="gnu.c.compiler.option.warnings.wcastalign" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wcastqual.1965307955" name="Removing type qualifier from cast target type (-Wcast-qual)" superClass="gnu.c.compiler.option.warnings.wcastqual" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wdisabledopt.795254616" name="Requested optimization pass is disabled (-Wdisabled-optimization)" superClass="gnu.c.compiler.option.warnings.wdisabledopt" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wlogicalop.993199517" name="Suspicious uses of logical operators (-Wlogical-op)" superClass="gnu.c.compiler.option.warnings.wlogicalop" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingdecl.340592262" name="Global function without previous declaration (-Wmissing-declarations)" superClass="gnu.c.compiler.option.warnings.wmissingdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wmissingincdir.1457007981" name="User-supplied include directory does not exist (-Wmissing-include-dirs)" superClass="gnu.c.compiler.option.warnings.wmissingincdir" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wredundantdecl.883170380" name="More than one declaration in the same scope (-Wredundant-decls)" superClass="gnu.c.compiler.option.warnings.wredundantdecl" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wshadow.1513206692" name="Local symbol shadows upper scope symbol (-Wshadow)" superClass="gnu.c.compiler.option.warnings.wshadow" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wsignconv.1814948810" name="Implicit conversions that may change the sign (-Wsign-conversion)" superClass="gnu.c.compiler.option.warnings.wsignconv" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wswitchdef.42797210" name="A switch statement does not have a default case (-Wswitch-default)" superClass="gnu.c.compiler.option.warnings.wswitchdef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wundef.1663779544" name="An undefined identifier is evaluated in an #if directive (-Wundef)" superClass="gnu.c.compiler.option.warnings.wundef" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wwritestrings.451470164" name="Treat strings always as const (-Wwrite-strings)" superClass="gnu.c.compiler.option.warnings.wwritestrings" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.warnings.wfloatequal.1416937000" name="Direct float equal check (-Wfloat-equal)" superClass="gnu.c.compiler.option.warnings.wfloatequal" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.hardening.246059169" name="Hardening options (-fstack-protector-all -Wformat=2 -Wformat-security -Wstrict-overflow)" superClass="gnu.c.compiler.option.misc.hardening" useByScannerDiscovery="false"/> + <option id="gnu.c.compiler.option.misc.randomization.69400333" name="Address randomization (-fPIE)" superClass="gnu.c.compiler.option.misc.randomization" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.merge.constants.581917526" name="Merge Identical Constants (-fmerge-constants)" superClass="com.crt.advproject.gcc.merge.constants" useByScannerDiscovery="false"/> + <option id="com.crt.advproject.gcc.prefixmap.715058638" name="Remove path from __FILE__ (-fmacro-prefix-map)" superClass="com.crt.advproject.gcc.prefixmap" useByScannerDiscovery="false"/> + <inputType id="com.crt.advproject.compiler.input.1420027587" superClass="com.crt.advproject.compiler.input"/> + </tool> + <tool id="com.crt.advproject.gas.exe.release.1494281660" name="MCU Assembler" superClass="com.crt.advproject.gas.exe.release"> + <option id="com.crt.advproject.gas.arch.1698607553" name="Architecture" superClass="com.crt.advproject.gas.arch" value="com.crt.advproject.gas.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.gas.thumb.436607810" name="Thumb mode" superClass="com.crt.advproject.gas.thumb" value="true" valueType="boolean"/> + <option id="gnu.both.asm.option.flags.crt.1160661734" 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.1399168515" name="Library headers" superClass="com.crt.advproject.gas.hdrlib" value="com.crt.advproject.gas.hdrlib.codered" valueType="enumerated"/> + <option id="gnu.both.asm.option.include.paths.398875581" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths"/> + <option id="gnu.both.asm.option.warnings.nowarn.1970393382" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/> + <option id="gnu.both.asm.option.version.85414546" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/> + <option id="com.crt.advproject.gas.debug.450099385" name="Debug level" superClass="com.crt.advproject.gas.debug"/> + <option id="com.crt.advproject.gas.fpu.2079816022" name="Floating point" superClass="com.crt.advproject.gas.fpu"/> + <option id="com.crt.advproject.gas.thumbinterwork.569080769" name="Enable Thumb interworking" superClass="com.crt.advproject.gas.thumbinterwork"/> + <option id="com.crt.advproject.gas.specs.752438368" name="Specs" superClass="com.crt.advproject.gas.specs"/> + <option id="com.crt.advproject.gas.config.1124610759" name="Obsolete (Config)" superClass="com.crt.advproject.gas.config"/> + <option id="com.crt.advproject.gas.store.491813452" name="Obsolete (Store)" superClass="com.crt.advproject.gas.store"/> + <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1021996605" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> + <inputType id="com.crt.advproject.assembler.input.1186012747" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/> + </tool> + <tool id="com.crt.advproject.link.cpp.exe.release.1980771017" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.release"/> + <tool id="com.crt.advproject.link.exe.release.1506193941" name="MCU Linker" superClass="com.crt.advproject.link.exe.release"> + <option id="com.crt.advproject.link.arch.2007013968" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/> + <option id="com.crt.advproject.link.thumb.2105574667" name="Thumb mode" superClass="com.crt.advproject.link.thumb" value="true" valueType="boolean"/> + <option id="com.crt.advproject.link.script.1734953788" name="Linker script" superClass="com.crt.advproject.link.script" value="labo4_1_DMA_new_Release.ld" valueType="string"/> + <option id="com.crt.advproject.link.manage.1175383760" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/> + <option id="gnu.c.link.option.nostdlibs.1419685492" 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.970107469" 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.1032851739" 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.359770168" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> + <listOptionValue builtIn="false" value="CMSISv2p00_LPC17xx"/> + </option> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.c.link.option.paths.1335196407" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> + <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p00_LPC17xx/Release}""/> + </option> + <option id="com.crt.advproject.link.crpenable.935889190" name="Enable automatic placement of Code Read Protection field in image" superClass="com.crt.advproject.link.crpenable" value="true" valueType="boolean"/> + <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.154967142" 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.1419936824" name="Plain load image" superClass="com.crt.advproject.link.memory.load.image" value="" valueType="string"/> + <option id="com.crt.advproject.link.memory.heapAndStack.1309512246" 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.823769171" 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.1813894001" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/> + <option id="gnu.c.link.option.nostart.1045631650" name="Do not use standard start files (-nostartfiles)" superClass="gnu.c.link.option.nostart"/> + <option id="gnu.c.link.option.nodeflibs.250579603" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.c.link.option.nodeflibs"/> + <option id="gnu.c.link.option.strip.1607503900" name="Omit all symbol information (-s)" superClass="gnu.c.link.option.strip"/> + <option id="gnu.c.link.option.noshared.1463015268" name="No shared libraries (-static)" superClass="gnu.c.link.option.noshared"/> + <option id="gnu.c.link.option.ldflags.451509536" name="Linker flags" superClass="gnu.c.link.option.ldflags"/> + <option id="gnu.c.link.option.userobjs.58820326" name="Other objects" superClass="gnu.c.link.option.userobjs"/> + <option id="gnu.c.link.option.shared.1558705923" name="Shared (-shared)" superClass="gnu.c.link.option.shared"/> + <option id="gnu.c.link.option.soname.1825582049" name="Shared object name (-Wl,-soname=)" superClass="gnu.c.link.option.soname"/> + <option id="gnu.c.link.option.implname.1918902641" name="Import Library name (-Wl,--out-implib=)" superClass="gnu.c.link.option.implname"/> + <option id="gnu.c.link.option.defname.1628206978" name="DEF file name (-Wl,--output-def=)" superClass="gnu.c.link.option.defname"/> + <option id="gnu.c.link.option.debugging.prof.1397167834" name="Generate prof information (-p)" superClass="gnu.c.link.option.debugging.prof"/> + <option id="gnu.c.link.option.debugging.gprof.1898614305" name="Generate gprof information (-pg)" superClass="gnu.c.link.option.debugging.gprof"/> + <option id="gnu.c.link.option.debugging.codecov.1240379180" name="Generate gcov information (-ftest-coverage -fprofile-arcs)" superClass="gnu.c.link.option.debugging.codecov"/> + <option id="com.crt.advproject.link.gcc.lto.1955762538" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.link.gcc.lto"/> + <option id="com.crt.advproject.link.gcc.lto.optmization.level.1639229211" name="Link-time optimization level" superClass="com.crt.advproject.link.gcc.lto.optmization.level"/> + <option id="com.crt.advproject.link.fpu.801096643" name="Floating point" superClass="com.crt.advproject.link.fpu"/> + <option id="com.crt.advproject.link.scriptdir.597538810" name="Script path" superClass="com.crt.advproject.link.scriptdir"/> + <option id="com.crt.advproject.link.flashconfigenable.71680999" name="Enable automatic placement of Flash Configuration field in image" superClass="com.crt.advproject.link.flashconfigenable"/> + <option id="com.crt.advproject.link.ecrp.2091489368" name="Enhanced CRP" superClass="com.crt.advproject.link.ecrp"/> + <option id="com.crt.advproject.link.gcc.nanofloat.1490251268" name="Enable printf float " superClass="com.crt.advproject.link.gcc.nanofloat"/> + <option id="com.crt.advproject.link.gcc.nanofloat.scanf.357004004" name="Enable scanf float " superClass="com.crt.advproject.link.gcc.nanofloat.scanf"/> + <option id="com.crt.advproject.link.toram.278924672" name="Link application to RAM" superClass="com.crt.advproject.link.toram"/> + <option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle" id="com.crt.advproject.link.memory.heapAndStack.style.167163028" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style" valueType="enumerated"/> + <option id="com.crt.advproject.link.stackOffset.657955377" name="Stack offset" superClass="com.crt.advproject.link.stackOffset"/> + <option id="com.crt.advproject.link.gcc.multicore.slave.828057994" name="Multicore configuration" superClass="com.crt.advproject.link.gcc.multicore.slave"/> + <option id="com.crt.advproject.link.gcc.multicore.master.1572423994" name="Multicore master" superClass="com.crt.advproject.link.gcc.multicore.master"/> + <option id="com.crt.advproject.link.gcc.multicore.empty.1131987246" name="No Multicore options for this project" superClass="com.crt.advproject.link.gcc.multicore.empty"/> + <option id="com.crt.advproject.link.config.1933325719" name="Obsolete (Config)" superClass="com.crt.advproject.link.config"/> + <option id="com.crt.advproject.link.store.1524379902" name="Obsolete (Store)" superClass="com.crt.advproject.link.store"/> + <option id="com.crt.advproject.link.securestate.1006925001" name="TrustZone Project Type" superClass="com.crt.advproject.link.securestate"/> + <option id="com.crt.advproject.link.sgstubs.placement.1895966724" name="Secure Gateway Placement" superClass="com.crt.advproject.link.sgstubs.placement"/> + <option id="com.crt.advproject.link.sgstubenable.1655157146" name="Enable generation of Secure Gateway Import Library" superClass="com.crt.advproject.link.sgstubenable"/> + <option id="com.crt.advproject.link.nonsecureobject.76604719" name="Secure Gateway Import Library" superClass="com.crt.advproject.link.nonsecureobject"/> + <option id="com.crt.advproject.link.inimplib.260516828" name="Input Secure Gateway Import Library" superClass="com.crt.advproject.link.inimplib"/> + <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1818815528" 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.49401002" name="MCU Debugger" superClass="com.crt.advproject.tool.debug.release"> + <option id="com.crt.advproject.linkserver.debug.prevent.release.1261097250" name="Prevent Debugging" superClass="com.crt.advproject.linkserver.debug.prevent.release"/> + <option id="com.crt.advproject.miscellaneous.end_of_heap.1337945569" name="Last used address of the heap" superClass="com.crt.advproject.miscellaneous.end_of_heap"/> + <option id="com.crt.advproject.miscellaneous.pvHeapStart.408114869" name="First address of the heap" superClass="com.crt.advproject.miscellaneous.pvHeapStart"/> + <option id="com.crt.advproject.miscellaneous.pvHeapLimit.1846745703" name="Maximum extent of heap" superClass="com.crt.advproject.miscellaneous.pvHeapLimit"/> + <option id="com.crt.advproject.debugger.security.nonsecureimageenable.397342540" name="Enable pre-programming of Non-Secure Image" superClass="com.crt.advproject.debugger.security.nonsecureimageenable"/> + <option id="com.crt.advproject.debugger.security.nonsecureimage.569413961" name="Non-Secure Project" superClass="com.crt.advproject.debugger.security.nonsecureimage"/> + </tool> + </toolChain> + </folderInfo> + <sourceEntries> + <entry excluding="dmatest_corrige.c|dma_corrige.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="DMA.com.crt.advproject.projecttype.exe.830553069" 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.project b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.project new file mode 100644 index 0000000..668034c --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.project @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>labo4.1_DMA_new</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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.settings/language.settings.xml b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.settings/language.settings.xml new file mode 100644 index 0000000..1723fa1 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/.settings/language.settings.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<project> + <configuration id="com.crt.advproject.config.exe.debug.759137190" 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="1882102844081049178" 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.1841072117" 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="1882102961924684189" 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA.map b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA.map new file mode 100644 index 0000000..1c663f4 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA.map @@ -0,0 +1,467 @@ +Archive member included to satisfy reference by file (symbol) + +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + ./src/dmatest.o (memset) +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest.o +src2 0x400 ./src/dmatest.o +src3 0x400 ./src/dmatest.o +i 0x4 ./src/dmatest.o +src1 0x1000 ./src/dmatest.o +LLI 0x20 ./src/dmatest.o + +Discarded input sections + + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/config_LPC1769.o + .text 0x00000000 0x0 ./src/config_LPC1769.o + .data 0x00000000 0x0 ./src/config_LPC1769.o + .bss 0x00000000 0x0 ./src/config_LPC1769.o + .group 0x00000000 0xc ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .group 0x00000000 0xc ./src/crp.o + .group 0x00000000 0xc ./src/crp.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .debug_macro 0x00000000 0xaa2 ./src/crp.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .text 0x00000000 0x0 ./src/dma.o + .data 0x00000000 0x0 ./src/dma.o + .bss 0x00000000 0x0 ./src/dma.o + .bss.DMAErrCount + 0x00000000 0x4 ./src/dma.o + .debug_macro 0x00000000 0xaa2 ./src/dma.o + .debug_macro 0x00000000 0x10 ./src/dma.o + .debug_macro 0x00000000 0x12e ./src/dma.o + .debug_macro 0x00000000 0x5b3 ./src/dma.o + .debug_macro 0x00000000 0x331 ./src/dma.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .text 0x00000000 0x0 ./src/dmatest.o + .data 0x00000000 0x0 ./src/dmatest.o + .bss 0x00000000 0x0 ./src/dmatest.o + .debug_macro 0x00000000 0xaa2 ./src/dmatest.o + .debug_macro 0x00000000 0x10 ./src/dmatest.o + .debug_macro 0x00000000 0x12e ./src/dmatest.o + .debug_macro 0x00000000 0x5b3 ./src/dmatest.o + .debug_macro 0x00000000 0x52 ./src/dmatest.o + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x34 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.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/config_LPC1769.o +LOAD ./src/cr_startup_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma.o +LOAD ./src/dmatest.o +START GROUP +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a +LOAD c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.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 0x550 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x550 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x550 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x2828 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 0x74 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 PWM1_IRQHandler + 0x00000106 I2C1_IRQHandler + 0x00000106 EINT2_IRQHandler + 0x00000106 UART1_IRQHandler + 0x00000106 EINT3_IRQHandler + 0x00000106 CANActivity_IRQHandler + 0x00000106 TIMER3_IRQHandler + 0x00000106 UART0_IRQHandler + 0x00000106 MCPWM_IRQHandler + 0x00000106 I2C0_IRQHandler + 0x00000106 IntDefaultHandler + 0x00000106 RIT_IRQHandler + 0x00000106 CAN_IRQHandler + 0x00000106 PLL1_IRQHandler + 0x00000106 SSP0_IRQHandler + 0x00000106 I2S_IRQHandler + 0x00000106 I2C2_IRQHandler + 0x00000106 RTC_IRQHandler + 0x00000106 TIMER0_IRQHandler + 0x00000106 SPI_IRQHandler + 0x00000106 UART3_IRQHandler + 0x00000106 EINT1_IRQHandler + 0x00000106 TIMER1_IRQHandler + 0x00000106 UART2_IRQHandler + 0x00000106 ADC_IRQHandler + 0x00000106 SSP1_IRQHandler + 0x00000106 USB_IRQHandler + 0x00000106 BOD_IRQHandler + 0x00000106 USBActivity_IRQHandler + 0x00000106 WDT_IRQHandler + 0x00000106 PLL0_IRQHandler + 0x00000106 QEI_IRQHandler + 0x00000106 EINT0_IRQHandler + 0x00000106 TIMER2_IRQHandler + 0x00000106 ENET_IRQHandler + 0x00000108 data_init + 0x0000011a bss_init + 0x0000012a ResetISR + 0x000002fc . = 0x2fc + *fill* 0x00000168 0x194 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.init 0x00000300 0x38 ./src/config_LPC1769.o + 0x00000300 init + .text.DMA_IRQHandler + 0x00000338 0xc ./src/dma.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x00000344 0x28 ./src/dma.o + 0x00000344 DMA_Init + .text.single_copy + 0x0000036c 0x68 ./src/dmatest.o + 0x0000036c single_copy + .text.LLI_copy + 0x000003d4 0xcc ./src/dmatest.o + 0x000003d4 LLI_copy + .text.check_res + 0x000004a0 0x3c ./src/dmatest.o + 0x000004a0 check_res + .text.main 0x000004dc 0x38 ./src/dmatest.o + 0x000004dc main + .text.memset 0x00000514 0x4 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + 0x00000514 memset + .text.__weak_main + 0x00000518 0x4 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + 0x00000518 __weak_main + 0x00000518 __main + .text.__aeabi_memset_lowlevel + 0x0000051c 0x32 c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + 0x0000051c __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x00000550 . = ALIGN (0x4) + *fill* 0x0000054e 0x2 ff + +.glue_7 0x00000550 0x0 + .glue_7 0x00000550 0x0 linker stubs + +.glue_7t 0x00000550 0x0 + .glue_7t 0x00000550 0x0 linker stubs + +.vfp11_veneer 0x00000550 0x0 + .vfp11_veneer 0x00000550 0x0 linker stubs + +.v4_bx 0x00000550 0x0 + .v4_bx 0x00000550 0x0 linker stubs + +.iplt 0x00000550 0x0 + .iplt 0x00000550 0x0 ./src/config_LPC1769.o + +.rel.dyn 0x00000550 0x0 + .rel.iplt 0x00000550 0x0 ./src/config_LPC1769.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + +.ARM.exidx 0x00000550 0x0 + 0x00000550 __exidx_start = . + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000550 __exidx_end = . + 0x00000550 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x00000550 + 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 0x0 load address 0x00000550 + FILL mask 0xff + 0x10000000 _data = . + [!provide] PROVIDE (__start_data_RAM = .) + [!provide] PROVIDE (__start_data_RamLoc32 = .) + *(vtable) + *(.ramfunc*) + *(CodeQuickAccess) + *(DataQuickAccess) + *(RamFunction) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + [!provide] PROVIDE (__end_data_RAM = .) + [!provide] PROVIDE (__end_data_RamLoc32 = .) + +.igot.plt 0x10000000 0x0 load address 0x00000550 + .igot.plt 0x10000000 0x0 ./src/config_LPC1769.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 0x10000000 0x2828 + 0x10000000 _bss = . + [!provide] PROVIDE (__start_bss_RAM = .) + [!provide] PROVIDE (__start_bss_RamLoc32 = .) + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma.o + 0x10000000 DMATCCount + *(COMMON) + COMMON 0x10000004 0x2824 ./src/dmatest.o + 0x10000004 dest + 0x10001004 src2 + 0x10001404 src3 + 0x10001804 i + 0x10001808 src1 + 0x10002808 LLI + 0x10002828 . = ALIGN (0x4) + 0x10002828 _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 0x10002828 0x0 + 0x10002828 _noinit = . + [!provide] PROVIDE (__start_noinit_RAM = .) + [!provide] PROVIDE (__start_noinit_RamLoc32 = .) + *(.noinit*) + 0x10002828 . = ALIGN (0x4) + 0x10002828 _end_noinit = . + [!provide] PROVIDE (__end_noinit_RAM = .) + [!provide] PROVIDE (__end_noinit_RamLoc32 = .) + [!provide] 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) + 0x00000550 _image_end = (LOADADDR (.data) + SIZEOF (.data)) + 0x00000550 _image_size = (_image_end - _image_start) +OUTPUT(labo4.1_DMA.axf elf32-littlearm) +LOAD linker stubs + +.debug_info 0x00000000 0x731 + .debug_info 0x00000000 0xba ./src/config_LPC1769.o + .debug_info 0x000000ba 0x2e3 ./src/cr_startup_lpc176x.o + .debug_info 0x0000039d 0x40 ./src/crp.o + .debug_info 0x000003dd 0x148 ./src/dma.o + .debug_info 0x00000525 0x20c ./src/dmatest.o + +.debug_abbrev 0x00000000 0x44b + .debug_abbrev 0x00000000 0x8b ./src/config_LPC1769.o + .debug_abbrev 0x0000008b 0x156 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x000001e1 0x38 ./src/crp.o + .debug_abbrev 0x00000219 0xf2 ./src/dma.o + .debug_abbrev 0x0000030b 0x140 ./src/dmatest.o + +.debug_aranges 0x00000000 0x118 + .debug_aranges + 0x00000000 0x20 ./src/config_LPC1769.o + .debug_aranges + 0x00000020 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x000000a0 0x18 ./src/crp.o + .debug_aranges + 0x000000b8 0x28 ./src/dma.o + .debug_aranges + 0x000000e0 0x38 ./src/dmatest.o + +.debug_ranges 0x00000000 0xc0 + .debug_ranges 0x00000000 0x10 ./src/config_LPC1769.o + .debug_ranges 0x00000010 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000080 0x18 ./src/dma.o + .debug_ranges 0x00000098 0x28 ./src/dmatest.o + +.debug_macro 0x00000000 0x2461 + .debug_macro 0x00000000 0x4b ./src/config_LPC1769.o + .debug_macro 0x0000004b 0xaa2 ./src/config_LPC1769.o + .debug_macro 0x00000aed 0x10 ./src/config_LPC1769.o + .debug_macro 0x00000afd 0x12e ./src/config_LPC1769.o + .debug_macro 0x00000c2b 0x5b3 ./src/config_LPC1769.o + .debug_macro 0x000011de 0x331 ./src/config_LPC1769.o + .debug_macro 0x0000150f 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x0000152c 0xaa8 ./src/cr_startup_lpc176x.o + .debug_macro 0x00001fd4 0x1a ./src/crp.o + .debug_macro 0x00001fee 0x34 ./src/crp.o + .debug_macro 0x00002022 0x54 ./src/dma.o + .debug_macro 0x00002076 0x52 ./src/dma.o + .debug_macro 0x000020c8 0x62 ./src/dmatest.o + .debug_macro 0x0000212a 0x337 ./src/dmatest.o + +.debug_line 0x00000000 0x997 + .debug_line 0x00000000 0x1b6 ./src/config_LPC1769.o + .debug_line 0x000001b6 0x26f ./src/cr_startup_lpc176x.o + .debug_line 0x00000425 0xb1 ./src/crp.o + .debug_line 0x000004d6 0x1a3 ./src/dma.o + .debug_line 0x00000679 0x31e ./src/dmatest.o + +.debug_str 0x00000000 0x638e + .debug_str 0x00000000 0x5db0 ./src/config_LPC1769.o + 0x5e2e (size before relaxing) + .debug_str 0x00005db0 0x2c2 ./src/cr_startup_lpc176x.o + 0x2f8a (size before relaxing) + .debug_str 0x00006072 0xe9 ./src/crp.o + 0x2e80 (size before relaxing) + .debug_str 0x0000615b 0x192 ./src/dma.o + 0x5fa3 (size before relaxing) + .debug_str 0x000062ed 0xa1 ./src/dmatest.o + 0x6018 (size before relaxing) + +.comment 0x00000000 0x4c + .comment 0x00000000 0x4c ./src/config_LPC1769.o + 0x4d (size before relaxing) + .comment 0x0000004c 0x4d ./src/cr_startup_lpc176x.o + .comment 0x0000004c 0x4d ./src/crp.o + .comment 0x0000004c 0x4d ./src/dma.o + .comment 0x0000004c 0x4d ./src/dmatest.o + .comment 0x0000004c 0x4d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .comment 0x0000004c 0x4d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x2b + .ARM.attributes + 0x00000000 0x2d ./src/config_LPC1769.o + .ARM.attributes + 0x0000002d 0x2d ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x0000005a 0x33 ./src/crp.o + .ARM.attributes + 0x0000008d 0x2d ./src/dma.o + .ARM.attributes + 0x000000ba 0x2d ./src/dmatest.o + .ARM.attributes + 0x000000e7 0x2d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .ARM.attributes + 0x00000114 0x2d c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000141 0x1b c:/nxp/mcuxpressoide_11.3.0_5222/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.3.0.202008311133/tools/bin/../lib/gcc/arm-none-eabi/9.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x208 + .debug_frame 0x00000000 0x30 ./src/config_LPC1769.o + .debug_frame 0x00000030 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x00000124 0x58 ./src/dma.o + .debug_frame 0x0000017c 0x8c ./src/dmatest.o + +.debug_loc 0x00000000 0x16a + .debug_loc 0x00000000 0x16a ./src/cr_startup_lpc176x.o diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.axf new file mode 100644 index 0000000000000000000000000000000000000000..6e01b3f68d3e4046082f514f68a6b0740f71c3cd GIT binary patch literal 124768 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 T0%C(O%VS1{mmmfd!_)x)?xOr} literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map new file mode 100644 index 0000000..5ba75df --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4.1_DMA_new.map @@ -0,0 +1,450 @@ +Archive member included to satisfy reference by file (symbol) + +c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + ./src/dmatest.o (memset) +c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Discarded input sections + + .group 0x00000000 0xc ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .group 0x00000000 0xc ./src/crp.o + .group 0x00000000 0xc ./src/crp.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .group 0x00000000 0xc ./src/dma.o + .text 0x00000000 0x0 ./src/dma.o + .data 0x00000000 0x0 ./src/dma.o + .bss 0x00000000 0x0 ./src/dma.o + .bss.DMAErrCount + 0x00000000 0x4 ./src/dma.o + .debug_macro 0x00000000 0xa72 ./src/dma.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .group 0x00000000 0xc ./src/dmatest.o + .text 0x00000000 0x0 ./src/dmatest.o + .data 0x00000000 0x0 ./src/dmatest.o + .bss 0x00000000 0x0 ./src/dmatest.o + .debug_macro 0x00000000 0xa72 ./src/dmatest.o + .debug_macro 0x00000000 0x10 ./src/dmatest.o + .debug_macro 0x00000000 0x12e ./src/dmatest.o + .debug_macro 0x00000000 0x5b3 ./src/dmatest.o + .debug_macro 0x00000000 0x52 ./src/dmatest.o + .debug_macro 0x00000000 0x1c ./src/dmatest.o + .debug_macro 0x00000000 0x2e ./src/dmatest.o + .debug_macro 0x00000000 0x18 ./src/dmatest.o + .debug_macro 0x00000000 0x7af ./src/dmatest.o + .debug_macro 0x00000000 0x2c7 ./src/dmatest.o + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x34 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.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_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma.o +LOAD ./src/dmatest.o +LOAD C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a +START GROUP +LOAD c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a +LOAD c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a +LOAD c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.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 0x518 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x518 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x518 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x2828 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 0x74 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 PWM1_IRQHandler + 0x00000106 I2C1_IRQHandler + 0x00000106 EINT2_IRQHandler + 0x00000106 UART1_IRQHandler + 0x00000106 EINT3_IRQHandler + 0x00000106 CANActivity_IRQHandler + 0x00000106 TIMER3_IRQHandler + 0x00000106 UART0_IRQHandler + 0x00000106 MCPWM_IRQHandler + 0x00000106 I2C0_IRQHandler + 0x00000106 IntDefaultHandler + 0x00000106 RIT_IRQHandler + 0x00000106 CAN_IRQHandler + 0x00000106 PLL1_IRQHandler + 0x00000106 SSP0_IRQHandler + 0x00000106 I2S_IRQHandler + 0x00000106 I2C2_IRQHandler + 0x00000106 RTC_IRQHandler + 0x00000106 TIMER0_IRQHandler + 0x00000106 SPI_IRQHandler + 0x00000106 UART3_IRQHandler + 0x00000106 EINT1_IRQHandler + 0x00000106 TIMER1_IRQHandler + 0x00000106 UART2_IRQHandler + 0x00000106 ADC_IRQHandler + 0x00000106 SSP1_IRQHandler + 0x00000106 USB_IRQHandler + 0x00000106 BOD_IRQHandler + 0x00000106 USBActivity_IRQHandler + 0x00000106 WDT_IRQHandler + 0x00000106 PLL0_IRQHandler + 0x00000106 QEI_IRQHandler + 0x00000106 EINT0_IRQHandler + 0x00000106 TIMER2_IRQHandler + 0x00000106 ENET_IRQHandler + 0x00000108 data_init + 0x0000011a bss_init + 0x0000012a ResetISR + 0x000002fc . = 0x2fc + *fill* 0x00000168 0x194 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.DMA_IRQHandler + 0x00000300 0xc ./src/dma.o + 0x00000300 DMA_IRQHandler + .text.DMA_Init + 0x0000030c 0x2c ./src/dma.o + 0x0000030c DMA_Init + .text.single_copy + 0x00000338 0x68 ./src/dmatest.o + 0x00000338 single_copy + .text.LLI_copy + 0x000003a0 0xcc ./src/dmatest.o + 0x000003a0 LLI_copy + .text.check_res + 0x0000046c 0x3c ./src/dmatest.o + 0x0000046c check_res + .text.main 0x000004a8 0x34 ./src/dmatest.o + 0x000004a8 main + .text.memset 0x000004dc 0x4 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + 0x000004dc memset + .text.__weak_main + 0x000004e0 0x4 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + 0x000004e0 __weak_main + 0x000004e0 __main + .text.__aeabi_memset_lowlevel + 0x000004e4 0x32 c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + 0x000004e4 __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x00000518 . = ALIGN (0x4) + *fill* 0x00000516 0x2 ff + +.glue_7 0x00000518 0x0 + .glue_7 0x00000518 0x0 linker stubs + +.glue_7t 0x00000518 0x0 + .glue_7t 0x00000518 0x0 linker stubs + +.vfp11_veneer 0x00000518 0x0 + .vfp11_veneer 0x00000518 0x0 linker stubs + +.v4_bx 0x00000518 0x0 + .v4_bx 0x00000518 0x0 linker stubs + +.iplt 0x00000518 0x0 + .iplt 0x00000518 0x0 ./src/cr_startup_lpc176x.o + +.rel.dyn 0x00000518 0x0 + .rel.iplt 0x00000518 0x0 ./src/cr_startup_lpc176x.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + +.ARM.exidx 0x00000518 0x0 + 0x00000518 __exidx_start = . + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000518 __exidx_end = . + 0x00000518 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x00000518 + 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 0x0 load address 0x00000518 + FILL mask 0xff + 0x10000000 _data = . + [!provide] PROVIDE (__start_data_RAM = .) + [!provide] PROVIDE (__start_data_RamLoc32 = .) + *(vtable) + *(.ramfunc*) + *(CodeQuickAccess) + *(DataQuickAccess) + *(RamFunction) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + [!provide] PROVIDE (__end_data_RAM = .) + [!provide] PROVIDE (__end_data_RamLoc32 = .) + +.igot.plt 0x10000000 0x0 load address 0x00000518 + .igot.plt 0x10000000 0x0 ./src/cr_startup_lpc176x.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 0x10000000 0x2828 + 0x10000000 _bss = . + [!provide] PROVIDE (__start_bss_RAM = .) + [!provide] PROVIDE (__start_bss_RamLoc32 = .) + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma.o + 0x10000000 DMATCCount + .bss.LLI 0x10000004 0x20 ./src/dmatest.o + 0x10000004 LLI + .bss.src3 0x10000024 0x400 ./src/dmatest.o + 0x10000024 src3 + .bss.i 0x10000424 0x4 ./src/dmatest.o + 0x10000424 i + .bss.src1 0x10000428 0x1000 ./src/dmatest.o + 0x10000428 src1 + .bss.dest 0x10001428 0x1000 ./src/dmatest.o + 0x10001428 dest + .bss.src2 0x10002428 0x400 ./src/dmatest.o + 0x10002428 src2 + *(COMMON) + 0x10002828 . = ALIGN (0x4) + 0x10002828 _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 0x10002828 0x0 + 0x10002828 _noinit = . + [!provide] PROVIDE (__start_noinit_RAM = .) + [!provide] PROVIDE (__start_noinit_RamLoc32 = .) + *(.noinit*) + 0x10002828 . = ALIGN (0x4) + 0x10002828 _end_noinit = . + [!provide] PROVIDE (__end_noinit_RAM = .) + [!provide] PROVIDE (__end_noinit_RamLoc32 = .) + [!provide] 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) + 0x00000518 _image_end = (LOADADDR (.data) + SIZEOF (.data)) + 0x00000518 _image_size = (_image_end - _image_start) +OUTPUT(labo4.1_DMA_new.axf elf32-littlearm) +LOAD linker stubs + +.debug_info 0x00000000 0x879 + .debug_info 0x00000000 0x2f0 ./src/cr_startup_lpc176x.o + .debug_info 0x000002f0 0x40 ./src/crp.o + .debug_info 0x00000330 0x375 ./src/dma.o + .debug_info 0x000006a5 0x1d4 ./src/dmatest.o + +.debug_abbrev 0x00000000 0x3c3 + .debug_abbrev 0x00000000 0x161 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x00000161 0x38 ./src/crp.o + .debug_abbrev 0x00000199 0x112 ./src/dma.o + .debug_abbrev 0x000002ab 0x118 ./src/dmatest.o + +.debug_loc 0x00000000 0x16a + .debug_loc 0x00000000 0x16a ./src/cr_startup_lpc176x.o + +.debug_aranges 0x00000000 0xf8 + .debug_aranges + 0x00000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x00000080 0x18 ./src/crp.o + .debug_aranges + 0x00000098 0x28 ./src/dma.o + .debug_aranges + 0x000000c0 0x38 ./src/dmatest.o + +.debug_ranges 0x00000000 0xb0 + .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000070 0x18 ./src/dma.o + .debug_ranges 0x00000088 0x28 ./src/dmatest.o + +.debug_macro 0x00000000 0x2880 + .debug_macro 0x00000000 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x0000001d 0xa78 ./src/cr_startup_lpc176x.o + .debug_macro 0x00000a95 0x1a ./src/crp.o + .debug_macro 0x00000aaf 0xa72 ./src/crp.o + .debug_macro 0x00001521 0x34 ./src/crp.o + .debug_macro 0x00001555 0x7e ./src/dma.o + .debug_macro 0x000015d3 0x1c ./src/dma.o + .debug_macro 0x000015ef 0x2e ./src/dma.o + .debug_macro 0x0000161d 0x10 ./src/dma.o + .debug_macro 0x0000162d 0x12e ./src/dma.o + .debug_macro 0x0000175b 0x5b3 ./src/dma.o + .debug_macro 0x00001d0e 0x18 ./src/dma.o + .debug_macro 0x00001d26 0x7af ./src/dma.o + .debug_macro 0x000024d5 0x2c7 ./src/dma.o + .debug_macro 0x0000279c 0x52 ./src/dma.o + .debug_macro 0x000027ee 0x92 ./src/dmatest.o + +.debug_line 0x00000000 0x910 + .debug_line 0x00000000 0x26f ./src/cr_startup_lpc176x.o + .debug_line 0x0000026f 0xb1 ./src/crp.o + .debug_line 0x00000320 0x23b ./src/dma.o + .debug_line 0x0000055b 0x3b5 ./src/dmatest.o + +.debug_str 0x00000000 0x8af0 + .debug_str 0x00000000 0x2e99 ./src/cr_startup_lpc176x.o + 0x2eac (size before relaxing) + .debug_str 0x00002e99 0x1bf ./src/crp.o + 0x2db6 (size before relaxing) + .debug_str 0x00003058 0x59f7 ./src/dma.o + 0x8730 (size before relaxing) + .debug_str 0x00008a4f 0xa1 ./src/dmatest.o + 0x865b (size before relaxing) + +.comment 0x00000000 0x49 + .comment 0x00000000 0x49 ./src/cr_startup_lpc176x.o + 0x4a (size before relaxing) + .comment 0x00000049 0x4a ./src/crp.o + .comment 0x00000049 0x4a ./src/dma.o + .comment 0x00000049 0x4a ./src/dmatest.o + .comment 0x00000049 0x4a c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .comment 0x00000049 0x4a c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x2b + .ARM.attributes + 0x00000000 0x2d ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x0000002d 0x2d ./src/crp.o + .ARM.attributes + 0x0000005a 0x2d ./src/dma.o + .ARM.attributes + 0x00000087 0x2d ./src/dmatest.o + .ARM.attributes + 0x000000b4 0x2d c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(memset.o) + .ARM.attributes + 0x000000e1 0x2d c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7-m/nofp\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x0000010e 0x1b c:/nxp/mcuxpressoide_11.7.1_9221/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.7.1.202301190959/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/thumb/v7-m/nofp\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x1d8 + .debug_frame 0x00000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x000000f4 0x58 ./src/dma.o + .debug_frame 0x0000014c 0x8c ./src/dmatest.o diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld new file mode 100644 index 0000000..60863d7 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug.ld @@ -0,0 +1,203 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +INCLUDE "labo4_1_DMA_Debug_library.ld" +INCLUDE "labo4_1_DMA_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 + + .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 : 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 : 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld new file mode 100644 index 0000000..6e4a567 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_library.ld @@ -0,0 +1,16 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +GROUP ( + "libcr_c.a" + "libcr_eabihelpers.a" + "libgcc.a" +) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld new file mode 100644 index 0000000..ff5f730 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_Debug_memory.ld @@ -0,0 +1,32 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2022 + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.3.0 [Build 5222] [2021-01-11] on 23 nov. 2022 16:02:28 + */ + +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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld new file mode 100644 index 0000000..dadbdaa --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug.ld @@ -0,0 +1,201 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2023 + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.7.1 [Build 9221] [2023-03-28] on 6 nov. 2023 Ã 20:24:23 + */ + +INCLUDE "labo4_1_DMA_new_Debug_library.ld" +INCLUDE "labo4_1_DMA_new_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 */ + *(.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 : 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 : 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld new file mode 100644 index 0000000..7b71b4e --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_library.ld @@ -0,0 +1,16 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2023 + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.7.1 [Build 9221] [2023-03-28] on 6 nov. 2023 Ã 20:24:23 + */ + +GROUP ( + "libcr_c.a" + "libcr_eabihelpers.a" + "libgcc.a" +) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld new file mode 100644 index 0000000..ca05545 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo4_1_DMA_new_Debug_memory.ld @@ -0,0 +1,32 @@ +/* + * GENERATED FILE - DO NOT EDIT + * Copyright (c) 2008-2013 Code Red Technologies Ltd, + * Copyright 2015, 2018-2019 NXP + * (c) NXP Semiconductors 2013-2023 + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.30 + * MCUXpresso IDE v11.7.1 [Build 9221] [2023-03-28] on 6 nov. 2023 Ã 20:24:23 + */ + +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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA.map b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA.map new file mode 100644 index 0000000..d3cae22 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA.map @@ -0,0 +1,440 @@ +Archive member included because of file (symbol) + +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +delta_t_ref 0x4 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +t_start 0x4 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +delta_t 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/config_LPC1769.o + .text 0x00000000 0x0 ./src/config_LPC1769.o + .data 0x00000000 0x0 ./src/config_LPC1769.o + .bss 0x00000000 0x0 ./src/config_LPC1769.o + .group 0x00000000 0x8 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.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 0x86e ./src/crp.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .debug_macro 0x00000000 0x86e ./src/dma_corrige.o + .debug_macro 0x00000000 0x10 ./src/dma_corrige.o + .debug_macro 0x00000000 0x12d ./src/dma_corrige.o + .debug_macro 0x00000000 0x5b2 ./src/dma_corrige.o + .debug_macro 0x00000000 0x331 ./src/dma_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .group 0x00000000 0x8 ./src/dmatest_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x86e ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x10 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x12d ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x5b2 ./src/dmatest_corrige.o + .debug_macro 0x00000000 0x52 ./src/dmatest_corrige.o + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x34 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.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/config_LPC1769.o +LOAD ./src/cr_startup_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +START GROUP +LOAD c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/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 0x6b8 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x6b8 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x6b8 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x2838 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 0x7c ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 PWM1_IRQHandler + 0x00000106 I2C1_IRQHandler + 0x00000106 EINT2_IRQHandler + 0x00000106 UART1_IRQHandler + 0x00000106 EINT3_IRQHandler + 0x00000106 CANActivity_IRQHandler + 0x00000106 TIMER3_IRQHandler + 0x00000106 UART0_IRQHandler + 0x00000106 MCPWM_IRQHandler + 0x00000106 I2C0_IRQHandler + 0x00000106 IntDefaultHandler + 0x00000106 RIT_IRQHandler + 0x00000106 CAN_IRQHandler + 0x00000106 PLL1_IRQHandler + 0x00000106 SSP0_IRQHandler + 0x00000106 I2S_IRQHandler + 0x00000106 I2C2_IRQHandler + 0x00000106 RTC_IRQHandler + 0x00000106 TIMER0_IRQHandler + 0x00000106 SPI_IRQHandler + 0x00000106 UART3_IRQHandler + 0x00000106 EINT1_IRQHandler + 0x00000106 TIMER1_IRQHandler + 0x00000106 UART2_IRQHandler + 0x00000106 ADC_IRQHandler + 0x00000106 SSP1_IRQHandler + 0x00000106 USB_IRQHandler + 0x00000106 BOD_IRQHandler + 0x00000106 USBActivity_IRQHandler + 0x00000106 WDT_IRQHandler + 0x00000106 PLL0_IRQHandler + 0x00000106 QEI_IRQHandler + 0x00000106 EINT0_IRQHandler + 0x00000106 TIMER2_IRQHandler + 0x00000106 ENET_IRQHandler + 0x00000108 data_init + 0x0000011e bss_init + 0x00000130 ResetISR + 0x000002fc . = 0x2fc + *fill* 0x00000170 0x18c 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.init 0x00000300 0x38 ./src/config_LPC1769.o + 0x00000300 init + .text.DMA_IRQHandler + 0x00000338 0x60 ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x00000398 0x9c ./src/dma_corrige.o + 0x00000398 DMA_Init + .text.single_copy + 0x00000434 0xbc ./src/dmatest_corrige.o + 0x00000434 single_copy + .text.LLI_copy + 0x000004f0 0x108 ./src/dmatest_corrige.o + 0x000004f0 LLI_copy + .text.check_res + 0x000005f8 0x40 ./src/dmatest_corrige.o + 0x000005f8 check_res + .text.main 0x00000638 0x44 ./src/dmatest_corrige.o + 0x00000638 main + .text.memset 0x0000067c 0x4 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x0000067c memset + .text.__weak_main + 0x00000680 0x4 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x00000680 __weak_main + 0x00000680 __main + .text.__aeabi_memset_lowlevel + 0x00000684 0x32 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x00000684 __aeabi_lowlevel_memset + *(.rodata .rodata.* .constdata .constdata.*) + 0x000006b8 . = ALIGN (0x4) + *fill* 0x000006b6 0x2 ff + +.glue_7 0x000006b8 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x000006b8 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x000006b8 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x000006b8 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.iplt 0x000006b8 0x0 + .iplt 0x00000000 0x0 ./src/config_LPC1769.o + +.rel.dyn 0x000006b8 0x0 + .rel.iplt 0x00000000 0x0 ./src/config_LPC1769.o + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x000006b8 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x000006b8 __exidx_end = . + 0x000006b8 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x000006b8 + FILL mask 0xff + 0x2007c000 PROVIDE (__start_data_RAM2, .) + *(.ramfunc.$RAM2) + *(.ramfunc.$RamAHB32) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + 0x2007c000 PROVIDE (__end_data_RAM2, .) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x000006b8 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.ramfunc*) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.igot.plt 0x10000000 0x0 load address 0x000006b8 + .igot.plt 0x00000000 0x0 ./src/config_LPC1769.o + +.bss_RAM2 0x2007c000 0x0 + 0x2007c000 PROVIDE (__start_bss_RAM2, .) + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x2007c000 PROVIDE (__end_bss_RAM2, .) + +.bss 0x10000000 0x2838 + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2830 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 delta_t_ref + 0x1000100c src2 + 0x1000140c t_start + 0x10001410 src3 + 0x10001810 i + 0x10001814 delta_t + 0x10001818 src1 + 0x10002818 LLI + 0x10002838 . = ALIGN (0x4) + 0x10002838 _ebss = . + 0x10002838 PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x10002838 0x0 + 0x10002838 _noinit = . + *(.noinit*) + 0x10002838 . = ALIGN (0x4) + 0x10002838 _end_noinit = . + 0x10002838 PROVIDE (_pvHeapStart, DEFINED (__user_heap_base)?__user_heap_base:.) + 0x10008000 PROVIDE (_vStackTop, DEFINED (__user_stack_top)?__user_stack_top:(__top_RamLoc32 - 0x0)) + 0xefff79f2 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(labo6_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0x644 + .debug_info 0x00000000 0x81 ./src/config_LPC1769.o + .debug_info 0x00000081 0x26f ./src/cr_startup_lpc176x.o + .debug_info 0x000002f0 0x3f ./src/crp.o + .debug_info 0x0000032f 0x11a ./src/dma_corrige.o + .debug_info 0x00000449 0x1fb ./src/dmatest_corrige.o + +.debug_abbrev 0x00000000 0x341 + .debug_abbrev 0x00000000 0x45 ./src/config_LPC1769.o + .debug_abbrev 0x00000045 0x120 ./src/cr_startup_lpc176x.o + .debug_abbrev 0x00000165 0x36 ./src/crp.o + .debug_abbrev 0x0000019b 0xa2 ./src/dma_corrige.o + .debug_abbrev 0x0000023d 0x104 ./src/dmatest_corrige.o + +.debug_aranges 0x00000000 0x118 + .debug_aranges + 0x00000000 0x20 ./src/config_LPC1769.o + .debug_aranges + 0x00000020 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x000000a0 0x18 ./src/crp.o + .debug_aranges + 0x000000b8 0x28 ./src/dma_corrige.o + .debug_aranges + 0x000000e0 0x38 ./src/dmatest_corrige.o + +.debug_ranges 0x00000000 0xc0 + .debug_ranges 0x00000000 0x10 ./src/config_LPC1769.o + .debug_ranges 0x00000010 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000080 0x18 ./src/dma_corrige.o + .debug_ranges 0x00000098 0x28 ./src/dmatest_corrige.o + +.debug_macro 0x00000000 0x1ff7 + .debug_macro 0x00000000 0x4b ./src/config_LPC1769.o + .debug_macro 0x0000004b 0x86e ./src/config_LPC1769.o + .debug_macro 0x000008b9 0x10 ./src/config_LPC1769.o + .debug_macro 0x000008c9 0x12d ./src/config_LPC1769.o + .debug_macro 0x000009f6 0x5b2 ./src/config_LPC1769.o + .debug_macro 0x00000fa8 0x331 ./src/config_LPC1769.o + .debug_macro 0x000012d9 0x1d ./src/cr_startup_lpc176x.o + .debug_macro 0x000012f6 0x874 ./src/cr_startup_lpc176x.o + .debug_macro 0x00001b6a 0x1a ./src/crp.o + .debug_macro 0x00001b84 0x34 ./src/crp.o + .debug_macro 0x00001bb8 0x54 ./src/dma_corrige.o + .debug_macro 0x00001c0c 0x52 ./src/dma_corrige.o + .debug_macro 0x00001c5e 0x62 ./src/dmatest_corrige.o + .debug_macro 0x00001cc0 0x337 ./src/dmatest_corrige.o + +.debug_line 0x00000000 0x58d + .debug_line 0x00000000 0x122 ./src/config_LPC1769.o + .debug_line 0x00000122 0xbc ./src/cr_startup_lpc176x.o + .debug_line 0x000001de 0x78 ./src/crp.o + .debug_line 0x00000256 0x141 ./src/dma_corrige.o + .debug_line 0x00000397 0x1f6 ./src/dmatest_corrige.o + +.debug_str 0x00000000 0x5ac2 + .debug_str 0x00000000 0x54d4 ./src/config_LPC1769.o + 0x5552 (size before relaxing) + .debug_str 0x000054d4 0x29f ./src/cr_startup_lpc176x.o + 0x263f (size before relaxing) + .debug_str 0x00005773 0xe9 ./src/crp.o + 0x2540 (size before relaxing) + .debug_str 0x0000585c 0x1a1 ./src/dma_corrige.o + 0x56d6 (size before relaxing) + .debug_str 0x000059fd 0xc5 ./src/dmatest_corrige.o + 0x5769 (size before relaxing) + +.comment 0x00000000 0xe0 + .comment 0x00000000 0x70 ./src/config_LPC1769.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/cr_startup_lpc176x.o + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000070 0x70 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x71 (size before relaxing) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/config_LPC1769.o + .ARM.attributes + 0x00000033 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000066 0x33 ./src/crp.o + .ARM.attributes + 0x00000099 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x000000cc 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_8.0.0_526/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.9.3/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x20c + .debug_frame 0x00000000 0x30 ./src/config_LPC1769.o + .debug_frame 0x00000030 0xf0 ./src/cr_startup_lpc176x.o + .debug_frame 0x00000120 0x60 ./src/dma_corrige.o + .debug_frame 0x00000180 0x8c ./src/dmatest_corrige.o + +.debug_loc 0x00000000 0x1be + .debug_loc 0x00000000 0x1be ./src/cr_startup_lpc176x.o diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld new file mode 100644 index 0000000..5965732 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug.ld @@ -0,0 +1,158 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from linkscript.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +INCLUDE "labo6_DMA_Debug_library.ld" +INCLUDE "labo6_DMA_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 Protect 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 Protect */ + } >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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld new file mode 100644 index 0000000..af97581 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_library.ld @@ -0,0 +1,14 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from library.ldt by FMCreateLinkLibraries + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +GROUP ( + libcr_c.a + libcr_eabihelpers.a +) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld new file mode 100644 index 0000000..247ebe9 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_memory.ld @@ -0,0 +1,31 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2013 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from memory.ldt by FMCreateLinkMemory + * Using Freemarker v2.3.23 + * LPCXpresso v8.0.0 [Build 526] [2015-11-23] on 19 janv. 2017 07:46:59 + */ + +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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld new file mode 100644 index 0000000..a0693af --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo6_DMA_Debug_old.ld @@ -0,0 +1,163 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-13 + * (c) NXP Semiconductors 2013-2017 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (8.0.0 ()) + * By LPCXpresso v8.0.0 [Build 526] [2015-11-23] on Thu Jan 19 07:46:58 CET 2017 + */ + + +INCLUDE "labo6_DMA_Debug_library.ld" +INCLUDE "labo6_DMA_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 Protect 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 Protect */ + + } >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); +} diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.axf b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.axf new file mode 100644 index 0000000000000000000000000000000000000000..3afac83f168d619448067e191671069e2206e77d GIT binary patch literal 192267 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�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�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 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.map b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.map new file mode 100644 index 0000000..7971490 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA.map @@ -0,0 +1,404 @@ +Archive member included because of file (symbol) + +C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + ./src/cr_startup_lpc176x.o (SystemInit) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) +c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .text 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .bss 0x00000000 0x0 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text.SystemCoreClockUpdate + 0x00000000 0xcc C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data.SystemCoreClock + 0x00000000 0x4 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv + 0x00000000 0x10 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidiv + 0x00000000 0x10 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldivmod + 0x00000000 0x26 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uldivmod + 0x00000000 0x174 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x26 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.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_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +LOAD C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a +START GROUP +LOAD c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a +END GROUP + 0x00080000 __top_MFlash512 = 0x80000 + 0x10008000 __top_RamLoc32 = 0x10008000 + 0x20084000 __top_RamAHB32 = 0x20084000 + +.text 0x00000000 0x898 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x898 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x898 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x282c 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 0x78 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 data_init + 0x00000118 bss_init + 0x00000128 ResetISR + 0x00000168 UART1_IRQHandler + 0x00000168 EINT3_IRQHandler + 0x00000168 CANActivity_IRQHandler + 0x00000168 TIMER3_IRQHandler + 0x00000168 UART0_IRQHandler + 0x00000168 EINT2_IRQHandler + 0x00000168 I2C1_IRQHandler + 0x00000168 IntDefaultHandler + 0x00000168 PLL0_IRQHandler + 0x00000168 PWM1_IRQHandler + 0x00000168 PLL1_IRQHandler + 0x00000168 SSP0_IRQHandler + 0x00000168 I2S_IRQHandler + 0x00000168 I2C2_IRQHandler + 0x00000168 RTC_IRQHandler + 0x00000168 TIMER0_IRQHandler + 0x00000168 SPI_IRQHandler + 0x00000168 USBActivity_IRQHandler + 0x00000168 EINT1_IRQHandler + 0x00000168 TIMER1_IRQHandler + 0x00000168 UART2_IRQHandler + 0x00000168 ADC_IRQHandler + 0x00000168 SSP1_IRQHandler + 0x00000168 USB_IRQHandler + 0x00000168 BOD_IRQHandler + 0x00000168 I2C0_IRQHandler + 0x00000168 WDT_IRQHandler + 0x00000168 RIT_IRQHandler + 0x00000168 QEI_IRQHandler + 0x00000168 EINT0_IRQHandler + 0x00000168 CAN_IRQHandler + 0x00000168 TIMER2_IRQHandler + 0x00000168 UART3_IRQHandler + 0x00000168 MCPWM_IRQHandler + 0x00000168 ENET_IRQHandler + 0x000002fc . = 0x2fc + *fill* 0x0000016c 0x190 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 0x38 ./src/dma_corrige.o + .text.DMA_IRQHandler + 0x00000338 0x7c ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x000003b4 0xc0 ./src/dma_corrige.o + 0x000003b4 DMA_Init + .text.single_copy + 0x00000474 0xa8 ./src/dmatest_corrige.o + 0x00000474 single_copy + .text.LLI_copy + 0x0000051c 0x1e4 ./src/dmatest_corrige.o + 0x0000051c LLI_copy + .text.check_res + 0x00000700 0x4c ./src/dmatest_corrige.o + 0x00000700 check_res + .text.main 0x0000074c 0x3c ./src/dmatest_corrige.o + 0x0000074c main + .text.SystemInit + 0x00000788 0xe4 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x00000788 SystemInit + .text.memset 0x0000086c 0x4 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x0000086c memset + .text.__weak_main + 0x00000870 0x4 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x00000870 __weak_main + 0x00000870 __main + .text.__aeabi_memset_lowlevel + 0x00000874 0x24 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x00000874 __aeabi_lowlevel_memset + *(.rodata .rodata.*) + 0x00000898 . = ALIGN (0x4) + +.glue_7 0x00000898 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x00000898 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x00000898 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x00000898 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x00000898 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x00000898 __exidx_end = . + 0x00000898 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x00000898 + FILL mask 0xff + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x00000898 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.bss_RAM2 0x2007c000 0x0 + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.bss 0x10000000 0x282c + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2824 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 src2 + 0x10001408 src3 + 0x10001808 i + 0x1000180c src1 + 0x1000280c LLI + 0x1000282c . = ALIGN (0x4) + 0x1000282c _ebss = . + 0x1000282c PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x1000282c 0x0 + 0x1000282c _noinit = . + *(.noinit*) + 0x1000282c . = ALIGN (0x4) + 0x1000282c _end_noinit = . + 0x1000282c PROVIDE (_pvHeapStart, .) + 0x10008000 PROVIDE (_vStackTop, (__top_RamLoc32 - 0x0)) +OUTPUT(labo7_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0xd1b + .debug_info 0x00000000 0x2dd ./src/cr_startup_lpc176x.o + .debug_info 0x000002dd 0x48 ./src/crp.o + .debug_info 0x00000325 0x400 ./src/dma_corrige.o + .debug_info 0x00000725 0x267 ./src/dmatest_corrige.o + .debug_info 0x0000098c 0x38f C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_abbrev 0x00000000 0x4a9 + .debug_abbrev 0x00000000 0x12b ./src/cr_startup_lpc176x.o + .debug_abbrev 0x0000012b 0x39 ./src/crp.o + .debug_abbrev 0x00000164 0x144 ./src/dma_corrige.o + .debug_abbrev 0x000002a8 0x11e ./src/dmatest_corrige.o + .debug_abbrev 0x000003c6 0xe3 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_loc 0x00000000 0x286 + .debug_loc 0x00000000 0x102 ./src/cr_startup_lpc176x.o + .debug_loc 0x00000102 0xa8 ./src/dma_corrige.o + .debug_loc 0x000001aa 0xbc ./src/dmatest_corrige.o + .debug_loc 0x00000266 0x20 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_aranges 0x00000000 0x110 + .debug_aranges + 0x00000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x00000080 0x30 ./src/dma_corrige.o + .debug_aranges + 0x000000b0 0x38 ./src/dmatest_corrige.o + .debug_aranges + 0x000000e8 0x28 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_ranges 0x00000000 0xd0 + .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000070 0x20 ./src/dma_corrige.o + .debug_ranges 0x00000090 0x28 ./src/dmatest_corrige.o + .debug_ranges 0x000000b8 0x18 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_line 0x00000000 0x1114 + .debug_line 0x00000000 0x3da ./src/cr_startup_lpc176x.o + .debug_line 0x000003da 0xac ./src/crp.o + .debug_line 0x00000486 0x406 ./src/dma_corrige.o + .debug_line 0x0000088c 0x49c ./src/dmatest_corrige.o + .debug_line 0x00000d28 0x3ec C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_macinfo 0x00000000 0x22317 + .debug_macinfo + 0x00000000 0x3d45 ./src/cr_startup_lpc176x.o + .debug_macinfo + 0x00003d45 0x238b ./src/crp.o + .debug_macinfo + 0x000060d0 0x9e68 ./src/dma_corrige.o + .debug_macinfo + 0x0000ff38 0x9eae ./src/dmatest_corrige.o + .debug_macinfo + 0x00019de6 0x8531 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_str 0x00000000 0x792 + .debug_str 0x00000000 0x263 ./src/cr_startup_lpc176x.o + 0x28b (size before relaxing) + .debug_str 0x00000263 0x16 ./src/crp.o + 0xb8 (size before relaxing) + .debug_str 0x00000279 0x2db ./src/dma_corrige.o + 0x3f6 (size before relaxing) + .debug_str 0x00000554 0x88 ./src/dmatest_corrige.o + 0x1c4 (size before relaxing) + .debug_str 0x000005dc 0x1b6 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x2c8 (size before relaxing) + +.comment 0x00000000 0x70 + .comment 0x00000000 0x70 ./src/cr_startup_lpc176x.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000000 0x71 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000033 0x33 ./src/crp.o + .ARM.attributes + 0x00000066 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x00000099 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000cc 0x33 C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .ARM.attributes + 0x00000186 0x21 c:/nxp/lpcxpresso_6.0.4_159/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x218 + .debug_frame 0x00000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x000000f4 0x68 ./src/dma_corrige.o + .debug_frame 0x0000015c 0x80 ./src/dmatest_corrige.o + .debug_frame 0x000001dc 0x3c C:\Users\pillouxv\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld new file mode 100644 index 0000000..fb58006 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug.ld @@ -0,0 +1,155 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (LPCXpresso v6.0 (4 [Build 159] [2013-10-09] )) + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015 + */ + + +INCLUDE "labo7_DMA_Debug_lib.ld" +INCLUDE "labo7_DMA_Debug_mem.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 Protect 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 Protect */ + + } >MFlash512 + + .text : ALIGN(4) + { + *(.text*) + *(.rodata .rodata.*) + . = 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) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + . = ALIGN(4) ; + } > 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) + *(.data*) + . = ALIGN(4) ; + _edata = . ; + } > RamLoc32 AT>MFlash512 + + /* BSS section for RamAHB32 */ + .bss_RAM2 : ALIGN(4) + { + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + . = ALIGN(4) ; + } > 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 = .); + PROVIDE(_vStackTop = __top_RamLoc32 - 0); +} diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld new file mode 100644 index 0000000..e88af09 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_lib.ld @@ -0,0 +1,14 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Generated linker script file for LPC1769 + * Created from LibIncTemplate.ld (LPCXpresso v6.0 (4 [Build 159] [2013-10-09] )) + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015 + */ + + + GROUP( + libcr_c.a + libcr_eabihelpers.a + ) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld new file mode 100644 index 0000000..37ce01f --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo7_DMA_Debug_mem.ld @@ -0,0 +1,25 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (c) Code Red Technologies Ltd, 2008-2015 + * (c) NXP Semiconductors 2013-2015 + * Linker script memory definitions + * Created from LinkMemoryTemplate + * By LPCXpresso v6.0.4 [Build 159] [2013-10-09] on Wed Dec 16 18:24:34 CET 2015) +*/ + +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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.axf b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.axf new file mode 100644 index 0000000000000000000000000000000000000000..a9b9018a5d156f8da8d33bad3f370b608ddac789 GIT binary patch literal 192043 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 W_JQIHB^UXEm*gU)2H3O-Oa}m9ihqaz literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.map b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.map new file mode 100644 index 0000000..d34e2ea --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA.map @@ -0,0 +1,403 @@ +Archive member included because of file (symbol) + +C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + ./src/cr_startup_lpc176x.o (SystemInit) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + ./src/dmatest_corrige.o (memset) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + ./src/cr_startup_lpc176x.o (__main) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) (__aeabi_uldivmod) +c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) (__aeabi_lowlevel_memset) + +Allocating common symbols +Common symbol size file + +dest 0x1000 ./src/dmatest_corrige.o +src2 0x400 ./src/dmatest_corrige.o +src3 0x400 ./src/dmatest_corrige.o +i 0x4 ./src/dmatest_corrige.o +src1 0x1000 ./src/dmatest_corrige.o +LLI 0x20 ./src/dmatest_corrige.o + +Discarded input sections + + .text 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .data 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .bss 0x00000000 0x0 ./src/cr_startup_lpc176x.o + .text 0x00000000 0x0 ./src/crp.o + .data 0x00000000 0x0 ./src/crp.o + .bss 0x00000000 0x0 ./src/crp.o + .text 0x00000000 0x0 ./src/dma_corrige.o + .data 0x00000000 0x0 ./src/dma_corrige.o + .bss 0x00000000 0x0 ./src/dma_corrige.o + .text 0x00000000 0x0 ./src/dmatest_corrige.o + .data 0x00000000 0x0 ./src/dmatest_corrige.o + .bss 0x00000000 0x0 ./src/dmatest_corrige.o + .text.single_copy + 0x00000000 0xc4 ./src/dmatest_corrige.o + .text 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .bss 0x00000000 0x0 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text.SystemCoreClockUpdate + 0x00000000 0xcc C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .data.SystemCoreClock + 0x00000000 0x4 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv + 0x00000000 0x10 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidiv + 0x00000000 0x10 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uidivmod + 0x00000000 0x16 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldivmod + 0x00000000 0x26 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_uldivmod + 0x00000000 0x174 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_idiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text.__aeabi_division_ldiv0 + 0x00000000 0x2 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .text 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .data 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .bss 0x00000000 0x0 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memcpy + 0x00000000 0x26 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memmove + 0x00000000 0x1c c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memclr + 0x00000000 0x8 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + .text.__aeabi_memset + 0x00000000 0xa c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.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_lpc176x.o +LOAD ./src/crp.o +LOAD ./src/dma_corrige.o +LOAD ./src/dmatest_corrige.o +LOAD C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a +START GROUP +LOAD c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a +LOAD c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a +END GROUP + 0x00080000 __top_MFlash512 = 0x80000 + 0x10008000 __top_RamLoc32 = 0x10008000 + 0x20084000 __top_RamAHB32 = 0x20084000 + +.text 0x00000000 0x7f8 + FILL mask 0xff + 0x00000000 __vectors_start__ = ABSOLUTE (.) + *(.isr_vector) + .isr_vector 0x00000000 0xcc ./src/cr_startup_lpc176x.o + 0x00000000 g_pfnVectors + 0x000000cc . = ALIGN (0x4) + 0x000000cc __section_table_start = . + 0x000000cc __data_section_table = . + 0x000000cc 0x4 LONG 0x7f8 LOADADDR (.data) + 0x000000d0 0x4 LONG 0x10000000 ADDR (.data) + 0x000000d4 0x4 LONG 0x0 SIZEOF (.data) + 0x000000d8 0x4 LONG 0x7f8 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 0x10000000 ADDR (.bss) + 0x000000e8 0x4 LONG 0x282c 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 0x78 ./src/cr_startup_lpc176x.o + 0x000000f4 NMI_Handler + 0x000000f6 HardFault_Handler + 0x000000f8 MemManage_Handler + 0x000000fa BusFault_Handler + 0x000000fc UsageFault_Handler + 0x000000fe SVC_Handler + 0x00000100 DebugMon_Handler + 0x00000102 PendSV_Handler + 0x00000104 SysTick_Handler + 0x00000106 data_init + 0x00000118 bss_init + 0x00000128 ResetISR + 0x00000168 UART1_IRQHandler + 0x00000168 EINT3_IRQHandler + 0x00000168 CANActivity_IRQHandler + 0x00000168 TIMER3_IRQHandler + 0x00000168 UART0_IRQHandler + 0x00000168 EINT2_IRQHandler + 0x00000168 I2C1_IRQHandler + 0x00000168 IntDefaultHandler + 0x00000168 PLL0_IRQHandler + 0x00000168 PWM1_IRQHandler + 0x00000168 PLL1_IRQHandler + 0x00000168 SSP0_IRQHandler + 0x00000168 I2S_IRQHandler + 0x00000168 I2C2_IRQHandler + 0x00000168 RTC_IRQHandler + 0x00000168 TIMER0_IRQHandler + 0x00000168 SPI_IRQHandler + 0x00000168 USBActivity_IRQHandler + 0x00000168 EINT1_IRQHandler + 0x00000168 TIMER1_IRQHandler + 0x00000168 UART2_IRQHandler + 0x00000168 ADC_IRQHandler + 0x00000168 SSP1_IRQHandler + 0x00000168 USB_IRQHandler + 0x00000168 BOD_IRQHandler + 0x00000168 I2C0_IRQHandler + 0x00000168 WDT_IRQHandler + 0x00000168 RIT_IRQHandler + 0x00000168 QEI_IRQHandler + 0x00000168 EINT0_IRQHandler + 0x00000168 CAN_IRQHandler + 0x00000168 TIMER2_IRQHandler + 0x00000168 UART3_IRQHandler + 0x00000168 MCPWM_IRQHandler + 0x00000168 ENET_IRQHandler + 0x000002fc . = 0x2fc + *fill* 0x0000016c 0x190 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 0x38 ./src/dma_corrige.o + .text.DMA_IRQHandler + 0x00000338 0x94 ./src/dma_corrige.o + 0x00000338 DMA_IRQHandler + .text.DMA_Init + 0x000003cc 0xa4 ./src/dma_corrige.o + 0x000003cc DMA_Init + .text.LLI_copy + 0x00000470 0x200 ./src/dmatest_corrige.o + 0x00000470 LLI_copy + .text.check_res + 0x00000670 0x4c ./src/dmatest_corrige.o + 0x00000670 check_res + .text.main 0x000006bc 0x2c ./src/dmatest_corrige.o + 0x000006bc main + .text.SystemInit + 0x000006e8 0xe4 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x000006e8 SystemInit + .text.memset 0x000007cc 0x4 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + 0x000007cc memset + .text.__weak_main + 0x000007d0 0x4 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + 0x000007d0 __weak_main + 0x000007d0 __main + .text.__aeabi_memset_lowlevel + 0x000007d4 0x24 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + 0x000007d4 __aeabi_lowlevel_memset + *(.rodata .rodata.*) + 0x000007f8 . = ALIGN (0x4) + +.glue_7 0x000007f8 0x0 + .glue_7 0x00000000 0x0 linker stubs + +.glue_7t 0x000007f8 0x0 + .glue_7t 0x00000000 0x0 linker stubs + +.vfp11_veneer 0x000007f8 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x000007f8 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ARM.extab + *(.ARM.extab* .gnu.linkonce.armextab.*) + 0x000007f8 __exidx_start = . + +.ARM.exidx + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + 0x000007f8 __exidx_end = . + 0x000007f8 _etext = . + +.data_RAM2 0x2007c000 0x0 load address 0x000007f8 + FILL mask 0xff + *(.data.$RAM2*) + *(.data.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.uninit_RESERVED + 0x10000000 0x0 + *(.bss.$RESERVED*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _end_uninit_RESERVED = . + +.data 0x10000000 0x0 load address 0x000007f8 + FILL mask 0xff + 0x10000000 _data = . + *(vtable) + *(.data*) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _edata = . + +.bss_RAM2 0x2007c000 0x0 + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.bss 0x10000000 0x282c + 0x10000000 _bss = . + *(.bss*) + .bss.DMATCCount + 0x10000000 0x4 ./src/dma_corrige.o + 0x10000000 DMATCCount + .bss.DMAErrCount + 0x10000004 0x4 ./src/dma_corrige.o + 0x10000004 DMAErrCount + *(COMMON) + COMMON 0x10000008 0x2824 ./src/dmatest_corrige.o + 0x10000008 dest + 0x10001008 src2 + 0x10001408 src3 + 0x10001808 i + 0x1000180c src1 + 0x1000280c LLI + 0x1000282c . = ALIGN (0x4) + 0x1000282c _ebss = . + 0x1000282c PROVIDE (end, .) + +.noinit_RAM2 0x2007c000 0x0 + *(.noinit.$RAM2*) + *(.noinit.$RamAHB32*) + 0x2007c000 . = ALIGN (0x4) + +.noinit 0x1000282c 0x0 + 0x1000282c _noinit = . + *(.noinit*) + 0x1000282c . = ALIGN (0x4) + 0x1000282c _end_noinit = . + 0x1000282c PROVIDE (_pvHeapStart, .) + 0x10008000 PROVIDE (_vStackTop, (__top_RamLoc32 - 0x0)) +OUTPUT(labo_DMA.axf elf32-littlearm) + +.debug_info 0x00000000 0xd1b + .debug_info 0x00000000 0x2dd ./src/cr_startup_lpc176x.o + .debug_info 0x000002dd 0x48 ./src/crp.o + .debug_info 0x00000325 0x400 ./src/dma_corrige.o + .debug_info 0x00000725 0x267 ./src/dmatest_corrige.o + .debug_info 0x0000098c 0x38f C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_abbrev 0x00000000 0x4a9 + .debug_abbrev 0x00000000 0x12b ./src/cr_startup_lpc176x.o + .debug_abbrev 0x0000012b 0x39 ./src/crp.o + .debug_abbrev 0x00000164 0x144 ./src/dma_corrige.o + .debug_abbrev 0x000002a8 0x11e ./src/dmatest_corrige.o + .debug_abbrev 0x000003c6 0xe3 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_loc 0x00000000 0x286 + .debug_loc 0x00000000 0x102 ./src/cr_startup_lpc176x.o + .debug_loc 0x00000102 0xa8 ./src/dma_corrige.o + .debug_loc 0x000001aa 0xbc ./src/dmatest_corrige.o + .debug_loc 0x00000266 0x20 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_aranges 0x00000000 0x110 + .debug_aranges + 0x00000000 0x80 ./src/cr_startup_lpc176x.o + .debug_aranges + 0x00000080 0x30 ./src/dma_corrige.o + .debug_aranges + 0x000000b0 0x38 ./src/dmatest_corrige.o + .debug_aranges + 0x000000e8 0x28 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_ranges 0x00000000 0xd0 + .debug_ranges 0x00000000 0x70 ./src/cr_startup_lpc176x.o + .debug_ranges 0x00000070 0x20 ./src/dma_corrige.o + .debug_ranges 0x00000090 0x28 ./src/dmatest_corrige.o + .debug_ranges 0x000000b8 0x18 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_line 0x00000000 0x110e + .debug_line 0x00000000 0x3d8 ./src/cr_startup_lpc176x.o + .debug_line 0x000003d8 0xad ./src/crp.o + .debug_line 0x00000485 0x403 ./src/dma_corrige.o + .debug_line 0x00000888 0x495 ./src/dmatest_corrige.o + .debug_line 0x00000d1d 0x3f1 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_macinfo 0x00000000 0x22317 + .debug_macinfo + 0x00000000 0x3d45 ./src/cr_startup_lpc176x.o + .debug_macinfo + 0x00003d45 0x238b ./src/crp.o + .debug_macinfo + 0x000060d0 0x9e68 ./src/dma_corrige.o + .debug_macinfo + 0x0000ff38 0x9eae ./src/dmatest_corrige.o + .debug_macinfo + 0x00019de6 0x8531 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + +.debug_str 0x00000000 0x783 + .debug_str 0x00000000 0x25b ./src/cr_startup_lpc176x.o + 0x283 (size before relaxing) + .debug_str 0x0000025b 0x16 ./src/crp.o + 0xb0 (size before relaxing) + .debug_str 0x00000271 0x2db ./src/dma_corrige.o + 0x3ee (size before relaxing) + .debug_str 0x0000054c 0x88 ./src/dmatest_corrige.o + 0x1bc (size before relaxing) + .debug_str 0x000005d4 0x1af C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + 0x2c1 (size before relaxing) + +.comment 0x00000000 0x70 + .comment 0x00000000 0x70 ./src/cr_startup_lpc176x.o + 0x71 (size before relaxing) + .comment 0x00000000 0x71 ./src/crp.o + .comment 0x00000000 0x71 ./src/dma_corrige.o + .comment 0x00000000 0x71 ./src/dmatest_corrige.o + .comment 0x00000000 0x71 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .comment 0x00000000 0x71 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x33 ./src/cr_startup_lpc176x.o + .ARM.attributes + 0x00000033 0x33 ./src/crp.o + .ARM.attributes + 0x00000066 0x33 ./src/dma_corrige.o + .ARM.attributes + 0x00000099 0x33 ./src/dmatest_corrige.o + .ARM.attributes + 0x000000cc 0x33 C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) + .ARM.attributes + 0x000000ff 0x33 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(memset.o) + .ARM.attributes + 0x00000132 0x33 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/lib/armv7-m\libcr_c.a(__weak__main.o) + .ARM.attributes + 0x00000165 0x21 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(division.o) + .ARM.attributes + 0x00000186 0x21 c:/nxp/lpcxpresso_5.2.6_2137/lpcxpresso/tools/bin/../lib/gcc/arm-none-eabi/4.6.2/armv7-m\libcr_eabihelpers.a(memcpy.o) + +.debug_frame 0x00000000 0x218 + .debug_frame 0x00000000 0xf4 ./src/cr_startup_lpc176x.o + .debug_frame 0x000000f4 0x68 ./src/dma_corrige.o + .debug_frame 0x0000015c 0x80 ./src/dmatest_corrige.o + .debug_frame 0x000001dc 0x3c C:\Users\Vincent\Documents\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug\libCMSISv2p00_LPC17xx.a(system_LPC17xx.o) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld new file mode 100644 index 0000000..46f8ad1 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug.ld @@ -0,0 +1,154 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * Generated linker script file for LPC1769 + * Created from generic_c.ld (vLPCXpresso v5.2 (6 [Build 2137] [2013-07-08] )) + * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Fri Jan 09 22:38:35 CET 2015 + */ + + +INCLUDE "labo_DMA_Debug_lib.ld" +INCLUDE "labo_DMA_Debug_mem.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 Protect 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 Protect */ + + } >MFlash512 + + .text : ALIGN(4) + { + *(.text*) + *(.rodata .rodata.*) + . = 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) + *(.data.$RAM2*) + *(.data.$RamAHB32*) + . = ALIGN(4) ; + } > 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) + *(.data*) + . = ALIGN(4) ; + _edata = . ; + } > RamLoc32 AT>MFlash512 + + /* BSS section for RamAHB32 */ + .bss_RAM2 : ALIGN(4) + { + *(.bss.$RAM2*) + *(.bss.$RamAHB32*) + . = ALIGN(4) ; + } > 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 = .); + PROVIDE(_vStackTop = __top_RamLoc32 - 0); +} diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld new file mode 100644 index 0000000..2e8b5b9 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_lib.ld @@ -0,0 +1,13 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * 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 Fri Jan 09 22:38:35 CET 2015 + */ + + + GROUP( + libcr_c.a + libcr_eabihelpers.a + ) diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld new file mode 100644 index 0000000..de3f6c5 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/labo_DMA_Debug_mem.ld @@ -0,0 +1,21 @@ +/* + * GENERATED FILE - DO NOT EDIT + * (C) Code Red Technologies Ltd, 2008-2015 + * Linker script memory definitions + * Created from LinkMemoryTemplate + * By LPCXpresso v5.2.6 [Build 2137] [2013-07-08] on Fri Jan 09 22:38:35 CET 2015) +*/ + +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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/makefile b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/makefile new file mode 100644 index 0000000..9604a22 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/makefile @@ -0,0 +1,60 @@ +################################################################################ +# 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 := labo4.1_DMA_new +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: labo4.1_DMA_new.axf + +# Tool invocations +labo4.1_DMA_new.axf: $(OBJS) $(USER_OBJS) makefile $(OPTIONAL_TOOL_DEPS) + @echo 'Building target: $@' + @echo 'Invoking: MCU Linker' + arm-none-eabi-gcc -nostdlib -L"C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\Debug" -Xlinker -Map="labo4.1_DMA_new.map" -Xlinker --gc-sections -mcpu=cortex-m3 -mthumb -T labo4_1_DMA_new_Debug.ld -o "labo4.1_DMA_new.axf" $(OBJS) $(USER_OBJS) $(LIBS) -lCMSISv2p00_LPC17xx + @echo 'Finished building target: $@' + @echo ' ' + +# Other Targets +clean: + -$(RM) labo4.1_DMA_new.axf + -@echo ' ' + +post-build: + -@echo 'Performing post-build steps' + -arm-none-eabi-size "labo4.1_DMA_new.axf"; # arm-none-eabi-objcopy -O binary "labo4.1_DMA_new.axf" "labo4.1_DMA_new.bin" ; checksum -p LPC1769 -d "labo4.1_DMA_new.bin"; + -@echo ' ' + +.PHONY: all clean dependents main-build post-build + +-include ../makefile.targets diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/objects.mk b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/objects.mk new file mode 100644 index 0000000..dc31e16 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := + diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/sources.mk b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/sources.mk new file mode 100644 index 0000000..19839d5 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/sources.mk @@ -0,0 +1,18 @@ +################################################################################ +# 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 := \ +src \ + diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/config_LPC1769.su b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/config_LPC1769.su new file mode 100644 index 0000000..ef495e2 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/config_LPC1769.su @@ -0,0 +1 @@ +config_LPC1769.c:4:6:init 4 static diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d new file mode 100644 index 0000000..84ce6d0 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.d @@ -0,0 +1 @@ +src/cr_startup_lpc176x.o: ../src/cr_startup_lpc176x.c diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.o new file mode 100644 index 0000000000000000000000000000000000000000..1d1f5d253d824d6bffea65c6248d463e5d5c67de GIT binary patch literal 27024 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 MF#H2aKru`m03%o*T>t<8 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su new file mode 100644 index 0000000..4939545 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/cr_startup_lpc176x.su @@ -0,0 +1,13 @@ +../src/cr_startup_lpc176x.c:346:6:NMI_Handler 0 static +../src/cr_startup_lpc176x.c:353:6:HardFault_Handler 0 static +../src/cr_startup_lpc176x.c:360:6:MemManage_Handler 0 static +../src/cr_startup_lpc176x.c:367:6:BusFault_Handler 0 static +../src/cr_startup_lpc176x.c:374:6:UsageFault_Handler 0 static +../src/cr_startup_lpc176x.c:381:6:SVC_Handler 0 static +../src/cr_startup_lpc176x.c:388:6:DebugMon_Handler 0 static +../src/cr_startup_lpc176x.c:395:6:PendSV_Handler 0 static +../src/cr_startup_lpc176x.c:402:6:SysTick_Handler 0 static +../src/cr_startup_lpc176x.c:416:6:IntDefaultHandler 0 static +../src/cr_startup_lpc176x.c:216:6:data_init 8 static +../src/cr_startup_lpc176x.c:225:6:bss_init 0 static +../src/cr_startup_lpc176x.c:271:1:ResetISR 16 static diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.d b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.d new file mode 100644 index 0000000..2548921 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.d @@ -0,0 +1 @@ +src/crp.o src/crp.d: ../src/crp.c diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.o b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.o new file mode 100644 index 0000000000000000000000000000000000000000..d5bbc38772a1c7fdd9a28d247d660cf7eac4d6ec GIT binary patch literal 20332 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 C#Q+fi literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.su b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/crp.su new file mode 100644 index 0000000..e69de29 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.d b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.d new file mode 100644 index 0000000..6c76c86 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.d @@ -0,0 +1,13 @@ +src/dma.o src/dma.d: ../src/dma.c \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cm3.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h \ + ../src/dma.h +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/LPC17xx.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cm3.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: +../src/dma.h: diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.o b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.o new file mode 100644 index 0000000000000000000000000000000000000000..5a76cfa9e8533693b9c177acca80f1691e395842 GIT binary patch literal 58004 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 V&>S_gx*0bZ7zAOG(69ih0|43g$B+O3 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.su b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.su new file mode 100644 index 0000000..60bd963 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dma.su @@ -0,0 +1,2 @@ +../src/dma.c:16:6:DMA_IRQHandler 4 static +../src/dma.c:35:6:DMA_Init 24 static diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.d b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.d new file mode 100644 index 0000000..177ba17 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.d @@ -0,0 +1,12 @@ +src/dmatest.o src/dmatest.d: ../src/dmatest.c ../src/dma.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/LPC17xx.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cm3.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmInstr.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmFunc.h \ + C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h +../src/dma.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/LPC17xx.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cm3.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmInstr.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/core_cmFunc.h: +C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc/system_LPC17xx.h: diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.o b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.o new file mode 100644 index 0000000000000000000000000000000000000000..a64ae92087d29f5a78367c0dd7dfb2538fc01c16 GIT binary patch literal 59224 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 literal 0 HcmV?d00001 diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.su b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.su new file mode 100644 index 0000000..764c89d --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/dmatest.su @@ -0,0 +1,4 @@ +../src/dmatest.c:17:6:single_copy 8 static +../src/dmatest.c:30:6:LLI_copy 8 static +../src/dmatest.c:52:5:check_res 16 static +../src/dmatest.c:67:5:main 8 static diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/subdir.mk b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/subdir.mk new file mode 100644 index 0000000..d282bd8 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/Debug/src/subdir.mk @@ -0,0 +1,47 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../src/cr_startup_lpc176x.c \ +../src/crp.c \ +../src/dma.c \ +../src/dmatest.c + +C_DEPS += \ +./src/cr_startup_lpc176x.d \ +./src/crp.d \ +./src/dma.d \ +./src/dmatest.d + +OBJS += \ +./src/cr_startup_lpc176x.o \ +./src/crp.o \ +./src/dma.o \ +./src/dmatest.o + + +# Each subdirectory must supply rules for building sources it contributes +src/cr_startup_lpc176x.o: ../src/cr_startup_lpc176x.c src/subdir.mk + @echo 'Building file: $<' + @echo 'Invoking: MCU C Compiler' + arm-none-eabi-gcc -D__REDLIB__ -DDEBUG -D__CODE_RED -I"C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc" -Os -g3 -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 "$@" "$<" + @echo 'Finished building: $<' + @echo ' ' + +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"C:\Users\vincent.pilloux\Documents\Hepia\LPCXpresso_5.2.6_2137\pro\CMSISv2p00_LPC17xx\inc" -O0 -g3 -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_lpc176x.d ./src/cr_startup_lpc176x.o ./src/crp.d ./src/crp.o ./src/dma.d ./src/dma.o ./src/dmatest.d ./src/dmatest.o + +.PHONY: clean-src + diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Debug.launch b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Debug.launch new file mode 100644 index 0000000..159c237 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Debug.launch @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<launchConfiguration type="com.crt.dsfdebug.crtmcu.launchType"> +<stringAttribute key="LAUNCH_ID.OFSemuDetails" value="LPC-Link (HID)"/> +<booleanAttribute key="com.crt.ctrlcenter.crtInit" value="true"/> +<stringAttribute key="com.crt.ctrlcenter.currentWireType" value="SWD"/> +<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$).*$" 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)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP)" 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)" 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)" 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\labo6_DMA.axf"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="labo6_DMA"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.debug.759137190"/> +<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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Release.launch b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Release.launch new file mode 100644 index 0000000..3c50751 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/labo6_DMA Release.launch @@ -0,0 +1,18 @@ +<?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$).*$" 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)" required="false" type="nullString" var="internal.connect.script"/> <param content="serverScript" description="Reset script" name="Reset Script" probe="(?i)(Redlink\s+Server|CMSIS-DAP)" 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)" 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)" 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\labo6_DMA.axf"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="labo6_DMA"/> +<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.crt.advproject.config.exe.release.1841072117"/> +<booleanAttribute key="org.eclipse.cdt.launch.use_terminal" value="false"/> +</launchConfiguration> diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/cr_startup_lpc176x.c b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/cr_startup_lpc176x.c new file mode 100644 index 0000000..d847441 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/cr_startup_lpc176x.c @@ -0,0 +1,421 @@ +//***************************************************************************** +// +--+ +// | ++----+ +// +-++ | +// | | +// +-+--+ | +// | +--+--+ +// +----+ Copyright (c) 2009-12 Code Red Technologies Ltd. +// +// Microcontroller Startup code for use with Red Suite +// +// Version : 120126 +// +// 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 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); +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); + +//***************************************************************************** +// +// 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 + ENET_IRQHandler, // 44, 0xb0 - 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; +} + +#ifndef USE_OLD_STYLE_DATA_BSS_INIT +//***************************************************************************** +// 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; +#else +//***************************************************************************** +// The following symbols are constructs generated by the linker, indicating +// the load address, execution address and length of the RW data section and +// the execution and length of the BSS (zero initialized) section. +// Note that these symbols are not normally used by the managed linker script +// mechanism in Red Suite/LPCXpresso 3.6 (Windows) and LPCXpresso 3.8 (Linux). +// They are provide here simply so this startup code can be used with earlier +// versions of Red Suite which do not support the more advanced managed linker +// script mechanism introduced in the above version. To enable their use, +// define "USE_OLD_STYLE_DATA_BSS_INIT". +//***************************************************************************** +extern unsigned int _etext; +extern unsigned int _data; +extern unsigned int _edata; +extern unsigned int _bss; +extern unsigned int _ebss; +#endif + + +//***************************************************************************** +// 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) { + +#ifndef USE_OLD_STYLE_DATA_BSS_INIT + // + // 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); + } +#else + // Use Old Style Data and BSS section initialization. + // This will only initialize a single RAM bank. + unsigned int * LoadAddr, *ExeAddr, *EndAddr, SectionLen; + + // Copy the data segment from flash to SRAM. + LoadAddr = &_etext; + ExeAddr = &_data; + EndAddr = &_edata; + SectionLen = (void*)EndAddr - (void*)ExeAddr; + data_init((unsigned int)LoadAddr, (unsigned int)ExeAddr, SectionLen); + // Zero fill the bss segment + ExeAddr = &_bss; + EndAddr = &_ebss; + SectionLen = (void*)EndAddr - (void*)ExeAddr; + bss_init ((unsigned int)ExeAddr, SectionLen); +#endif + +#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) { + ; + } +} + +//***************************************************************************** +// 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/crp.c b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/crp.c new file mode 100644 index 0000000..fa9a0d5 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/crp.c @@ -0,0 +1,38 @@ +//***************************************************************************** +// 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/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.c b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.c new file mode 100644 index 0000000..0acee6c --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.c @@ -0,0 +1,40 @@ +/**************************************************************************** + DMA driver +****************************************************************************/ + +#include "LPC17xx.h" +#include "dma.h" + +/* to be incremented when terminal count reached */ +volatile uint32_t DMATCCount = 0; +/* to be incremented if an error occurred during transfer */ +volatile uint32_t DMAErrCount = 0; + +/****************************************************************************** +* Descriptions: DMA interrupt handler +******************************************************************************/ +void DMA_IRQHandler (void) +{ + /*...*/ +} + + +/****************************************************************************** +* Function name: DMA_Init +* +* Description: initialise DMA 0 channel for 32 bits access with increment on +* source and destination addresses +* +* parameters: +* src: source address +* dest: destination address +* len: number of words to transfer +* LLI: pointer on LLI structure if used or 0 +* +******************************************************************************/ +void DMA_Init(uint32_t *src, uint32_t *dest, uint32_t len, uint32_t LLI) +{ + LPC_SC->PCONP |= (1 << 29); /* Enable GPDMA clock */ + + /*...*/ +} diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.h b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.h new file mode 100644 index 0000000..3381a2c --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dma.h @@ -0,0 +1,36 @@ +/**************************************************************************** + DMA constants definition +****************************************************************************/ +#ifndef __DMA_H +#define __DMA_H + +#define DMA_SRC 0x2007C000 +#define DMA_DST 0x20080000 +#define DMA_SIZE 0x1000 + +#define M2M 0x00 +#define M2P 0x01 +#define P2M 0x02 +#define P2P 0x03 + +#define BURST4 0x04 +#define WORD32_TRANSFER 0x2 +#define INCREMENT 1 +#define TERMINAL_INTERRUPT 0x80000000 + +#define DMA_CFG ((BURST4 << 12) | (BURST4 << 15) \ + | (WORD32_TRANSFER << 18) | (WORD32_TRANSFER << 21) | (INCREMENT << 26) | (INCREMENT << 27) | \ + TERMINAL_INTERRUPT) + +void DMA_Init(uint32_t *src, uint32_t *dest, uint32_t len, uint32_t LLI); + +typedef struct +{ + volatile uint32_t DMACCSrcAddr; + volatile uint32_t DMACCDestAddr; + volatile uint32_t DMACCLLI; + volatile uint32_t DMACCControl; +} GPDMALLI_t; + +#endif + diff --git a/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dmatest.c b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dmatest.c new file mode 100644 index 0000000..c8339c6 --- /dev/null +++ b/labo4.1_dma.zip_expanded/labo4.1_DMA_new/src/dmatest.c @@ -0,0 +1,80 @@ +/**************************************************************************** + Single DMA transfer and DMA with LLI transfer +****************************************************************************/ +#include <string.h> +#include <stdint.h> +#include "dma.h" +#include "LPC17xx.h" + +extern volatile uint32_t DMATCCount; + +GPDMALLI_t LLI[2]; +uint32_t src3[DMA_SIZE/16], i; +uint32_t src1[DMA_SIZE/4], dest[DMA_SIZE/4]; +uint32_t src2[DMA_SIZE/16]; + +// copy 1 source buffers in 1 destination buffer with DMA +void single_copy() +{ + for (i = 0; i < DMA_SIZE/4; i++) + { + src1[i] = i; + dest[i] = 0; // clear destination vector + } + DMA_Init(src1, dest, DMA_SIZE/4, 0); + + while (!DMATCCount); /* Wait until DMA is done */ +} + +// copy 3 source buffers in 1 destination buffer with DMA linked lists +void LLI_copy() +{ + DMATCCount = 0; + for (i = 0; i < DMA_SIZE/8; i++) + { + src1[i] = i; + dest[i] = dest[i+DMA_SIZE/8] = 0; // clear destination vector + } + for (i = 0; i < DMA_SIZE/16; i++) + { + src2[i] = i + DMA_SIZE/8; + src3[i] = i + DMA_SIZE/8 + DMA_SIZE/16; + } + + /*...*/ + + DMA_Init(src1, dest, DMA_SIZE/8, (uint32_t)&LLI[0]); + + while (DMATCCount < 3); /* Wait until DMA is done (3 interrupts here) */ +} + +/* Verify copy result */ +int check_res() +{ + int i; + + for (i = 0; i < DMA_SIZE/4; i++) + { + if (dest[i]!=i) + { + return 1; // error + } + } + return 0; +} + + +int main (void) +{ + memset(LLI, 0, sizeof(GPDMALLI_t)*2); + + single_copy(); + if (check_res()) + while(1); // error + LLI_copy(); + if (check_res()) + while(1); // error + + while (1); /* Done here, never exit from main for easier debugging. */ +} + -- GitLab