diff --git a/lib/pbio/drv/uart/uart_ev3.c b/lib/pbio/drv/uart/uart_ev3.c index adedc316c..e0dedf002 100644 --- a/lib/pbio/drv/uart/uart_ev3.c +++ b/lib/pbio/drv/uart/uart_ev3.c @@ -58,15 +58,15 @@ struct _pbdrv_uart_dev_t { /** The buffer passed to the read function. */ uint8_t *read_buf; /** The length of read_buf in bytes. */ - uint8_t read_length; + uint32_t read_length; /** The current position in read_buf. */ - uint8_t read_pos; + uint32_t read_pos; /** The buffer passed to the write function. */ const uint8_t *write_buf; /** The length of write_buf in bytes. */ - uint8_t write_length; + uint32_t write_length; /** The current position in write_buf. */ - volatile uint8_t write_pos; + volatile uint32_t write_pos; }; static pbdrv_uart_dev_t uart_devs[PBDRV_CONFIG_UART_EV3_NUM_UART]; @@ -89,7 +89,7 @@ int32_t pbdrv_uart_get_char(pbdrv_uart_dev_t *uart) { return ringbuf_get(&uart->rx_buf); } -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); @@ -131,7 +131,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uin PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -static pbio_error_t pbdrv_uart_write_pru(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +static pbio_error_t pbdrv_uart_write_pru(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { const pbdrv_uart_ev3_platform_data_t *pdata = uart->pdata; @@ -178,7 +178,7 @@ static pbio_error_t pbdrv_uart_write_pru(pbio_os_state_t *state, pbdrv_uart_dev_ PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -pbio_error_t pbdrv_uart_write_hw(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write_hw(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { const pbdrv_uart_ev3_platform_data_t *pdata = uart->pdata; @@ -240,7 +240,7 @@ pbio_error_t pbdrv_uart_write_hw(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { const pbdrv_uart_ev3_platform_data_t *pdata = uart->pdata; if (pdata->uart_kind == EV3_UART_HW) { diff --git a/lib/pbio/drv/uart/uart_stm32f0.c b/lib/pbio/drv/uart/uart_stm32f0.c index 12b9f5d80..2e8adcf7e 100644 --- a/lib/pbio/drv/uart/uart_stm32f0.c +++ b/lib/pbio/drv/uart/uart_stm32f0.c @@ -33,11 +33,11 @@ struct _pbdrv_uart_dev_t { volatile uint8_t rx_ring_buf_head; uint8_t rx_ring_buf_tail; uint8_t *rx_buf; - uint8_t rx_buf_size; - uint8_t rx_buf_index; + uint32_t rx_buf_size; + uint32_t rx_buf_index; const uint8_t *tx_buf; - uint8_t tx_buf_size; - uint8_t tx_buf_index; + uint32_t tx_buf_size; + uint32_t tx_buf_index; pbio_os_timer_t rx_timer; pbio_os_timer_t tx_timer; uint8_t irq; @@ -59,7 +59,7 @@ pbio_error_t pbdrv_uart_get_instance(uint8_t id, pbdrv_uart_dev_t **uart_dev) { return PBIO_SUCCESS; } -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); @@ -102,7 +102,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uin PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); diff --git a/lib/pbio/drv/uart/uart_stm32f4_ll_irq.c b/lib/pbio/drv/uart/uart_stm32f4_ll_irq.c index f52720817..ba50addf4 100644 --- a/lib/pbio/drv/uart/uart_stm32f4_ll_irq.c +++ b/lib/pbio/drv/uart/uart_stm32f4_ll_irq.c @@ -39,15 +39,15 @@ struct _pbdrv_uart_dev_t { /** The buffer of the ongoing async read function. */ uint8_t *read_buf; /** The length of read_buf in bytes. */ - uint8_t read_length; + uint32_t read_length; /** The current position in read_buf. */ - uint8_t read_pos; + uint32_t read_pos; /** The buffer of the ongoing write function. */ const uint8_t *write_buf; /** The length of write_buf in bytes. */ - uint8_t write_length; + uint32_t write_length; /** The current position in write_buf. */ - volatile uint8_t write_pos; + volatile uint32_t write_pos; }; static pbdrv_uart_dev_t uart_devs[PBDRV_CONFIG_UART_STM32F4_LL_IRQ_NUM_UART]; @@ -66,7 +66,7 @@ pbio_error_t pbdrv_uart_get_instance(uint8_t id, pbdrv_uart_dev_t **uart_dev) { return PBIO_SUCCESS; } -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); @@ -108,7 +108,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uin PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); diff --git a/lib/pbio/drv/uart/uart_stm32l4_ll_dma.c b/lib/pbio/drv/uart/uart_stm32l4_ll_dma.c index d9fbf4050..b1f569a93 100644 --- a/lib/pbio/drv/uart/uart_stm32l4_ll_dma.c +++ b/lib/pbio/drv/uart/uart_stm32l4_ll_dma.c @@ -34,9 +34,9 @@ struct _pbdrv_uart_dev_t { pbio_os_timer_t rx_timer; pbio_os_timer_t tx_timer; volatile uint8_t *rx_data; - uint8_t rx_tail; + uint32_t rx_tail; uint8_t *read_buf; - uint8_t read_length; + uint32_t read_length; }; static pbdrv_uart_dev_t uart_devs[PBDRV_CONFIG_UART_STM32L4_LL_DMA_NUM_UART]; @@ -55,8 +55,8 @@ pbio_error_t pbdrv_uart_get_instance(uint8_t id, pbdrv_uart_dev_t **uart_dev) { return PBIO_SUCCESS; } -static void volatile_copy(volatile uint8_t *src, uint8_t *dst, uint8_t size) { - for (int i = 0; i < size; i++) { +static void volatile_copy(volatile uint8_t *src, uint8_t *dst, uint32_t size) { + for (uint32_t i = 0; i < size; i++) { dst[i] = src[i]; } } @@ -187,7 +187,7 @@ static uint32_t pbdrv_uart_get_num_available(pbdrv_uart_dev_t *uart) { return (rx_head - uart->rx_tail) & (RX_DATA_SIZE - 1); } -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); @@ -227,7 +227,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, uin PBIO_OS_ASYNC_END(PBIO_SUCCESS); } -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout) { const pbdrv_uart_stm32l4_ll_dma_platform_data_t *pdata = uart->pdata; diff --git a/lib/pbio/include/pbdrv/uart.h b/lib/pbio/include/pbdrv/uart.h index 581bed46a..42e349893 100644 --- a/lib/pbio/include/pbdrv/uart.h +++ b/lib/pbio/include/pbdrv/uart.h @@ -45,7 +45,7 @@ int32_t pbdrv_uart_get_char(pbdrv_uart_dev_t *uart_dev); * @param [in] timeout The timeout in milliseconds or 0 for no timeout. * @return The error code. */ -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout); +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout); /** * Asynchronously write to the UART. @@ -58,7 +58,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, * * @return The error code. */ -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint8_t length, uint32_t timeout); +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart, const uint8_t *msg, uint32_t length, uint32_t timeout); #else // PBDRV_CONFIG_UART @@ -70,13 +70,13 @@ static inline void pbdrv_uart_set_baud_rate(pbdrv_uart_dev_t *uart_dev, uint32_t } static inline void pbdrv_uart_stop(pbdrv_uart_dev_t *uart_dev) { } -static inline pbio_error_t pbdrv_uart_read_begin(pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout) { +static inline pbio_error_t pbdrv_uart_read_begin(pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout) { return PBIO_ERROR_NOT_SUPPORTED; } static inline pbio_error_t pbdrv_uart_read_end(pbdrv_uart_dev_t *uart_dev) { return PBIO_ERROR_NOT_SUPPORTED; } -static inline pbio_error_t pbdrv_uart_write_begin(pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout) { +static inline pbio_error_t pbdrv_uart_write_begin(pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout) { return PBIO_ERROR_NOT_SUPPORTED; } static inline pbio_error_t pbdrv_uart_write_end(pbdrv_uart_dev_t *uart_dev) { @@ -97,11 +97,11 @@ static inline int32_t pbdrv_uart_get_char(pbdrv_uart_dev_t *uart_dev) { return -1; } -static inline pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout) { +static inline pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout) { return PBIO_ERROR_NOT_SUPPORTED; } -static inline pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout) { +static inline pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout) { return PBIO_ERROR_NOT_SUPPORTED; } diff --git a/lib/pbio/src/port_lump.c b/lib/pbio/src/port_lump.c index cba71058e..077828928 100644 --- a/lib/pbio/src/port_lump.c +++ b/lib/pbio/src/port_lump.c @@ -169,9 +169,9 @@ struct _pbio_port_lump_dev_t { /** New baud rate that will be set with ev3_uart_change_bitrate. */ uint32_t new_baud_rate; /** Size of the current message being transmitted. */ - uint8_t tx_msg_size; + uint32_t tx_msg_size; /** Size of the current message being received. */ - uint8_t rx_msg_size; + uint32_t rx_msg_size; /** Total number of errors that have occurred. */ uint32_t err_count; /** Flag that indicates that good DATA lump_dev->msg has been received since last watchdog timeout. */ diff --git a/lib/pbio/test/src/test_lump.c b/lib/pbio/test/src/test_lump.c index 2b98873e5..71d688689 100644 --- a/lib/pbio/test/src/test_lump.c +++ b/lib/pbio/test/src/test_lump.c @@ -1110,7 +1110,7 @@ void pbdrv_uart_init(void) { void pbdrv_uart_stop(pbdrv_uart_dev_t *uart_dev) { } -pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state); @@ -1134,7 +1134,7 @@ pbio_error_t pbdrv_uart_read(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, PBIO_OS_ASYNC_END(uart_dev->rx_msg_result); } -pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, const uint8_t *msg, uint8_t length, uint32_t timeout) { +pbio_error_t pbdrv_uart_write(pbio_os_state_t *state, pbdrv_uart_dev_t *uart_dev, const uint8_t *msg, uint32_t length, uint32_t timeout) { PBIO_OS_ASYNC_BEGIN(state);