1.UART0做为 Debug 串口配套 TYPE-C 线一端接板卡另一端接PC。TYPE-C线同时可以做为电源供电如果板卡上的负载较大时建议接上外接的5v 电源。
Debug串口接线如下图
2.PC上打开串口工具比如 MobaXtermminicom等配置好串口选择好串口号设置波特率115200数据位8停止位1硬件流控无等待上电。
MobaXterm的串口设置图
3.按下开发板上POWER键启动并进入预置Busybox系统默认自动登录 系统默认账户为root默认密码为123默认IP为192.168.1.10。
网盘里面的文件系统均带有ssh服务可以通过ssh登录到板卡上进行调试。将板卡与电脑通过网线直连同时配置电脑的IP为192.168.1.2也可以是同一网段的其他IP建议配成192.168.1.2因为u-boot中默认配的serverip是 192.168.1.2。系统默认账户为root默认密码为123默认IP为192.168.1.10, SSH默认端口为22。
如出现板卡Ping不通电脑但电脑可以Ping通板卡的现象请检查电脑的防火墙状态将其关闭后再试。
MobaXterm的SSH设置图
ssh连接的后图如下
ssh连接后可以通过SFTP传输文件支持拖拽式进行文件上下传。
我们适配了多种LCD屏的分辨率(800x480, 1024x600, 1280x800)覆盖了4.3', 7', 10.1'等主流尺寸的LCD屏。默认分辨率为1024x600分辨率切换参考1.3切换LCD分辨率。
LCD 接口接线如下图
蜂鸟板的文件系统是典型的linux系统一些操作事项参考 五、文件系统。本章之后的内容我们将着重说明在 uboot中的操作办法让我们先进入 uboot菜单
开机按住“m”键进入u-boot菜单
在u-boot 菜单中选择 “[a] U-Boot console”进入u-boot 命令终端
或者开机按“c”进入 u-boot console
在u-boot命令终端输入bootmenu
命令也可以进入u-boot菜单
=> bootmenu
*** U-Boot Boot Menu ***
[1] System boot select
[2] Update kernel
[3] Update rootfs
[4] Update u-boot
[5] Update ALL
[6] System install or recover
[7] Board product
[8] Video resolution select
[9] Video rotation select
[a] U-Boot console
Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit
在命令终端中键入boot
即可进入正常启动流程
=> boot
--if mmc0 --fmt ext4 --sym /boot/uImage
--of ram --fmt --sym
--extra 0x0
loading...
loaded&burning 8812660 bytes ...
load&burn 8812660 finished
## Booting kernel from Legacy Image at 9000000003000000 ...
Image Name: Linux-5.10.0.lsgd-ga653fe8758c4
Image Type: LoongArch Linux Kernel Image (gzip compressed)
Data Size: 8812596 Bytes = 8.4 MiB
Load Address: 00200000
Entry Point: 00e20250
Verifying Checksum ... OK
Uncompressing Kernel Image
Warning: invalid device tree. Used linux default dtb
512 MiB
[ 0.000000] Linux version 5.10.0.lsgd- ...
在命令终端中键入reboot
/reset
即可重启
=> reboot
LoongArch Initializing ...
RAM(Cache AS RAM) Initializing ...
Lock Scache Done.
Copy spl code to locked scache...
Jump to board_init_f...
Enter board_init_f...
_ __ __ _ _ ___ ___ __ _ _ / ___ __ \
| | | | | |\ | | __ [__ | | |\ | | | __ | \ |
|___ |__| |__| | \| |__] ___] |__| | \| \ |__] |__/ /
下面我们介绍几个比较简单的菜单项
蜂鸟板支持从多种介质启动系统前提是该介质安装有系统默认从EMMC启动。可以按以下流程更改启动介质。
1.uboot菜单选择“[1] Systembootselect”
2.选择“[1] SystemBootfromemmc” 或 “[2] SystemBootfromsdcard”
如果切换之后显示花屏可检查是否使用了新的u-boot和 kernel以及板卡供电是否满足。
1.uboot菜单选择“[8]Videoresolutionselect”
2.选择相应的分辨率
考虑到linux与Windows的兼容性我们选择将U盘格式设为 FAT32。
1.U盘格式化为FAT32并在U盘目录下创建update文件夹
U盘格式化可参考第八章 如何格式化U盘从而避免诸如分区表之类的问题
2.在U盘update目录下放入要更新的内核文件名为 uImage、固件文件名为 u-boot-with-spl.bin 或 u-boot.bin、文件系统(rootfs.img)。
3.将U盘插在开发板上
1.重新扫描USB设备
=> usb reset
resetting USB...
Bus ehci@0x16080000: USB EHCI 1.00
Bus ohci@0x16088000: USB OHCI 1.0
Bus otg@0x16040000: dwc2_usb otg@0x16040000: Core Release: 2.93a
USB DWC2
scanning bus ehci@0x16080000 for devices... 1 USB Device(s) found
scanning bus ohci@0x16088000 for devices... 1 USB Device(s) found
scanning bus otg@0x16040000 for devices... 2 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
2.我们已经在U盘上放置了一些文件u-boot-with-spl.bin、uImage、rootfs.img尝试列出文件
=> fatls usb 0:1 /update
./
../
52168418 rootfs.img
8830630 uImage
906162 u-boot-with-spl.bin
3 file(s), 2 dir(s)
3.尝试读取一个文件到内存
=> fatload usb 0:1 ${loadaddr} /update/uImage
8830630 bytes read in 206 ms (40.9 MiB/s)
=> printenv loadaddr
loadaddr=0x9000000003000000
4.这样 U 盘中的文件就被写入了 loadaddr这一块地址
若出现U盘无法读写等情况建议检查U盘分区状态建议用MBR分区表、单分区格式
windows平台使用tftpd.exe(32位或64位版本都可以此处用的是64位的版本)要更新的文件(内核文件名为uImage、固件文件名为 u-boot-with-spl.bin、文件系统(rootfs.img))和tftpd.exe放在同一目录下然后打开tftp.exe即可。
Windows tftp 服务器可参考 “5.2.2.2.tftp方式安装所需条件”有详细步骤说明解决防火墙问题与Windows IP问题
1.linux平台TFTP服务器示例为tftpd-hpa服务此处设置的tftp文件根目录为/home/loongson/tftproot/
要更新的文件(内核文件名为 uImage、固件文件名为 u-boot-with-spl.bin 或 u-boot.bin、文件系统(rootfs.img))放在此目录下即可
2.查看服务器IP地址比如 192.168.1.2
3.网线连接服务器与开发板准备更新或传输文件
1.查看“tftp服务器ip”与“本机ip”
“tftp服务器ip”与“本机ip”都存储在环境变量中其中变量 serverip是“tftp服务器ip”变量 ipaddr是“本机ip”可在 ubootconsole下执行printenv查看环境变量。
=> printenv
...
ipaddr=192.168.1.20
...
serverip=192.168.1.2
...
Environment size: 1315/16380 bytes
=>
2.更改服务器ip
=> setenv serverip 192.168.2.2
=>
2.更改本机ip
=> setenv ipaddr 192.168.2.20
=>
4.网关配置
如果服务器与设备ip处在不同网段则需设置网关ip。网关ip对应变量 gatewayip。
=> setenv gatewayip 192.168.1.1
=>
5.保存更改后的配置
ip更改后可以执行 **saveenv **长期保存
=> saveenv
Saving Environment to SPIFlash... Erasing SPI flash...Writing to SPI flash...done OK
=>
我们已经在tftp服务器上放置了一些文件u-boot-with-spl.bin、uImage、rootfs.img尝试以下操作
=> tftp uImage
Speed: 1000, full duplex
Using ethernet@0x16020000 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.20
Filename 'uImage'.
Load address: 0x9000000003000000
Loading: #################################################################
...
...
##################################
4.9 MiB/s
done
Bytes transferred = 8826725 (86af65 hex)
=>
注
若出现网络下载或更新不了的情况建议检查电脑的防火墙是否为打开状态如果是打开状态则将其关闭之后再试。
将安装系统到EMMC提供有两种方法当因系统镜像过大大于 152M导致安装失败时可使用方法2。
1.将文件系统 文件系统(rootfs.img)放在tftp服务器根目录下或者U盘update目录下。板卡插上网线或U盘
2.uboot菜单选择“[3] Updaterootfs”
3.选择“[1] Updaterootfs (rootfs.img) (byusb)”或“[2]Updaterootfs (rootfs.img) (bytftp)”开始升级
4.升级完成重启输入reboot
或reset
1.将以下三个文件 内核uImage、文件系统压缩包(rootfs.tar.gz) 以及 ramdisk.gz 放在tftp服务器根目录下或者U盘 **install **目录下。
注
放在U盘 install 目录下不再是 update目录。
2.uboot菜单选择“[6] Systeminstallorrecover”
3.选择“[1] Systeminstalltommc (byusb)”或“[3] Updateu-boottommc (bytftp)”开始安装
安装成功之后系统会自动重启。
1.将 内核uImage 放在tftp服务器根目录下或者U盘update目录下。
2.uboot菜单选择“[2] Updatekernel”
3.选择“[1] Updatekernel (uImage) (byusb)”或“[2] Updatekernel (uImage) (bytftp)”开始升级
4.升级完成重启输入reboot
或reset
2K300 蜂鸟板支持从TF卡启动系统TF卡方便拆下用读卡器连接到PC上进行各种定制修改且不像EMMC系统需要关心镜像大小只需要一个rootfs.img镜像文件即可。
1.提前安装7Z或其他解压缩工具、UltraISO工具
2.通过读卡器将TF卡插在PC上
3.用 7Z 或其他解压工具打开 rootfs.img解压后生成 rootfs。
4.以管理员身份运行ultraiso工具
5.选择“启动”->“写入硬盘镜象”
6.写入方式改成“RAW”
7.选择映象文件“rootfs”
8.点击“写入”等待完成
1.通过读卡器将TF卡插在PC上得到设备符比如 /dev/sdX并确保没有挂载
$ sudo umount /dev/sdX
2.接下来进行解压缩与写入操作
$ gunzip gunzip -S .img rootfs.img
$ sudo dd if=rootfs of=/dev/sdX
TF卡可以灵活拆下所以更新TF卡系统内核只需要用读卡器连接到PC上替换** boot/uImage**即可。或者通过U盘TFTP, SCP等方式更新亦可。
这些操作在 linux-PC上是非常简单的通过读卡器将TF卡插在PC上得到设备符比如** /dev/sdX**。
$ sudo mount /dev/sdX1 /media
$ sudo cp uImage /media/boot/uImage
$ sudo umount /dev/sdX1
可以在linux内核中执行make dtbs
编译新的dtb生成需要的ls2k300_mini_dp.dtb
make dtbs
1.将编译好的 ls2k300_mini_dp.dtb 改名为 dtb.bin 放在U盘 update目录或者 tftp 根目录下。
2.uboot菜单选择“Updatedtb“
3.选择“UpdateDTB (dtb.bin) (byusb)”或“UpdateDTB (dtb.bin) (bytftp)”开始升级。也可以选择”CleanDTBparts“ 使用默认 DTB
4.升级完成重启输入reboot
或reset
注意烧录固件需谨慎可能导致板卡无法启动另外更新固件后第一次启动有个训练内存的过程在输出LOONGSON(GD) 的logo后会有大约15秒左右无 输出这个是正常现象。
1.将** 固件u-boot-with-spl.bin 放在tftp服务器根目录下或者U盘update**目录下。
1.uboot菜单选择“[4] Updateu-boot”
2.选择“[1] Updateu-boottospiflash (byusb)”或“[2] Updateu-boottospiflash (bytftp)”开始升级
3.升级完成重启输入reboot
或reset
先将先锋板接上电再将SPI烧录器的一头接在2K0300蜂鸟板的SPI烧录口上注意线序一头接在PC 机上。连接方式如图
注意烧录时建议2K0300蜂鸟板先接电源以避免USB供电不足从而引起烧录失败。
烧录有自动与手动两种模式如自动模式烧录失败建议采用手动模式烧录。
1.先检查烧录器是否正常被烧录软件识别2.点击"检测" 以识别SPI芯片
3.点击"打开" 导入要烧录的固件
4.点击"自动" 开始烧录烧录器软件会显示烧录进度
5.烧录成功烧录器软件会有弹框提示
1.先检查烧录器是否正常被烧录软件识别2.点击"检测" 以识别SPI芯片
3.点击"打开" 导入要烧录的固件
4.点击"擦除" 开始擦除芯片之后会弹框提示查空可以忽略。
5.点击"编程" 开始烧录
6.待“编程”完成到 100%后点击“校验” 以确保烧录的正确性。
注
有时点击"自动"开始烧录时会弹出“写超时失败”的弹框可以忽略此警告再次点击"自动" 进烧录即可。
系统环境要求: ubuntu 22.04 或以下的版本推荐使用 ubuntu 18.04。
从网盘下载交叉工具链解压到/opt目录
sudo tar xf loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1.tar.xz -C /opt
或者从http://www.loongnix.cn/zh/toolchain/GNU/
下载选择LoongArchGCC交叉工具链
下面的xxx为具体版本号
sudo tar xf loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-xxx.tar.xz -C /opt
建立软链接方便统一设置环境变量
sudo cd /opt
ln -s loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-xxx loongson-gnutoolchain-8.3-x86_64-loongarch64-linux-gnu
源码目录里面有设置环境变量的脚本set_env.sh
内容如下
function setup_loongarch_env()
{
echo "====>setup env for LoongArch..."
CC_PREFIX=/opt/loongson-gnu-toolchain-x86_64-loongarch64-linux-gnu
export PATH=$CC_PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$CC_PREFIX/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$CC_PREFIX/loongarch64-linux-gnu/lib64:$LD_LIBRARY_PATH
export ARCH=loongarch
export CROSS_COMPILE=loongarch64-linux-gnu-
}
setup_loongarch_env
源码可从网盘或https://gitee.com/open-loongarch
下载
1.设置交叉工具链等环境
$ source ./set_env.sh
====>setup env for LoongArch...
2.指定板卡配置
$ make loongson_2k300_mini_dp_defconfig
make[1]: Entering directory '/home/vm/u-boot-2022.04'
GEN Makefile
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
make[1]: Leaving directory '/home/vm/u-boot-2022.04'
3.开始编译
$ make
make[1]: Entering directory '/home/vm/u-boot-2022.04'
GEN Makefile
scripts/kconfig/conf --syncconfig Kconfig
CFG u-boot.cfg
GEN include/autoconf.mk.dep
CFG spl/u-boot.cfg
GEN include/autoconf.mk
GEN spl/include/autoconf.mk
GEN Makefile
CFGCHK u-boot.cfg
...
CC spl/lib/rtc-lib.o
CC spl/lib/elf.o
AR spl/lib/built-in.o
LD spl/u-boot-spl
OBJCOPY spl/u-boot-spl-nodtb.bin
SYM spl/u-boot-spl.sym
CAT spl/u-boot-spl-dtb.bin
COPY spl/u-boot-spl.bin
CAT u-boot-with-spl.bin
make[1]: Leaving directory '/home/vm/u-boot-2022.04'
编译成功之后会生成u-boot-with-spl.bin
源码可从网盘或https://gitee.com/open-loongarch下载
注编译前先更新mkimage工具否则编译uImage的时候可能会遇到Invalidarchitecture的错误。
mkimage更新方法
在编译后的u-boot源码目录里面执行命令:sudocptools/mkimage/usr/bin/如果u-boot源码没有编译默认是无mkimage工具的。
1.设置交叉工具链等环境
$ source ./set_env.sh
====>setup env for LoongArch...
2.指定板卡配置
$ make loongson_2k300_defconfig
make[1]: Entering directory '/home/vm/kernel-5.10-LoongArch'
GEN Makefile
#
# No change to .config
#
make[1]: Leaving directory '/home/vm/kernel-5.10-LoongArch'
3.开始编译
$ make uImage
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.a
LD vmlinux.o
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
LD .tmp_vmlinux.kallsyms1
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD vmlinux
SORTTAB vmlinux
SYSMAP System.map
OBJCOPY arch/loongarch/boot/vmlinux.bin
GZIP arch/loongarch/boot/vmlinux.bin.gz
UIMAGE arch/loongarch/boot/uImage.gz
Image Name: Linux-5.10.0.lsgd-g217c34b2e4e3
Created: Sat Sep 17 14:20:28 2022
Image Type: LoongArch Linux Kernel Image (gzip compressed)
Data Size: 7824190 Bytes = 7640.81 KiB = 7.46 MiB
Load Address: 00200000
Entry Point: 00ca1a44
Image arch/loongarch/boot/uImage is ready
make[1]: Leaving directory '/home/vm/work/kernel-5.10-LoongArch'
编译成功之后会在arch/loongarch/boot/
生成uImage
文件。
源码可从网盘或https://gitee.com/open-loongarch
下载
1.指定板卡配置
make loongson2k300_mini_dp_defconfig
2.编译
make
编译成功之后在output/images
下会生成rootfs.img
文件将其即可烧录。
为了简化可移植构建的难度早期有一套AutoTools的工具帮助程序员构建软件。c/c++开源项目大多由Autotools工具管理源码编译常见三步曲。
./configure
make
make install
在LoongArch下编译常见的问题如下
./configure
configure: error: cannot guess build type; you must specify one
在 ./configure阶段Autotools会扫描宿主机系统即当前正在运行的计算机以进行各种测试并完成默认设置。
在测试过程中有一项是系统架构测试当在陌生的新架构中运行时./configure将报错并退出导致无法完成软件编译。
其中最关键的2个架构相关文件为config.guess
和config.sub
。
GNUAutotools套件中 config.guess和config.sub被独立维护在为config.git仓库。
其他软件如gnulib、automake将不定期从这里获取并合入自己的代码树中最终上游开发者通过GNUAutotools打包后这2个文件将进入tarballs中被发布。
LoongArch架构相关的补丁于2020年12月22日被合并到 config.git主分支。
https://git.savannah.gnu.org/gitweb/?p=config.git;a=commitdiff;h=c8ddc8472f8efcadafc1ef53ca1d863415fddd5f
最新的config.git已合并了对Loongarch架构的支持。而对早期的config.git没有添加 Loongarch架构支持的需要自已手动添加。
方法一编缉 config.guess文件在ia64:Linux:下面添加Loongarch架构的支持。
loongarch*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
方法二从网上获取最新的config.guess和 config.sub文件然后进行替换
$ sudo wget -O /usr/share/misc/config.sub "git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD"
$ sudo wget -O /usr/share/misc/config.guess "git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD"
在源码目录执行下面的命令会/usr/share/misc/config.sub
和config.guess
替换掉工程目录下面的config.sub
和config.guess
文件
$libtoolize-f-i-c
c/c++ 代码编译选项、编译宏移植
功能 | x86编译选项 | 龙芯LoongArch编译选 项 |
---|---|---|
定义编译生成的程序为64 位程序 | -m64 | -mabi=lp64d |
定义指令集类型,由X86修改为 LoongArch | -march=skylake | -march=loongarch64 |
原有x86版编译宏替换为LoongArch宏 | X86_64 | loongarch |
功能 | x86编译选项 | 龙芯LoongArch编译选 项 |
---|---|---|
查看编译器自定义编译宏 | echo | gcc -E -dM- |
更多参考交叉编译成LoongArch(Makefile,CMake,AutoTool,Qt等方式)https://blog.csdn.net/mxcai2005/article/details/130977477?spm=1001.2014.3001.5502
默认的buildroot文件系统里面集成了python3 环境和常用的python包。
内置的python包列表如下
[root@LS-GD ~]# pip list
Package Version
--------------- -------
aenum 2.2.3
asgiref 3.3.4
canopen 1.0.0
cbor2 5.2.0
chardet 4.0.0
Click 7.0
DataProperty 0.48.1
Django 3.2.5
Flask 1.1.2
itsdangerous 1.1.0
Jinja2 2.11.3
luma.core 2.4.2
luma.oled 3.13.0
lxml 4.6.3
MarkupSafe 1.1.1
mbstrdecoder 1.0.1
modbus-tk 1.1.2
numpy 1.18.2
pathvalidate 0.29.0
Pillow 9.4.0
pip 20.0.2
pyftdi 0.55.4
pygame 1.9.2a0
pymodbus 2.2.0
PyMySQL 0.9.3
PyQRCode 1.2.1
PyQt5 5.15.6
pyserial 3.5
python-can 3.3.4
python-dateutil 2.8.1
python-engineio 3.12.1
python-socketio 4.3.1
pytz 2019.3
pyusb 1.0.0
RPi.GPIO 0.7.0
setuptools 44.0.0
SimpleSQLite 0.45.2
six 1.15.0
smbus 1.1
smbus2 0.4.3
spidev 3.5
sqliteschema 0.16.2
sqlparse 0.3.0
tabledata 1.1.2
typepy 0.0.20
urllib3 1.26.6
w1thermsensor 2.3.0
Werkzeug 1.0.1
wrapt 1.11.2
里面包含有适配好的RPi.GPIO
,luma.core
,luma.oled
,w1thersenor
等包。
如果使用RPI.GPIO
等包 扩展针上的GPIO
引脚号和功能定义请查看原理图与芯片手册中的引脚复用关系 GPIO
号默认从 0 开始。
运行python程序
python3 leds.py
板卡自带的buildroot系统里面开机会运行/root/boot_run.sh
所以如果需要设置开机启动把要启动的程序加入到boot_run.sh
中即可。
板卡开机默认启动的Qt程序也是在里面设置的如果想禁用此程序修改boot_run.sh
即可。boot_run.sh
源码如下
# cat boot_run.sh
#! /bin/sh
#you can custom your action after boot in this script
#if you want to run your application after boot
psplash-write "MSG Welcome to Loongson-gd"
psplash-write "PROGRESS 100"
psplash-write "QUIT"
if [ -z "$(cat /proc/cmdline | grep ubifs)" ]; then
sleep 5
fi
export QT_QPA_FB_TSLIB=1
cd /root/logo_player && ./logo_player &
板卡自带的buildroot系统里面网络由NetworkManager
管理。默认配置的IP是192.168.1.10
默认添加的网络配置如下
# nmcli c show
NAME UUID TYPE DEVICE
eth0-connection 1bbd9bed-6870-4098-a4f3-06a5bb11ad3d ethernet eth0
[root@LS-GD ~]# cd /etc/NetworkManager/system-connections
[root@LS-GD system-connections]# ls
eth0-connection.nmconnection
[root@LS-GD system-connections]# cat eth0-connection.nmconnection
[connection]
id=eth0-connection
uuid=1bbd9bed-6870-4098-a4f3-06a5bb11ad3d
type=ethernet
interface-name=eth0
permissions=
[ethernet]
mac-address-blacklist=
[ipv4]
address1=192.168.1.10/24
dns-search=
method=manual
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
如果想修改IP, 可以运行nmtui
进行修改也可以直接编辑/etc/NetworkManager/systemconnections/eth0-connection.nmconnection
也可运行systemclt stop NetworkManager
命令关闭Network Manager
服务然后通过ifconfig
或ip
命令进行修改。
方法1
# cd /sys/class/tty/
# ls -l ttyS*
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS0 -> ../../devices/platform/2k300-soc/16100000.serial/tty/ttyS0
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS1 -> ../../devices/platform/2k300-soc/16100400.serial/tty/ttyS1
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS10 ->../../devices/platform/serial8250/tty/ttyS10
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS11 ->../../devices/platform/serial8250/tty/ttyS11
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS12 ->../../devices/platform/serial8250/tty/ttyS12
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS13 ->../../devices/platform/serial8250/tty/ttyS13
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS14 ->../../devices/platform/serial8250/tty/ttyS14
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS15 ->../../devices/platform/serial8250/tty/ttyS15
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS2 -> ../../devices/platform/2k300-soc/16100800.serial/tty/ttyS2
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS3 -> ../../devices/platform/2k300-soc/16100c00.serial/tty/ttyS3
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS4 ->../../devices/platform/serial8250/tty/ttyS4
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS5 ->../../devices/platform/serial8250/tty/ttyS5
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS6 ->../../devices/platform/serial8250/tty/ttyS6
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS7 ->../../devices/platform/serial8250/tty/ttyS7
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS8 ->../../devices/platform/serial8250/tty/ttyS8
lrwxrwxrwx 1 root root 0 Feb 3 23:21 ttyS9 ->../../devices/platform/serial8250/tty/ttyS9
方法2:
# cd /sys/devices/platform/2k300-soc
# find . -name "ttyS*"
./16100800.serial/tty/ttyS2
./16100c00.serial/tty/ttyS3
./16100400.serial/tty/ttyS1
./16100000.serial/tty/ttyS0
得到的结果中【数字.serail】部分中的数字为uart的寄存器地址末尾为tty的名字。查看芯片手册的寄存器描述或u-boot, kernel中的dts描述便可知对应关系。
除芯片启动相关的引脚(SPI0/eMMC0 在相应启动模式下对应引脚为主功能)外可复用引脚上电默认状态都复用为 GPIO 功能其中 GPIO0~63 默认为输入状态GPIO64105 默认为输出低电平状态。
推荐使用DiskGenius避免分区表错误。注意请事先备份好U盘的数据。
演示请看下图插入U盘打开DiskGenius选中U盘设备
点击“QuickPartition”
依次选MBR分区表、创建一个分区格式fat32Lable随便填。点击“OK”开始分区
推荐使用ubuntu18.04也就是推荐用于交叉编译开发的文件系统的自带U盘格式化工具。注意请事先备份好U盘的数据。
演示请看下图
PC机插入U盘后打开任意文件夹。
然后点击“下一个”按钮。
点击“格式化”按钮即可等待完成格式化。
更多资料从网盘下载
网盘链接https://pan.baidu.com/s/1qMp1Mjhdm0OAQJRxYuY27Q?pwd=1234提取码1234
更多回帖