42 lines
1.0 KiB
C
Executable File
42 lines
1.0 KiB
C
Executable File
//
|
|
// Created by cfif on 16.09.22.
|
|
//
|
|
|
|
#ifndef SERIALPORT_SERIALPORT_GIGA_H
|
|
#define SERIALPORT_SERIALPORT_GIGA_H
|
|
|
|
#include "SerialPort.h"
|
|
#include "gd32f4xx.h"
|
|
#include "cmsis_os2.h"
|
|
#include "stdbool.h"
|
|
|
|
|
|
typedef struct {
|
|
uint32_t uart;
|
|
dma_channel_enum dma_channel;
|
|
dma_single_data_parameter_struct dma_init_struct;
|
|
uint8_t* dma_buf;
|
|
uint32_t offset;
|
|
osMessageQueueId_t rxDataQueue;
|
|
osMessageQueueId_t rxDataSnifferQueue;
|
|
} tSerialPortGiga;
|
|
|
|
void vSerialPortInit(
|
|
tSerialPortGiga *env,
|
|
uint32_t uart,
|
|
uint32_t rxBufferLength
|
|
);
|
|
|
|
void vSerialPortIrqProcessing(tSerialPortGiga *env);
|
|
void vSerialPortIrqProcessingDMA(tSerialPortGiga *env);
|
|
|
|
void vSerialPortIrqProcessingDMAloop(tSerialPortGiga *env, uint32_t len);
|
|
|
|
tSerialPortIO vSerialPortGetIo(tSerialPortGiga *env);
|
|
|
|
tSerialPortIO vSerialPortGetSnifferIo(tSerialPortGiga *env);
|
|
|
|
uint16_t vSerialPortTransmit(tSerialPortGiga *env, uint8_t *data, uint16_t size, uint32_t timeout);
|
|
|
|
#endif //SERIALPORT_SERIALPORT_GIGA_H
|