在幽兰代码本的右侧,有一个SD插口,它的普通用途是插SD/TF卡,用作读卡器。考虑到SD卡不是常用功能,和调试需要,它又被赋予了扩展功能。

具体来说,SD卡槽具有如下两类功能:

  • 当普通的SD卡口使用(当把SD卡插到卡槽里后,系统会当SD卡处理)
  • 当成串口和 JTAG 接口使用(为调试服务)

值得注意的是,上述两个用途是互斥的,不能同时既当成 SD卡口又当成串口和JTAG接口。那么一个显而易见的问题是,在哪儿配置呢?新装的系统默认值又是什么呢?

简单说,有如下两种配置方式:

1. UEFI 界面
2. 葫芦娃程序

UEFI 界面如下(要进入 UEFI 界面,需在开机时连续按 esc 按钮):

在 UEFI 中的修改会持久化,即每次开机都会保留之前的设置。

葫芦娃修改界面如下:

点击红圈中的按钮,会在JTAG和 SDC 之间切换,分别表示SD卡槽当时作为JTAG接口或SD卡口使用。

这里有两点要注意。

第一:在幽兰的双剑版本(双剑1和双剑2)里,SD卡槽的默认功能是 SD卡,可在 UEFI 和葫芦娃中修改。但是葫芦娃中的修改不会被持久化,即不会更改 UEFI中的设置,关机重启后,又恢复成了以前UEFI中的设置。

第二:葫芦娃3.0及之前的版本中,只能在SD卡和 JTAG 接口两者之间切换,不能切换到串口模式。要切换到串口模式,只能在 UEFI中修改。在葫芦娃3.1中,增加了串口模式。双剑版本中自带的葫芦娃版本是3.0,3.1必须自行下载更新。葫芦娃3.1的下载步骤如下:

  1. 下载更新包https://gedu.oss-cn-beijing.aliyuncs.com/Products/GdkSoftware/update_v3.1.tar.gz
  2. 解压更新包;
  3. 进入update_v3.1目录,运行update.sh脚本;
  4. 完成更新。

以上是在双剑版本中的情况,但是在幽兰以前的版本中,情况就有点复杂。在秀峰2中,SD卡槽默认是仅当作 JTAG 接口使用的。这时,如果要把它当串口使用,就需要在开机前将SD转接头插入SD卡插槽内,系统在开机时检测到SD卡槽中有东西,就会开启串口功能,此时JTAG 调试功能仍然能使用。略微不足的是,在秀峰2中,SD卡槽是不能当作普通的SD卡口使用的,即插入SD卡是不能工作的。要让SD卡工作,必须把镜像升级到双剑1或双剑2版本。镜像升级的步骤,请参见:https://www.nanocode.cn/wiki/docs/youlan/youlan-1em18r0oh0cvt。

在秀峰1中,SD卡槽默认也是当作 JTAG 调试接口使用的,但如果要把它当作串口使用,需要首先更换成秀峰2的UBoot,然后按照秀峰2的方法来操作。更换UBoot的步骤,请参见https://www.nanocode.cn/wiki/docs/youlan/youlan-1f02mqh8cv4nl。 当然,即使这样,SD卡槽还是不能当成普通的SD卡口使用,所以最简单的方法是,直接升级镜像到双剑1或双剑2版本,那样就不需要更换UBoot。

对于更老的版本,鹤鸣1和鹤鸣2,情况就更加复杂。在鹤鸣1和鹤鸣2中,SD卡槽的默认功能是SD卡,但没有任何方法可以配置成串口和JTAG使用。要把SD卡槽当成串口和JTAG使用,必须更换成秀峰2的UBoot,或直接升级镜像到双剑1或双剑2版本。

下表总结了各种版本下SD卡槽的默认功能,以及如何配置才能让它当成串口和JTAG接口或普通的SD卡口使用。

镜像版本 默认功能 如何配置成串口 如何配置成SD卡口 补充说明
双剑2 SD卡 开机时进入UEFI界面设置(同时也启用了 JTAG) UEFI或葫芦娃 葫芦娃中的更改只影响本次使用
双剑1 SD卡 同双剑2 同双剑2
秀峰2 仅JTAG接口 无需配置也没有地方配置,只要在开机前将SD转接头插入SD卡槽内。此时JTAG调试功能仍然能使用。 无法过简单的配置使用SD卡功能,必须升级到双剑版本。
秀峰1 仅JTAG接口 需要更换秀峰2的UBoot,然后按照秀峰2的步骤操作。 无法通过简单的配置使用SD卡功能,必须升级到双剑版本。 升级到双剑版本则两个问题同时解决了
鹤鸣2 SD卡 同秀峰1 同秀峰1
鹤鸣1 SD卡 同秀峰1 同秀峰1
作者:沈根成  创建时间:2024-01-19 13:24
最后编辑:朱博渊  更新时间:2024-05-06 17:43