Обновление

This commit is contained in:
cfif 2026-01-16 11:40:13 +03:00
parent 00456e39e7
commit 555caee4c4
2 changed files with 10 additions and 48 deletions

View File

@ -8,57 +8,20 @@ tSerialPorts SERIAL_PORTS;
uint8_t buf_USART2_TRANSMITTED[256]; uint8_t buf_USART2_TRANSMITTED[256];
ALIGN(256) uint8_t buf_USART2_DMA[6]; ALIGN(256) uint8_t buf_USART2_DMA[128];
//static void DMA_USART2_ErrorCallbackTx() {
// while (1) {
// __asm("nop");
// }
//}
static void DMA_USART2_TransferCompleteCallbackTx() { static void DMA_USART2_TransferCompleteCallbackTx() {
// DMA_StopChannel(DMA_INSTANCE_0, DMA_CHANNEL_6);
SerialPort_TxEndTransmitted(SERIAL_PORTS.SerialPortLog_IO.env, 1); SerialPort_TxEndTransmitted(SERIAL_PORTS.SerialPortLog_IO.env, 1);
asm("nop"); asm("nop");
} }
//static void DMA_USART2_ErrorCallbackRx() {
// while (1) {
// __asm("nop");
// }
//}
static void DMA_USART2_TransferCompleteCallbackRx() { static void DMA_USART2_TransferCompleteCallbackRx() {
++SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF; SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, true,buf_USART2_DMA);
// 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;
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF = 0;
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)));
} }
static void FCUART_IldeInterrupt_CallBack(uint8_t u8UartIndex) { static void FCUART_IldeInterrupt_CallBack(uint8_t u8UartIndex) {
SerialPort_RxDmaBufToQueue(SERIAL_PORTS.SerialPortLog_IO.env, false,buf_USART2_DMA);
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;
SERIAL_PORTS.SerialPortLog.UART_DMA_RECEIVED_LEN_BUF = 0;
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)));
PROCESS_UNUSED_VAR(u8UartIndex) PROCESS_UNUSED_VAR(u8UartIndex)
} }
@ -115,7 +78,7 @@ static void vSerialPort_InitUSART2(tSerialPortFlagchip *env) {
env, env,
FCUART2, FCUART2,
2000000,//115200, 921600,//115200,
2, // UART0 = 0 ... UART7 = 7 2, // UART0 = 0 ... UART7 = 7
FCUART2_IRQn, // FCUART0_IRQn ... FCUART7_IRQn FCUART2_IRQn, // FCUART0_IRQn ... FCUART7_IRQn
@ -142,7 +105,7 @@ static void vSerialPort_InitUSART2(tSerialPortFlagchip *env) {
1024, 1024,
0, 1024,
DMA_USART2_TransferCompleteCallbackRx, DMA_USART2_TransferCompleteCallbackRx,
NULL, NULL,
@ -162,7 +125,6 @@ static void vSerialPort_InitUSART2(tSerialPortFlagchip *env) {
} }
///конец------------------------------------------Модем-----------------------------------------------------------------
void SerialPorts_Init() { void SerialPorts_Init() {
@ -173,8 +135,8 @@ void SerialPorts_Init() {
SerialPortVirt_Init(&env->cliVirtualPortOut, 4096); SerialPortVirt_Init(&env->cliVirtualPortOut, 4096);
env->cliVirtualPortOut_Io = SerialPortVirt_GetIo(&env->cliVirtualPortOut); env->cliVirtualPortOut_Io = SerialPortVirt_GetIo(&env->cliVirtualPortOut);
SerialPortVirt_Init(&env->cliVirtualPortIn, 128); // SerialPortVirt_Init(&env->cliVirtualPortIn, 128);
env->cliVirtualPortIn_Io = SerialPortVirt_GetIo(&env->cliVirtualPortIn); // env->cliVirtualPortIn_Io = SerialPortVirt_GetIo(&env->cliVirtualPortIn);
// SerialPortP2p_Init(&env->cliVirtualPort, 4 * 1024, 1024); // SerialPortP2p_Init(&env->cliVirtualPort, 4 * 1024, 1024);
// env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort); // env->cliVirtualInIo = SerialPortP2p_GetIoFirst(&env->cliVirtualPort);
@ -182,6 +144,7 @@ void SerialPorts_Init() {
vSerialPort_InitUSART2(&env->SerialPortLog); vSerialPort_InitUSART2(&env->SerialPortLog);
SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog); SERIAL_PORTS.SerialPortLog_IO = vSerialPortGetIo(&env->SerialPortLog);
SERIAL_PORTS.SerialPortLog_Sniffer_IO = vSerialPortGetSnifferIo(&env->SerialPortLog);
} }

View File

@ -11,13 +11,12 @@
typedef struct { typedef struct {
tSerialPortFlagchip SerialPortLog; tSerialPortFlagchip SerialPortLog;
tSerialPortIO SerialPortLog_IO; tSerialPortIO SerialPortLog_IO;
tSerialPortIO SerialPortLog_Sniffer_IO;
tSerialPortVirt cliVirtualPortOut; tSerialPortVirt cliVirtualPortOut;
tSerialPortIO cliVirtualPortOut_Io; tSerialPortIO cliVirtualPortOut_Io;
tSerialPortVirt cliVirtualPortIn;
tSerialPortIO cliVirtualPortIn_Io;
} tSerialPorts; } tSerialPorts;
extern tSerialPorts SERIAL_PORTS; extern tSerialPorts SERIAL_PORTS;