Обновление
This commit is contained in:
parent
983966f58c
commit
6623f9d676
|
|
@ -36,7 +36,8 @@ typedef struct {
|
|||
DMA_ChannelCfgType chnCfg;
|
||||
DMA_InterruptCfgType interruptCfg;
|
||||
|
||||
uint8_t dataBufTransmit[512];
|
||||
uint8_t *dataBufTransmit;
|
||||
uint32_t dataBufTransmitLen;
|
||||
|
||||
osMessageQueueId_t txAccessQueue;
|
||||
osMessageQueueId_t rxDataQueue;
|
||||
|
|
@ -55,6 +56,9 @@ void vSerialPortInitDMA(
|
|||
IRQn_Type IRQ_UART, // FCUART0_IRQn ... FCUART7_IRQn
|
||||
uint8 UART_PRIORITY,
|
||||
|
||||
uint8_t *dataBufTransmit,
|
||||
uint32_t dataBufTransmitLen,
|
||||
|
||||
DMA_ChannelType RX_DMA_CHANNEL,
|
||||
DMA_RequestSourceType RX_DMA_CHANNEL_REQ,
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ void vSerialPortInitDMA(
|
|||
IRQn_Type IRQ_UART, // FCUART0_IRQn ... FCUART7_IRQn
|
||||
uint8 UART_PRIORITY,
|
||||
|
||||
uint8_t *dataBufTransmit,
|
||||
uint32_t dataBufTransmitLen,
|
||||
|
||||
DMA_ChannelType RX_DMA_CHANNEL,
|
||||
DMA_RequestSourceType RX_DMA_CHANNEL_REQ,
|
||||
|
||||
|
|
@ -59,6 +62,9 @@ void vSerialPortInitDMA(
|
|||
|
||||
env->UART_DMA_RECEIVED_LEN_BUF = 0;
|
||||
|
||||
env->dataBufTransmit = dataBufTransmit;
|
||||
env->dataBufTransmitLen = dataBufTransmitLen;
|
||||
|
||||
env->txAccessQueue = osMessageQueueNew(1, 1, NULL);
|
||||
env->rxDataQueue = osMessageQueueNew(rxBufferLength, 1, NULL);
|
||||
|
||||
|
|
@ -69,7 +75,6 @@ void vSerialPortInitDMA(
|
|||
}
|
||||
|
||||
|
||||
|
||||
FCUART_InitMemory(UART_INDEX);
|
||||
|
||||
env->dmaInitCfg.eArbitrationAlgorithm = DMA_ARBITRATION_ALGORITHM_FIXED_PRIORITY;
|
||||
|
|
@ -231,7 +236,7 @@ vSerialPortTransmitOverCore(tSerialPortFlagchip *env, uint8_t *data, uint16_t si
|
|||
|
||||
FCUART_ErrorType tRetVal;
|
||||
|
||||
memcpy(env->dataBufTransmit, data, size);
|
||||
// memcpy(env->dataBufTransmit, data, size);
|
||||
tRetVal = FCUART_AssignTxInterruptData(env->UART_INDEX, env->dataBufTransmit, size);
|
||||
|
||||
tRetVal = FCUART_StartTransmit(env->UART_INDEX);
|
||||
|
|
@ -252,9 +257,9 @@ void SerialPort_TxEndTransmitted(tSerialPortFlagchip *env, uint8_t data) {
|
|||
void SerialPort_RxDmaBufToQueue(tSerialPortFlagchip *env, const void *pSrcBuffer) {
|
||||
|
||||
for (uint32_t i = 0; i < env->UART_DMA_RECEIVED_LEN_BUF; ++i) {
|
||||
osMessageQueuePut(env->rxDataQueue, &((uint8 *)pSrcBuffer)[i], 0x0, 0U);
|
||||
osMessageQueuePut(env->rxDataQueue, &((uint8 *) pSrcBuffer)[i], 0x0, 0U);
|
||||
if (env->rxDataSnifferQueue) {
|
||||
osMessageQueuePut(env->rxDataSnifferQueue, &((uint8 *)pSrcBuffer)[i], 0x0, 0U);
|
||||
osMessageQueuePut(env->rxDataSnifferQueue, &((uint8 *) pSrcBuffer)[i], 0x0, 0U);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue