By Toradex秦海
1). 简介
在基于嵌入式ARM开发产品的时候,有时候由于ARM处理器UART数量的限制,我们需要将系统默认的调试串口打印信息关闭或者转移到其他串口上面去,本文即演示更改uboot和linux kernel 调试串口的过程示例。
本文所演示的平台来自于ToradexApalis iMX6ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持双核/四核Cortex-A9。
2. 准备
a).Apalis iMX6 ARM核心版配合Ixora载板,分别连接默认调试串口UART1和准备要转移的调试串口UART3到开发主机方便调试,Apalis iMX6 UART序号说明请参考这里。
b).Apalis iMX6系统使用官方预编译Linux BSP V2.7版本,如何下载更新请参考这里。
c). 如果只是想关闭默认串口的打印信息,可以参考这里的说明,本文就不赘述。
3). Uboot源代码更改编译
a). 为了将uboot console从UART1 转换至 UART3,需要修改uboot源代码。
b). 根据这里的说明配置好编译所需要的toolchain,并下载对应uboot源代码到ubuntu开发主机。
c). 因为针对Apalis iMX6 uboot的源代码V2.7和V2.8版本都是基于2016.11-toradex 分支,因此这里为了将源代码锁定为V2.7版本需要通过下面命令指定tag并创建新的操作分支。
-------------------------------
$ cdu-boot-toradex
$ git checkout Colibri-iMX6_LXDE-Image_2.7b4-20171005
$ git checkout –b imx6_v2.7 Colibri-iMX6_LXDE-Image_2.7b4-20171005
-------------------------------
d). 修改源代码,具体请参考下面两个patch文件
./ apalis_imx6.h –https://github.com/simonqin09/Apalis_iMX6_Console_Switch/blob/master/apalis_imx6.h.patch
./ apalis_imx6.c –https://github.com/simonqin09/Apalis_iMX6_Console_Switch/blob/master/apalis_imx6.c.patch
//apalis_imx6.h 头文件中修改 Console 环境变量的默认值是为了后续配合linux kernel console的修改,其他修改都是为了uboot console的修改。
e). 重新编译源代码
-------------------------------
$ make apalis_imx6_defconfig
$ make -j3 2>&1 | tee build.log
-------------------------------
f). 将新编译生成的uboot相关文件SPL和u-boot.img替换之前更新Linux BSP image所制作的SD卡里面的相关文件。
-------------------------------
$ cd /media/username/… (SD卡挂载路径)
$ cd apalis_imx6
$ mv SPL SPL.bak
$ mv u-boot.imx-spl u-boot.imx-spl.bak
$ cp…/u-boot-toradex/SPL .
$ cp …/u-boot-toradex/u-boot.img u-boot.imx-spl
-------------------------------
4). 更新uboot以及修改Linux文件系统
a). 在通过SD卡更新新的uboot之前,先进入Apalis iMX6 Linux 文件系统进行如下配置修改。
-------------------------------
$ cd /etc/systemd/system/getty.target.wants
$ cp serial-getty@ttymxc0.service serial-getty@ttymxc3.service
$ systemctl disable serial-getty@ttymxc0.service
$ reboot
-------------------------------
b). 重启后通过默认调试串口UART1进入uboot,连接SD卡到Apalis iMX6,执行下面命令进行uboot更新
-------------------------------
# runsetupdate
# runupdate_uboot
-------------------------------
c). 更新完成后,再次重启,此时uboot console已经切换到新的UART3串口上面了,再次进入uboot,执行下面命令载入默认的环境变量。
-------------------------------
# env default –a
# saveenv
-------------------------------
d). 此时重启后,uboot console和linux kernel console就都全部切换到新的UART3串口上面了,完成了本次示例。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
LabVIEW 程序调试之谜
深度解读 | 索尼与TCL的战略合作布局
芯原增强版ISP8200-FS系列IP获ASIL B功能安全认证
单片机控制红外线防盗报警器
C6474多核处理器在医疗应用领域
香港科技大学与英特尔共建联合实验室,聚焦高能效智能计算
网格技术的发展与研究
“一亮即响”的警报器
Diodes推出2.5Gbps MIPI D-PHY ReDriver™信号调节器
求助~急!!!
2025年第三季度,海底光电子市场增长32.5%,PTC’26彰显向网状网络架构转型趋势
网络处理器IP2022及其在嵌入式牌照识别系统中的应用
LabVIEW 快速编程之谜
文物防盗报警器
AMD推出第二代Kintex UltraScale+中端FPGA,助力智能高性能系统
LabVIEW 运行性能之谜
网络端口扫描及对策研究
我想用芯片上的PD0-PD7作为数据口扩展一块黑白LCD
网络特性虚拟分析仪
无线遥控式农用大牲畜防盗器
求助~~
LabVIEW 事件结构之谜
闪光讯响电路
COB邦定技术~申请友情链接
【IEEE好文分享】7项正在悄悄让世界变得更好的技术
2025年,全球平板出货量增长10%,市场增速接近放缓
现在买什么样ARM开发板性价比最高?请提供些意见啊!
网络计算机中IC卡读写器子系统设计
英飞凌发布2026财年第一季度运营成果: 2026财年顺利开局
iQOO 15 Ultra搭载第五代骁龙8至尊版打造性能Ultra