From fef441ecda9c184c7c545078024c8f484ac3f622 Mon Sep 17 00:00:00 2001 From: Attila Body Date: Sun, 8 Jun 2025 16:49:58 +0200 Subject: [PATCH] tmp 2 --- CMakeLists.txt | 2 + Core/Src/stm32f4xx_it.c | 28 +++++++-- components/app/CMakeLists.txt | 11 ++++ components/app/diag.c | 8 --- components/app/globals.c | 16 ----- components/app/globals.h | 24 -------- components/app/globals_cpp.cpp | 13 ---- components/app/globals_cpp.h | 17 ------ components/app/{ => inc}/application.h | 0 components/app/{ => inc}/config.h | 0 components/app/{ => inc}/diag.h | 0 components/app/inc/globals.h | 15 +++++ components/app/inc/irq_bridge.h | 32 ++++++++++ components/app/{ => src}/application.cpp | 0 components/app/src/globals.cpp | 15 +++++ components/app/src/irq_bridge.cpp | 78 ++++++++++++++++++++++++ components/f4ll/component.mk | 11 ---- 17 files changed, 176 insertions(+), 94 deletions(-) create mode 100644 components/app/CMakeLists.txt delete mode 100644 components/app/diag.c delete mode 100644 components/app/globals.c delete mode 100644 components/app/globals.h delete mode 100644 components/app/globals_cpp.cpp delete mode 100644 components/app/globals_cpp.h rename components/app/{ => inc}/application.h (100%) rename components/app/{ => inc}/config.h (100%) rename components/app/{ => inc}/diag.h (100%) create mode 100644 components/app/inc/globals.h create mode 100644 components/app/inc/irq_bridge.h rename components/app/{ => src}/application.cpp (100%) create mode 100644 components/app/src/globals.cpp create mode 100644 components/app/src/irq_bridge.cpp delete mode 100644 components/f4ll/component.mk diff --git a/CMakeLists.txt b/CMakeLists.txt index 95a2467..802e80d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,7 @@ add_subdirectory(cmake/stm32cubemx) add_subdirectory(components/platform) add_subdirectory(components/f4ll) +add_subdirectory(components/app) # Link directories setup target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE @@ -68,6 +69,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} stm32cubemx # Add user defined libraries + app ) # Poor quality LL code from ST diff --git a/Core/Src/stm32f4xx_it.c b/Core/Src/stm32f4xx_it.c index 514e7eb..f3fb585 100644 --- a/Core/Src/stm32f4xx_it.c +++ b/Core/Src/stm32f4xx_it.c @@ -22,6 +22,8 @@ #include "stm32f4xx_it.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ +#include + /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -204,7 +206,7 @@ void SysTick_Handler(void) void DMA1_Stream1_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ - + usart3_rx_dma_isr(); /* USER CODE END DMA1_Stream1_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ @@ -217,6 +219,7 @@ void DMA1_Stream1_IRQHandler(void) void DMA1_Stream2_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream2_IRQn 0 */ + usart4_rx_dma_isr(); // console /* USER CODE END DMA1_Stream2_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream2_IRQn 1 */ @@ -230,6 +233,7 @@ void DMA1_Stream2_IRQHandler(void) void DMA1_Stream3_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ + usart3_tx_dma_isr(); /* USER CODE END DMA1_Stream3_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ @@ -243,6 +247,7 @@ void DMA1_Stream3_IRQHandler(void) void DMA1_Stream4_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream4_IRQn 0 */ + usart4_tx_dma_isr(); // console /* USER CODE END DMA1_Stream4_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream4_IRQn 1 */ @@ -256,6 +261,7 @@ void DMA1_Stream4_IRQHandler(void) void DMA1_Stream5_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream5_IRQn 0 */ + usart2_rx_dma_isr(); /* USER CODE END DMA1_Stream5_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream5_IRQn 1 */ @@ -268,12 +274,13 @@ void DMA1_Stream5_IRQHandler(void) */ void DMA1_Stream6_IRQHandler(void) { - /* USER CODE BEGIN DMA1_Stream6_IRQn 0 */ + /* USER CODE BEGIN DMA1_Stream6_IRQn 0 */ + usart2_tx_dma_isr(); - /* USER CODE END DMA1_Stream6_IRQn 0 */ - /* USER CODE BEGIN DMA1_Stream6_IRQn 1 */ + /* USER CODE END DMA1_Stream6_IRQn 0 */ + /* USER CODE BEGIN DMA1_Stream6_IRQn 1 */ - /* USER CODE END DMA1_Stream6_IRQn 1 */ + /* USER CODE END DMA1_Stream6_IRQn 1 */ } /** @@ -295,6 +302,7 @@ void SPI2_IRQHandler(void) void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ + usart1_isr(); /* USER CODE END USART1_IRQn 0 */ /* USER CODE BEGIN USART1_IRQn 1 */ @@ -308,6 +316,7 @@ void USART1_IRQHandler(void) void USART2_IRQHandler(void) { /* USER CODE BEGIN USART2_IRQn 0 */ + usart2_isr(); /* USER CODE END USART2_IRQn 0 */ /* USER CODE BEGIN USART2_IRQn 1 */ @@ -321,6 +330,7 @@ void USART2_IRQHandler(void) void USART3_IRQHandler(void) { /* USER CODE BEGIN USART3_IRQn 0 */ + usart3_isr(); /* USER CODE END USART3_IRQn 0 */ /* USER CODE BEGIN USART3_IRQn 1 */ @@ -334,6 +344,7 @@ void USART3_IRQHandler(void) void UART4_IRQHandler(void) { /* USER CODE BEGIN UART4_IRQn 0 */ + usart4_isr(); /* USER CODE END UART4_IRQn 0 */ /* USER CODE BEGIN UART4_IRQn 1 */ @@ -347,6 +358,7 @@ void UART4_IRQHandler(void) void DMA2_Stream1_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream1_IRQn 0 */ + usart6_rx_dma_isr(); /* USER CODE END DMA2_Stream1_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream1_IRQn 1 */ @@ -360,6 +372,7 @@ void DMA2_Stream1_IRQHandler(void) void DMA2_Stream2_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ + usart1_tx_dma_isr(); /* USER CODE END DMA2_Stream2_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */ @@ -373,6 +386,7 @@ void DMA2_Stream2_IRQHandler(void) void DMA2_Stream3_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ + m2m1_dma_isr(); /* USER CODE END DMA2_Stream3_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */ @@ -386,6 +400,7 @@ void DMA2_Stream3_IRQHandler(void) void DMA2_Stream4_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ + m2m2_dma_isr(); /* USER CODE END DMA2_Stream4_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */ @@ -399,6 +414,7 @@ void DMA2_Stream4_IRQHandler(void) void DMA2_Stream6_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream6_IRQn 0 */ + usart6_tx_dma_isr(); /* USER CODE END DMA2_Stream6_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream6_IRQn 1 */ @@ -412,6 +428,7 @@ void DMA2_Stream6_IRQHandler(void) void DMA2_Stream7_IRQHandler(void) { /* USER CODE BEGIN DMA2_Stream7_IRQn 0 */ + usart1_tx_dma_isr(); /* USER CODE END DMA2_Stream7_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream7_IRQn 1 */ @@ -425,6 +442,7 @@ void DMA2_Stream7_IRQHandler(void) void USART6_IRQHandler(void) { /* USER CODE BEGIN USART6_IRQn 0 */ + usart6_isr(); /* USER CODE END USART6_IRQn 0 */ /* USER CODE BEGIN USART6_IRQn 1 */ diff --git a/components/app/CMakeLists.txt b/components/app/CMakeLists.txt new file mode 100644 index 0000000..68a9424 --- /dev/null +++ b/components/app/CMakeLists.txt @@ -0,0 +1,11 @@ +add_library(app STATIC + src/application.cpp + src/globals.cpp + src/irq_bridge.cpp +) + +target_include_directories(app PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/inc +) + +target_link_libraries(app PUBLIC stm32cubemx platform f4ll) \ No newline at end of file diff --git a/components/app/diag.c b/components/app/diag.c deleted file mode 100644 index 1827999..0000000 --- a/components/app/diag.c +++ /dev/null @@ -1,8 +0,0 @@ -/* - * diag.c - * - * Created on: Sep 16, 2019 - * Author: abody - */ - - diff --git a/components/app/globals.c b/components/app/globals.c deleted file mode 100644 index 30a01be..0000000 --- a/components/app/globals.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * globals.c - * - * Created on: Aug 29, 2019 - * Author: abody - */ - -#include "globals.h" - -//struct usartstatus_t g_uartStatuses[USARTCOUNT]; - -//struct crcstatus_t g_crcStatus; - -//DMAINFO g_ConsoleTxDmaInfo; -uint8_t g_statsBuf[256]; - diff --git a/components/app/globals.h b/components/app/globals.h deleted file mode 100644 index 5d25b3b..0000000 --- a/components/app/globals.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * globals.h - * - * Created on: Aug 29, 2019 - * Author: abody - */ - -#ifndef GLOBALS_H_ -#define GLOBALS_H_ - -#include -#include "config.h" -//#include "f4ll_c/usart_handler.h" -//#include "f4ll_c/dma_helper.h" -//#include "f4ll_c/crc_handler.h" - -//extern struct usartstatus_t g_uartStatuses[USARTCOUNT]; - -//extern struct crcstatus_t g_crcStatus; - -//extern DMAINFO g_ConsoleTxDmaInfo; -extern uint8_t g_statsBuf[256]; - -#endif /* GLOBALS_H_ */ diff --git a/components/app/globals_cpp.cpp b/components/app/globals_cpp.cpp deleted file mode 100644 index 68835df..0000000 --- a/components/app/globals_cpp.cpp +++ /dev/null @@ -1,13 +0,0 @@ -/* - * globals_cpp.cpp - * - * Created on: Nov 4, 2019 - * Author: abody - */ -#include "globals.h" - -#include -#include - -f4ll::PacketUsart *g_usarts[4]; - diff --git a/components/app/globals_cpp.h b/components/app/globals_cpp.h deleted file mode 100644 index 1ef54be..0000000 --- a/components/app/globals_cpp.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * globals_cpp.h - * - * Created on: Nov 4, 2019 - * Author: abody - */ - -#ifndef GLOBALS_CPP_H_ -#define GLOBALS_CPP_H_ - -#ifdef __cplusplus -#include "f4ll/packetusart.h" - -extern f4ll::PacketUsart *g_usarts[4]; - -#endif // __cplusplus -#endif /* GLOBALS_CPP_H_ */ diff --git a/components/app/application.h b/components/app/inc/application.h similarity index 100% rename from components/app/application.h rename to components/app/inc/application.h diff --git a/components/app/config.h b/components/app/inc/config.h similarity index 100% rename from components/app/config.h rename to components/app/inc/config.h diff --git a/components/app/diag.h b/components/app/inc/diag.h similarity index 100% rename from components/app/diag.h rename to components/app/inc/diag.h diff --git a/components/app/inc/globals.h b/components/app/inc/globals.h new file mode 100644 index 0000000..01e50ff --- /dev/null +++ b/components/app/inc/globals.h @@ -0,0 +1,15 @@ +/* + * globals.h + * + * Created on: Aug 29, 2019 + * Author: abody + */ + +#pragma once + +#include +#include +#include + +extern f4ll::PacketUsart *g_usarts[USARTCOUNT]; +extern uint8_t g_statsBuf[256]; diff --git a/components/app/inc/irq_bridge.h b/components/app/inc/irq_bridge.h new file mode 100644 index 0000000..6e78645 --- /dev/null +++ b/components/app/inc/irq_bridge.h @@ -0,0 +1,32 @@ +#pragma once + +#if defined(__cplusplus) +extern "C" { +#endif + +void usart1_rx_dma_isr(void); +void usart1_tx_dma_isr(void); +void usart1_isr(void); + +void usart2_rx_dma_isr(void); +void usart2_tx_dma_isr(void); +void usart2_isr(void); + +void usart3_rx_dma_isr(void); +void usart3_tx_dma_isr(void); +void usart3_isr(void); + +void usart4_rx_dma_isr(void); // console +void usart4_tx_dma_isr(void); // console +void usart4_isr(void); + +void usart6_rx_dma_isr(void); // console +void usart6_tx_dma_isr(void); // console +void usart6_isr(void); + +void m2m1_dma_isr(void); // m2mcpy +void m2m2_dma_isr(void); // crc + +#if defined(__cplusplus) +} +#endif diff --git a/components/app/application.cpp b/components/app/src/application.cpp similarity index 100% rename from components/app/application.cpp rename to components/app/src/application.cpp diff --git a/components/app/src/globals.cpp b/components/app/src/globals.cpp new file mode 100644 index 0000000..15a3b78 --- /dev/null +++ b/components/app/src/globals.cpp @@ -0,0 +1,15 @@ +/* + * globals_cpp.cpp + * + * Created on: Nov 4, 2019 + * Author: abody + */ +#include "globals.h" +#include "config.h" + +#include +#include + +f4ll::PacketUsart *g_usarts[USARTCOUNT]; + +uint8_t g_statsBuf[256]; diff --git a/components/app/src/irq_bridge.cpp b/components/app/src/irq_bridge.cpp new file mode 100644 index 0000000..b32399b --- /dev/null +++ b/components/app/src/irq_bridge.cpp @@ -0,0 +1,78 @@ +#include "f4ll/console_handler.h" + +#include +#include +#include + +void usart1_rx_dma_isr(void) +{ + f4ll::PacketUsart::HandleRxDmaIrq(g_usarts[USART1_OFFSET]); +} + +void usart1_tx_dma_isr(void) +{ + f4ll::PacketUsart::HandleTxDmaIrq(g_usarts[USART1_OFFSET]); +} +void usart1_isr(void) +{ + f4ll::PacketUsart::HandleUsartIrq(g_usarts[USART1_OFFSET]); +} + +// +void usart2_rx_dma_isr(void) +{ + f4ll::PacketUsart::HandleRxDmaIrq(g_usarts[USART2_OFFSET]); +} + +void usart2_tx_dma_isr(void) +{ + f4ll::PacketUsart::HandleTxDmaIrq(g_usarts[USART2_OFFSET]); +} +void usart2_isr(void) +{ + f4ll::PacketUsart::HandleUsartIrq(g_usarts[USART2_OFFSET]); +} + +// +void usart3_rx_dma_isr(void) +{ + f4ll::PacketUsart::HandleRxDmaIrq(g_usarts[USART3_OFFSET]); +} + +void usart3_tx_dma_isr(void) +{ + f4ll::PacketUsart::HandleTxDmaIrq(g_usarts[USART3_OFFSET]); +} +void usart3_isr(void) +{ + f4ll::PacketUsart::HandleUsartIrq(g_usarts[USART3_OFFSET]); +} + +// +void usart4_rx_dma_isr(void) {} // console +void usart4_tx_dma_isr(void) +{ + f4ll::console_handler::HandleTxDmaIrq(&f4ll::console_handler::instance()); +} // console +void usart4_isr(void) +{ + f4ll::console_handler::HandleUsartIrq(&f4ll::console_handler::instance()); +} + +// +void usart6_rx_dma_isr(void) +{ + f4ll::PacketUsart::HandleRxDmaIrq(g_usarts[USART6_OFFSET]); +} + +void usart6_tx_dma_isr(void) +{ + f4ll::PacketUsart::HandleTxDmaIrq(g_usarts[USART6_OFFSET]); +} +void usart6_isr(void) +{ + f4ll::PacketUsart::HandleUsartIrq(g_usarts[USART6_OFFSET]); +} + +void m2m1_dma_isr(void) {} // m2mcpy +void m2m2_dma_isr(void) {} // crc diff --git a/components/f4ll/component.mk b/components/f4ll/component.mk deleted file mode 100644 index 28874d8..0000000 --- a/components/f4ll/component.mk +++ /dev/null @@ -1,11 +0,0 @@ -#encoder -SELF_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) -REL_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) -ifeq ($(MKDBG), 1) - $(info >>> $(REL_DIR)/component.mk) -endif -$(eval C_INCLUDES += -I$(REL_DIR)/inc) -$(eval CXX_SOURCES += $(wildcard $(REL_DIR)/src/*.cpp)) -ifeq ($(MKDBG), 1) - $(info <<<) -endif