diff --git a/CMakeLists.txt b/CMakeLists.txt
index bab43939a686d7586dd75b0a22557adbb5dde95f..4638336592aa22549ce44d08a113f4a2700cee38 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -285,7 +285,8 @@ add_executable(test-usart-f7 src/tests/drivers/usart/test-usart.cpp)
 sbs_target(test-usart-f7 stm32f767zi_nucleo)
 
 add_executable(test-dma-mem-to-mem src/tests/drivers/test-dma-mem-to-mem.cpp)
-sbs_target(test-dma-mem-to-mem stm32f407vg_stm32f4discovery)
+#sbs_target(test-dma-mem-to-mem stm32f407vg_stm32f4discovery)
+sbs_target(test-dma-mem-to-mem stm32f767zi_orion_engine)
 
 add_executable(test-i2c-driver-f4 src/tests/drivers/i2c/test-i2c-driver.cpp)
 sbs_target(test-i2c-driver-f4 stm32f429zi_stm32f4discovery)
diff --git a/src/shared/drivers/dma/DMA.cpp b/src/shared/drivers/dma/DMA.cpp
index b4ce822be5eccb85066a9967be82fbe52a8063cc..51e4e6d7f7af2fb53376322dafc07f6eb9d05bcd 100644
--- a/src/shared/drivers/dma/DMA.cpp
+++ b/src/shared/drivers/dma/DMA.cpp
@@ -203,18 +203,18 @@ void __attribute__((used)) DMA2_Stream4_IRQImpl()
         Boardcore::DMADefs::DMAStreamId::DMA2_Str4);
 }
 
-void __attribute__((naked)) DMA2_Stream5_IRQHandler()
-{
-    saveContext();
-    asm volatile("bl _Z20DMA2_Stream5_IRQImplv");
-    restoreContext();
-}
+// void __attribute__((naked)) DMA2_Stream5_IRQHandler()
+// {
+//     saveContext();
+//     asm volatile("bl _Z20DMA2_Stream5_IRQImplv");
+//     restoreContext();
+// }
 
-void __attribute__((used)) DMA2_Stream5_IRQImpl()
-{
-    Boardcore::DMADriver::instance().IRQhandleInterrupt(
-        Boardcore::DMADefs::DMAStreamId::DMA2_Str5);
-}
+// void __attribute__((used)) DMA2_Stream5_IRQImpl()
+// {
+//     Boardcore::DMADriver::instance().IRQhandleInterrupt(
+//         Boardcore::DMADefs::DMAStreamId::DMA2_Str5);
+// }
 
 void __attribute__((naked)) DMA2_Stream6_IRQHandler()
 {
@@ -229,18 +229,18 @@ void __attribute__((used)) DMA2_Stream6_IRQImpl()
         Boardcore::DMADefs::DMAStreamId::DMA2_Str6);
 }
 
-void __attribute__((naked)) DMA2_Stream7_IRQHandler()
-{
-    saveContext();
-    asm volatile("bl _Z20DMA2_Stream7_IRQImplv");
-    restoreContext();
-}
+// void __attribute__((naked)) DMA2_Stream7_IRQHandler()
+// {
+//     saveContext();
+//     asm volatile("bl _Z20DMA2_Stream7_IRQImplv");
+//     restoreContext();
+// }
 
-void __attribute__((used)) DMA2_Stream7_IRQImpl()
-{
-    Boardcore::DMADriver::instance().IRQhandleInterrupt(
-        Boardcore::DMADefs::DMAStreamId::DMA2_Str7);
-}
+// void __attribute__((used)) DMA2_Stream7_IRQImpl()
+// {
+//     Boardcore::DMADriver::instance().IRQhandleInterrupt(
+//         Boardcore::DMADefs::DMAStreamId::DMA2_Str7);
+// }
 
 namespace Boardcore
 {
@@ -446,7 +446,12 @@ void DMAStream::setup(DMATransaction& transaction)
         if (transaction.dstIncrement)
             registers->CR |= DMA_SxCR_PINC;
 
+        // SCB_CleanDCache_by_Addr
+        SCB_CleanDCache_by_Addr((uint32_t*)transaction.srcAddress, transaction.numberOfDataItems);
         registers->M0AR = reinterpret_cast<uint32_t>(transaction.srcAddress);
+
+        // SCB_InvalidateDCache_by_Addr
+        SCB_InvalidateDCache_by_Addr((uint32_t*)transaction.dstAddress, transaction.numberOfDataItems);
         registers->PAR  = reinterpret_cast<uint32_t>(transaction.dstAddress);
     }
     else
