Обновление

This commit is contained in:
cfif 2025-12-09 17:09:13 +03:00
parent ae1e97fa26
commit b06b31a411
2 changed files with 22 additions and 10 deletions

View File

@ -20,7 +20,9 @@ static void DMA_USART2_ErrorCallback() {
static void DMA_USART2_TransferCompleteCallback() {
++SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF;
SerialPortTransmit(&SERIAL_PORTS.cliVirtualInIo,
// SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, buf_USART2_DMA);
SerialPortTransmit(&SERIAL_PORTS.cliVirtualPortIn_Io,
(uint8_t *) &buf_USART2_DMA[SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF],
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF, 0);
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF += SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF;
@ -34,7 +36,9 @@ static void DMA_USART2_TransferCompleteCallback() {
static void FCUART_IldeInterrupt_CallBack(uint8_t u8UartIndex) {
SerialPortTransmit(&SERIAL_PORTS.cliVirtualInIo,
SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, buf_USART2_DMA);
SerialPortTransmit(&SERIAL_PORTS.cliVirtualPortIn_Io,
(uint8_t *) &buf_USART2_DMA[SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF],
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF, 0);
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF += SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF;
@ -42,7 +46,7 @@ static void FCUART_IldeInterrupt_CallBack(uint8_t u8UartIndex) {
if (SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF >= SERIAL_PORTS.SerialPortLog.DMA_BUF_LEN)
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF = 0;
// DMA_ModifyAddress(DMA_INSTANCE_0, SERIAL_PORTS.SerialPortLog.RX_DMA_CHANNEL, &(SERIAL_PORTS.SerialPortLog.UART->DATA), (void *)((uint32_t)(buf_USART2_DMA)));
// DMA_ModifyAddress(DMA_INSTANCE_0, SERIAL_PORTS.SerialPortLog.RX_DMA_CHANNEL, &(SERIAL_PORTS.SerialPortLog.UART->DATA), (void *)((uint32_t)(buf_USART2_DMA)));
PROCESS_UNUSED_VAR(u8UartIndex)
}
@ -143,9 +147,16 @@ void SerialPorts_Init() {
tSerialPorts *env = &SERIAL_PORTS;
//// Виртуальный сериал порт
SerialPortP2p_Init(&env->cliVirtualPort, 4 * 1024, 1024);
env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort);
env->cliVirtualOutIo = SerialPortP2p_GetIoSecond(&env->cliVirtualPort);
SerialPortVirt_Init(&env->cliVirtualPortOut, 1024);
env->cliVirtualPortOut_Io = SerialPortVirt_GetIo(&env->cliVirtualPortOut);
SerialPortVirt_Init(&env->cliVirtualPortIn, 128);
env->cliVirtualPortIn_Io = SerialPortVirt_GetIo(&env->cliVirtualPortIn);
// SerialPortP2p_Init(&env->cliVirtualPort, 4 * 1024, 1024);
// env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort);
// env->cliVirtualOutIo = SerialPortP2p_GetIoSecond(&env->cliVirtualPort);
vSerialPort_InitUSART2(&env->SerialPortLog);
SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog);

View File

@ -6,16 +6,17 @@
#define HVAC_M7_SERIALPORTS_H
#include "SerialPortFlagchip.h"
#include "SerialPortP2p.h"
#include "SerialPortVirt.h"
typedef struct {
tSerialPortFlagchip SerialPortLog;
tSerialPortIO SerialPortLog_IO;
tSerialPortVirt cliVirtualPortOut;
tSerialPortIO cliVirtualPortOut_Io;
tSerialPortP2p cliVirtualPort;
tSerialPortIO cliVirtualInIo;
tSerialPortIO cliVirtualOutIo;
tSerialPortVirt cliVirtualPortIn;
tSerialPortIO cliVirtualPortIn_Io;
} tSerialPorts;