Reorganizing project
This commit is contained in:
parent
2d6567b1b2
commit
76ba80db36
51 changed files with 139 additions and 266 deletions
98
App/application.cpp
Normal file
98
App/application.cpp
Normal file
|
@ -0,0 +1,98 @@
|
|||
/*
|
||||
* ll_testbed.cpp
|
||||
*
|
||||
* Created on: Oct 28, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "f4ll/ll_hsusart.h"
|
||||
#include "f4ll/ll_crchandler.h"
|
||||
#include "f4ll/ll_memcpydma.h"
|
||||
#include "f4ll/ll_consolehandler.h"
|
||||
extern "C" {
|
||||
#include "main.h"
|
||||
#include "globals.h"
|
||||
#include "f4ll_c/strutil.h"
|
||||
#include "config.h"
|
||||
}
|
||||
#include "globals_cpp.h"
|
||||
|
||||
#define PACKAGE_DELAY_MS 0
|
||||
#define STATS_DELAY_MS 1000
|
||||
|
||||
|
||||
#define ADDINFO(b,s,u) \
|
||||
b += strcpy_ex(b,s); \
|
||||
b += uitodec(b,u);
|
||||
|
||||
extern "C" void MainLoop()
|
||||
{
|
||||
uint8_t const text2Send[] __attribute__((aligned(4))) =
|
||||
"Megszentsegtelenithetetlensegeskedeseitekert\r\n"
|
||||
"--------------------------------------------\r\n\0\0\0";
|
||||
|
||||
f4ll::LL_MemcpyDma::Init(MEMCPY_DMA_ENGINE, MEMCPY_DMA_STREAM);
|
||||
f4ll::LL_CrcHandler::Init(DMA2, LL_DMA_STREAM_4);
|
||||
f4ll::LL_ConsoleHandler::Init(UART4, CONSOLE_DMA_ENGINE, 0u, CONSOLE_TX_DMA_STREAM);
|
||||
|
||||
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 };
|
||||
|
||||
f4ll::LL_HsUsart * usarts[] = { &u1, &u2, &u3, &u6 };
|
||||
for(unsigned int i=0; i < sizeof(usarts) / sizeof(usarts[0]); ++i)
|
||||
g_usarts[i] = usarts[i];
|
||||
|
||||
uint32_t lastStatsTick = 0;
|
||||
uint32_t prevSentTick = 0;
|
||||
uint8_t statId = 0;
|
||||
|
||||
uint32_t tmp = sizeof(text2Send) - 1;
|
||||
uint32_t randmask = 0x80000000;
|
||||
|
||||
do {
|
||||
if(randmask & tmp)
|
||||
break;
|
||||
} while((randmask = randmask >> 1));
|
||||
--randmask;
|
||||
|
||||
lastStatsTick = HAL_GetTick();
|
||||
|
||||
for(auto u : usarts)
|
||||
u->SetupReceive();
|
||||
|
||||
for(;;) {
|
||||
uint32_t tick = HAL_GetTick();
|
||||
bool send = PACKAGE_DELAY_MS ? (tick - prevSentTick > PACKAGE_DELAY_MS) : 1;
|
||||
|
||||
if(send)
|
||||
prevSentTick += PACKAGE_DELAY_MS;
|
||||
|
||||
for(auto u : usarts) {
|
||||
if(!u->IsTxBusy() && send) {
|
||||
//DIAG_ENTER_BUSY();
|
||||
auto len = sizeof(text2Send) - 1 - (rand() & randmask);
|
||||
f4ll::LL_MemcpyDma::Instance().Copy(u->GetTxPacketBuffer(), text2Send, len);
|
||||
u->PostPacket(nullptr, len);
|
||||
//DIAG_EXIT_BUSY();
|
||||
}
|
||||
for(uint16_t rIdx = 0; rIdx < 2; ++rIdx)
|
||||
if(u->IsRxBusy((bool)rIdx) || u->IsRxFailed(rIdx))
|
||||
u->RxProcessed((bool)rIdx);
|
||||
}
|
||||
if(tick - lastStatsTick > STATS_DELAY_MS) {
|
||||
f4ll::LL_ConsoleHandler::Instance().PrintStats(statId, *usarts[statId]);
|
||||
lastStatsTick += STATS_DELAY_MS;
|
||||
++statId;
|
||||
if(statId >= sizeof(usarts) / sizeof(usarts[0]))
|
||||
statId = 0;
|
||||
}
|
||||
// uint32_t ein = LL_GPIO_ReadInputPort(KEY1_GPIO_Port);
|
||||
// if(!(ein & KEY1_Pin)) {
|
||||
// void (*fptr)(void) = (void (*)(void))(void*)0xa0000000;
|
||||
// fptr();
|
||||
// }
|
||||
}
|
||||
}
|
23
App/application.h
Normal file
23
App/application.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* app.h
|
||||
*
|
||||
* Created on: Aug 29, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
#ifndef APP_H_
|
||||
#define APP_H_
|
||||
|
||||
#include <inttypes.h>
|
||||
#include "main.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void MainLoop();
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C" {
|
||||
#endif // __cplusplus
|
||||
#endif /* APP_H_ */
|
27
App/config.h
Normal file
27
App/config.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* config.h
|
||||
*
|
||||
* Created on: Sep 24, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H_
|
||||
#define CONFIG_H_
|
||||
|
||||
#define USARTCOUNT 4
|
||||
#define CRCTASKCOUNT (USARTCOUNT * 2)
|
||||
#define USART1_OFFSET 0
|
||||
#define USART2_OFFSET 1
|
||||
#define USART3_OFFSET 2
|
||||
#define USART6_OFFSET 3
|
||||
|
||||
#define CONSOLE_DMA_ENGINE DMA1
|
||||
#define CONSOLE_TX_DMA_STREAM LL_DMA_STREAM_4
|
||||
|
||||
#define CRC_DMA_ENGINE DMA2
|
||||
#define CRC_DMA_STREAM LL_DMA_STREAM_4
|
||||
|
||||
#define MEMCPY_DMA_ENGINE DMA2
|
||||
#define MEMCPY_DMA_STREAM LL_DMA_STREAM_3
|
||||
|
||||
#endif /* CONFIG_H_ */
|
8
App/diag.c
Normal file
8
App/diag.c
Normal file
|
@ -0,0 +1,8 @@
|
|||
/*
|
||||
* diag.c
|
||||
*
|
||||
* Created on: Sep 16, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
|
63
App/diag.h
Normal file
63
App/diag.h
Normal file
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* diag.h
|
||||
*
|
||||
* Created on: Sep 16, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
#ifndef DIAG_H_
|
||||
#define DIAG_H_
|
||||
|
||||
#ifdef _ENABLE_DIAG
|
||||
#define DIAG_RX_BUFFER_SWITCH(x) \
|
||||
if(x) { \
|
||||
LL_GPIO_SetOutputPin(LED0_GPIO_Port, LED0_Pin); \
|
||||
LL_GPIO_ResetOutputPin(LED1_GPIO_Port, LED1_Pin); \
|
||||
} else { \
|
||||
LL_GPIO_ResetOutputPin(LED0_GPIO_Port, LED0_Pin); \
|
||||
LL_GPIO_SetOutputPin(LED1_GPIO_Port, LED1_Pin); \
|
||||
}
|
||||
|
||||
#define DIAG_INTERRUPT_IN() LL_GPIO_SetOutputPin(DEBUG0_GPIO_Port, DEBUG0_Pin)
|
||||
#define DIAG_INTERRUPT_OUT() LL_GPIO_ResetOutputPin(DEBUG0_GPIO_Port, DEBUG0_Pin)
|
||||
#define DIAG_CRC_CALC_START() LL_GPIO_SetOutputPin(DEBUG1_GPIO_Port, DEBUG1_Pin)
|
||||
#define DIAG_CRC_CALC_END() LL_GPIO_ResetOutputPin(DEBUG1_GPIO_Port, DEBUG1_Pin)
|
||||
//#define DIAG_ERROR_EVENT() LL_GPIO_TogglePin(DEBUG2_GPIO_Port, DEBUG2_Pin)
|
||||
#define DIAG_ENTER_BUSY() LL_GPIO_SetOutputPin(DEBUG2_GPIO_Port, DEBUG2_Pin)
|
||||
#define DIAG_EXIT_BUSY() LL_GPIO_ResetOutputPin(DEBUG2_GPIO_Port, DEBUG2_Pin)
|
||||
|
||||
#endif // _ENABLE_DIAG
|
||||
|
||||
#ifndef DIAG_RX_BUFFER_SWITCH
|
||||
# define DIAG_RX_BUFFER_SWITCH(x)
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_CRC_CALC_START
|
||||
# define DIAG_CRC_CALC_START()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_CRC_CALC_END
|
||||
# define DIAG_CRC_CALC_END()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_INTERRUPT_IN
|
||||
# define DIAG_INTERRUPT_IN()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_INTERRUPT_OUT
|
||||
# define DIAG_INTERRUPT_OUT()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_ERROR_EVENT
|
||||
# define DIAG_ERROR_EVENT()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_ENTER_BUSY
|
||||
# define DIAG_ENTER_BUSY()
|
||||
#endif
|
||||
|
||||
#ifndef DIAG_EXIT_BUSY
|
||||
# define DIAG_EXIT_BUSY()
|
||||
#endif
|
||||
|
||||
#endif /* DIAG_H_ */
|
16
App/globals.c
Normal file
16
App/globals.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* globals.c
|
||||
*
|
||||
* Created on: Aug 29, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
#include "globals.h"
|
||||
|
||||
USARTSTATUS g_uartStatuses[USARTCOUNT];
|
||||
|
||||
CRCSTATUS g_crcStatus;
|
||||
|
||||
DMAINFO g_ConsoleTxDmaInfo;
|
||||
uint8_t g_statsBuf[256];
|
||||
|
24
App/globals.h
Normal file
24
App/globals.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* 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 USARTSTATUS g_uartStatuses[USARTCOUNT];
|
||||
|
||||
extern CRCSTATUS g_crcStatus;
|
||||
|
||||
extern DMAINFO g_ConsoleTxDmaInfo;
|
||||
extern uint8_t g_statsBuf[256];
|
||||
|
||||
#endif /* GLOBALS_H_ */
|
13
App/globals_cpp.cpp
Normal file
13
App/globals_cpp.cpp
Normal file
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* globals_cpp.cpp
|
||||
*
|
||||
* Created on: Nov 4, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
#include "globals.h"
|
||||
|
||||
#include <f4ll/ll_hsusart.h>
|
||||
#include <f4ll/ll_memcpydma.h>
|
||||
|
||||
f4ll::LL_HsUsart *g_usarts[4];
|
||||
|
17
App/globals_cpp.h
Normal file
17
App/globals_cpp.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* globals_cpp.h
|
||||
*
|
||||
* Created on: Nov 4, 2019
|
||||
* Author: abody
|
||||
*/
|
||||
|
||||
#ifndef GLOBALS_CPP_H_
|
||||
#define GLOBALS_CPP_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include "f4ll/ll_hsusart.h"
|
||||
|
||||
extern f4ll::LL_HsUsart *g_usarts[4];
|
||||
|
||||
#endif // __cplusplus
|
||||
#endif /* GLOBALS_CPP_H_ */
|
6
App/platform/crc_ll.h
Normal file
6
App/platform/crc_ll.h
Normal file
|
@ -0,0 +1,6 @@
|
|||
#ifndef __PLATFORM_CRC_LL_H_INCLUDED
|
||||
#define __PLATFORM_CRC_LL_H_INCLUDED
|
||||
|
||||
#include "crc.h"
|
||||
|
||||
#endif // __PLATFORM_CRC_LL_H_INCLUDED
|
6
App/platform/dma_ll.h
Normal file
6
App/platform/dma_ll.h
Normal file
|
@ -0,0 +1,6 @@
|
|||
#ifndef __PLATFORM_DMA_LL_H_INCLUDED
|
||||
#define __PLATFORM_DMA_LL_H_INCLUDED
|
||||
|
||||
#include "stm32f4xx_ll_dma.h"
|
||||
|
||||
#endif // __PLATFORM_DMA_LL_H_INCLUDED
|
6
App/platform/usart_ll.h
Normal file
6
App/platform/usart_ll.h
Normal file
|
@ -0,0 +1,6 @@
|
|||
#ifndef __PLATFORM_USART_LL_H_INCLUDED
|
||||
#define __PLATFORM_USART_LL_H_INCLUDED
|
||||
|
||||
#include "usart.h"
|
||||
|
||||
#endif // __PLATFORM_USART_LL_H_INCLUDED
|
Loading…
Add table
Add a link
Reference in a new issue