diff --git a/src/shared/drivers/dma/DMADefs.cpp b/src/shared/drivers/dma/DMADefs.cpp
index ea405c5811e80158aee94bab31e5cffcbb434bec..9b8b427f33c830dd49518ff99ce6ae98dd675074 100644
--- a/src/shared/drivers/dma/DMADefs.cpp
+++ b/src/shared/drivers/dma/DMADefs.cpp
@@ -46,12 +46,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL0}}, // Stream currently not supported
         {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}},
-        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
+        // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
         {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
-        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
+        // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
 
         // SPI
-        {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}},
+        // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}},
         // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL3}}, // Stream currently not supported
         {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}},
@@ -67,12 +67,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_SPI3_RX, {DMAStreamId::DMA1_Str2, Channel::CHANNEL0}},
 
         // UART & USART
-        {Peripherals::PE_USART1_TX,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
+        // {Peripherals::PE_USART1_TX,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
         {Peripherals::PE_USART1_RX,
          {DMAStreamId::DMA2_Str2, Channel::CHANNEL4}},
-        {Peripherals::PE_USART1_RX,
-         {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
+        // {Peripherals::PE_USART1_RX,
+        //  {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
 
         {Peripherals::PE_USART2_TX,
          {DMAStreamId::DMA1_Str6, Channel::CHANNEL4}},
@@ -94,8 +94,8 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
 
         {Peripherals::PE_USART6_TX,
          {DMAStreamId::DMA2_Str6, Channel::CHANNEL5}},
-        {Peripherals::PE_USART6_TX,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
+        // {Peripherals::PE_USART6_TX,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
         {Peripherals::PE_USART6_RX,
          {DMAStreamId::DMA2_Str1, Channel::CHANNEL5}},
         {Peripherals::PE_USART6_RX,
@@ -128,7 +128,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
          {DMAStreamId::DMA1_Str0, Channel::CHANNEL3}},
 
         // TIMERS
-        {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}},
+        // {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}},
         {Peripherals::PE_TIM1_TRIG,
          {DMAStreamId::DMA2_Str0, Channel::CHANNEL6}},
         {Peripherals::PE_TIM1_TRIG,
@@ -189,9 +189,9 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}},
 
         {Peripherals::PE_TIM8_UP, {DMAStreamId::DMA2_Str1, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_TRIG,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_TRIG,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
         {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
         {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}},
         {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
@@ -199,7 +199,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         // Channel::CHANNEL7}}, // Stream currently not supported
         {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
         {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
 
         // Others
         {Peripherals::PE_DAC1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL7}},
@@ -216,16 +216,16 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_ADC3, {DMAStreamId::DMA2_Str1, Channel::CHANNEL2}},
 
         {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str1, Channel::CHANNEL1}},
-        {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
+        // {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
 
         // {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str3, Channel::CHANNEL4}},
         // // Stream currently not supported
         {Peripherals::PE_SDIO, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}},
 
-        {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}},
+        // {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}},
         {Peripherals::PE_CRYP_IN, {DMAStreamId::DMA2_Str6, Channel::CHANNEL2}},
 
-        {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
+        // {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
 
 #endif  // STM32F407xx
 
@@ -460,12 +460,12 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL0}}, // Stream currently not supported
         {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str4, Channel::CHANNEL0}},
-        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
+        // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
         {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str6, Channel::CHANNEL0}},
-        {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
+        // {Peripherals::PE_MEM_ONLY, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
 
         // SPI
-        {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}},
+        // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL3}},
         // {Peripherals::PE_SPI1_TX, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL3}}, // Stream currently not supported
         {Peripherals::PE_SPI1_RX, {DMAStreamId::DMA2_Str2, Channel::CHANNEL3}},
@@ -494,22 +494,22 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_SPI5_TX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL7}},
         // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL2}}, // Stream currently not supported
-        {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}},
-        {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL9}},
+        // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL7}},
+        // {Peripherals::PE_SPI5_RX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL9}},
 
-        {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}},
+        // {Peripherals::PE_SPI6_TX, {DMAStreamId::DMA2_Str5, Channel::CHANNEL1}},
         {Peripherals::PE_SPI6_RX, {DMAStreamId::DMA2_Str6, Channel::CHANNEL1}},
 
-        {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL3}},
+        // {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL3}},
         {Peripherals::PE_QUADSPI, {DMAStreamId::DMA2_Str2, Channel::CHANNEL11}},
 
         // UART & USART
