From fe3274fcde3d43c59a9ad8ac7b4f592f46599ff8 Mon Sep 17 00:00:00 2001 From: iliya <iliya.saroukha@hes-so.ch> Date: Wed, 22 Nov 2023 14:46:30 +0100 Subject: [PATCH] feat: added init method for dma_ssp0 --- CMSISv2p00_LPC17xx/.gitignore | 3 +++ .../.settings/language.settings.xml | 4 ++-- TP2_bpsk_demod/.settings/language.settings.xml | 4 ++-- labo4.1_DMA_new/.settings/language.settings.xml | 4 ++-- mem2lcd_G4/src/dma_ssp_etu.c | 16 ++++++++++++++++ mem2lcd_G4/src/labo_dma_mem2lcd_etu.c | 2 +- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/CMSISv2p00_LPC17xx/.gitignore b/CMSISv2p00_LPC17xx/.gitignore index f240e72..bf03a08 100644 --- a/CMSISv2p00_LPC17xx/.gitignore +++ b/CMSISv2p00_LPC17xx/.gitignore @@ -1 +1,4 @@ +*.launch Debug/ +.settings/ + diff --git a/CMSISv2p00_LPC17xx/.settings/language.settings.xml b/CMSISv2p00_LPC17xx/.settings/language.settings.xml index a6ba73f..1fe8473 100644 --- a/CMSISv2p00_LPC17xx/.settings/language.settings.xml +++ b/CMSISv2p00_LPC17xx/.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 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"> + <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"> <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="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"> + <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"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> diff --git a/TP2_bpsk_demod/.settings/language.settings.xml b/TP2_bpsk_demod/.settings/language.settings.xml index 7e54123..2e56cdf 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="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"> + <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"> <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="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"> + <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"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> diff --git a/labo4.1_DMA_new/.settings/language.settings.xml b/labo4.1_DMA_new/.settings/language.settings.xml index 394c5b0..68f7e96 100644 --- a/labo4.1_DMA_new/.settings/language.settings.xml +++ b/labo4.1_DMA_new/.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 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"> + <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"> <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="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"> + <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"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> diff --git a/mem2lcd_G4/src/dma_ssp_etu.c b/mem2lcd_G4/src/dma_ssp_etu.c index 4ff837e..ab2cb62 100644 --- a/mem2lcd_G4/src/dma_ssp_etu.c +++ b/mem2lcd_G4/src/dma_ssp_etu.c @@ -29,11 +29,27 @@ void ssp0_init(uint8_t data_size_select, uint8_t scr) void init_dma_ssp0() { + LPC_SC->PCONP |= (1 << 29); /* Enable GPDMA clock */ + /* clear all interrupts on channel 0 */ + LPC_GPDMA->DMACIntTCClear = 0x01; + LPC_GPDMA->DMACIntErrClr = 0x01; + + LPC_GPDMACH0->DMACCDestAddr = LPC_SSP0->DR; //DMA_DST; + + LPC_GPDMA->DMACConfig = 0x3; /* Enable DMA channels, big endian */ + + NVIC_EnableIRQ(DMA_IRQn); // GPDMA interrupt + /* Enable channel and ITC bit (Interrupt at Terminal Count) and setting + * Transfer Type (1 << 11) to memory -> peripheral*/ + LPC_GPDMACH0->DMACCConfig = 0x8001 | (1 << 11); } + void ssp_DMA_uint16_transfer(uint16_t *words, uint16_t word_len, bool is_incr) { + LPC_GPDMACH0->DMACCSrcAddr = (uint32_t)words; //DMA_SRC; + LPC_GPDMACH0->DMACCControl = (word_len & 0xFFF) | DMA_CFG; } diff --git a/mem2lcd_G4/src/labo_dma_mem2lcd_etu.c b/mem2lcd_G4/src/labo_dma_mem2lcd_etu.c index 8b52e2b..0c908f8 100644 --- a/mem2lcd_G4/src/labo_dma_mem2lcd_etu.c +++ b/mem2lcd_G4/src/labo_dma_mem2lcd_etu.c @@ -74,7 +74,7 @@ void fill_rectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t // Displays a sprite of size width x height at position (x,y). 'data' must point on // constant or at least non volatile data. -void display_sprite(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint8_t *data) +void display_sprite(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t *data) { } -- GitLab