rt-thread/bsp/zynqmp-a53-dfzu2eg/README.md

158 lines
4.5 KiB
Markdown
Raw Normal View History

# DFZU2EG MPSoC 板级支持包说明
## 1. 简介
正点原子 DFZU2EG MPSoC 开发板采用Xilinx的Zynq UltraScale+ MPSoC芯片作为主控芯片。它主要分为PS和PL两部分在PS部分中主要由Arm Cortex A53APU 共4个核、Arm Cortex R5FRPU 共两个核以及Arm Mali 400 MP2GPU三种内核处理器构成并且还包括DDR 控制单元、平台管理单元、高速外设控制器以及普通外设控制器等外设组成。
该板级支持包主要是针对APU做的一份移植支持RT-Thread标准版和Smart版内核。
DFZU2EG MPSoC 开发板的详细资源信息可以查阅正点原子此开发板的相关手册,也可以参考下图:
![2eg_mpsoc_board](figures/2eg_mpsoc_board.png)
## 2. 编译说明
推荐使用ubuntu20的[env环境](https://github.com/RT-Thread/env)当然也可以使用windows上的[env工具](https://www.rt-thread.org/download.html#download-rt-thread-env-tool)进行编译。下面介绍**标准版**和**Smart版本**的编译流程。
### 2.1 RT-Thread编译
**1.menuconfig配置工程**
该BSP默认menuconfig支持的就是RT-Thread标准版无需配置工程。
**2.配置工具链相关环境:**
依次执行下面命令进行环境变量的相关配置:
```shell
export RTT_CC=gcc
export RTT_EXEC_PATH="/opt/tools/gnu_gcc/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-elf/bin"
export RTT_CC_PREFIX=aarch64-none-elf-
export PATH=$PATH:$RTT_EXEC_PATH
```
**3.编译:**
```shell
scons -j12
```
### 2.2 RT-Smart编译
**1.menuconfig配置工程**
```shell
RT-Thread Kernel --->
[*] Enable RT-Thread Smart (microkernel on kernel/userland)
```
**2.配置工具链相关环境:**
依次执行下面命令进行环境变量的相关配置:
```shell
export RTT_CC=gcc
export RTT_EXEC_PATH="/opt/tools/gnu_gcc/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu/bin"
export RTT_CC_PREFIX=aarch64-linux-musleabi-
export PATH=$PATH:$RTT_EXEC_PATH
```
**3.编译:**
```shell
scons -j12
```
如果编译正确无误,会产生 `rtthread.elf`, `rtthread.bin` 文件。
## 3. 环境搭建
### 3.1 准备好串口线
连线情况如下图所示:
![2eg_mpsoc_uart](figures/2eg_mpsoc_uart.png)
串口参数: 115200 8N1 ,硬件和软件流控为关。
### 3.2 RTT固件放在SD卡运行
暂时不支持,需要使用 u-boot 加载。
### 3.3 RTT程序用uboot加载
需要注意的以下问题:
- 保证开发板和保存固件的PC机处于同一网段互相可以ping通。
- 保证PC机已经成功配置TFTP的相关服务。
可以使用开发板出厂自带的uboot(EMMC)来加载RTT程序将网线连接到开发板的PS网口然后在uboot控制台输入下列命令
```shell
setenv ipaddr 192.168.1.50
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.3
tftpboot 0x00200000 rtthread.bin
go 0x00200000
```
其中`192.168.1.3`为TFTP服务器的PC机的IP地址大家可以根据自己的实际情况进行修改。
执行完上述命令后uboot就可以自动从tftp服务器上获取固件然后开始执行了。
完成后可以看到串口的输出信息:
**标准版log信息**
```shell
heap: [0x00299540 - 0x04000000]
\ | /
- RT - Thread Operating System
/ | \ 5.1.0 build Apr 11 2024 11:43:19
2006 - 2024 Copyright by RT-Thread team
hello rt-thread
msh />
```
**Smart版log信息**
```shell
heap: [0x002fd030 - 0x04000000]
\ | /
- RT - Thread Smart Operating System
/ | \ 5.1.0 build Apr 11 2024 11:47:02
2006 - 2024 Copyright by RT-Thread team
Press any key to stop init process startup ... 3
Press any key to stop init process startup ... 2
Press any key to stop init process startup ... 1
Starting init ...
[E/lwp] lwp_startup: init program not found
Switching to legacy mode...
hello rt-thread
msh />
```
## 4. 支持情况
| 驱动 | 支持情况 | 备注 |
| ------ | ---- | :------: |
| UART | 支持 | UART0 |
| GPIO | 暂不支持 | - |
| SPI | 暂不支持 | - |
| SDIO | 暂不支持 | - |
| ETH | 暂不支持 | - |
目前BSP仅保证成功运行驱动后续会慢慢支持
## 5. 注意事项
对于ZYNQ的开发需要使用Vivado软件对开发板的硬件进行一些配置来生产相应的fsbl.elf文件比如串口引脚的初始化等等所以如果大家需要修改串口的输出引脚信息需要更新fsbl.elf而这些知识是需要具备一定的ZYNQ开发基础的。
## 6. 联系人信息
维护人:[liYony](https://github.com/liYony)