Обновление

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() { static void DMA_USART2_TransferCompleteCallback() {
++SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF; ++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], (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_LEN_BUF, 0);
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF += SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF; 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) { 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], (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_LEN_BUF, 0);
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF += SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF; 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) if (SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF >= SERIAL_PORTS.SerialPortLog.DMA_BUF_LEN)
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_POINTER_BUF = 0; 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) PROCESS_UNUSED_VAR(u8UartIndex)
} }
@ -143,9 +147,16 @@ void SerialPorts_Init() {
tSerialPorts *env = &SERIAL_PORTS; tSerialPorts *env = &SERIAL_PORTS;
//// Виртуальный сериал порт //// Виртуальный сериал порт
SerialPortP2p_Init(&env->cliVirtualPort, 4 * 1024, 1024);
env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort); SerialPortVirt_Init(&env->cliVirtualPortOut, 1024);
env->cliVirtualOutIo = SerialPortP2p_GetIoSecond(&env->cliVirtualPort); 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); vSerialPort_InitUSART2(&env->SerialPortLog);
SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog); SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog);

View File

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