在 SylixOS 开发阶段,为了能够快速方便地运行系统,通常通过网络的方式来启动 SylixOS,配置过程如下:
1. 主机端
主机(PC 机)需要启动 TFTP 服务器程序来启动 TFTP 传输协议,在 SylixOS 配套的开 发套件(www.acoinfo.com 可以申请试用版)RealEvo-IDE 中集成了 TFTP 服务器,通过“Tools” ->“TFTP server”进行配置,如下图所示。
2. u-boot 客户机端
setenv ethaddr 12:23:34:45:56:67 ;setenv ipaddr 192.168.1.111 (设置嵌入式设备的 IP 地址);setenv gatewayip 192.168.1.1 ;setenv serverip 192.168.1.30 (设置主机端的 IP 地址);setenv loadaddr 0x10000000 (设置程序的加载地址,不同的平台地址不同);setenv bootfile bspimx6.bin (设置 SylixOS bsp 程序)。
以上环境变量设置成功后,可以通过 saveenv 命令将环境变量保存到相应的存储设备中, 需要注意,有些板载的 u-boot 不支持 saveenv 命令,这种情况需要在每次启动都要进行一次设置。
执行完以上步骤后,我们可以通过 ping 命令来验证网络是否已经连通,如下:
u-boot> ping ${serverip}
host 192.168.1.30 is alive
显示“is alive”代表网络已经连通,执行 tftpboot 命令即可将 SylixOS bsp 程序下载到嵌入式 设备,如下:
U-Boot > tftpboot
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 192.168.1.30; our IP address is 192.168.1.111
Filename 'bspimx6.bin'.
Load address: 0x10000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#############################################################
done
Bytes transferred = 2639528 (2846a8 hex)
下载完成后,执行 go ${loadaddr}将启动 SylixOS 系统。 以上过程需要每次都要执行 tftpboot 和 go 命令的操作,为了能够实现自动启动的目的, 我们需要增加 boot_sylixos_tftp 和 bootcmd 环境变量的设置,如下:
setenv boot_sylixos_tftp ‘tftpboot; go ${loadaddr}’
setenv bootcmd ‘run boot_sylixos_tftp’
saveenv
注:自动启动只适用于能够保存环境变量的嵌入式平台。
3. pmon 客户端
ifconfig eth0 192.168.1.85;
load -r -o80200000 tftp://192.168.1.30/bspls2hhfg.bin; flush -di;g -e 80200000;
其中 eth0 为开发板使用的接口名,mips 架构的开发板接口名有多种,常用的 em0(龙 芯 3a3000)、syn0(龙芯 1 系列)等等,紧跟其后的接口 IP 需要设置为与镜像所在主机的 IP 在同一个网段,才能通过 tftp 协议传输。
-r : load raw file // 想要通过 tftp 传输的文件;-o : load_addr 偏移地址;tftp://192.168.1.30 : 192.168.1.30 为镜像所在主机 IP ,需要打开 tftp 服务器;bspls2hhfg.bin :镜像文件名;flush –di :将 I-cache 和 D-cache 的内容刷新到 RAM ;g -e 80200000 :内容刷新开始地址。