refactored everything

This commit is contained in:
2021-06-10 19:09:33 +02:00
parent 0e79b5f4ae
commit 8f61c23e62
18 changed files with 740 additions and 265 deletions

View File

@ -1,4 +1,5 @@
#include "spiInterrupts.h"
#include "spiCore.h"
#include "stm32h7xx_hal.h"
#include "stm32h7xx_hal_dma.h"
@ -6,10 +7,10 @@
#include <stddef.h>
user_handler_t spi1UserHandler = nullptr;
user_handler_t spi1UserHandler = &spi::spiIrqHandler;
user_args_t spi1UserArgs = nullptr;
user_handler_t spi2UserHandler = nullptr;
user_handler_t spi2UserHandler = &spi::spiIrqHandler;
user_args_t spi2UserArgs = nullptr;
/**
@ -35,9 +36,10 @@ void spi::dmaTxIrqHandler(void* dmaHandle) {
* @param None
* @retval None
*/
void spi::spi1IrqHandler(void* spiHandle)
void spi::spiIrqHandler(void* spiHandle)
{
HAL_SPI_IRQHandler((SPI_HandleTypeDef *) spiHandle);
auto currentSpiHandle = spi::getSpiHandle();
HAL_SPI_IRQHandler((SPI_HandleTypeDef *) currentSpiHandle);
}
void spi::assignSpiUserHandler(spi::SpiBus spiIdx, user_handler_t userHandler,
@ -52,6 +54,30 @@ void spi::assignSpiUserHandler(spi::SpiBus spiIdx, user_handler_t userHandler,
}
}
void spi::getSpiUserHandler(spi::SpiBus spiBus, user_handler_t *userHandler,
user_args_t *userArgs) {
if(userHandler == nullptr or userArgs == nullptr) {
return;
}
if(spiBus == spi::SpiBus::SPI_1) {
*userArgs = spi1UserArgs;
*userHandler = spi1UserHandler;
}
else {
*userArgs = spi2UserArgs;
*userHandler = spi2UserHandler;
}
}
void assignSpiUserArgs(spi::SpiBus spiBus, user_args_t userArgs) {
if(spiBus == spi::SpiBus::SPI_1) {
spi1UserArgs = userArgs;
}
else {
spi2UserArgs = userArgs;
}
}
/* Do not change these function names! They need to be exactly equal to the name of the functions
defined in the startup_stm32h743xx.s files! */
@ -70,5 +96,3 @@ extern "C" void SPI2_IRQHandler() {
}
Default_Handler();
}