-        {Peripherals::PE_USART1_TX,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
+        // {Peripherals::PE_USART1_TX,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL4}},
         {Peripherals::PE_USART1_RX,
          {DMAStreamId::DMA2_Str2, Channel::CHANNEL4}},
-        {Peripherals::PE_USART1_RX,
-         {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
+        // {Peripherals::PE_USART1_RX,
+        //  {DMAStreamId::DMA2_Str5, Channel::CHANNEL4}},
 
         {Peripherals::PE_USART2_TX,
          {DMAStreamId::DMA1_Str6, Channel::CHANNEL4}},
@@ -539,8 +539,8 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
 
         {Peripherals::PE_USART6_TX,
          {DMAStreamId::DMA2_Str6, Channel::CHANNEL5}},
-        {Peripherals::PE_USART6_TX,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
+        // {Peripherals::PE_USART6_TX,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL5}},
         {Peripherals::PE_USART6_RX,
          {DMAStreamId::DMA2_Str1, Channel::CHANNEL5}},
         {Peripherals::PE_USART6_RX,
@@ -570,7 +570,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         // Channel::CHANNEL8}}, // Stream currently not supported
 
         // TIMERS
-        {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}},
+        // {Peripherals::PE_TIM1_UP, {DMAStreamId::DMA2_Str5, Channel::CHANNEL6}},
         {Peripherals::PE_TIM1_TRIG,
          {DMAStreamId::DMA2_Str0, Channel::CHANNEL6}},
         {Peripherals::PE_TIM1_TRIG,
@@ -631,9 +631,9 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_TIM7_UP, {DMAStreamId::DMA1_Str4, Channel::CHANNEL1}},
 
         {Peripherals::PE_TIM8_UP, {DMAStreamId::DMA2_Str1, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_TRIG,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_TRIG,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_COM, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
         {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
         {Peripherals::PE_TIM8_CH1, {DMAStreamId::DMA2_Str2, Channel::CHANNEL7}},
         {Peripherals::PE_TIM8_CH2, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
@@ -641,7 +641,7 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         // Channel::CHANNEL7}}, // Stream currently not supported
         {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str2, Channel::CHANNEL0}},
         {Peripherals::PE_TIM8_CH3, {DMAStreamId::DMA2_Str4, Channel::CHANNEL7}},
-        {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
+        // {Peripherals::PE_TIM8_CH4, {DMAStreamId::DMA2_Str7, Channel::CHANNEL7}},
 
         // Others
         {Peripherals::PE_DAC1, {DMAStreamId::DMA1_Str5, Channel::CHANNEL7}},
@@ -664,26 +664,26 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
         {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str4, Channel::CHANNEL3}},
         {Peripherals::PE_SAI2_A, {DMAStreamId::DMA2_Str2, Channel::CHANNEL10}},
 
-        {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
+        // {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str5, Channel::CHANNEL0}},
         {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str4, Channel::CHANNEL1}},
         {Peripherals::PE_SAI1_B, {DMAStreamId::DMA2_Str0, Channel::CHANNEL10}},
-        {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
+        // {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str7, Channel::CHANNEL0}},
         {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str6, Channel::CHANNEL3}},
         {Peripherals::PE_SAI2_B, {DMAStreamId::DMA2_Str1, Channel::CHANNEL10}},
 
         {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str1, Channel::CHANNEL1}},
-        {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
+        // {Peripherals::PE_DCMI, {DMAStreamId::DMA2_Str7, Channel::CHANNEL1}},
 
         // {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL4}}, // Stream currently not supported
         {Peripherals::PE_SDMMC1, {DMAStreamId::DMA2_Str6, Channel::CHANNEL4}},
         {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str0, Channel::CHANNEL11}},
-        {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5, Channel::CHANNEL11}},
+        // {Peripherals::PE_SDMMC2, {DMAStreamId::DMA2_Str5, Channel::CHANNEL11}},
 
-        {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}},
+        // {Peripherals::PE_CRYP_OUT, {DMAStreamId::DMA2_Str5, Channel::CHANNEL2}},
         {Peripherals::PE_CRYP_IN, {DMAStreamId::DMA2_Str6, Channel::CHANNEL2}},
 
-        {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
+        // {Peripherals::PE_HASH_IN, {DMAStreamId::DMA2_Str7, Channel::CHANNEL2}},
 
         // {Peripherals::PE_SPDIFRX_DT, {DMAStreamId::DMA1_Str1,
         // Channel::CHANNEL0}}, // Stream currently not supported
@@ -696,16 +696,16 @@ const std::multimap<Peripherals, std::pair<DMAStreamId, Channel>>
          {DMAStreamId::DMA2_Str4, Channel::CHANNEL8}},
         {Peripherals::PE_DFSDM1_FLT1,
          {DMAStreamId::DMA2_Str1, Channel::CHANNEL8}},
-        {Peripherals::PE_DFSDM1_FLT1,
-         {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}},
+        // {Peripherals::PE_DFSDM1_FLT1,
+        //  {DMAStreamId::DMA2_Str5, Channel::CHANNEL8}},
         {Peripherals::PE_DFSDM1_FLT2,
          {DMAStreamId::DMA2_Str2, Channel::CHANNEL8}},
         {Peripherals::PE_DFSDM1_FLT2,
          {DMAStreamId::DMA2_Str6, Channel::CHANNEL8}},
         // {Peripherals::PE_DFSDM1_FLT3, {DMAStreamId::DMA2_Str3,
         // Channel::CHANNEL8}}, // Stream currently not supported
-        {Peripherals::PE_DFSDM1_FLT3,
-         {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}},
+        // {Peripherals::PE_DFSDM1_FLT3,
+        //  {DMAStreamId::DMA2_Str7, Channel::CHANNEL8}},
 
         {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str0, Channel::CHANNEL9}},
         // {Peripherals::PE_JPEG_IN, {DMAStreamId::DMA2_Str3,
diff --git a/src/shared/drivers/dma/DMADefs.h b/src/shared/drivers/dma/DMADefs.h
index eb62a8ccc88acb7b8fda9cf4d089a27ee74ab5a0..e855f66b1bdba235e0674a788c6778989a9dbb45 100644
--- a/src/shared/drivers/dma/DMADefs.h
+++ b/src/shared/drivers/dma/DMADefs.h
@@ -67,9 +67,9 @@ enum class DMAStreamId : uint8_t
     DMA2_Str2 = 10,
     // DMA2_Str3 = 11,
     DMA2_Str4 = 12,
-    DMA2_Str5 = 13,
+    // DMA2_Str5 = 13,
     DMA2_Str6 = 14,
-    DMA2_Str7 = 15,
+    // DMA2_Str7 = 15,
 };
 
 /**
diff --git a/src/tests/drivers/test-dma-mem-to-mem.cpp b/src/tests/drivers/test-dma-mem-to-mem.cpp
index 6eef0b9f22b5d4b13861974cb5865c551bf081df..7f4447fcc91197fbc42ed6215bb206674d669d61 100644
--- a/src/tests/drivers/test-dma-mem-to-mem.cpp
+++ b/src/tests/drivers/test-dma-mem-to-mem.cpp
@@ -31,8 +31,21 @@ void printBuffer(uint8_t* buffer, size_t size);
 
 int main()
 {
-    DMAStreamGuard stream = DMADriver::instance().acquireStreamForPeripheral(
-        DMADefs::Peripherals::PE_MEM_ONLY);
+    printf("ok funziona sulla engine\n");
+    // SCB_DisableDCache();
+    // SCB_DisableICache();
+    // miosix::Thread::sleep(500);
+
+    /**
+     * verificare quali stream sono usate sull f7 e quali no (provando
+     * a compilare avendo tutti gli irq handler attivi)
+     *
+     * è giusto che non runni i callback in polling mode?
+     */
+
+    // DMAStreamGuard stream = DMADriver::instance().acquireStreamForPeripheral(
+    //     DMADefs::Peripherals::PE_MEM_ONLY);
+    DMAStreamGuard stream = DMADriver::instance().acquireStream(DMADefs::DMAStreamId::DMA2_Str0, DMADefs::Channel::CHANNEL0);
 
     if (!stream.isValid())
     {
@@ -65,9 +78,37 @@ int main()
         .enableTransferCompleteInterrupt = true,
     };
     stream->setup(trn);
+
     stream->enable();
 
+    // auto start = std::chrono::steady_clock::now();
     stream->waitForTransferComplete();
+    // auto end = std::chrono::steady_clock::now();
+
+    // auto dur = std::chrono::duration_cast<std::chrono::nanoseconds>(end - start);
+    // printf("tempo impiegato: %lld ns\n\n", dur.count());
+
+    // stream->readFlags();
+    // printf("direct mode error flag: %d\n", stream->getDirectModeErrorFlagStatus());
+    // printf("fifo error flag: %d\n", stream->getFifoErrorFlagStatus());
+    // printf("half trans flag: %d\n", stream->getHalfTransferFlagStatus());
+    // printf("trans complete flag: %d\n", stream->getTransferCompleteFlagStatus());
+    // printf("trans error flag: %d\n\n", stream->getTransferErrorFlagStatus());
+
+    SCB_InvalidateDCache_by_Addr((uint32_t*)buffer2, 8); // risolve solo per i primi 4 byte
+    // SCB_InvalidateDCache_by_Addr((uint32_t*)(buffer2+4), 8); // risolve solo per gli ultimi 4 byte
+    // SCB_CleanDCache_by_Addr((uint32_t*)buffer2, 8); // non fa nulla
+
+    if ( ((uint64_t)buffer2 & 0x3) == 0 )
+    {
+        // The address is 4-byte aligned here
+        printf("buf2 is 32-bit aligned\n");
+    }
+    else
+    {
+        printf("buf2 IS NOT 32-bit aligned\n");
+    }
+
 
     printf("After:\n");
     printf("Buffer 1:\n");