龙芯技术社区
直播中

jf_38522704

2年用户 129经验值
擅长:嵌入式技术
私信 关注
[2K系列]

【2K0300蜂鸟板】快速使用指南

一、开发板使用

1.1 先显示出来

1.1.1 使用串口调试

1.UART0做为 Debug 串口配套 TYPE-C 线一端接板卡另一端接PC。TYPE-C线同时可以做为电源供电如果板卡上的负载较大时建议接上外接的5v 电源。

Debug串口接线如下图
第1页-1.PNG

2.PC上打开串口工具比如 MobaXtermminicom等配置好串口选择好串口号设置波特率115200数据位8停止位1硬件流控无等待上电。

MobaXterm的串口设置图
第2页-3.PNG

3.按下开发板上POWER键启动并进入预置Busybox系统默认自动登录 系统默认账户为root默认密码为123默认IP为192.168.1.10。
第2页-2.PNG

1.1.2. 使用网口调试

网盘里面的文件系统均带有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设置图
第3页-5.PNG

ssh连接的后图如下
第3页-4.PNG

ssh连接后可以通过SFTP传输文件支持拖拽式进行文件上下传。

1.1.3.使用LCD

我们适配了多种LCD屏的分辨率(800x480, 1024x600, 1280x800)覆盖了4.3', 7', 10.1'等主流尺寸的LCD屏。默认分辨率为1024x600分辨率切换参考1.3切换LCD分辨率。

LCD 接口接线如下图
第4页-8.PNG

1.2.首次进入 uboot

蜂鸟板的文件系统是典型的linux系统一些操作事项参考 五、文件系统。本章之后的内容我们将着重说明在 uboot中的操作办法让我们先进入 uboot菜单

开机按住“m”键进入u-boot菜单
第4页-7.PNG

在u-boot 菜单中选择 “[a] U-Boot console”进入u-boot 命令终端
或者开机按“c”进入 u-boot console
第4页-6.PNG

在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...

_ __ __ _ _ ___ ___ __ _ _ / ___ __ \
| | | | | |\ | | __ [__ | | |\ | | | __ | \ |
|___ |__| |__| | \| |__] ___] |__| | \| \ |__] |__/ /

下面我们介绍几个比较简单的菜单项

1.2.1.启动模式选择

蜂鸟板支持从多种介质启动系统前提是该介质安装有系统默认从EMMC启动。可以按以下流程更改启动介质。

1.uboot菜单选择“[1] Systembootselect”
第6页-10.PNG

2.选择“[1] SystemBootfromemmc” 或 “[2] SystemBootfromsdcard”
第6页-9.PNG

1.2.2.切换LCD分辨率

如果切换之后显示花屏可检查是否使用了新的u-boot和 kernel以及板卡供电是否满足。

1.uboot菜单选择“[8]Videoresolutionselect”
第7页-12.PNG

2.选择相应的分辨率
第7页-11.PNG

1.3.uboot下常用外设与网络服务

1.3.1.U盘-FAT32

考虑到linux与Windows的兼容性我们选择将U盘格式设为 FAT32。

1.3.1.1.U盘准备

1.U盘格式化为FAT32并在U盘目录下创建update文件夹

U盘格式化可参考第八章 如何格式化U盘从而避免诸如分区表之类的问题

第8页-14.PNG

2.在U盘update目录下放入要更新的内核文件名为 uImage、固件文件名为 u-boot-with-spl.bin 或 u-boot.bin、文件系统(rootfs.img)。
第8页-13.PNG

3.将U盘插在开发板上

1.3.1.2.uboot下尝试读写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分区表、单分区格式

1.3.2.tftp服务

1.3.2.1.安装tftp服务

a.windows平台tftp服务器

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问题

第9页-15.PNG
第10页-18.PNG

b.linux平台TFTP服务器

1.linux平台TFTP服务器示例为tftpd-hpa服务此处设置的tftp文件根目录为/home/loongson/tftproot/要更新的文件(内核文件名为 uImage、固件文件名为 u-boot-with-spl.bin 或 u-boot.bin、文件系统(rootfs.img))放在此目录下即可
第10页-17.PNG

2.查看服务器IP地址比如 192.168.1.2
第10页-16.PNG

