This commit is contained in:
Attila Body 2025-06-08 16:49:58 +02:00
parent 5d5fd4bc83
commit fef441ecda
Signed by: abody
GPG key ID: BD0C6214E68FB5CF
17 changed files with 176 additions and 94 deletions

View file

@ -42,6 +42,7 @@ add_subdirectory(cmake/stm32cubemx)
add_subdirectory(components/platform) add_subdirectory(components/platform)
add_subdirectory(components/f4ll) add_subdirectory(components/f4ll)
add_subdirectory(components/app)
# Link directories setup # Link directories setup
target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE
@ -68,6 +69,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
stm32cubemx stm32cubemx
# Add user defined libraries # Add user defined libraries
app
) )
# Poor quality LL code from ST # Poor quality LL code from ST

View file

@ -22,6 +22,8 @@
#include "stm32f4xx_it.h" #include "stm32f4xx_it.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include <irq_bridge.h>
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -204,7 +206,7 @@ void SysTick_Handler(void)
void DMA1_Stream1_IRQHandler(void) void DMA1_Stream1_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */
usart3_rx_dma_isr();
/* USER CODE END DMA1_Stream1_IRQn 0 */ /* USER CODE END DMA1_Stream1_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */
@ -217,6 +219,7 @@ void DMA1_Stream1_IRQHandler(void)
void DMA1_Stream2_IRQHandler(void) void DMA1_Stream2_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream2_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream2_IRQn 0 */
usart4_rx_dma_isr(); // console
/* USER CODE END DMA1_Stream2_IRQn 0 */ /* USER CODE END DMA1_Stream2_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream2_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream2_IRQn 1 */
@ -230,6 +233,7 @@ void DMA1_Stream2_IRQHandler(void)
void DMA1_Stream3_IRQHandler(void) void DMA1_Stream3_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
usart3_tx_dma_isr();
/* USER CODE END DMA1_Stream3_IRQn 0 */ /* USER CODE END DMA1_Stream3_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
@ -243,6 +247,7 @@ void DMA1_Stream3_IRQHandler(void)
void DMA1_Stream4_IRQHandler(void) void DMA1_Stream4_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream4_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream4_IRQn 0 */
usart4_tx_dma_isr(); // console
/* USER CODE END DMA1_Stream4_IRQn 0 */ /* USER CODE END DMA1_Stream4_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream4_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream4_IRQn 1 */
@ -256,6 +261,7 @@ void DMA1_Stream4_IRQHandler(void)
void DMA1_Stream5_IRQHandler(void) void DMA1_Stream5_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA1_Stream5_IRQn 0 */ /* USER CODE BEGIN DMA1_Stream5_IRQn 0 */
usart2_rx_dma_isr();
/* USER CODE END DMA1_Stream5_IRQn 0 */ /* USER CODE END DMA1_Stream5_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream5_IRQn 1 */ /* USER CODE BEGIN DMA1_Stream5_IRQn 1 */
@ -268,12 +274,13 @@ void DMA1_Stream5_IRQHandler(void)
*/ */
void DMA1_Stream6_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 END DMA1_Stream6_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream6_IRQn 1 */ /* 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) void USART1_IRQHandler(void)
{ {
/* USER CODE BEGIN USART1_IRQn 0 */ /* USER CODE BEGIN USART1_IRQn 0 */
usart1_isr();
/* USER CODE END USART1_IRQn 0 */ /* USER CODE END USART1_IRQn 0 */
/* USER CODE BEGIN USART1_IRQn 1 */ /* USER CODE BEGIN USART1_IRQn 1 */
@ -308,6 +316,7 @@ void USART1_IRQHandler(void)
void USART2_IRQHandler(void) void USART2_IRQHandler(void)
{ {
/* USER CODE BEGIN USART2_IRQn 0 */ /* USER CODE BEGIN USART2_IRQn 0 */
usart2_isr();
/* USER CODE END USART2_IRQn 0 */ /* USER CODE END USART2_IRQn 0 */
/* USER CODE BEGIN USART2_IRQn 1 */ /* USER CODE BEGIN USART2_IRQn 1 */
@ -321,6 +330,7 @@ void USART2_IRQHandler(void)
void USART3_IRQHandler(void) void USART3_IRQHandler(void)
{ {
/* USER CODE BEGIN USART3_IRQn 0 */ /* USER CODE BEGIN USART3_IRQn 0 */
usart3_isr();
/* USER CODE END USART3_IRQn 0 */ /* USER CODE END USART3_IRQn 0 */
/* USER CODE BEGIN USART3_IRQn 1 */ /* USER CODE BEGIN USART3_IRQn 1 */
@ -334,6 +344,7 @@ void USART3_IRQHandler(void)
void UART4_IRQHandler(void) void UART4_IRQHandler(void)
{ {
/* USER CODE BEGIN UART4_IRQn 0 */ /* USER CODE BEGIN UART4_IRQn 0 */
usart4_isr();
/* USER CODE END UART4_IRQn 0 */ /* USER CODE END UART4_IRQn 0 */
/* USER CODE BEGIN UART4_IRQn 1 */ /* USER CODE BEGIN UART4_IRQn 1 */
@ -347,6 +358,7 @@ void UART4_IRQHandler(void)
void DMA2_Stream1_IRQHandler(void) void DMA2_Stream1_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream1_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
usart6_rx_dma_isr();
/* USER CODE END DMA2_Stream1_IRQn 0 */ /* USER CODE END DMA2_Stream1_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream1_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream1_IRQn 1 */
@ -360,6 +372,7 @@ void DMA2_Stream1_IRQHandler(void)
void DMA2_Stream2_IRQHandler(void) void DMA2_Stream2_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream2_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream2_IRQn 0 */
usart1_tx_dma_isr();
/* USER CODE END DMA2_Stream2_IRQn 0 */ /* USER CODE END DMA2_Stream2_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream2_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream2_IRQn 1 */
@ -373,6 +386,7 @@ void DMA2_Stream2_IRQHandler(void)
void DMA2_Stream3_IRQHandler(void) void DMA2_Stream3_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
m2m1_dma_isr();
/* USER CODE END DMA2_Stream3_IRQn 0 */ /* USER CODE END DMA2_Stream3_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
@ -386,6 +400,7 @@ void DMA2_Stream3_IRQHandler(void)
void DMA2_Stream4_IRQHandler(void) void DMA2_Stream4_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream4_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
m2m2_dma_isr();
/* USER CODE END DMA2_Stream4_IRQn 0 */ /* USER CODE END DMA2_Stream4_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream4_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
@ -399,6 +414,7 @@ void DMA2_Stream4_IRQHandler(void)
void DMA2_Stream6_IRQHandler(void) void DMA2_Stream6_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
usart6_tx_dma_isr();
/* USER CODE END DMA2_Stream6_IRQn 0 */ /* USER CODE END DMA2_Stream6_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
@ -412,6 +428,7 @@ void DMA2_Stream6_IRQHandler(void)
void DMA2_Stream7_IRQHandler(void) void DMA2_Stream7_IRQHandler(void)
{ {
/* USER CODE BEGIN DMA2_Stream7_IRQn 0 */ /* USER CODE BEGIN DMA2_Stream7_IRQn 0 */
usart1_tx_dma_isr();
/* USER CODE END DMA2_Stream7_IRQn 0 */ /* USER CODE END DMA2_Stream7_IRQn 0 */
/* USER CODE BEGIN DMA2_Stream7_IRQn 1 */ /* USER CODE BEGIN DMA2_Stream7_IRQn 1 */
@ -425,6 +442,7 @@ void DMA2_Stream7_IRQHandler(void)
void USART6_IRQHandler(void) void USART6_IRQHandler(void)
{ {
/* USER CODE BEGIN USART6_IRQn 0 */ /* USER CODE BEGIN USART6_IRQn 0 */
usart6_isr();
/* USER CODE END USART6_IRQn 0 */ /* USER CODE END USART6_IRQn 0 */
/* USER CODE BEGIN USART6_IRQn 1 */ /* USER CODE BEGIN USART6_IRQn 1 */

View file

@ -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)

View file

@ -1,8 +0,0 @@
/*
* diag.c
*
* Created on: Sep 16, 2019
* Author: abody
*/

View file

@ -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];

View file

@ -1,24 +0,0 @@
/*
* globals.h
*
* Created on: Aug 29, 2019
* Author: abody
*/
#ifndef GLOBALS_H_
#define GLOBALS_H_
#include <inttypes.h>
#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_ */

View file

@ -1,13 +0,0 @@
/*
* globals_cpp.cpp
*
* Created on: Nov 4, 2019
* Author: abody
*/
#include "globals.h"
#include <f4ll/packetusart.h>
#include <f4ll/memcpydma.h>
f4ll::PacketUsart *g_usarts[4];

View file

@ -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_ */

View file

@ -0,0 +1,15 @@
/*
* globals.h
*
* Created on: Aug 29, 2019
* Author: abody
*/
#pragma once
#include <config.h>
#include <f4ll/packet_usart.h>
#include <inttypes.h>
extern f4ll::PacketUsart *g_usarts[USARTCOUNT];
extern uint8_t g_statsBuf[256];

View file

@ -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

View file

@ -0,0 +1,15 @@
/*
* globals_cpp.cpp
*
* Created on: Nov 4, 2019
* Author: abody
*/
#include "globals.h"
#include "config.h"
#include <f4ll/memcpy_dma.h>
#include <f4ll/packet_usart.h>
f4ll::PacketUsart *g_usarts[USARTCOUNT];
uint8_t g_statsBuf[256];

View file

@ -0,0 +1,78 @@
#include "f4ll/console_handler.h"
#include <config.h>
#include <globals.h>
#include <irq_bridge.h>
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

View file

@ -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