在正式调用SDK实例前,需要对tftp进行一系列配置,Windows下与Linux下的方法有很大的区别,下面我们正式开始
对于权限不够的问题,普通用户可以在指令前加上
sudo来暂时获得root权限
在开发环境host侧安装tftp服务
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
新建 tftboot目录, /mnt/d/tftboot, 此目录应与项目编译脚本makefile中的USR_BOOT_DIR一致, 并确保 tftboot 目录有执行权限chmod 777 /**/tftboot
配置主机 tftpboot 服务, 新建并配置文件/etc/xinetd.d/tftp
# /etc/xinetd.d/tftp
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /mnt/d/tftboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
在配置上述文件时,如果之前没有使用过Linux文件编写,可以使用自带的vim编辑器
vim /etc/xinetd.d/tftp
启动主机tftp服务,生成默认配置
$ sudo service tftpd-hpa start
修改主机tftp配置,指向tftboot目录
修改/etc/default/tftpd-hpa
vim /etc/default/tftpd-hpa
$ sudo vim /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/mnt/d/tftboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
重启主机tftp服务
$ sudo service tftpd-hpa restart
注意,每次进入Linux系统时都需要使用该代码重启主机
tftp服务
- 测试主机
tftp服务的可用性 登录tftp服务,获取tftboot目录下的一个文件
$ tftp 192.168.4.50
tftp> get test1234
tftp> q
tftp.zip解压到开发环境,如D:\**\phytium-dev-windows-nt\tftp
>如果phytium-dev-windows-nt\tftp已经存在,则直接进行下一步D:\**\phytium-dev-windows-nt\tftp,运行.\reinstall.cmd完成Tftpd服务安装
>注意每次使用前,都需要进入Windows服务,手动将tftp服务打开在完成前面的步骤后,就可以着手连接开发板。连接之前,需要下载Windows下与的开发板配套软件 MobaXterm_Portable_v22.0
提取码:ROOT
如果是不用内置Linux子系统的windows用户还需要在tftp中配置。配置完成后,进入SDK,双击D:\phytium-dev\phytium-standalone-sdk目录下的run_tftd.cmd,启动tftp工具,设置tftp目录和ip

以WSL为例:
进入SDK所在目录,右键打开Windows终端,输入以下指令
wsl
进入baremetal文件夹,选取一个希望执行的用例。以uart测试为例,在wsl下输入如下指令,进入测试用例所在文件夹
cd baremetal/example/peripheral/serial/fpl011_test
根据需求,配置在不同芯片下32位或64位的编译模式,这里以飞腾新四核芯片的32位为例,输入以下指令
make load_ft2004_aarch32
编译测试用例,输入以下指令
make clean boot
打开MobaXterm_Portable软件,选择Session,然后选择Serial,选择串口(如上图所示串口号为COM3),设置波特率bps为115200
进入u-boot界面,输入如下指令,配置开发板ip,host侧ip和网关地址
setenv ipaddr 192.168.4.20
setenv serverip 192.168.4.50
setenv gatewayip 192.168.4.1
随后烧录tftboot文件夹下的文件到开发板,输入以下指令
tftpboot 0x90100000 baremetal.elf
bootelf -p 0x90100000
镜像启动的地址为
0x80100000, 对于BIN文件,需要直接加载到0x80100000,对于ELF文件,启动地址会自动获取,需要加载到DRAM中一段可用的地址,这里选择0x90100000
如果您希望自己建立一个应用工程,可以参考下面的流程
~/standalone-sdk/example/template目录,作为 baremetal 应用工程
*表示可选文件/目录$ ls Kconfig --> 应用工程配置menu文件 makefile --> makefile main.c --> 包含main函数 sdkconfig --> 配置输出 sdkconfig.h --> 配置输出 inc --> 用户头文件* src --> 用户源文件*请注意使用小写makefile,使用Makefile在部分平台不能被识别
切换目标平台, e.g FT2000/4 AARCH32, 加载默认配置
make config_ft2004_aarch32
使用
FT2000-4作为目标编译平台,通过make config_ft2004_aarch32和make config_ft2004_aarch64加载默认配置使用
D2000作为目标编译平台,通过make config_d2000_aarch32和make config_d2000_aarch64加载默认配置
编译应用工程, 生成*.bin文件用于下载到开发板
$ make
$ ls
template.bin --> 二进制文件
template.dis --> 反汇编文件
template.elf --> ELF文件
template.map --> 内存布局文件