am57xx修改uboot和kernel打印串口

该博客详细介绍了如何在TI的am57xx系列芯片上,基于uboot-2017将串口打印信息从uart3修改到uart2。首先修改配置文件Kconfig和am57xx_evm_defconfig,然后更新console的默认串口,并在mux_data.h中配置管脚。此外,还需通过环境变量设置告知内核使用uart2,并确保设备树中uart2节点已打开。整个过程包括代码修改、pinmux配置和环境变量设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TI的am57xx系列芯片,基于uboot-2017修改串口。先说说理论知识,上电时会自动运行固化到片内ROM的代码,固化代码读取uboot的MLO,MLO接着读取u-boot.img。到此时就进入了可以配置uboot环境变量的阶段了。接着往下走就是根据不同的引导方式读取内核和设备树,最后启动内核。
我们先在要把串口打印信息从uart3修改到uart2,支持从MLO阶段就打印信息。接下来就是操作步骤。
1.修改路径为board/ti/am57xx/Kconfig的文件。把default改成2。
在这里插入图片描述
2.在路径为configs/am57xx_evm_defconfig文件的最后,添加宏定义CONFIG_CONS_INDEX=2。
在这里插入图片描述
3.在路径为include/configs/am57xx_evm.h中,修改console的默认串口。
在这里插入图片描述
4.以上修改已经可以重定向打印信息到uart2了。但是uboot没有给相应的pinmux配置。会导致没有输出的情况。所以需要根据需求修改管脚配置。在board/ti/am57xx/mux_data.h中进行如下修改。
在这里插入图片描述
5.此时上电已经可以打印MLO阶段和uboot阶段的信息,也能进入到配置环境变量的环节。所以修改uboot环境变量中的console参数,告诉kernel从uart2输出打印信息。可以单独使用env default -a,然后saveenv保存环境变量。也可以直接使用setenv console ttyO1,115200n8命令单独设置,然后saveenv保存环境变量。以下是单独设置的方法截图。
在这里插入图片描述
6.此时已经告诉了内核要从uart2打印信息,但是遇到没有数据输出的情况。那就要查一下设备树是否有打开uart2的节点了。像我现在用的是这样的pinmux。
在这里插入图片描述
在这里插入图片描述
7.按照上述步骤,你就可以完成串口从uart3改到uart2了。
最后如果有什么错误的地方,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TekInsight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值