Interrupt handlers C -> C++

This commit is contained in:
Attila Body 2019-11-04 09:57:31 +01:00
parent 9dba241466
commit 4de62c7f74
10 changed files with 105 additions and 75 deletions

View file

@ -8,39 +8,16 @@
#include <stdlib.h>
#include "ll_hsusart.h"
#include "ll_crchandler.h"
#include "ll_testbed.h"
#include "main.h"
extern "C" {
#include "main.h"
#include "globals.h"
#include "strutil.h"
}
#include "globals_cpp.h"
#define PACKAGE_DELAY_MS 0
#define STATS_DELAY_MS 1000
f4ll::LL_CrcHandler *g_crc = nullptr;
f4ll::LL_HsUsart *g_usarts[4];
extern "C" void _HandleCrcDmaIrq(void)
{
f4ll::LL_CrcHandler::Instance().DmaTransferCompleted();
}
extern "C" void _HandleUsartIrq(int offset)
{
f4ll::LL_HsUsart::HandleUsartIrq(g_usarts[offset]);
}
extern "C" void _HandleUsartRxDmaIrq(int offset)
{
f4ll::LL_HsUsart::HandleRxDmaIrq(g_usarts[offset]);
}
extern "C" void _HandleUsartTxDmaIrq(int offset)
{
f4ll::LL_HsUsart::HandleTxDmaIrq(g_usarts[offset]);
}
#define ADDINFO(b,s,u) \
b += strcpy_ex(b,s); \
@ -85,7 +62,7 @@ extern "C" void MainLoop()
f4ll::LL_CrcHandler::Init(DMA2, LL_DMA_STREAM_4);
f4ll::LL_CrcHandler::Slot<2> slt;
f4ll::LL_HsUsart u1{USART1, DMA2, LL_DMA_STREAM_2, LL_DMA_STREAM_7};
f4ll::LL_HsUsart u1{ USART1, DMA2, LL_DMA_STREAM_2, LL_DMA_STREAM_7 };
f4ll::LL_HsUsart u2{ USART2, DMA1, LL_DMA_STREAM_5, LL_DMA_STREAM_6 };
f4ll::LL_HsUsart u3{ USART3, DMA1, LL_DMA_STREAM_1, LL_DMA_STREAM_3 };
f4ll::LL_HsUsart u6{ USART6, DMA2, LL_DMA_STREAM_1, LL_DMA_STREAM_6 };