UART2
开发板使用uart2作为debug口调试,相关引脚PD12,PD13
一 串口log输出配置
串口默认配置是uart2,波特率3000000,可以修改输出口和波特率
以x2600e_vast_v10_nand_5.10_factory_defconfig编译配置为例
kenny@kenny-computer:~/source/source_darwin_linux_x2000/build$ grep -nr "uboot_" //查看uboot配置configs/x2600e_vast_v10_nand_5.10_factory_defconfig
3:APP_uboot_toolchain_dir=../tools/toolchains/mips-gcc720-glibc229
4:APP_uboot_dir=../bootloader/uboot-x2000
5:APP_uboot_config=x2600e_vast_xImage_sfc_nand //uboot配置文件
在bootloader/uboot-x2000目录下的boards.cfg文件搜索uboot配置
kenny@kenny-computer:~/source/source_darwin_linux_x2000/build$ grep -nr "x2600e_vast_xImage_sfc_nand" ../bootloader/uboot-x2000/boards.cfg
757:x2600e_vast_xImage_sfc_nand mips xburst2 x2600_base ingenic x2600 x2600_base:SPL_SFC_NAND,MTD_SFCNAND,SPL_OS_BOOT,SPL_PARAMS_FIXER,SYS_UART_INDEX=2,X2600E_DDR,RMEM_MB=16,SPI_NAND_BPP_4K
可以看到使用的配置是x2600_base,在x2600_base:后面可以设置打印uart口,格式为SYS_UART_INDEX=x,不添加默认使用x2600_base的
x2600_base.h位于bootloader/uboot-x2000/include/configs
#ifndef __X2600_BASE_H__
#define __X2600_BASE_H__
#define CONFIG_ROOTFS_SQUASHFS
#define CONFIG_ROOTFS2_SQUASHFS
#define CONFIG_ARG_QUIET //去掉这个可以打开所有系统打印信息
#define CONFIG_SPL_SERIAL_SUPPORT
#include "x2600_base_common.h" //实际配置
#endif /* __X2600_BASE_H__ */
实际配置在同一目录下,可以对uart口及波特率进行修改,这里uart口的设置优先级小于前面x2600_base:后面设置的
打开文件 bootloader/uboot-x2000/include/configs/x2600_base_common.h,如下所示:
/*
* uart setting
*/
#ifndef CONFIG_SYS_UART_INDEX
#define CONFIG_SYS_UART_INDEX 2 //uart口
#endif
#ifndef CONFIG_BAUDRATE
#define CONFIG_BAUDRATE 3000000 //波特率
#endif
二 uboot串口打印相关
打开文件:bootloader/uboot-x2000/drivers/gpio/jz_gpio/x2600_gpio.c
static struct jz_gpio_func_def uart_gpio_func[] = {
[0] = { .port = GPIO_PORT_E, .func = GPIO_FUNC_1, .pins = 0xf << 9},
[1] = { .port = GPIO_PORT_B, .func = GPIO_FUNC_1, .pins = 0xf << 0},
[2] = {.port = GPIO_PORT_D, .func = GPIO_FUNC_0, .pins = 0x3 << 12}, //uart2
};
三 kernel串口打印相关
kenny@kenny-computer:~/source/source_darwin_linux_x2000/build$ cat configs/x2600e_vast_v10_nand_5.10_factory_defconfig | grep "kernel" //先查看kernel的配置
APP_kernel_dir=../kernel/kernel
APP_kernel_config=x2600_module_base_linux_sfc_nand_defconfig //kernel配置文件
配置文件位于kernel/kernel/arch/mips/configs目录下
kenny@kenny-computer:~/source/source_darwin_linux_x2000/kernel/kernel/arch/mips/configs$ grep -nr ".dts" ./x2600_module_base_linux_sfc_nand_defconfig
242:CONFIG_DT_X2600_MODULE_BASE_DTS_FILE="x2600_module_base.dts" //关于uart配置
x2600_module_base.dts 位于kernel/kernel/module_drivers/dts/目录下,可以对需要用到的串口进行添加修改
&uart2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart2_pd>;
};
需注意uartX口的配置需要与引脚对应上,kernel根据需求可以添加uartX,格式参照uart2