From 7f58054c6dc18906e818a7d04808f5446ba33fdc Mon Sep 17 00:00:00 2001
From: iliya <iliya.saroukha@hes-so.ch>
Date: Wed, 22 Nov 2023 14:55:59 +0100
Subject: [PATCH] fix: added CFG macro to project

---
 mem2lcd_G4/.cproject         |  4 ++--
 mem2lcd_G4/src/dma.h         | 36 ++++++++++++++++++++++++++++++++++++
 mem2lcd_G4/src/dma_ssp_etu.c |  2 ++
 3 files changed, 40 insertions(+), 2 deletions(-)
 create mode 100644 mem2lcd_G4/src/dma.h

diff --git a/mem2lcd_G4/.cproject b/mem2lcd_G4/.cproject
index 05ec765..2cd68bf 100644
--- a/mem2lcd_G4/.cproject
+++ b/mem2lcd_G4/.cproject
@@ -107,7 +107,7 @@
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.625475614" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" useByScannerDiscovery="false" valueType="stringList"/>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.833669853" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" useByScannerDiscovery="false" valueType="userObjs"/>
 								<option id="com.crt.advproject.link.arch.1296395929" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/>
-								<option id="com.crt.advproject.link.script.861796581" name="Linker script" superClass="com.crt.advproject.link.script" value="test_lcd_ssp_dma_Debug.ld" valueType="string"/>
+								<option id="com.crt.advproject.link.script.861796581" name="Linker script" superClass="com.crt.advproject.link.script" value="mem2lcd_G4_Debug.ld" valueType="string"/>
 								<option id="com.crt.advproject.link.manage.756750610" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/>
 								<option id="gnu.c.link.option.nostdlibs.1548691555" 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.1534858723" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList">
@@ -281,7 +281,7 @@
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.memory.sections.1721047405" name="Extra linker script input sections" superClass="com.crt.advproject.link.memory.sections" valueType="stringList"/>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.crt.advproject.link.gcc.multicore.master.userobjs.964733893" name="Slave Objects (not visible)" superClass="com.crt.advproject.link.gcc.multicore.master.userobjs" valueType="userObjs"/>
 								<option id="com.crt.advproject.link.arch.661570660" name="Architecture" superClass="com.crt.advproject.link.arch" value="com.crt.advproject.link.target.cm3" valueType="enumerated"/>
-								<option id="com.crt.advproject.link.script.337741123" name="Linker script" superClass="com.crt.advproject.link.script" value="test_lcd_ssp_dma_Release.ld" valueType="string"/>
+								<option id="com.crt.advproject.link.script.337741123" name="Linker script" superClass="com.crt.advproject.link.script" value="mem2lcd_G4_Release.ld" valueType="string"/>
 								<option id="com.crt.advproject.link.manage.858321269" name="Manage linker script" superClass="com.crt.advproject.link.manage" value="true" valueType="boolean"/>
 								<option id="gnu.c.link.option.nostdlibs.1560825805" 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.2085617560" name="Other options (-Xlinker [option])" superClass="gnu.c.link.option.other" valueType="stringList">
diff --git a/mem2lcd_G4/src/dma.h b/mem2lcd_G4/src/dma.h
new file mode 100644
index 0000000..3381a2c
--- /dev/null
+++ b/mem2lcd_G4/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/mem2lcd_G4/src/dma_ssp_etu.c b/mem2lcd_G4/src/dma_ssp_etu.c
index ab2cb62..8c9f5ed 100644
--- a/mem2lcd_G4/src/dma_ssp_etu.c
+++ b/mem2lcd_G4/src/dma_ssp_etu.c
@@ -7,9 +7,11 @@
 #include <stdbool.h>
 #include <stdint.h>
 #include <assert.h>
+#include "dma.h"
 #include "LPC17xx.h"
 
 
+
 void ssp0_init(uint8_t data_size_select, uint8_t scr)
 {
 	LPC_PINCON->PINSEL0 &= ~(3<<30);
-- 
GitLab