3.网线连接服务器与开发板准备更新或传输文件

1.3.2.2.uboot网络设置可选

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
=>

1.3.2.3.uboot下尝试tftp

我们已经在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)
=>

若出现网络下载或更新不了的情况建议检查电脑的防火墙是否为打开状态如果是打开状态则将其关闭之后再试。

1.4.EMMC使用方法

将安装系统到EMMC提供有两种方法当因系统镜像过大大于 152M导致安装失败时可使用方法2。

1.4.1.EMMC安装系统方法1

1.将文件系统 文件系统(rootfs.img)放在tftp服务器根目录下或者U盘update目录下。板卡插上网线或U盘

2.uboot菜单选择“[3] Updaterootfs”
第12页-19.PNG

3.选择“[1] Updaterootfs (rootfs.img) (byusb)”或“[2]Updaterootfs (rootfs.img) (bytftp)”开始升级
第13页-22.PNG
第13页-21.PNG

4.升级完成重启输入rebootreset
第13页-20.PNG

1.4.2.EMMC安装系统方法2

1.将以下三个文件 内核uImage文件系统压缩包(rootfs.tar.gz) 以及 ramdisk.gz 放在tftp服务器根目录下或者U盘 **install **目录下。

放在U盘 install 目录下不再是 update目录。

2.uboot菜单选择“[6] Systeminstallorrecover”
第14页-24.PNG

3.选择“[1] Systeminstalltommc (byusb)”或“[3] Updateu-boottommc (bytftp)”开始安装
第14页-23.PNG
第15页-26.PNG

安装成功之后系统会自动重启。

1.4.3. EMMC更新内核

1.将 内核uImage 放在tftp服务器根目录下或者U盘update目录下。

2.uboot菜单选择“[2] Updatekernel”
第15页-25.PNG

3.选择“[1] Updatekernel (uImage) (byusb)”或“[2] Updatekernel (uImage) (bytftp)”开始升级
第16页-29.PNG
第16页-28.PNG

4.升级完成重启输入rebootreset
第16页-27.PNG

1.5.TF卡使用方法

2K300 蜂鸟板支持从TF卡启动系统TF卡方便拆下用读卡器连接到PC上进行各种定制修改且不像EMMC系统需要关心镜像大小只需要一个rootfs.img镜像文件即可。

1.5.1. TF卡系统安装

a.Windows下安装TF卡系统

1.提前安装7Z或其他解压缩工具、UltraISO工具

2.通过读卡器将TF卡插在PC上

3.用 7Z 或其他解压工具打开 rootfs.img解压后生成 rootfs。
第17页-31.PNG
第17页-30.PNG

4.以管理员身份运行ultraiso工具
第18页-33.PNG

5.选择“启动”->“写入硬盘镜象”
第18页-32.PNG

6.写入方式改成“RAW”
第19页-34.PNG

7.选择映象文件“rootfs”
第20页-35.PNG

8.点击“写入”等待完成
第21页-36.PNG

b.Linux下安装TF卡系统

1.通过读卡器将TF卡插在PC上得到设备符比如 /dev/sdX并确保没有挂载

$ sudo umount /dev/sdX

2.接下来进行解压缩与写入操作

$ gunzip gunzip -S .img rootfs.img
$ sudo dd if=rootfs of=/dev/sdX

1.5.2.TF卡系统更新内核

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

1.6.设备树DTB更新

可以在linux内核中执行make dtbs编译新的dtb生成需要的ls2k300_mini_dp.dtb

make dtbs

1.将编译好的 ls2k300_mini_dp.dtb 改名为 dtb.bin 放在U盘 update目录或者 tftp 根目录下。

2.uboot菜单选择“Updatedtb“
第22页-38.PNG

3.选择“UpdateDTB (dtb.bin) (byusb)”或“UpdateDTB (dtb.bin) (bytftp)”开始升级。也可以选择”CleanDTBparts“ 使用默认 DTB
第22页-37.PNG
第23页-40.PNG
第23页-39.PNG
4.升级完成重启输入rebootreset

1.7.固件更新

