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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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 &quot;${INPUTS}&quot;" 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