2020-11-30 13:13:08 +08:00
|
|
|
|
# AXU4EV-E 开发板 BSP 说明
|
|
|
|
|
|
|
|
|
|
## 简介
|
|
|
|
|
|
|
|
|
|
本文档是为 AXU4EV-E 开发板提供的 BSP (板级支持包) 说明。
|
|
|
|
|
|
|
|
|
|
主要内容如下:
|
|
|
|
|
|
|
|
|
|
- 开发板资源介绍
|
|
|
|
|
- BSP 快速上手
|
|
|
|
|
- 进阶使用方法
|
|
|
|
|
|
|
|
|
|
通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。
|
|
|
|
|
|
|
|
|
|
## 开发板介绍
|
|
|
|
|
|
|
|
|
|
AXU4EV-E 开发板是 芯驿电子科技(上海)有限公司 推出的一款基于 XILINX Zynq UltraScale+ MPSoCs 开发平台的开发板。这款 MPSoCs 开发平台采用核心板加扩展板的模式,方便用户对核心板的二次开发利用。核心板使用 XILINX Zynq UltraScale+ EV 芯片 ZU4EV 的解决方案,它采用Processing System(PS)+Programmable Logic(PL)技术将四核ARM Cortex-A53 和FPGA 可编程逻辑集成在一颗芯片上。另外核心板上 PS 端带有 4 片共 4GB 高速 DDR4 SDRAM 芯片,1 片 8GB的 eMMC 存储芯片和 1 片 256Mb 的 QSPI FLASH 芯片;核心板上 PL 端带有 1 片 1GB 的DDR4 SDRAM 芯片 。
|
|
|
|
|
|
|
|
|
|
开发板更多详细信息请参考[芯驿电子科技(上海)有限公司](http://www.alinx.cn/)。
|
|
|
|
|
|
|
|
|
|
## 外设支持
|
|
|
|
|
|
|
|
|
|
本 BSP 目前对外设的支持情况如下:
|
|
|
|
|
|
|
|
|
|
| **核心** | **支持情况** | **备注** |
|
|
|
|
|
| :----------------- | :----------: | :------------------------------------- |
|
|
|
|
|
| R5-CPU0 | 支持 | 运行系统的为R5核的CPU0 |
|
|
|
|
|
| **板载外设** | **支持情况** | **备注** |
|
|
|
|
|
| 无 | | |
|
|
|
|
|
| **片上外设** | **支持情况** | **备注** |
|
|
|
|
|
| GPIO | 支持 | |
|
|
|
|
|
| UART | 支持 | UART0 |
|
|
|
|
|
| TIMER | 支持 | TTC0提供系统时钟 |
|
|
|
|
|
| EMMC | 支持 | SD0控制器 |
|
2021-05-13 16:33:40 +08:00
|
|
|
|
| EMAC | 支持 | e0网卡 |
|
2020-11-30 13:13:08 +08:00
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
使用说明分为如下两个章节:
|
|
|
|
|
|
|
|
|
|
- 快速上手
|
|
|
|
|
|
|
|
|
|
本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
|
|
|
|
|
|
|
|
|
|
- 进阶使用
|
|
|
|
|
|
|
|
|
|
本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 快速上手
|
|
|
|
|
|
|
|
|
|
本 BSP 为仅支持 GCC 开发环境,下面介绍如何将系统运行起来。
|
|
|
|
|
|
|
|
|
|
#### 编译下载
|
|
|
|
|
|
|
|
|
|
1. 在 bsp 下打开 env 工具,输入`scons`进行编译。
|
|
|
|
|
|
|
|
|
|
2. 编译完成后在 bsp 目录下会生成 `rtthread-zynqmp-r5.elf` 文件。
|
|
|
|
|
|
|
|
|
|
3. 使用 Xilinx Vitis 产生 FSBL,然后创建 “Debug Configuration”,Application 选择`rtthread-zynqmp-r5.elf` 文件。
|
|
|
|
|
|
|
|
|
|
4. 使用调试器连接 PC 和开发板,通过拨码开关设置为 JTAG 启动,然后连接电源,点击开始调试或运行即可。
|
|
|
|
|
|
|
|
|
|
由于编译时默认带有调试信息(见 rtconfig.py 中 BUILD),所以在 Xilinx Vitis 中调试时同样可以打开源文件设断点进行调试。
|
|
|
|
|
|
|
|
|
|
#### 固化程序
|
|
|
|
|
|
|
|
|
|
1. 在 bsp 下打开 env 工具,输入`scons`进行编译。
|
|
|
|
|
|
|
|
|
|
2. 编译完成后在 bsp 目录下会生成 `rtthread-zynqmp-r5.elf` 文件。
|
|
|
|
|
|
|
|
|
|
3. 使用 Xilinx Vitis 或 Xilinx SDK 产生 FSBL,然后使用 Xilinx 提供的 bootgen 工具制作 BOOT.bin 文件。
|
|
|
|
|
|
|
|
|
|
例如使用命令行方式:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
bootgen -image ./output.bif -arch zynqmp -o ./BOOT.bin -w on
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
其中 output.bif 文件可以是:
|
|
|
|
|
```
|
|
|
|
|
//arch = zynqmp; split = false; format = BIN
|
|
|
|
|
the_ROM_image:
|
|
|
|
|
{
|
|
|
|
|
[bootloader, destination_cpu = r5-0]./fsbl.elf
|
|
|
|
|
[destination_cpu = r5-0, exception_level = el-3]./rtthread-zynqmp-r5.elf
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. 根据 ALINX 提供的文档将 BOOT.bin 放进SD卡或烧录到 QSPI FLASH 中,通过拨码开关设置启动方式,然后连接电源即可启动。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 运行结果
|
|
|
|
|
|
|
|
|
|
下载程序成功之后,系统会自动运行。
|
|
|
|
|
|
|
|
|
|
连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
\ | /
|
|
|
|
|
- RT - Thread Operating System
|
|
|
|
|
/ | \ 4.0.3 build Nov 27 2020
|
|
|
|
|
2006 - 2020 Copyright by rt-thread team
|
|
|
|
|
msh />
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 进阶使用
|
|
|
|
|
|
|
|
|
|
此 BSP 默认开启了 EMMC 驱动和 DFS 文件系统,如果需要使用文件系统可以自行格式化并挂载。
|
|
|
|
|
|
2021-05-13 16:33:40 +08:00
|
|
|
|
此 BSP 默认开启并配置了网卡驱动及lwip协议栈,相关配置需要注意如下几点:
|
|
|
|
|
|
|
|
|
|
1. 注意将`RT_LWIP_PBUF_NUM`至少设置为256
|
|
|
|
|
2. 注意将`RT_LWIP_MEM_ALIGNMENT`设置为32。若使用RTT中lwip 2.0.2以外的版本时,由于其他版本未使用该宏,需要手动修改`lwipopts.h`中的`MEM_ALIGNMENT`宏。
|
|
|
|
|
|
2020-11-30 13:13:08 +08:00
|
|
|
|
|
|
|
|
|
## 板级移植
|
|
|
|
|
|
|
|
|
|
如果需要将BSP移植到其他 XILINX Zynq UltraScale+ MPSoCs 开发平台的开发板上也比较方便,主要修改的地方有以下几点:
|
|
|
|
|
|
2021-05-13 16:33:40 +08:00
|
|
|
|
1. 内存: 如果 DDR memory 小于 2G,需要修改`zynqmp-r5.ld`链接文件中的`psu_r5_ddr_0_MEM_0` 以及`board.h`中的`HEAP_END`
|
2020-11-30 13:13:08 +08:00
|
|
|
|
2. 主频: `xparameters.h`中的`XPAR_CPU_CORTEXR5_0_CPU_CLK_FREQ_HZ`
|
|
|
|
|
3. 串口引脚和频率:`drv_uart.c`中的`rxmio`, `txmio` 和`xparameters.h`中的`XPAR_PSU_UART_0_UART_CLK_FREQ_HZ`
|
|
|
|
|
4. 定时器频率:`xparameters.h`中的`XPAR_PSU_TTC_0_TTC_CLK_FREQ_HZ`
|
|
|
|
|
5. SD控制器:`drv_sdcard.c`中的块设备驱动初始化
|
2021-05-13 16:33:40 +08:00
|
|
|
|
6. 网卡驱动:若使用的PHY芯片不在驱动支持范围内,可能需要在`xemacpsif_physpeed.c`中实现相应芯片的速率识别函数,可参考ALINX的相应教程。
|
2020-11-30 13:13:08 +08:00
|
|
|
|
|
|
|
|
|
以上需要修改的`xparameters.h`中的参数宏定义不需要手动修改,可以直接将Xilinx Vitis中产生的开发板的`xparameters.h`文件复制过来即可。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
- 无
|
|
|
|
|
|
|
|
|
|
## 联系人信息
|
|
|
|
|
|
|
|
|
|
维护人:
|
|
|
|
|
|
|
|
|
|
- [王华辰](https://github.com/Wang-Huachen/)
|