| /* |
| * Copyright (c) 2020 Intel Corporation. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/kernel.h> |
| #include <zephyr/drivers/uart.h> |
| #include <zephyr/sys/__assert.h> |
| |
| static const struct device *uart_dev; |
| |
| int z_gdb_backend_init(void) |
| { |
| int ret = 0; |
| static const struct uart_config uart_cfg = { |
| .baudrate = 115200, |
| .parity = UART_CFG_PARITY_NONE, |
| .stop_bits = UART_CFG_STOP_BITS_1, |
| .data_bits = UART_CFG_DATA_BITS_8, |
| .flow_ctrl = UART_CFG_FLOW_CTRL_NONE |
| }; |
| |
| if (uart_dev == NULL) { |
| uart_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_gdbstub_uart)); |
| |
| __ASSERT(device_is_ready(uart_dev), "uart device is not ready"); |
| |
| ret = uart_configure(uart_dev, &uart_cfg); |
| __ASSERT(ret == 0, "Could not configure uart device"); |
| } |
| |
| return ret; |
| } |
| |
| void z_gdb_putchar(unsigned char ch) |
| { |
| uart_poll_out(uart_dev, ch); |
| } |
| |
| unsigned char z_gdb_getchar(void) |
| { |
| unsigned char ch; |
| |
| while (uart_poll_in(uart_dev, &ch) < 0) { |
| } |
| |
| return ch; |
| } |