1.CH32-V307串口驱动适配DMA。
2.路径移动。
This commit is contained in:
@@ -138,7 +138,9 @@ extern "C" {
|
||||
.instance = USART1, .clock = RCC_APB2Periph_USART1, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_10, .tx_port = GPIOA, .tx_pin = GPIO_Pin_9, \
|
||||
.irq = USART1_IRQn, .remap = 0 \
|
||||
.irq = USART1_IRQn, .remap = 0, .rx_dma_channel = DMA1_Channel5, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA1, .rx_dma_irq = DMA1_Channel5_IRQn, \
|
||||
.rx_dma_irq_it = DMA1_IT_TC5 \
|
||||
}
|
||||
#elif (MR_CFG_UART1_GROUP == 2)
|
||||
#define _DRIVER_UART1_CONFIG \
|
||||
@@ -146,7 +148,9 @@ extern "C" {
|
||||
.instance = USART1, .clock = RCC_APB2Periph_USART1, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOB, .rx_port = GPIOB, \
|
||||
.rx_pin = GPIO_Pin_7, .tx_port = GPIOB, .tx_pin = GPIO_Pin_6, \
|
||||
.irq = USART1_IRQn, .remap = GPIO_Remap_USART1 \
|
||||
.irq = USART1_IRQn, .remap = GPIO_Remap_USART1, \
|
||||
.rx_dma_channel = DMA1_Channel5, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel5_IRQn, .rx_dma_irq_it = DMA1_IT_TC5 \
|
||||
}
|
||||
#elif (MR_CFG_UART1_GROUP == 3)
|
||||
#define _DRIVER_UART1_CONFIG \
|
||||
@@ -154,7 +158,9 @@ extern "C" {
|
||||
.instance = USART1, .clock = RCC_APB2Periph_USART1, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, \
|
||||
.rx_port = GPIOA, .rx_pin = GPIO_Pin_8, .tx_port = GPIOB, \
|
||||
.tx_pin = GPIO_Pin_15, .irq = USART1_IRQn, .remap = 0 \
|
||||
.tx_pin = GPIO_Pin_15, .irq = USART1_IRQn, .remap = 0, \
|
||||
.rx_dma_channel = DMA1_Channel5, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel5_IRQn, .rx_dma_irq_it = DMA1_IT_TC5 \
|
||||
}
|
||||
#elif (MR_CFG_UART1_GROUP == 4)
|
||||
#define _DRIVER_UART1_CONFIG \
|
||||
@@ -162,7 +168,9 @@ extern "C" {
|
||||
.instance = USART1, .clock = RCC_APB2Periph_USART1, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_7, .tx_port = GPIOA, .tx_pin = GPIO_Pin_6, \
|
||||
.irq = USART1_IRQn, .remap = GPIO_Remap_USART1 \
|
||||
.irq = USART1_IRQn, .remap = GPIO_Remap_USART1, \
|
||||
.rx_dma_channel = DMA1_Channel5, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel5_IRQn, .rx_dma_irq_it = DMA1_IT_TC5 \
|
||||
}
|
||||
#endif /* MR_CFG_UART1_GROUP */
|
||||
|
||||
@@ -172,7 +180,9 @@ extern "C" {
|
||||
.instance = USART2, .clock = RCC_APB1Periph_USART2, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_3, .tx_port = GPIOA, .tx_pin = GPIO_Pin_2, \
|
||||
.irq = USART2_IRQn, .remap = 0 \
|
||||
.irq = USART2_IRQn, .remap = 0, .rx_dma_channel = DMA1_Channel6, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA1, .rx_dma_irq = DMA1_Channel6_IRQn, \
|
||||
.rx_dma_irq_it = DMA1_IT_TC6 \
|
||||
}
|
||||
#elif (MR_CFG_UART2_GROUP == 2)
|
||||
#define _DRIVER_UART2_CONFIG \
|
||||
@@ -180,7 +190,9 @@ extern "C" {
|
||||
.instance = USART2, .clock = RCC_APB1Periph_USART2, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOD, .rx_port = GPIOD, \
|
||||
.rx_pin = GPIO_Pin_6, .tx_port = GPIOD, .tx_pin = GPIO_Pin_5, \
|
||||
.irq = USART2_IRQn, .remap = GPIO_Remap_USART2 \
|
||||
.irq = USART2_IRQn, .remap = GPIO_Remap_USART2, \
|
||||
.rx_dma_channel = DMA1_Channel6, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel6_IRQn, .rx_dma_irq_it = DMA1_IT_TC6 \
|
||||
}
|
||||
#endif /* MR_CFG_UART2_GROUP */
|
||||
|
||||
@@ -190,7 +202,9 @@ extern "C" {
|
||||
.instance = USART3, .clock = RCC_APB1Periph_USART3, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOB, .rx_port = GPIOB, \
|
||||
.rx_pin = GPIO_Pin_11, .tx_port = GPIOB, .tx_pin = GPIO_Pin_10, \
|
||||
.irq = USART3_IRQn, .remap = 0 \
|
||||
.irq = USART3_IRQn, .remap = 0, .rx_dma_channel = DMA1_Channel3, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA1, .rx_dma_irq = DMA1_Channel3_IRQn, \
|
||||
.rx_dma_irq_it = DMA1_IT_TC3 \
|
||||
}
|
||||
#elif (MR_CFG_UART3_GROUP == 2)
|
||||
#define _DRIVER_UART3_CONFIG \
|
||||
@@ -198,7 +212,9 @@ extern "C" {
|
||||
.instance = USART3, .clock = RCC_APB1Periph_USART3, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOC, .rx_port = GPIOC, \
|
||||
.rx_pin = GPIO_Pin_11, .tx_port = GPIOC, .tx_pin = GPIO_Pin_10, \
|
||||
.irq = USART3_IRQn, .remap = GPIO_PartialRemap_USART3 \
|
||||
.irq = USART3_IRQn, .remap = GPIO_PartialRemap_USART3, \
|
||||
.rx_dma_channel = DMA1_Channel3, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel3_IRQn, .rx_dma_irq_it = DMA1_IT_TC3 \
|
||||
}
|
||||
#elif (MR_CFG_UART3_GROUP == 3)
|
||||
#define _DRIVER_UART3_CONFIG \
|
||||
@@ -206,7 +222,9 @@ extern "C" {
|
||||
.instance = USART3, .clock = RCC_APB1Periph_USART3, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_14, .tx_port = GPIOA, .tx_pin = GPIO_Pin_13, \
|
||||
.irq = USART3_IRQn, .remap = GPIO_PartialRemap1_USART3 \
|
||||
.irq = USART3_IRQn, .remap = GPIO_PartialRemap1_USART3, \
|
||||
.rx_dma_channel = DMA1_Channel3, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel3_IRQn, .rx_dma_irq_it = DMA1_IT_TC3 \
|
||||
}
|
||||
#elif (MR_CFG_UART3_GROUP == 4)
|
||||
#define _DRIVER_UART3_CONFIG \
|
||||
@@ -214,7 +232,9 @@ extern "C" {
|
||||
.instance = USART3, .clock = RCC_APB1Periph_USART3, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOD, .rx_port = GPIOD, \
|
||||
.rx_pin = GPIO_Pin_9, .tx_port = GPIOD, .tx_pin = GPIO_Pin_8, \
|
||||
.irq = USART3_IRQn, .remap = GPIO_FullRemap_USART3 \
|
||||
.irq = USART3_IRQn, .remap = GPIO_FullRemap_USART3, \
|
||||
.rx_dma_channel = DMA1_Channel3, .rx_dma_clock = RCC_AHBPeriph_DMA1, \
|
||||
.rx_dma_irq = DMA1_Channel3_IRQn, .rx_dma_irq_it = DMA1_IT_TC3 \
|
||||
}
|
||||
#endif /* MR_CFG_UART3_GROUP */
|
||||
|
||||
@@ -224,7 +244,9 @@ extern "C" {
|
||||
.nstance = UART4, .clock = RCC_APB1Periph_UART4, \
|
||||
.pio_clock = RCC_APB2Periph_GPIOC, .rx_port = GPIOC, \
|
||||
.rx_pin = GPIO_Pin_11, .x_port = GPIOC, .tx_pin = GPIO_Pin_10, \
|
||||
.irq = UART4_IRQn, .remap = 0 \
|
||||
.irq = UART4_IRQn, .remap = 0, .rx_dma_channel = DMA2_Channel3, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA2, .rx_dma_irq = DMA2_Channel3_IRQn, \
|
||||
.rx_dma_irq_it = DMA2_IT_TC3 \
|
||||
}
|
||||
#elif (MR_CFG_UART4_GROUP == 2)
|
||||
#define _DRIVER_UART4_CONFIG \
|
||||
@@ -232,7 +254,9 @@ extern "C" {
|
||||
.instance = UART4, .clock = RCC_APB1Periph_UART4, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOB, .rx_port = GPIOB, \
|
||||
.rx_pin = GPIO_Pin_1, .tx_port = GPIOB, .tx_pin = GPIO_Pin_0, \
|
||||
.irq = UART4_IRQn, .remap = GPIO_PartialRemap_USART4 \
|
||||
.irq = UART4_IRQn, .remap = GPIO_PartialRemap_USART4, \
|
||||
.rx_dma_channel = DMA2_Channel3, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel3_IRQn, .rx_dma_irq_it = DMA2_IT_TC3 \
|
||||
}
|
||||
#elif (MR_CFG_UART4_GROUP == 3)
|
||||
#define _DRIVER_UART4_CONFIG \
|
||||
@@ -240,7 +264,9 @@ extern "C" {
|
||||
.instance = UART4, .clock = RCC_APB1Periph_UART4, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOE, .rx_port = GPIOE, \
|
||||
.rx_pin = GPIO_Pin_1, .tx_port = GPIOE, .tx_pin = GPIO_Pin_0, \
|
||||
.irq = UART4_IRQn, .remap = GPIO_FullRemap_USART4 \
|
||||
.irq = UART4_IRQn, .remap = GPIO_FullRemap_USART4, \
|
||||
.rx_dma_channel = DMA2_Channel3, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel3_IRQn, .rx_dma_irq_it = DMA2_IT_TC3 \
|
||||
}
|
||||
#endif /* MR_CFG_UART4_GROUP */
|
||||
|
||||
@@ -250,7 +276,9 @@ extern "C" {
|
||||
.instance = UART5, .clock = RCC_APB1Periph_UART5, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, \
|
||||
.rx_port = GPIOD, .rx_pin = GPIO_Pin_2, .tx_port = GPIOC, \
|
||||
.tx_pin = GPIO_Pin_12, .irq = UART5_IRQn, .remap = 0 \
|
||||
.tx_pin = GPIO_Pin_12, .irq = UART5_IRQn, .remap = 0, \
|
||||
.rx_dma_channel = DMA2_Channel2, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel2_IRQn, .rx_dma_irq_it = DMA2_IT_TC2 \
|
||||
}
|
||||
#elif (MR_CFG_UART5_GROUP == 2)
|
||||
#define _DRIVER_UART5_CONFIG \
|
||||
@@ -258,7 +286,9 @@ extern "C" {
|
||||
.instance = UART5, .clock = RCC_APB1Periph_UART5, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOB, .rx_port = GPIOB, \
|
||||
.rx_pin = GPIO_Pin_5, .tx_port = GPIOB, .tx_pin = GPIO_Pin_4, \
|
||||
.irq = UART5_IRQn, .remap = GPIO_PartialRemap_USART5 \
|
||||
.irq = UART5_IRQn, .remap = GPIO_PartialRemap_USART5, \
|
||||
.rx_dma_channel = DMA2_Channel2, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel2_IRQn, .rx_dma_irq_it = DMA2_IT_TC2 \
|
||||
}
|
||||
#elif (MR_CFG_UART5_GROUP == 3)
|
||||
#define _DRIVER_UART5_CONFIG \
|
||||
@@ -266,7 +296,9 @@ extern "C" {
|
||||
.instance = UART5, .clock = RCC_APB1Periph_UART5, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOE, .rx_port = GPIOE, \
|
||||
.rx_pin = GPIO_Pin_9, .tx_port = GPIOE, .tx_pin = GPIO_Pin_8, \
|
||||
.irq = UART5_IRQn, .remap = GPIO_FullRemap_USART5 \
|
||||
.irq = UART5_IRQn, .remap = GPIO_FullRemap_USART5, \
|
||||
.rx_dma_channel = DMA2_Channel2, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel2_IRQn, .rx_dma_irq_it = DMA2_IT_TC2 \
|
||||
}
|
||||
#endif /* MR_CFG_UART5_GROUP */
|
||||
|
||||
@@ -276,7 +308,9 @@ extern "C" {
|
||||
.instance = UART6, .clock = RCC_APB1Periph_UART6, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOC, .rx_port = GPIOC, \
|
||||
.rx_pin = GPIO_Pin_1, .tx_port = GPIOC, .tx_pin = GPIO_Pin_0, \
|
||||
.irq = UART6_IRQn, .remap = 0 \
|
||||
.irq = UART6_IRQn, .remap = 0, .rx_dma_channel = DMA2_Channel7, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA2, .rx_dma_irq = DMA2_Channel7_IRQn, \
|
||||
.rx_dma_irq_it = DMA2_IT_TC7 \
|
||||
}
|
||||
#elif (MR_CFG_UART6_GROUP == 2)
|
||||
#define _DRIVER_UART6_CONFIG \
|
||||
@@ -284,7 +318,9 @@ extern "C" {
|
||||
.instance = UART6, .clock = RCC_APB1Periph_UART6, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOB, .rx_port = GPIOB, \
|
||||
.rx_pin = GPIO_Pin_9, .tx_port = GPIOB, .tx_pin = GPIO_Pin_8, \
|
||||
.irq = UART6_IRQn, .remap = GPIO_PartialRemap_USART6 \
|
||||
.irq = UART6_IRQn, .remap = GPIO_PartialRemap_USART6, \
|
||||
.rx_dma_channel = DMA2_Channel7, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel7_IRQn, .rx_dma_irq_it = DMA2_IT_TC7 \
|
||||
}
|
||||
#elif (MR_CFG_UART6_GROUP == 3)
|
||||
#define _DRIVER_UART6_CONFIG \
|
||||
@@ -292,7 +328,9 @@ extern "C" {
|
||||
.instance = UART6, .clock = RCC_APB1Periph_UART6, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOE, .rx_port = GPIOE, \
|
||||
.rx_pin = GPIO_Pin_11, .tx_port = GPIOE, .tx_pin = GPIO_Pin_10, \
|
||||
.irq = UART6_IRQn, .remap = GPIO_FullRemap_USART6 \
|
||||
.irq = UART6_IRQn, .remap = GPIO_FullRemap_USART6, \
|
||||
.rx_dma_channel = DMA2_Channel7, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel7_IRQn, .rx_dma_irq_it = DMA2_IT_TC7 \
|
||||
}
|
||||
#endif /* MR_CFG_UART6_GROUP */
|
||||
|
||||
@@ -302,7 +340,9 @@ extern "C" {
|
||||
.instance = UART7, .clock = RCC_APB1Periph_UART7, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOC, .rx_port = GPIOC, \
|
||||
.rx_pin = GPIO_Pin_3, .tx_port = GPIOC, .tx_pin = GPIO_Pin_2, \
|
||||
.irq = UART7_IRQn, .remap = 0 \
|
||||
.irq = UART7_IRQn, .remap = 0, .rx_dma_channel = DMA2_Channel9, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA2, .rx_dma_irq = DMA2_Channel9_IRQn, \
|
||||
.rx_dma_irq_it = DMA2_IT_TC9 \
|
||||
}
|
||||
#elif (MR_CFG_UART7_GROUP == 2)
|
||||
#define _DRIVER_UART7_CONFIG \
|
||||
@@ -310,7 +350,9 @@ extern "C" {
|
||||
.instance = UART7, .clock = RCC_APB1Periph_UART7, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_7, .tx_port = GPIOA, .tx_pin = GPIO_Pin_6, \
|
||||
.irq = UART7_IRQn, .remap = GPIO_PartialRemap_USART7 \
|
||||
.irq = UART7_IRQn, .remap = GPIO_PartialRemap_USART7, \
|
||||
.rx_dma_channel = DMA2_Channel9, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel9_IRQn, .rx_dma_irq_it = DMA2_IT_TC9 \
|
||||
}
|
||||
#elif (MR_CFG_UART7_GROUP == 3)
|
||||
#define _DRIVER_UART7_CONFIG \
|
||||
@@ -318,7 +360,9 @@ extern "C" {
|
||||
.instance = UART7, .clock = RCC_APB1Periph_UART7, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOE, .rx_port = GPIOE, \
|
||||
.rx_pin = GPIO_Pin_13, .tx_port = GPIOE, .tx_pin = GPIO_Pin_12, \
|
||||
.irq = UART7_IRQn, .remap = GPIO_FullRemap_USART7 \
|
||||
.irq = UART7_IRQn, .remap = GPIO_FullRemap_USART7, \
|
||||
.rx_dma_channel = DMA2_Channel9, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel9_IRQn, .rx_dma_irq_it = DMA2_IT_TC9 \
|
||||
}
|
||||
#endif /* MR_CFG_UART7_GROUP */
|
||||
|
||||
@@ -328,7 +372,9 @@ extern "C" {
|
||||
.instance = UART8, .clock = RCC_APB1Periph_UART8, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOC, .rx_port = GPIOC, \
|
||||
.rx_pin = GPIO_Pin_5, .tx_port = GPIOC, .tx_pin = GPIO_Pin_4, \
|
||||
.irq = UART8_IRQn, .remap = 0 \
|
||||
.irq = UART8_IRQn, .remap = 0, .rx_dma_channel = DMA2_Channel11, \
|
||||
.rx_dma_clock = RCC_AHBPeriph_DMA2, .rx_dma_irq = DMA2_Channel11_IRQn, \
|
||||
.rx_dma_irq_it = DMA2_IT_TC11 \
|
||||
}
|
||||
#elif (MR_CFG_UART8_GROUP == 2)
|
||||
#define _DRIVER_UART8_CONFIG \
|
||||
@@ -336,7 +382,9 @@ extern "C" {
|
||||
.instance = UART8, .clock = RCC_APB1Periph_UART8, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOA, .rx_port = GPIOA, \
|
||||
.rx_pin = GPIO_Pin_15, .tx_port = GPIOA, .tx_pin = GPIO_Pin_14, \
|
||||
.irq = UART8_IRQn, .remap = GPIO_PartialRemap_USART8 \
|
||||
.irq = UART8_IRQn, .remap = GPIO_PartialRemap_USART8, \
|
||||
.rx_dma_channel = DMA2_Channel11, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel11_IRQn, .rx_dma_irq_it = DMA2_IT_TC11 \
|
||||
}
|
||||
#elif (MR_CFG_UART8_GROUP == 3)
|
||||
#define _DRIVER_UART8_CONFIG \
|
||||
@@ -344,7 +392,9 @@ extern "C" {
|
||||
.instance = UART8, .clock = RCC_APB1Periph_UART8, \
|
||||
.gpio_clock = RCC_APB2Periph_GPIOE, .rx_port = GPIOE, \
|
||||
.rx_pin = GPIO_Pin_15, .tx_port = GPIOE, .tx_pin = GPIO_Pin_14, \
|
||||
.irq = UART8_IRQn, .remap = GPIO_FullRemap_USART8 \
|
||||
.irq = UART8_IRQn, .remap = GPIO_FullRemap_USART8, \
|
||||
.rx_dma_channel = DMA2_Channel11, .rx_dma_clock = RCC_AHBPeriph_DMA2, \
|
||||
.rx_dma_irq = DMA2_Channel11_IRQn, .rx_dma_irq_it = DMA2_IT_TC11 \
|
||||
}
|
||||
#endif /* MR_CFG_UART8_GROUP */
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
menu "ADC driver configure"
|
||||
menu "Adc driver configure"
|
||||
# Use ADC
|
||||
if MR_USE_ADC
|
||||
# ADC1
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef _MR_ADC_DRIVER_H_
|
||||
#define _MR_ADC_DRIVER_H_
|
||||
|
||||
#include "../mr-library/device/include/mr_adc.h"
|
||||
#include "../mr-library/include/device/mr_adc.h"
|
||||
#include "../mr-library/driver/include/mr_board.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef _MR_PIN_DRIVER_H_
|
||||
#define _MR_PIN_DRIVER_H_
|
||||
|
||||
#include "../mr-library/device/include/mr_pin.h"
|
||||
#include "../mr-library/include/device/mr_pin.h"
|
||||
#include "../mr-library/driver/include/mr_board.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef _MR_SERIAL_DRIVER_H_
|
||||
#define _MR_SERIAL_DRIVER_H_
|
||||
|
||||
#include "../mr-library/device/include/mr_serial.h"
|
||||
#include "../mr-library/include/device/mr_serial.h"
|
||||
#include "../mr-library/driver/include/mr_board.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -30,6 +30,12 @@ struct mr_serial_driver
|
||||
uint32_t tx_pin;
|
||||
IRQn_Type irq;
|
||||
uint32_t remap;
|
||||
|
||||
DMA_Channel_TypeDef *rx_dma_channel;
|
||||
uint32_t rx_dma_clock;
|
||||
IRQn_Type rx_dma_irq;
|
||||
uint32_t rx_dma_irq_it;
|
||||
size_t rx_dma_count;
|
||||
};
|
||||
|
||||
#endif /* MR_USE_SERIAL */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
menu "UART driver configure"
|
||||
menu "Uart driver configure"
|
||||
# Use Serial
|
||||
if MR_USE_SERIAL
|
||||
# UART1
|
||||
@@ -13,6 +13,10 @@ menu "UART driver configure"
|
||||
int "Uart1 group"
|
||||
default 1
|
||||
range 1 4
|
||||
|
||||
config MR_USE_UART1_DMA
|
||||
bool "Use uart1 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART2
|
||||
@@ -27,6 +31,10 @@ menu "UART driver configure"
|
||||
int "Uart2 group"
|
||||
default 1
|
||||
range 1 2
|
||||
|
||||
config MR_USE_UART2_DMA
|
||||
bool "Use uart2 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART3
|
||||
@@ -41,6 +49,10 @@ menu "UART driver configure"
|
||||
int "Uart3 group"
|
||||
default 1
|
||||
range 1 4
|
||||
|
||||
config MR_USE_UART3_DMA
|
||||
bool "Use uart3 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART4
|
||||
@@ -55,6 +67,10 @@ menu "UART driver configure"
|
||||
int "Uart4 group"
|
||||
default 1
|
||||
range 1 3
|
||||
|
||||
config MR_USE_UART4_DMA
|
||||
bool "Use uart4 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART5
|
||||
@@ -69,6 +85,10 @@ menu "UART driver configure"
|
||||
int "Uart5 group"
|
||||
default 1
|
||||
range 1 3
|
||||
|
||||
config MR_USE_UART5_DMA
|
||||
bool "Use uart5 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART6
|
||||
@@ -83,6 +103,10 @@ menu "UART driver configure"
|
||||
int "Uart6 group"
|
||||
default 1
|
||||
range 1 3
|
||||
|
||||
config MR_USE_UART6_DMA
|
||||
bool "Use uart6 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART7
|
||||
@@ -97,6 +121,10 @@ menu "UART driver configure"
|
||||
int "Uart7 group"
|
||||
default 1
|
||||
range 1 3
|
||||
|
||||
config MR_USE_UART7_DMA
|
||||
bool "Use uart7 dma"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
# UART8
|
||||
@@ -111,6 +139,10 @@ menu "UART driver configure"
|
||||
int "Uart8 group"
|
||||
default 1
|
||||
range 1 3
|
||||
|
||||
config MR_USE_UART8_DMA
|
||||
bool "Use uart8 dma"
|
||||
default n
|
||||
endmenu
|
||||
endif
|
||||
|
||||
|
||||
@@ -244,7 +244,7 @@ static int serial_driver_configure(struct mr_driver *driver, bool enable,
|
||||
USART_Init(serial->instance, &USART_InitStructure);
|
||||
USART_Cmd(serial->instance, enable);
|
||||
USART_ClearFlag(serial->instance, USART_FLAG_RXNE);
|
||||
USART_ClearFlag(serial->instance, USART_FLAG_TC);
|
||||
USART_ClearFlag(serial->instance, USART_FLAG_TXE);
|
||||
|
||||
/* Configure NVIC */
|
||||
NVIC_InitStructure.NVIC_IRQChannel = serial->irq;
|
||||
@@ -285,8 +285,7 @@ static int serial_driver_send(struct mr_driver *driver, uint8_t data)
|
||||
size_t i = 0;
|
||||
|
||||
/* Write data to register */
|
||||
USART_SendData(serial->instance, data);
|
||||
while (USART_GetFlagStatus(serial->instance, USART_FLAG_TC) == RESET)
|
||||
while (USART_GetFlagStatus(serial->instance, USART_FLAG_TXE) == RESET)
|
||||
{
|
||||
i++;
|
||||
if (i > UINT16_MAX)
|
||||
@@ -294,6 +293,7 @@ static int serial_driver_send(struct mr_driver *driver, uint8_t data)
|
||||
return MR_ETIMEOUT;
|
||||
}
|
||||
}
|
||||
USART_SendData(serial->instance, data);
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
@@ -308,6 +308,58 @@ static int serial_driver_send_int_configure(struct mr_driver *driver,
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
static int serial_driver_receive_dma(struct mr_driver *driver, bool enable,
|
||||
void *buf, size_t count)
|
||||
{
|
||||
struct mr_serial_driver *serial = (struct mr_serial_driver *)driver;
|
||||
DMA_InitTypeDef DMA_InitStructure = {0};
|
||||
NVIC_InitTypeDef NVIC_InitStructure = {0};
|
||||
|
||||
/* Configure clock */
|
||||
RCC_AHBPeriphClockCmd(serial->rx_dma_clock, ENABLE);
|
||||
|
||||
/* Configure NVIC */
|
||||
NVIC_InitStructure.NVIC_IRQChannel = serial->rx_dma_irq;
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = enable;
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
USART_ClearITPendingBit(serial->instance, USART_IT_RXNE);
|
||||
USART_ITConfig(serial->instance, USART_IT_RXNE, !enable);
|
||||
USART_ITConfig(serial->instance, USART_IT_IDLE, enable);
|
||||
DMA_ClearITPendingBit(serial->rx_dma_irq_it);
|
||||
DMA_ITConfig(serial->rx_dma_channel, DMA_IT_TC, enable);
|
||||
|
||||
if (enable == true)
|
||||
{
|
||||
USART_DMACmd(serial->instance, USART_DMAReq_Rx, ENABLE);
|
||||
DMA_Cmd(serial->rx_dma_channel, DISABLE);
|
||||
serial->rx_dma_count = count;
|
||||
|
||||
DMA_InitStructure.DMA_PeripheralBaseAddr =
|
||||
(uint32_t)(&serial->instance->DATAR);
|
||||
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)buf;
|
||||
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
|
||||
DMA_InitStructure.DMA_BufferSize = count;
|
||||
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
|
||||
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
|
||||
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
|
||||
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
|
||||
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
|
||||
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
|
||||
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
|
||||
DMA_Init(serial->rx_dma_channel, &DMA_InitStructure);
|
||||
|
||||
DMA_Cmd(serial->rx_dma_channel, ENABLE);
|
||||
USART_DMACmd(serial->instance, USART_DMAReq_Rx, ENABLE);
|
||||
} else
|
||||
{
|
||||
USART_DMACmd(serial->instance, USART_DMAReq_Rx, ENABLE);
|
||||
DMA_Cmd(serial->rx_dma_channel, DISABLE);
|
||||
}
|
||||
return MR_EOK;
|
||||
}
|
||||
|
||||
MR_INLINE void serial_device_isr(struct mr_serial *serial)
|
||||
{
|
||||
struct mr_device *device = (struct mr_device *)serial;
|
||||
@@ -319,12 +371,30 @@ MR_INLINE void serial_device_isr(struct mr_serial *serial)
|
||||
mr_device_isr(device, MR_EVENT_SERIAL_RD_COMPLETE_INT, NULL);
|
||||
USART_ClearITPendingBit(_serial->instance, USART_IT_RXNE);
|
||||
}
|
||||
|
||||
if (USART_GetITStatus(_serial->instance, USART_IT_TXE) != RESET)
|
||||
{
|
||||
mr_device_isr(device, MR_EVENT_SERIAL_WR_COMPLETE_INT, NULL);
|
||||
USART_ClearITPendingBit(_serial->instance, USART_IT_TXE);
|
||||
}
|
||||
if (USART_GetITStatus(_serial->instance, USART_IT_IDLE) != RESET)
|
||||
{
|
||||
size_t count = _serial->rx_dma_count -
|
||||
DMA_GetCurrDataCounter(_serial->rx_dma_channel);
|
||||
|
||||
mr_device_isr(device, MR_EVENT_SERIAL_RD_COMPLETE_DMA, &count);
|
||||
|
||||
/* Clear IDLE */
|
||||
_serial->instance->STATR;
|
||||
_serial->instance->DATAR;
|
||||
}
|
||||
if (DMA_GetITStatus(_serial->rx_dma_irq_it) != RESET)
|
||||
{
|
||||
size_t count = _serial->rx_dma_count -
|
||||
DMA_GetCurrDataCounter(_serial->rx_dma_channel);
|
||||
|
||||
mr_device_isr(device, MR_EVENT_SERIAL_RD_COMPLETE_DMA, &count);
|
||||
DMA_ClearITPendingBit(_serial->rx_dma_irq_it);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MR_USE_UART1
|
||||
@@ -333,6 +403,14 @@ void USART1_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART1_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART1_DMA
|
||||
void DMA1_Channel5_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA1_Channel5_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART1_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART1_DMA */
|
||||
#endif /* MR_USE_UART1 */
|
||||
|
||||
#ifdef MR_USE_UART2
|
||||
@@ -341,6 +419,14 @@ void USART2_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART2_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART2_DMA
|
||||
void DMA1_Channel6_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA1_Channel6_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART2_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART2_DMA */
|
||||
#endif /* MR_USE_UART2 */
|
||||
|
||||
#ifdef MR_USE_UART3
|
||||
@@ -349,6 +435,14 @@ void USART3_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART3_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART3_DMA
|
||||
void DMA1_Channel3_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA1_Channel3_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART3_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART3_DMA */
|
||||
#endif /* MR_USE_UART3 */
|
||||
|
||||
#ifdef MR_USE_UART4
|
||||
@@ -357,6 +451,14 @@ void UART4_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART4_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART4_DMA
|
||||
void DMA2_Channel3_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA2_Channel3_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART4_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART4_DMA */
|
||||
#endif /* MR_USE_UART4 */
|
||||
|
||||
#ifdef MR_USE_UART5
|
||||
@@ -365,6 +467,14 @@ void UART5_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART5_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART5_DMA
|
||||
void DMA2_Channel2_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA2_Channel2_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART5_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART5_DMA */
|
||||
#endif /* MR_USE_UART5 */
|
||||
|
||||
#ifdef MR_USE_UART6
|
||||
@@ -373,6 +483,14 @@ void UART6_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART6_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART6_DMA
|
||||
void DMA2_Channel7_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA2_Channel7_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART6_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART6_DMA */
|
||||
#endif /* MR_USE_UART6 */
|
||||
|
||||
#ifdef MR_USE_UART7
|
||||
@@ -381,6 +499,14 @@ void UART7_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART7_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART7_DMA
|
||||
void DMA2_Channel9_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA2_Channel9_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART7_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART7_DMA */
|
||||
#endif /* MR_USE_UART7 */
|
||||
|
||||
#ifdef MR_USE_UART8
|
||||
@@ -389,6 +515,14 @@ void UART8_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART8_INDEX]);
|
||||
}
|
||||
#ifdef MR_USE_UART8_DMA
|
||||
void DMA2_Channel11_IRQHandler(void)
|
||||
__attribute__((interrupt("WCH-Interrupt-fast")));
|
||||
void DMA2_Channel11_IRQHandler(void)
|
||||
{
|
||||
serial_device_isr(&_serial_device[_DRIVER_UART8_INDEX]);
|
||||
}
|
||||
#endif /* MR_USE_UART8_DMA */
|
||||
#endif /* MR_USE_UART8 */
|
||||
|
||||
static void serial_driver_init(void)
|
||||
@@ -397,7 +531,8 @@ static void serial_driver_init(void)
|
||||
.configure = serial_driver_configure,
|
||||
.receive = serial_driver_receive,
|
||||
.send = serial_driver_send,
|
||||
.send_int_configure = serial_driver_send_int_configure};
|
||||
.send_int_configure = serial_driver_send_int_configure,
|
||||
.receive_dma = serial_driver_receive_dma};
|
||||
|
||||
for (size_t i = 0; i < MR_ARRAY_NUM(_serial_device); i++)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
menu "ADC configure"
|
||||
menu "Adc configure"
|
||||
config MR_USE_ADC
|
||||
bool "Use adc"
|
||||
default y
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @date 2023-11-06 MacRsh First version
|
||||
*/
|
||||
|
||||
#include "../mr-library/device/include/mr_adc.h"
|
||||
#include "../mr-library/include/device/mr_adc.h"
|
||||
|
||||
#ifdef MR_USE_ADC
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
menu "PIN configure"
|
||||
menu "Pin configure"
|
||||
config MR_USE_PIN
|
||||
bool "Use pin"
|
||||
default y
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @date 2023-11-08 MacRsh First version
|
||||
*/
|
||||
|
||||
#include "../mr-library/device/include/mr_pin.h"
|
||||
#include "../mr-library/include/device/mr_pin.h"
|
||||
|
||||
#ifdef MR_USE_PIN
|
||||
|
||||
|
||||
@@ -8,44 +8,44 @@ menu "Serial configure"
|
||||
# RD-FIFO
|
||||
config MR_CFG_SERIAL_RD_FIFO_SIZE
|
||||
depends on MR_USE_SERIAL
|
||||
int "Serial read FIFO size"
|
||||
int "Serial read fifo size"
|
||||
range 0 2147483647
|
||||
default 64
|
||||
default 128
|
||||
help
|
||||
"This option sets the size of the read FIFO."
|
||||
"This option sets the size of the read fifo."
|
||||
|
||||
# WR-FIFO
|
||||
config MR_CFG_SERIAL_WR_FIFO_SIZE
|
||||
depends on MR_USE_SERIAL
|
||||
int "Serial write FIFO size"
|
||||
int "Serial write fifo size"
|
||||
range 0 2147483647
|
||||
default 0
|
||||
help
|
||||
"This option sets the size of the write FIFO."
|
||||
"This option sets the size of the write fifo."
|
||||
|
||||
# DMA
|
||||
config MR_USE_SERIAL_DMA
|
||||
depends on MR_USE_SERIAL
|
||||
bool "Use serial DMA"
|
||||
bool "Use serial dma"
|
||||
default n
|
||||
help
|
||||
"Use this option allows for the use of serial DMA."
|
||||
"Use this option allows for the use of serial dma."
|
||||
|
||||
# DMA RD-FIFO
|
||||
config MR_CFG_SERIAL_RD_DMA_FIFO_SIZE
|
||||
depends on MR_USE_SERIAL_DMA
|
||||
int "Serial read DMA FIFO size"
|
||||
int "Serial read dma fifo size"
|
||||
range 0 2147483647
|
||||
default 128
|
||||
help
|
||||
"This option sets the size of the read DMA FIFO."
|
||||
"This option sets the size of the read dma fifo."
|
||||
|
||||
# DMA WR-FIFO
|
||||
config MR_CFG_SERIAL_WR_DMA_FIFO_SIZE
|
||||
depends on MR_USE_SERIAL_DMA
|
||||
int "Serial write DMA FIFO size"
|
||||
int "Serial write dma fifo size"
|
||||
range 0 2147483647
|
||||
default 128
|
||||
help
|
||||
"This option sets the size of the write DMA FIFO."
|
||||
"This option sets the size of the write dma fifo."
|
||||
endmenu
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
* @date 2024-05-08 MacRsh Added support for DMA
|
||||
*/
|
||||
|
||||
#include "../mr-library/device/include/mr_serial.h"
|
||||
#include "../mr-library/include/device/mr_serial.h"
|
||||
|
||||
#ifdef MR_USE_SERIAL
|
||||
|
||||
#define _SERIAL_STATE_SEND_INT (0x01)
|
||||
#define _SERIAL_STATE_RECEIVE_DMA (0x02 << 8)
|
||||
#define _SERIAL_STATE_RECEIVE_DMA_TOP (0x04 << 8)
|
||||
#define _SERIAL_STATE_RECEIVE_DMA_BOT (0x08 << 8)
|
||||
#define _SERIAL_STATE_SEND_INT (0x01) /**< Send interrupt */
|
||||
#define _SERIAL_STATE_RECEIVE_DMA (0x02 << 8) /**< Receive DMA */
|
||||
#define _SERIAL_STATE_RECEIVE_DMA_TOP (0x04 << 8) /**< Receive DMA top */
|
||||
#define _SERIAL_STATE_RECEIVE_DMA_BOT (0x08 << 8) /**< Receive DMA bot */
|
||||
|
||||
MR_INLINE ssize_t _serial_read_poll(struct mr_serial *serial, uint8_t *buf,
|
||||
size_t count)
|
||||
@@ -546,10 +546,10 @@ int mr_serial_register(struct mr_serial *serial, const char *path,
|
||||
mr_fifo_init(&serial->rfifo, NULL, 0);
|
||||
mr_fifo_init(&serial->wfifo, NULL, 0);
|
||||
#ifndef MR_CFG_SERIAL_RD_FIFO_SIZE
|
||||
#define MR_CFG_SERIAL_RD_FIFO_SIZE (64)
|
||||
#define MR_CFG_SERIAL_RD_FIFO_SIZE (128)
|
||||
#endif /* MR_CFG_SERIAL_RD_FIFO_SIZE */
|
||||
#ifndef MR_CFG_SERIAL_WR_FIFO_SIZE
|
||||
#define MR_CFG_SERIAL_WR_FIFO_SIZE (0)
|
||||
#define MR_CFG_SERIAL_WR_FIFO_SIZE (0)
|
||||
#endif /* MR_CFG_SERIAL_WR_FIFO_SIZE */
|
||||
serial->rfifo_size = MR_CFG_SERIAL_RD_FIFO_SIZE;
|
||||
serial->wfifo_size = MR_CFG_SERIAL_WR_FIFO_SIZE;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* @date 2023-11-01 MacRsh First version
|
||||
*/
|
||||
|
||||
#include "../mr-library/device/include/mr_spi.h"
|
||||
#include "../mr-library/include/device/mr_spi.h"
|
||||
|
||||
#ifdef MR_USE_SPI
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ void mr_fifo_reset(struct mr_fifo *fifo);
|
||||
int mr_fifo_allocate(struct mr_fifo *fifo, size_t size);
|
||||
void mr_fifo_free(struct mr_fifo *fifo);
|
||||
size_t mr_fifo_used_get(const struct mr_fifo *fifo);
|
||||
size_t mr_fifo_space_get(const struct mr_fifo *fifo);
|
||||
size_t mr_fifo_free_get(const struct mr_fifo *fifo);
|
||||
size_t mr_fifo_size_get(const struct mr_fifo *fifo);
|
||||
size_t mr_fifo_peek(const struct mr_fifo *fifo, void *_buf, size_t count);
|
||||
size_t mr_fifo_discard(struct mr_fifo *fifo, size_t count);
|
||||
|
||||
Reference in New Issue
Block a user