diff --git a/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Inc/spiConf.h b/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Inc/spiConf.h index 477bcdf..bf8198e 100644 --- a/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Inc/spiConf.h +++ b/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Inc/spiConf.h @@ -36,13 +36,13 @@ #define SPIx_RX_DMA_REQUEST DMA_REQUEST_SPI1_RX /* Definition for SPIx's NVIC */ -#define SPIx_DMA_TX_IRQn DMA2_Stream3_IRQn #define SPIx_DMA_RX_IRQn DMA2_Stream2_IRQn +#define SPIx_DMA_TX_IRQn DMA2_Stream3_IRQn -#define SPIx_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler #define SPIx_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler +#define SPIx_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler #define SPIx_IRQn SPI1_IRQn -#define SPIx_IRQHandler SPIx_IRQHandler +#define SPIx_IRQHandler SPI1_IRQHandler #endif /* FSFW_HAL_STM32H7_DEVICETEST_SPICONF_H_ */ diff --git a/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Src/stm32h7xx_spi_dma_msp.c b/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Src/stm32h7xx_spi_dma_msp.c index 24bca6c..7999467 100644 --- a/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Src/stm32h7xx_spi_dma_msp.c +++ b/bsp_stm32_freertos/STM32CubeH7/Boards/NUCLEO-H743ZI/Src/stm32h7xx_spi_dma_msp.c @@ -1,6 +1,8 @@ #include "spiConf.h" #include "fsfw_hal/stm32h7/spi/spiCore.h" +#include "fsfw_hal/stm32h7/dma_interrupts.h" +#include "fsfw_hal/stm32h7/spi/interrupts.h" #include "stm32h743xx.h" #include "stm32h7xx_hal_spi.h" @@ -9,6 +11,9 @@ #include +void dma_rx_irq_handler(void* dma_handle); +void dma_tx_irq_handler(void* dma_handle); +void spi1_irq_handler(void* spi_handle); /** * @brief SPI MSP Initialization @@ -110,16 +115,22 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) __HAL_LINKDMA(hspi, hdmarx, *hdma_rx); /*##-4- Configure the NVIC for DMA #########################################*/ - /* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */ - HAL_NVIC_SetPriority(SPIx_DMA_TX_IRQn, 1, 1); - HAL_NVIC_EnableIRQ(SPIx_DMA_TX_IRQn); - /* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */ + // Assign the interrupt handler + assign_dma_user_handler(DMA_2, 2, &dma_rx_irq_handler, hdma_rx); HAL_NVIC_SetPriority(SPIx_DMA_RX_IRQn, 1, 0); HAL_NVIC_EnableIRQ(SPIx_DMA_RX_IRQn); + /* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */ + // Assign the interrupt handler + assign_dma_user_handler(DMA_2, 3, &dma_tx_irq_handler, hdma_tx); + HAL_NVIC_SetPriority(SPIx_DMA_TX_IRQn, 1, 1); + HAL_NVIC_EnableIRQ(SPIx_DMA_TX_IRQn); + /*##-5- Configure the NVIC for SPI #########################################*/ /* NVIC configuration for SPI transfer complete interrupt (SPI1) */ + // Assign the interrupt handler + assign_spi_user_handler(SPI_1, &spi1_irq_handler, hspi); HAL_NVIC_SetPriority(SPIx_IRQn, 1, 0); HAL_NVIC_EnableIRQ(SPIx_IRQn); } @@ -137,8 +148,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) { if(hspi->Instance == SPIx) { - - /*##-1- Reset peripherals ##################################################*/ SPIx_FORCE_RESET(); SPIx_RELEASE_RESET(); @@ -173,33 +182,3 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) HAL_NVIC_EnableIRQ(SPIx_IRQn); } } - -///** -// * @brief This function handles DMA Rx interrupt request. -// * @param None -// * @retval None -// */ -//void SPIx_DMA_RX_IRQHandler(void) -//{ -// HAL_DMA_IRQHandler(getSpiHandle()->hdmarx); -//} -// -///** -// * @brief This function handles DMA Tx interrupt request. -// * @param None -// * @retval None -// */ -//void SPIx_DMA_TX_IRQHandler(void) -//{ -// HAL_DMA_IRQHandler(getSpiHandle()->hdmatx); -//} -// -///** -// * @brief This function handles SPIx interrupt request. -// * @param None -// * @retval None -// */ -//void SPIx_IRQHandler(void) -//{ -// HAL_SPI_IRQHandler(getSpiHandle()); -//} diff --git a/fsfw_hal b/fsfw_hal index 78a66e1..abe62d8 160000 --- a/fsfw_hal +++ b/fsfw_hal @@ -1 +1 @@ -Subproject commit 78a66e1b677ae0daa532db222ecdd0097c01399a +Subproject commit abe62d807a887d5d44df7245639f211425af15d6 diff --git a/misc/eclipse/cmake/FreeRTOS/fsfw-stm32-freertos-debug.launch b/misc/eclipse/cmake/FreeRTOS/fsfw-stm32-freertos-debug.launch index 0df7d54..c2dbd65 100644 --- a/misc/eclipse/cmake/FreeRTOS/fsfw-stm32-freertos-debug.launch +++ b/misc/eclipse/cmake/FreeRTOS/fsfw-stm32-freertos-debug.launch @@ -33,7 +33,7 @@ - +