rt-thread/bsp/phytium/doc/how_to_flashed_binary.md

134 lines
2.9 KiB
Markdown
Raw Normal View History

# 如何启动镜像程序
- 当完成项目的配置和编译后请参考以下两种方法在开发板上启动镜像程序。需要提前下载串口工具以SecureCRT为例
- 需要按照以下方式将开发板的串口与TTL接口相连并与上位机相连
1. E2000D_DEMO开发板E2000Q_DEMO开发板使用CPU_UART
![e2000_demo_uart](../figures/e2000_demo_uart.png)
2. Phytium PI开发板使用J2组引脚
![phytiumpi_uart](../figures/phytiumpi_uart.png)
## 使用tftp服务通过网口上传镜像(推荐)
- 通过tftp服务使用网口将 .bin/.elf 文件上传到开发板
![board_network_interface](../figures/board_network_interface.png)
### Ubuntu 环境下配置tftp服务
- 在开发环境`host`侧安装`tftp`服务
```
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
```
- 新建`tftpboot`目录, 以`/mnt/d/tftpboot`为例,并确保 `tftpboot` 目录有执行权限`chmod 777 /**/tftpboot`
- 配置主机 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/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
```
- 启动主机`tftp`服务,生成默认配置
```
$ sudo service tftpd-hpa start
```
- 修改主机`tftp`配置,指向`tftpboot`目录
修改/etc/default/tftpd-hpa
```
$ sudo nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/mnt/d/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
```
- 重启主机`tftp`服务
```
$ sudo service tftpd-hpa restart
```
- 测试主机`tftp`服务的可用性
> 登录`tftp`服务,获取`tftpboot`目录下的一个文件
```
$ tftp 192.168.4.50
tftp> get test1234
tftp> q
```
### Windows 环境下配置tftp服务
- 下载 Tftpd64 工具,并安装
![tftp32_srv](../figures/tftp32_srv.png)
- 之后每次使用前进入Windows服务手动将服务打开
![tftp32_srv](../figures/config_tftp32.png)
### 使用uboot上的tftp服务加载镜像
- `host`侧,网络配置如下
![tftp_host_config](../figures/tftp_host_config.png)
- 进入`uboot`界面输入如下指令配置开发板ip`host`侧ip和网关地址
```
setenv ipaddr 192.168.4.20
setenv serverip 192.168.4.50
setenv gatewayip 192.168.4.1
```
- 将编译好的elf 或者bin 文件拷贝至Tftpd64所设置文件夹下
- 随后烧录的文件到开发板,输入以下指令
```
tftpboot 0x80080000 rtthread_a64.bin
dcache flush
go 0x80080000
```
![tftp_test](../figures/tftp_test.png)
## 使用串口工具
- 可以用串口通过XMODEM协议将`.bin`文件上传到开发板
1. 启动开发板进入uboot界面输入以下指令
```
loadx 0x80080000
```
2. 发送`.bin`文件
![securecrt_sendx](../figures/securecrt_sendx.png)
3. 输入以下指令,完成跳转
```
go 0x80080000
```
![xmodem_flash](../figures/xmodem_flash.png)