使用型号是正点原子的:imx6ull--ddr512-emmc
在其提供的uboot和内核源码上修改。
1、修改设备树
为什么要修改设备树呢?是因为正点原子官方提供的设备树中没有打开串口5对应的硬件描述,需要自己手动添加。
/home/ggber/Linux_build/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek/arch/arm/boot/dts
以上是内核源码的路径,在该路径下找到设备树文件,根据自己开发板来选择文件
打开该设备文件,在第600行的样子添加以下代码,用于描述串口5的引脚
pinctrl_uart5: uart5grp {
fsl,pins = <
MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1
MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1
>;
};
由于该设备树其他地方也引用了该串口引脚,因此需要屏蔽掉,可以找到该文件的481行,可以看见用在了i2c2上面了。
pinctrl_i2c2: i2c2grp {
fsl,pins = <
// MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0 //use for uart5
// MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
>;
};
系统是默认串口5关闭的,因此需要在设备树中开启串口5,找到该文件886行,添加如下代码:
&uart5 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart5>;
status = "okay";
};
2、修改串口5的一处BUG
/home/ggber/Linux_build/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek/arch/arm/boot/dts
同样在上面的内核源码路径下,对pinfunc.h文件修改
3、启动系统
将编译好的uboot,内核,设备树,根文件烧录到开发板上(这一步参考正点原子),在进入内核前(有3s时间),进入uboot命令界面
输入 printenv console 观察当前的串口的是 console=ttymxc0
输入 setenv console ttymxc4 设置串口为uart5
输入 saveenv 保存环境设置
再次输入 printenv console 可以看见串口已经改变
最后重启系统就可以了!!!!!
注:这里改变的串口是改变内核的调试串口为串口5,uboot打印信息的串口还是串口1