diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc
index 5d35944..05dcb15 100644
--- a/sysmoOCTSIM/AtmelStart.gpdsc
+++ b/sysmoOCTSIM/AtmelStart.gpdsc
@@ -164,6 +164,9 @@
         <file category="header" condition="ARMCC, GCC, IAR" name="usb/usb_includes.h"/>
         <file category="source" condition="ARMCC, GCC, IAR" name="usb/usb_protocol.c"/>
         <file category="header" condition="ARMCC, GCC, IAR" name="usb/usb_protocol.h"/>
+        <file category="source" condition="ARMCC, GCC, IAR" name="dma_m2m/dma_memory.c"/>
+        <file category="header" condition="ARMCC, GCC, IAR" name="dma_m2m/dma_memory.h"/>
+        <file category="doc" condition="ARMCC, GCC, IAR" name="documentation/dma_m2m.rst"/>
         <file category="doc" condition="ARMCC, GCC, IAR" name="documentation/stdio.rst"/>
         <file category="source" condition="GCC" name="stdio_redirect/gcc/read.c"/>
         <file category="source" condition="GCC" name="stdio_redirect/gcc/write.c"/>
@@ -210,6 +213,8 @@
         <file category="source" condition="ARMCC, GCC, IAR" name="hpl/usb/hpl_usb.c"/>
         <file category="source" condition="ARMCC, GCC, IAR" name="usb_start.c"/>
         <file category="header" condition="ARMCC, GCC, IAR" name="usb_start.h"/>
+        <file category="source" condition="ARMCC, GCC, IAR" name="dma_m2m_main.c"/>
+        <file category="header" condition="ARMCC, GCC, IAR" name="dma_m2m_main.h"/>
         <file category="source" condition="ARMCC, GCC, IAR" name="stdio_start.c"/>
         <file category="header" condition="ARMCC, GCC, IAR" name="stdio_start.h"/>
         <file category="header" condition="ARMCC, GCC, IAR" name="atmel_start.h"/>
@@ -225,6 +230,7 @@
         <file attr="config" category="header" condition="ARMCC, GCC, IAR" name="config/hpl_usb_config.h"/>
         <file attr="config" category="header" condition="ARMCC, GCC, IAR" name="config/peripheral_clk_config.h"/>
         <file attr="config" category="header" condition="ARMCC, GCC, IAR" name="config/usbd_config.h"/>
+        <file attr="config" category="header" condition="ARMCC, GCC, IAR" name="dma_m2m/dma_memory_config.h"/>
         <file attr="config" category="header" condition="ARMCC, GCC, IAR" name="config/stdio_redirect_config.h"/>
         <file category="include" condition="ARMCC, GCC, IAR" name=""/>
         <file category="include" condition="ARMCC, GCC, IAR" name="config"/>
@@ -251,6 +257,8 @@
         <file category="include" condition="ARMCC, GCC, IAR" name="usb/class/cdc/device"/>
         <file category="include" condition="ARMCC, GCC, IAR" name="usb/device"/>
         <file category="include" condition="ARMCC, GCC, IAR" name=""/>
+        <file category="include" condition="ARMCC, GCC, IAR" name="dma_m2m"/>
+        <file category="include" condition="ARMCC, GCC, IAR" name=""/>
         <file category="include" condition="ARMCC, GCC, IAR" name="config"/>
         <file category="include" condition="ARMCC, GCC, IAR" name="stdio_redirect"/>
         <file category="include" condition="ARMCC, GCC, IAR" name=""/>
diff --git a/sysmoOCTSIM/atmel_start.c b/sysmoOCTSIM/atmel_start.c
index fc6016a..fd566dd 100644
--- a/sysmoOCTSIM/atmel_start.c
+++ b/sysmoOCTSIM/atmel_start.c
@@ -1,5 +1,11 @@
 #include <atmel_start.h>
 
+/** Memory to memory DMA callback */
+static void M2M_DMA_complete_cb(void)
+{
+	dma_m2m_complete_flag = true;
+}
+
 /**
  * Initializes MCU, drivers and middleware in the project
  **/
@@ -7,5 +13,7 @@
 {
 	system_init();
 	usb_init();
+	dma_memory_init();
+	dma_memory_register_callback(DMA_MEMORY_COMPLETE_CB, M2M_DMA_complete_cb);
 	stdio_redirect_init();
 }