注意烧录固件需谨慎可能导致板卡无法启动另外更新固件后第一次启动有个训练内存的过程在输出LOONGSON(GD) 的logo后会有大约15秒左右无 输出这个是正常现象。

1.7.1.uboot菜单更新固件

1.将** 固件u-boot-with-spl.bin 放在tftp服务器根目录下或者U盘update**目录下。

1.uboot菜单选择“[4] Updateu-boot”
第24页-43.PNG

2.选择“[1] Updateu-boottospiflash (byusb)”或“[2] Updateu-boottospiflash (bytftp)”开始升级
第24页-42.PNG
第24页-41.PNG

3.升级完成重启输入rebootreset
第25页-44.PNG

1.7.2.烧录器更新固件

1.7.2.1.烧录器接线

先将先锋板接上电再将SPI烧录器的一头接在2K0300蜂鸟板的SPI烧录口上注意线序一头接在PC 机上。连接方式如图

注意烧录时建议2K0300蜂鸟板先接电源以避免USB供电不足从而引起烧录失败。

第26页-45.PNG

1.7.2.2.烧录器烧录

烧录有自动与手动两种模式如自动模式烧录失败建议采用手动模式烧录。

1.7.2.3.自动模式烧录

1.先检查烧录器是否正常被烧录软件识别2.点击"检测" 以识别SPI芯片

3.点击"打开" 导入要烧录的固件

4.点击"自动" 开始烧录烧录器软件会显示烧录进度
第27页-47.PNG

5.烧录成功烧录器软件会有弹框提示
第27页-46.PNG

1.7.2.4手动模式烧录

第28页-48.PNG

1.先检查烧录器是否正常被烧录软件识别2.点击"检测" 以识别SPI芯片

3.点击"打开" 导入要烧录的固件

4.点击"擦除" 开始擦除芯片之后会弹框提示查空可以忽略。
第29页-49.PNG

5.点击"编程" 开始烧录

6.待“编程”完成到 100%后点击“校验” 以确保烧录的正确性。
image.png

有时点击"自动"开始烧录时会弹出“写超时失败”的弹框可以忽略此警告再次点击"自动" 进烧录即可。

image.png

二、搭建交叉编译环境

系统环境要求: 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

三、u-boot编译

源码可从网盘或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

四、kernel编译

源码可从网盘或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文件。

五、buildroot 编译

源码可从网盘或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.guessconfig.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.subconfig.guess替换掉工程目录下面的config.subconfig.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

七、Python编程

默认的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等包。
image.png

如果使用RPI.GPIO等包 扩展针上的GPIO引脚号和功能定义请查看原理图与芯片手册中的引脚复用关系 GPIO号默认从 0 开始。

运行python程序

python3 leds.py

八、FAQ

1.如何设置开机启动

板卡自带的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 &

2.如何设置网络

板卡自带的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服务然后通过ifconfigip命令进行修改。

3.如何查看uart 与tty 的对应关系

方法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描述便可知对应关系。

4.GPIO 的默认状态

除芯片启动相关的引脚(SPI0/eMMC0 在相应启动模式下对应引脚为主功能)外可复用引脚上电默认状态都复用为 GPIO 功能其中 GPIO0~63 默认为输入状态GPIO64105 默认为输出低电平状态。

5.如何格式化U盘

a.Windows 格式化U盘

推荐使用DiskGenius避免分区表错误。注意请事先备份好U盘的数据。
演示请看下图插入U盘打开DiskGenius选中U盘设备
image.png

点击“QuickPartition”
image.png

依次选MBR分区表、创建一个分区格式fat32Lable随便填。点击“OK”开始分区
image.png

b.Linux 格式化U盘

推荐使用ubuntu18.04也就是推荐用于交叉编译开发的文件系统的自带U盘格式化工具。注意请事先备份好U盘的数据。

演示请看下图

PC机插入U盘后打开任意文件夹。
image.png
image.png

然后点击“下一个”按钮。

image.png

点击“格式化”按钮即可等待完成格式化。
image.png

九、2K0300蜂鸟开发板资料

更多资料从网盘下载

网盘链接https://pan.baidu.com/s/1qMp1Mjhdm0OAQJRxYuY27Q?pwd=1234提取码1234

更多回帖

发帖
×
20
完善资料,
赚取积分