1.问题背景
XR809/XR871/XR808/XR872/XR806 上如何把log口uart0更换为uart1或uart2。
2.问题描述
我司SDK发布时镜像log默认由uart0输出,有些客户的产品需要把log从非uart0口输出(例如从uart1或uart2输出)。
3.解决办法
3.1 修改board_config.c文件,配置对应uart口的ping脚
例如:(下面的代码只做事例讲解,实际代码不同平台可能会不一样,请根据原理图和数据手册进行修改):
(1).添加对应uart的脚
static const GPIO_PinMuxParam g_pinmux_uart2[] = {
{ GPIO_PORT_B, GPIO_PIN_14, { GPIOB_P14_F3_UART2_TX, GPIO_DRIVING_LEVEL_1, GPIO_PULL_UP } }, /* TX */
{ GPIO_PORT_B, GPIO_PIN_15, { GPIOB_P15_F3_UART2_RX, GPIO_DRIVING_LEVEL_1, GPIO_PULL_UP } }, /* RX */
(2).确保board_config.c中board_get_pinmux_info函数已有对应的uart口的初始化代码(有些版本可能没有uart2的初始化代码,需要自行添加)
case HAL_DEV_MAJOR_UART:
if (minor == UART0_ID) {
info[0].pinmux = g_pinmux_uart0;
info[0].count = HAL_ARRAY_SIZE(g_pinmux_uart0);
} else if (minor == UART1_ID) {
info[0].pinmux = g_pinmux_uart1;
info[0].count = HAL_ARRAY_SIZE(g_pinmux_uart1);
} else if (minor == UART2_ID) {
info[0].pinmux = g_pinmux_uart2;
info[0].count = HAL_ARRAY_SIZE(g_pinmux_uart2);
} else {
ret = HAL_INVALID;
}
break;
3.2 修改board_config.h文件配置log从那个uart输出
例如:把log从uart0修改为从uart2输出
- #define BOARD_MAIN_UART_ID UART0_ID --改为--> #define BOARD_MAIN_UART_ID UART2_ID
注意点:
不同芯片不同方案会有不同的board_config.c和board_config.h文件,确保修改的文件是你所需要的方案
> 原贴链接:
https://bbs.aw-ol.com/topic/719/
> 全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
> 资源获取、问题讨论可以到全志在线开发者社区进行:
https://www.aw-ol.com
> 全志及开发者最新动态可以关注
全志在线微信公众号