diff --git a/sysmoOCTSIM/atmel_start.h b/sysmoOCTSIM/atmel_start.h
index 92afa47..4892cbd 100644
--- a/sysmoOCTSIM/atmel_start.h
+++ b/sysmoOCTSIM/atmel_start.h
@@ -5,10 +5,15 @@
 extern "C" {
 #endif
 
+#include <dma_memory.h>
+
 #include "driver_init.h"
 #include "usb_start.h"
 #include "stdio_start.h"
 
+/** flag set when the memory to memory DMA is complete */
+volatile bool dma_m2m_complete_flag;
+
 /**
  * Initializes MCU, drivers and middleware in the project
  **/
diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart
index 290fa89..51ec4f4 100644
--- a/sysmoOCTSIM/atmel_start_config.atstart
+++ b/sysmoOCTSIM/atmel_start_config.atstart
@@ -82,6 +82,15 @@
     dependencies:
       USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE
       USB Class CDC: USB_CLASS_CDC
+  M2M_DMA_0:
+    user_label: M2M_DMA_0
+    configuration:
+      conf_channel: 0
+    definition: Atmel:MEMORY_DMA:0.0.1::M2M_DMA
+    functionality: M2M_DMA
+    api: DMA:M2M:Core
+    dependencies:
+      DMAC: DMAC
   STDIO_REDIRECT_0:
     user_label: STDIO_REDIRECT_0
     configuration: {}
@@ -209,7 +218,7 @@
         the transaction
       dmac_blockact_9: Channel will be disabled if it is the last block transfer in
         the transaction
-      dmac_channel_0_settings: false
+      dmac_channel_0_settings: true
       dmac_channel_10_settings: false
       dmac_channel_11_settings: false
       dmac_channel_12_settings: false
@@ -242,7 +251,7 @@
       dmac_channel_8_settings: false
       dmac_channel_9_settings: false
       dmac_dbgrun: false
-      dmac_dstinc_0: false
+      dmac_dstinc_0: true
       dmac_dstinc_1: false
       dmac_dstinc_10: false
       dmac_dstinc_11: false
@@ -274,7 +283,7 @@
       dmac_dstinc_7: false
       dmac_dstinc_8: false
       dmac_dstinc_9: false
-      dmac_enable: false
+      dmac_enable: true
       dmac_evact_0: No action
       dmac_evact_1: No action
       dmac_evact_10: No action
@@ -479,7 +488,7 @@
       dmac_runstdby_7: false
       dmac_runstdby_8: false
       dmac_runstdby_9: false
-      dmac_srcinc_0: false
+      dmac_srcinc_0: true
       dmac_srcinc_1: false
       dmac_srcinc_10: false
       dmac_srcinc_11: false
diff --git a/sysmoOCTSIM/config/hpl_dmac_config.h b/sysmoOCTSIM/config/hpl_dmac_config.h
index 90499fc..c736778 100644
--- a/sysmoOCTSIM/config/hpl_dmac_config.h
+++ b/sysmoOCTSIM/config/hpl_dmac_config.h
@@ -8,7 +8,7 @@
 // <i> Indicates whether dmac is enabled or not
 // <id> dmac_enable
 #ifndef CONF_DMAC_ENABLE
-#define CONF_DMAC_ENABLE 0
+#define CONF_DMAC_ENABLE 1
 #endif
 
 // <q> Priority Level 0
@@ -105,7 +105,7 @@
 // <e> Channel 0 settings
 // <id> dmac_channel_0_settings
 #ifndef CONF_DMAC_CHANNEL_0_SETTINGS
-#define CONF_DMAC_CHANNEL_0_SETTINGS 0
+#define CONF_DMAC_CHANNEL_0_SETTINGS 1
 #endif
 
 // <q> Channel Run in Standby
@@ -284,14 +284,14 @@
 // <i> Indicates whether the source address incrementation is enabled or not
 // <id> dmac_srcinc_0
 #ifndef CONF_DMAC_SRCINC_0
-#define CONF_DMAC_SRCINC_0 0
+#define CONF_DMAC_SRCINC_0 1
 #endif
 
 // <q> Destination Address Increment
 // <i> Indicates whether the destination address incrementation is enabled or not
 // <id> dmac_dstinc_0
 #ifndef CONF_DMAC_DSTINC_0
-#define CONF_DMAC_DSTINC_0 0
+#define CONF_DMAC_DSTINC_0 1
 #endif
 
 // <o> Beat Size
diff --git a/sysmoOCTSIM/dma_m2m/dma_memory.c b/sysmoOCTSIM/dma_m2m/dma_memory.c
new file mode 100644
index 0000000..f395114
--- /dev/null
+++ b/sysmoOCTSIM/dma_m2m/dma_memory.c
@@ -0,0 +1,143 @@
+/**
+ * \file
+ *
+ * \brief Memory with DMA functionality implementation.
+ *
+ * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
+ *
+ * \asf_license_start
+ *
+ * \page License
+ *
+ * Subject to your compliance with these terms, you may use Microchip
+ * software and any derivatives exclusively with Microchip products.
+ * It is your responsibility to comply with third party license terms applicable
+ * to your use of third party software (including open source software) that
+ * may accompany Microchip software.
+ *
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
+ * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
+ * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
+ * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
+ * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
+ * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
+ * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
+ * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE FULLEST EXTENT
+ * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
+ * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
+ * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * \asf_license_stop
+ *
+ */
+
+#include "dma_memory.h"
+#include "dma_memory_config.h"
+#include <utils_assert.h>
+#include <utils.h>
+#include <hal_atomic.h>
+
+/**
+ * \brief Driver version
+ */
+#define DRIVER_VERSION 0x00000001u
+
+/**
+ * \brief memory with dma descriptor instance
+ */
+static struct dma_memory_descriptor descr;
+
+/**
+ * \internal Process transfer done interrupts
+ *
+ * \param[in] resource The pointer to memory resource
+ */
+static void dma_transfer_done(struct _dma_resource *resource)
+{
+	(void)resource;
+	if (descr.memory_cb.complete) {
+		descr.memory_cb.complete();
+	}
+}
+
+/**
+ * \internal Process transfer error interrupts
+ *
+ * \param[in] resource The pointer to memory resource
+ */
+static void dma_memory_error(struct _dma_resource *resource)
+{
+	(void)resource;
+	if (descr.memory_cb.error) {
+		descr.memory_cb.error();
+	}
+}
+
+/**
+ * \brief Initialize DMA
+ */
+int32_t dma_memory_init(void)
+{
+	_dma_get_channel_resource(&descr.resource, CONF_DMA_MEMORY_CHANNEL);
+	descr.resource->dma_cb.transfer_done = dma_transfer_done;
+	descr.resource->dma_cb.error         = dma_memory_error;
+
+	return ERR_NONE;
+}
+
+/**
+ * \brief Register DMA callback
+ */
+int32_t dma_memory_register_callback(const enum dma_memory_callback_type type, dma_memory_cb_t cb)
+{
+	switch (type) {
+	case DMA_MEMORY_COMPLETE_CB:
+		descr.memory_cb.complete = cb;
+		break;
+
+	case DMA_MEMORY_ERROR_CB:
+		descr.memory_cb.error = cb;
+		break;
+
+	default:
+		return ERR_INVALID_ARG;
+	}
+
+	_dma_set_irq_state(CONF_DMA_MEMORY_CHANNEL, (enum _dma_callback_type)type, (cb != NULL));
+
+	return ERR_NONE;
+}
+
+/**
+ * \brief Memory copy with dma
+ */
+int32_t dma_memcpy(void *dst, void *src, uint32_t size)
+{
+	_dma_srcinc_enable(CONF_DMA_MEMORY_CHANNEL, true);
+	_dma_dstinc_enable(CONF_DMA_MEMORY_CHANNEL, true);
+	_dma_set_destination_address(CONF_DMA_MEMORY_CHANNEL, dst);
+	_dma_set_source_address(CONF_DMA_MEMORY_CHANNEL, src);
+	_dma_set_data_amount(CONF_DMA_MEMORY_CHANNEL, size);
+	_dma_enable_transaction(CONF_DMA_MEMORY_CHANNEL, true);
+
+	return ERR_NONE;
+}
+
+/**
+ * \brief Memory set with dma
+ */
+int32_t dma_memset(void *dst, int32_t ch, uint32_t size)
+{
+	static int32_t tmp_ch;
+
+	tmp_ch = ch;
+
+	_dma_set_source_address(CONF_DMA_MEMORY_CHANNEL, &tmp_ch);
+	_dma_srcinc_enable(CONF_DMA_MEMORY_CHANNEL, false);
+	_dma_dstinc_enable(CONF_DMA_MEMORY_CHANNEL, true);
+	_dma_set_destination_address(CONF_DMA_MEMORY_CHANNEL, dst);
+	_dma_set_data_amount(CONF_DMA_MEMORY_CHANNEL, size);
+	_dma_enable_transaction(CONF_DMA_MEMORY_CHANNEL, true);
+
+	return ERR_NONE;
+}
diff --git a/sysmoOCTSIM/dma_m2m/dma_memory.h b/sysmoOCTSIM/dma_m2m/dma_memory.h
new file mode 100644
index 0000000..3bd6dc9
--- /dev/null
+++ b/sysmoOCTSIM/dma_m2m/dma_memory.h
@@ -0,0 +1,132 @@
+/**
+ * \file
+ *
+ * \brief Memory with DMA functionality declaration.
+ *
+ * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
+ *
+ * \asf_license_start
+ *
+ * \page License
+ *
+ * Subject to your compliance with these terms, you may use Microchip
+ * software and any derivatives exclusively with Microchip products.
+ * It is your responsibility to comply with third party license terms applicable
+ * to your use of third party software (including open source software) that
+ * may accompany Microchip software.
+ *
+ * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
+ * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
+ * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
+ * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
+ * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
+ * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
+ * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
+ * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE.  TO THE FULLEST EXTENT
+ * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
+ * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
+ * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
+ *
+ * \asf_license_stop
+ *
+ */
+
+#ifndef DMA_MEMORY_H_INCLUDED
+#define DMA_MEMORY_H_INCLUDED
+
+#include <hpl_dma.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \addtogroup dma_memory
+ *
+ * \section dma_rev Revision History
+ * - v0.0.0.1 Initial Commit
+ *
+ *@{
+ */
+
+/**
+ * \brief Memory with DMA descriptor
+ *
+ * The Memory with DMA descriptor forward declaration.
+ */
+struct dma_memory_descriptor;
+
+/**
+ * \brief memory with dma callback type
+ */
+typedef void (*dma_memory_cb_t)(void);
+
+/**
+ * \brief Memory with DMA callback types
+ */
+enum dma_memory_callback_type { DMA_MEMORY_COMPLETE_CB, DMA_MEMORY_ERROR_CB };
+
+/**
+ * \brief Memory with DMA callbacks
+ */
+struct dma_memory_callbacks {
+	dma_memory_cb_t complete;
+	dma_memory_cb_t error;
+};
+
+/**
+ * \brief Memory with DMA descriptor
+ */
+struct dma_memory_descriptor {
+	struct _dma_resource *      resource;
+	struct dma_memory_callbacks memory_cb;
+};
+
+/**
+ * \brief Initialize Memory with DMA
+ *
+ * \return Initialization status.
+ */
+int32_t dma_memory_init(void);
+
+/**
+ * \brief Register Memory with DMA callback
+ *
+ * \param[in] type Callback type
+ * \param[in] cb A callback function, passing NULL de-registers callback
+ *
+ * \return The status of callback assignment.
+ * \retval ERR_INVALID_ARG Passed parameters were invalid
+ * \retval ERR_NONE A callback is registered successfully
+ */
+int32_t dma_memory_register_callback(const enum dma_memory_callback_type type, dma_memory_cb_t cb);
+
+/**
+ * \brief dma memory copy
+ *
+ * \param[in] dst The pointer to destination address for transfer
+ * \param[in] src The pointer to source address for transfer
+ * \param[in] size The transfer size
+ *
+ * \return the status of operation`
+ */
+int32_t dma_memcpy(void *dst, void *src, uint32_t size);
+
+/**
+ * \brief dma memory set
+ *
+ * \param[in] dst The pointer to address to  fill
+ * \param[in] ch The value to be filled
+ * \param[in] size Number of bytes to set to the value
+ *
+ * \return the status of operation
+ */
+int32_t dma_memset(void *dst, int32_t ch, uint32_t size);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* DMA_MEMORY_H_INCLUDED */
diff --git a/sysmoOCTSIM/dma_m2m/dma_memory_config.h b/sysmoOCTSIM/dma_m2m/dma_memory_config.h
new file mode 100644
index 0000000..a5dba3c
--- /dev/null
+++ b/sysmoOCTSIM/dma_m2m/dma_memory_config.h
@@ -0,0 +1,16 @@
+/* Auto-generated config file dma_memory_config.h */
+#ifndef DMA_MEMORY_CONFIG_H
+#define DMA_MEMORY_CONFIG_H
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+//<o> Channel <0-15>
+//<i> This defines DMA channel to be used
+//<id> conf_channel
+#ifndef CONF_DMA_MEMORY_CHANNEL
+#define CONF_DMA_MEMORY_CHANNEL 0
+#endif
+
+// <<< end of configuration section >>>
+
+#endif // DMA_MEMORY_CONFIG_H
diff --git a/sysmoOCTSIM/documentation/dma_m2m.rst b/sysmoOCTSIM/documentation/dma_m2m.rst
new file mode 100644
index 0000000..22bffcf
--- /dev/null
+++ b/sysmoOCTSIM/documentation/dma_m2m.rst
@@ -0,0 +1,15 @@
+Memory DMA
+==========
+
+Memory DMA is middleware which provides DMA-based versions of memcpy and memset
+functions.
+
+Architecture and provided functionality
+---------------------------------------
+
+Memory DMA uses system DMA driver which varies depending on MCU. User must configure
+system DMA driver before using Memory DMA middleware.
+
+DMA-based versions of memcpy and memset functions work asynchronously. Application
+can be notifications about completion of copy or set operation via callbacks.
+A callback can be registered via dma_memory_register_callback function.
\ No newline at end of file
diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile
index 376ddaf..1a473b9 100644
--- a/sysmoOCTSIM/gcc/Makefile
+++ b/sysmoOCTSIM/gcc/Makefile
@@ -39,6 +39,7 @@
 stdio_redirect \
 hal/utils/src \
 hpl/usb \
+dma_m2m \
 hpl/pm \
 hpl/cmcc \
 hpl/gclk \
@@ -54,12 +55,13 @@
 stdio_redirect/stdio_io.o \
 stdio_redirect/gcc/write.o \
 hpl/core/hpl_core_m4.o \
+hal/src/hal_cache.o \
 usb/class/cdc/device/cdcdf_acm.o \
 hal/utils/src/utils_syscalls.o \
 stdio_redirect/gcc/read.o \
-usb_start.o \
 gcc/system_same54.o \
 hpl/usb/hpl_usb.o \
+dma_m2m/dma_memory.o \
 hal/src/hal_delay.o \
 hpl/pm/hpl_pm.o \
 hpl/core/hpl_init.o \
@@ -91,7 +93,7 @@
 hal/src/hal_gpio.o \
 hal/utils/src/utils_event.o \
 hal/src/hal_sleep.o \
-hal/src/hal_cache.o \
+usb_start.o \
 hpl/cmcc/hpl_cmcc.o \
 atmel_start.o \
 usb/device/usbdc.o \
@@ -102,12 +104,13 @@
 "stdio_redirect/stdio_io.o" \
 "stdio_redirect/gcc/write.o" \
 "hpl/core/hpl_core_m4.o" \
+"hal/src/hal_cache.o" \
 "usb/class/cdc/device/cdcdf_acm.o" \
 "hal/utils/src/utils_syscalls.o" \
 "stdio_redirect/gcc/read.o" \
-"usb_start.o" \
 "gcc/system_same54.o" \
 "hpl/usb/hpl_usb.o" \
+"dma_m2m/dma_memory.o" \
 "hal/src/hal_delay.o" \
 "hpl/pm/hpl_pm.o" \
 "hpl/core/hpl_init.o" \
@@ -139,7 +142,7 @@
 "hal/src/hal_gpio.o" \
 "hal/utils/src/utils_event.o" \
 "hal/src/hal_sleep.o" \
-"hal/src/hal_cache.o" \
+"usb_start.o" \
 "hpl/cmcc/hpl_cmcc.o" \
 "atmel_start.o" \
 "usb/device/usbdc.o" \
@@ -149,6 +152,7 @@
 DEPS := $(OBJS:%.o=%.d)
 
 DEPS_AS_ARGS +=  \
+"dma_m2m/dma_memory.d" \
 "stdio_redirect/stdio_io.d" \
 "hal/utils/src/utils_event.d" \
 "hal/src/hal_io.d" \
@@ -241,7 +245,7 @@
 	@echo ARM/GNU C Compiler
 	$(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
 -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
--I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include"  \
+-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Include" -I"../include"  \
 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"
 	@echo Finished building: $<
 
@@ -250,7 +254,7 @@
 	@echo ARM/GNU Assembler
 	$(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
 -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
--I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include"  \
+-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Include" -I"../include"  \
 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"
 	@echo Finished building: $<
 
@@ -259,7 +263,7 @@
 	@echo ARM/GNU Preprocessing Assembler
 	$(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \
 -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \
--I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include"  \
+-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../dma_m2m" -I"../" -I"../CMSIS/Include" -I"../include"  \
 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"
 	@echo Finished building: $<
 
@@ -279,4 +283,4 @@
 	rm -f $(DEPS_AS_ARGS)
 	rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \
         $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \
-        $(OUTPUT_FILE_NAME).srec
\ No newline at end of file
+        $(OUTPUT_FILE_NAME).srec
