4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-02-25 13:27:06 +08:00

126 lines
3.6 KiB
Markdown
Raw Normal View History

2023-08-23 09:11:03 +08:00
# 正点原子启明星开发板 BSP 说明
## 简介
本文档是为 正点原子启明星开发板提供的 BSP (板级支持包) 说明。
主要内容如下:
- 开发板资源介绍
- 开发流程说明
## 开发板介绍
正点原子开发的基于 zynq7000 生成的开发板, 注: 理论上也可以适用于其它 zynq7000的开发板.
![board](figures/board.jpg)
开发板更多详细信息请参考[官方文档](http://www.openedv.com/docs/boards/fpga/zdyz_qimxing(V2).html)。
## 外设支持
本 BSP 目前对外设的支持情况如下:
| **核心** | **支持情况** | **备注** |
| :----------------- | :----------: | :------------------------------------- |
| cortex-a9 | 支持 | 运行系统的为cortex-a9核的CPU0 |
| **板载外设** | **支持情况** | **备注** |
| 无 | | |
| **片上外设** | **支持情况** | **备注** |
| GPIO | 支持 | |
| UART | 支持 | UART0, UART1 |
| SPI FLASH | 支持 | |
| EMMC / SDIO | 支持 | |
| CAN | 即将支持 | |
## 使用说明
本 bsp 驱动基于之前的 zynq7000 bsp 的基础上,除了定时器仍然沿用之前的寄存器写法外,其余驱动均基于 vivado sdk 2017.4 生成的驱动库开发。具体开发使用流程如下:
### 1. 创建 vivado 工程 & pl 部分开发
使用 vivado 创建工程, 完成 pl 部分开发, 此部分与 rtt 软件开发无关,
故省略具体说明. 注意 zynq ps 部分必须启用 `MIO`, `UART0``Quad SPI FLASH`.
### 2. 启动 sdk 生成 bsp 和 fsbl
完成第一步后, 导出硬件到 sdk, 然后启动 sdk, 创建 fsbl 工程
![step2](figures/step_2.png)
![step3](figures/step_3.png)
由于后续即将添加的复杂驱动依赖于usleep.c 的接口函数, 故需要对 sdk
中的 `bsp\ps7_cortexa9_0\libsrc\standalone_v6_5\src\usleep.c` 做如下修改:
```DIFF
@@ -63,6 +63,15 @@
/* Global Timer is always clocked at half of the CPU frequency */
#define COUNTS_PER_USECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ / (2U*1000000U))
+typedef void (*usleep_hook_t) (unsigned long useconds);
+
+static usleep_hook_t usleep_hook;
+
+void zynq_set_usleep_hook(usleep_hook_t hook)
+{
+ usleep_hook = hook;
+}
+
/*****************************************************************************/
/**
*
@@ -78,6 +87,12 @@
****************************************************************************/
int usleep(unsigned long useconds)
{
+ if (usleep_hook)
+ {
+ usleep_hook(useconds);
+ return 0;
+ }
+
XTime tEnd, tCur;
XTime_GetTime(&tCur);
```
修改完成后保存文件等待sdk 自动完成编译.
### 3. 拷贝 sdk 下的 bsp, 完成 app 编译
拷贝 sdk bsp 文件夹下的 `include``lib` 文件夹到 [bsp](bsp) 文件夹下
![step4](figures/step_4.png)
然后 scons 编译app, 得到 `rtthread-zynq7000.elf`
### 4. 调试运行
#### 方式1: sdk 调试运行
1. 点击 SDK `Run` -> `Debug Configurations...`
![step5](figures/step_5.png)
2. 右键 new 创建新的 debug
![stp6](figures/step_6.png)
3. 配置 debug, 选择 app 所在路径
![step7](figures/step_7.png)
![step8](figures/step_8.png)
4. 随后点击 debug 就可以运行了.效果如下图所示:
![step9](figures/step_9.png)
![step9_1](figures/step_9_1.png)
#### 方式2: 生成 BOOT.BIN 拷贝到 sd 卡运行
参见 vivado bootgen 使用方法,将 app 换成
scons 编译生成的 `rtthread-zynq7000.elf` 即可
## 联系人信息
维护人:
- [a1012112796](https://github.com/a1012112796)