Lines Matching refs:uart_id
60 static void hal_set_uart_iomux(uint32_t uart_id) in hal_set_uart_iomux() argument
62 if (uart_id == HAL_UART_ID_0) { in hal_set_uart_iomux()
64 } else if (uart_id == HAL_UART_ID_1) { in hal_set_uart_iomux()
71 static void hal_uart_rx_start(uint32_t uart_id) in hal_uart_rx_start() argument
84 …hal_uart_dma_recv_mask(uart_id, uart_ctx[uart_id].uart_buffer, UART_DMA_RING_BUFFER_SIZE, &dma_des… in hal_uart_rx_start()
88 static int32_t _get_uart_ringbuf_freesize(uint32_t uart_id) in _get_uart_ringbuf_freesize() argument
93 if (uart_ctx[uart_id].init_flag == 0) { in _get_uart_ringbuf_freesize()
98 if (uart_ctx[uart_id].rxbuf_in == uart_ctx[uart_id].rxbuf_out) { in _get_uart_ringbuf_freesize()
99 size = uart_ctx[uart_id].rxring_size; in _get_uart_ringbuf_freesize()
100 } else if (uart_ctx[uart_id].rxbuf_in > uart_ctx[uart_id].rxbuf_out) { in _get_uart_ringbuf_freesize()
101 … size = uart_ctx[uart_id].rxring_size - uart_ctx[uart_id].rxbuf_in + uart_ctx[uart_id].rxbuf_out; in _get_uart_ringbuf_freesize()
103 size = uart_ctx[uart_id].rxbuf_out - uart_ctx[uart_id].rxbuf_in; in _get_uart_ringbuf_freesize()
109 static int32_t _get_uart_ringbuf_available_read_size(uint32_t uart_id) in _get_uart_ringbuf_available_read_size() argument
114 if (uart_ctx[uart_id].init_flag == 0) { in _get_uart_ringbuf_available_read_size()
117 size = uart_ctx[uart_id].rxring_size - _get_uart_ringbuf_freesize(uart_id); in _get_uart_ringbuf_available_read_size()
123 static int32_t _uart_ringbuffer_push(uint32_t uart_id, uint8_t *buf, int32_t len) in _uart_ringbuffer_push() argument
129 if (uart_id > HAL_UART_ID_2 || uart_ctx[uart_id].init_flag == 0) { in _uart_ringbuffer_push()
133 free_size = _get_uart_ringbuf_freesize(uart_id); in _uart_ringbuffer_push()
143 spilt_len = uart_ctx[uart_id].rxring_size - uart_ctx[uart_id].rxbuf_in; in _uart_ringbuffer_push()
145 memcpy(uart_ctx[uart_id].rx_ringbuf + uart_ctx[uart_id].rxbuf_in, buf, write_size); in _uart_ringbuffer_push()
147 memcpy(uart_ctx[uart_id].rx_ringbuf + uart_ctx[uart_id].rxbuf_in, buf, spilt_len); in _uart_ringbuffer_push()
148 memcpy(uart_ctx[uart_id].rx_ringbuf, buf + spilt_len, write_size - spilt_len); in _uart_ringbuffer_push()
150 …uart_ctx[uart_id].rxbuf_in = (uart_ctx[uart_id].rxbuf_in + write_size) % uart_ctx[uart_id].rxring_… in _uart_ringbuffer_push()
157 static int32_t _uart_ringbuffer_pop(uint32_t uart_id, uint8_t *buf, int32_t len) in _uart_ringbuffer_pop() argument
163 if (uart_id > HAL_UART_ID_2 || uart_ctx[uart_id].init_flag == 0) { in _uart_ringbuffer_pop()
167 available_size = _get_uart_ringbuf_available_read_size(uart_id); in _uart_ringbuffer_pop()
176 spilt_len = uart_ctx[uart_id].rxring_size - uart_ctx[uart_id].rxbuf_out; in _uart_ringbuffer_pop()
178 memcpy(buf, uart_ctx[uart_id].rx_ringbuf + uart_ctx[uart_id].rxbuf_out, read_size); in _uart_ringbuffer_pop()
180 memcpy(buf, uart_ctx[uart_id].rx_ringbuf + uart_ctx[uart_id].rxbuf_out, spilt_len); in _uart_ringbuffer_pop()
181 memcpy(buf + spilt_len, uart_ctx[uart_id].rx_ringbuf, read_size - spilt_len); in _uart_ringbuffer_pop()
184 …uart_ctx[uart_id].rxbuf_out = (uart_ctx[uart_id].rxbuf_out + read_size) % uart_ctx[uart_id].rxring… in _uart_ringbuffer_pop()
274 enum HAL_UART_ID_T uart_id = hal_trace_get_id(); in hal_panic_uart_open() local
276 hal_uart_close(uart_id); in hal_panic_uart_open()
278 hal_uart_open(uart_id, &low_uart_cfg); in hal_panic_uart_open()
297 enum HAL_UART_ID_T uart_id; in hal_uart_init() local
304 uart_id = uart->port; in hal_uart_init()
306 if (uart_ctx[uart_id].init_flag) { in hal_uart_init()
311 if (uart_id == 0) { in hal_uart_init()
312 uart_ctx[uart_id].uart_dma_rx_handler = _uart_dma_rx_handler; in hal_uart_init()
313 uart_ctx[uart_id].uart_buffer = _hal_uart_buf; in hal_uart_init()
315 if (uart_id == HAL_UART_ID_1) { in hal_uart_init()
316 uart_ctx[uart_id].uart_dma_rx_handler = _uart1_dma_rx_handler; in hal_uart_init()
317 uart_ctx[uart_id].uart_dma_tx_handler = _uart1_dma_tx_handler; in hal_uart_init()
318 uart_ctx[uart_id].uart_buffer = _hal_uart1_buf; in hal_uart_init()
320 if (uart_id == HAL_UART_ID_2) { in hal_uart_init()
321 uart_ctx[uart_id].uart_dma_rx_handler = _uart2_dma_rx_handler; in hal_uart_init()
322 uart_ctx[uart_id].uart_dma_tx_handler = _uart2_dma_tx_handler; in hal_uart_init()
323 uart_ctx[uart_id].uart_buffer = _hal_uart2_buf; in hal_uart_init()
325 memset(uart_ctx[uart_id].uart_buffer, 0, UART_DMA_RING_BUFFER_SIZE); in hal_uart_init()
339 if (uart_id == trace_port) { in hal_uart_init()
340 hal_uart_close(uart_id); in hal_uart_init()
341 ret = hal_uart_open(uart_id, &uart_cfg); in hal_uart_init()
343 ret = hal_uart_open(uart_id, &uart_cfg); in hal_uart_init()
346 …("%s %d trace port %d uart %d open fail ret %d\r\n", __FILE__, __LINE__, trace_port, uart_id, ret); in hal_uart_init()
349 hal_set_uart_iomux(uart_id); in hal_uart_init()
352 uart_ctx[uart_id].rx_ringbuf = aos_malloc(UART_FIFO_MAX_BUFFER); in hal_uart_init()
353 if (NULL == uart_ctx[uart_id].rx_ringbuf) { in hal_uart_init()
354 printf("%s %d uart %d fail to malloc rx fifo buffer\r\n", __FILE__, __LINE__, uart_id); in hal_uart_init()
357 uart_ctx[uart_id].rxring_size = UART_FIFO_MAX_BUFFER; in hal_uart_init()
358 uart_ctx[uart_id].rxbuf_in = 0; in hal_uart_init()
359 uart_ctx[uart_id].rxbuf_out = 0; in hal_uart_init()
360 memset(uart_ctx[uart_id].rx_ringbuf, 0, UART_FIFO_MAX_BUFFER); in hal_uart_init()
362 ret = krhino_sem_create(&uart_ctx[uart_id].rx_sem, "aos", 0); in hal_uart_init()
364 aos_free(uart_ctx[uart_id].rx_ringbuf); in hal_uart_init()
368 ret = krhino_sem_create(&uart_ctx[uart_id].tx_sem, "aos", 0); in hal_uart_init()
370 aos_free(uart_ctx[uart_id].rx_ringbuf); in hal_uart_init()
371 krhino_sem_del(&uart_ctx[uart_id].rx_sem); in hal_uart_init()
375 ret = krhino_sem_create(&uart_ctx[uart_id].rx_irq_bottom_sem, "aos", 0); in hal_uart_init()
377 aos_free(uart_ctx[uart_id].rx_ringbuf); in hal_uart_init()
378 krhino_sem_del(&uart_ctx[uart_id].tx_sem); in hal_uart_init()
379 krhino_sem_del(&uart_ctx[uart_id].rx_sem); in hal_uart_init()
383 krhino_mutex_create(&uart_ctx[uart_id].rx_cb_mutex, "uart_rx_cb"); in hal_uart_init()
384 uart_ctx[uart_id].rx_cb = NULL; in hal_uart_init()
385 uart_ctx[uart_id].rx_cb_arg = NULL; in hal_uart_init()
386 ret = krhino_task_dyn_create(&uart_ctx[uart_id].rx_irq_bottom_task, in hal_uart_init()
387 "uart_rx_irq_bottom", &uart_ctx[uart_id], in hal_uart_init()
390 aos_free(uart_ctx[uart_id].rx_ringbuf); in hal_uart_init()
391 krhino_sem_del(&uart_ctx[uart_id].tx_sem); in hal_uart_init()
392 krhino_sem_del(&uart_ctx[uart_id].rx_sem); in hal_uart_init()
393 krhino_sem_del(&uart_ctx[uart_id].rx_irq_bottom_sem); in hal_uart_init()
394 krhino_mutex_del(&uart_ctx[uart_id].rx_cb_mutex); in hal_uart_init()
398 uart_ctx[uart_id].init_flag = 1; in hal_uart_init()
400 hal_uart_irq_set_dma_handler(uart_id, uart_ctx[uart_id].uart_dma_rx_handler, in hal_uart_init()
401 uart_ctx[uart_id].uart_dma_tx_handler, NULL); in hal_uart_init()
403 hal_uart_rx_start(uart_id); in hal_uart_init()
429 uint8_t uart_id; in hal_uart_send() local
436 uart_id = uart->port; in hal_uart_send()
438 if (uart_id > HAL_UART_ID_2) { in hal_uart_send()
443 if (uart_ctx[uart_id].init_flag == 0) { in hal_uart_send()
444 printf("%s %d uart %d haven't init yet \r\n", __FILE__, __LINE__, uart_id); in hal_uart_send()
448 if (uart_id == hal_trace_get_id()) { in hal_uart_send()
451 hal_uart_blocked_putc(uart_id, *((char *)data + i)); in hal_uart_send()
456 hal_uart_dma_send_sync_cache(uart_id, data, size, NULL, NULL); in hal_uart_send()
457 krhino_sem_take(&uart_ctx[uart_id].tx_sem, krhino_ms_to_ticks(timeout)); in hal_uart_send()
505 uint8_t uart_id = 0; in hal_uart_recv_II() local
517 uart_id = uart->port; in hal_uart_recv_II()
519 if (uart_id > HAL_UART_ID_2) { in hal_uart_recv_II()
524 if (uart_ctx[uart_id].init_flag == 0) { in hal_uart_recv_II()
525 printf("%s %d uart %d haven't init yet \r\n", __FILE__, __LINE__, uart_id); in hal_uart_recv_II()
532 fifo_pop_len = _uart_ringbuffer_pop(uart_id, (uint8_t *)data + recved_len, expect_len); in hal_uart_recv_II()
541 krhino_sem_take(&uart_ctx[uart_id].rx_sem, krhino_ms_to_ticks(timeout)); in hal_uart_recv_II()
609 uint8_t uart_id; in hal_uart_finalize() local
616 uart_id = uart->port; in hal_uart_finalize()
618 if (uart_id > HAL_UART_ID_2) { in hal_uart_finalize()
623 if (uart_ctx[uart_id].init_flag == 0) { in hal_uart_finalize()
627 if (uart_id == hal_trace_get_id()) { in hal_uart_finalize()
634 aos_free(uart_ctx[uart_id].rx_ringbuf); in hal_uart_finalize()
635 krhino_sem_del(&uart_ctx[uart_id].rx_sem); in hal_uart_finalize()
636 krhino_sem_del(&uart_ctx[uart_id].tx_sem); in hal_uart_finalize()
637 krhino_task_dyn_del(uart_ctx[uart_id].rx_irq_bottom_task); in hal_uart_finalize()
638 uart_ctx[uart_id].rx_irq_bottom_task = NULL; in hal_uart_finalize()
639 krhino_sem_del(&uart_ctx[uart_id].rx_irq_bottom_sem); in hal_uart_finalize()
640 krhino_mutex_del(&uart_ctx[uart_id].rx_cb_mutex); in hal_uart_finalize()
641 uart_ctx[uart_id].rx_cb = NULL; in hal_uart_finalize()
642 uart_ctx[uart_id].rx_cb_arg = NULL; in hal_uart_finalize()
643 memset(&uart_ctx[uart_id], 0, sizeof(uart_ctx_obj_t)); in hal_uart_finalize()