Skip to content

Commit 59bec27

Browse files
authored
Merge pull request #4713 from ssd4561/ft2004
ft2000/4 开发板BSP完成提交
2 parents f61b966 + 0c5692e commit 59bec27

File tree

131 files changed

+17377
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+17377
-0
lines changed

bsp/ft2004/.config

Lines changed: 726 additions & 0 deletions
Large diffs are not rendered by default.

bsp/ft2004/Kconfig

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
mainmenu "RT-Thread Project Configuration"
2+
3+
config BSP_DIR
4+
string
5+
option env="BSP_ROOT"
6+
default "."
7+
8+
config RTT_DIR
9+
string
10+
option env="RTT_ROOT"
11+
default "../.."
12+
13+
config PKGS_DIR
14+
string
15+
option env="PKGS_ROOT"
16+
default "packages"
17+
18+
source "$RTT_DIR/Kconfig"
19+
source "$PKGS_DIR/Kconfig"
20+
21+
22+
config FT2004
23+
bool
24+
select ARCH_ARM_CORTEX_A
25+
select RT_USING_COMPONENTS_INIT
26+
select RT_USING_USER_MAIN
27+
default y
28+
29+
30+
source "./libraries/Kconfig"

bsp/ft2004/README.md

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
# ft2004 四核开发板 BSP 说明
2+
3+
## 简介
4+
5+
本文档为 飞腾技术公司 ft2000/4 开发板的 BSP (板级支持包) 说明。
6+
7+
主要内容如下:
8+
9+
- 开发板资源介绍
10+
- BSP 外设支持
11+
- 使用方法
12+
- 相关实验
13+
14+
### 1. 开发板资源介绍
15+
16+
FT-2000/4 是一款面向桌面应用的高性能通用 4 核处理器。每 2 个核构成 1
17+
个处理器核簇(Cluster),并共享 L2 Cache。主要技术特征如下:
18+
19+
- 兼容 ARM v8 64 位指令系统,兼容 32 位指令
20+
- 支持单精度、双精度浮点运算指令
21+
- 支持 ASIMD 处理指令
22+
- 集成 2 个 DDR4 通道,可对 DDR 存储数据进行实时加密
23+
- 集成 34 Lane PCIE3.0 接口:2 个 X16(每个可拆分成 2 个 X8),2 个 X1
24+
- 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应
25+
- 集成 1 个 SD 卡控制器,兼容 SD 2.0 规范
26+
- 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec
27+
- 集成 SM2、SM3、SM4 模块
28+
- 集成 4 个 UART,1 个 LPC,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通
29+
用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO)
30+
- 集成温度传感器
31+
32+
### 2. BSP 外设支持
33+
34+
| 外设名 | 支持情况 | 备注 |
35+
| -------- | -------- | ---------------------- |
36+
| ft_gicv3 | 支持 | gicv3 中断控制器 |
37+
| ft_gmac | 支持 | ft gmac 千兆网卡控制器 |
38+
| ft_i2c | 支持 | FT I2C |
39+
| ft_qspi | 支持 | FT qspi 控制器 |
40+
| ft_sd | 支持 | FT mmcsd 控制器 |
41+
| ft_uart | 支持 | PrimeCell PL011 |
42+
| ft_spi | 支持 | FT spi 控制器 |
43+
| ft_gpio | 支持 | FT gpio 控制器 |
44+
| ft_can | 支持 | FT can 控制器 |
45+
46+
### 3. 使用方法
47+
48+
#### ubuntu 上环境搭建
49+
50+
1. 在 ubuntu 环境下通过指令,下载并安装交叉编译链
51+
52+
```
53+
sudo apt-get install gcc-arm-none-eabi
54+
```
55+
56+
2. 安装之后,通过指令,确定交叉编译链安装完毕
57+
58+
```
59+
arm-none-eabi-gcc -v
60+
```
61+
62+
3. 搭建 tftp 环境
63+
64+
- 在主机安装 tftp 服务
65+
> 使用 ubuntu 完成下列操作
66+
67+
```
68+
sudo apt-get install tftp-hpa tftpd-hpa
69+
sudo apt-get install xinetd
70+
```
71+
72+
- 新建 tftboot 目录,如:
73+
`/mnt/d/tftboot`
74+
75+
> 需要给 tftboot 目录执行权限`chmod 777 /**/tftboot`
76+
77+
- 配置主机 tftpboot 服务
78+
79+
新建并配置文件/etc/xinetd.d/tftp
80+
81+
```
82+
# /etc/xinetd.d/tftp
83+
84+
server tftp
85+
{
86+
socket_type = dgram
87+
protocol = udp
88+
wait = yes
89+
user = root
90+
server = /usr/sbin/in.tftpd
91+
server_args = -s /mnt/d/tftboot
92+
disable = no
93+
per_source = 11
94+
cps = 100 2
95+
flags = IPv4
96+
}
97+
```
98+
99+
- 启动主机 tftp 服务
100+
101+
```
102+
sudo service tftpd-hpa start
103+
```
104+
105+
- 修改主机 tftp 配置
106+
修改/etc/default/tftpd-hpa
107+
108+
```
109+
sudo nano /etc/default/tftpd-hpa
110+
# /etc/default/tftpd-hpa
111+
112+
TFTP_USERNAME="tftp"
113+
TFTP_DIRECTORY="/mnt/d/tftboot"
114+
TFTP_ADDRESS=":69"
115+
TFTP_OPTIONS="-l -c -s"
116+
```
117+
118+
- 重启主机 tftp 服务
119+
> 每次开机要重启一次
120+
121+
```
122+
sudo service tftpd-hpa restart
123+
```
124+
125+
- 测试主机 tftp 服务的可用性
126+
> 登录 tftp 服务,获取一个文件
127+
128+
```
129+
$ tftp 192.168.4.50
130+
tftp> get test1234
131+
tftp> q
132+
```
133+
134+
#### 执行
135+
136+
1. 将本 bsp 包拷贝至 RT-THREAD bsp/目录下
137+
138+
1. 在 Ubuntu 终端下,切换至 bsp 目录
139+
140+
```
141+
cd rt-thread/bsp/ft2004
142+
```
143+
144+
3. 使用 scons -c 清空工程缓存
145+
146+
4. 使用 scons --menuconfig 配置需要的外设
147+
148+
![](./figures/onchipPeripheral.png)
149+
150+
5. 使用 scons 编译代码,得到 rtthread.bin,并将 rtthread.bin 放入之前配置的 tftp 路径下。
151+
152+
6. 连接开发板对应串口到 PC, 在终端工具里打开相应的串口(115200-8-1-N)。
153+
154+
7. 将开发板网线接入局域网中
155+
156+
8. 本开发板自带 uboot,使用 uboot 自带 指令进行将 bin 文件下载至 ram 中
157+
158+
```
159+
setenv ipaddr 192.168.x.x # 设置开发板ip
160+
setenv serverip 192.168.x.x # 设置tftp服务器ip
161+
setenv gatewayip 192.168.x.x # 设置网关ip
162+
tftpboot 80100000 rtthread.bin # 在主机 /tftpboot目录中的rtthread.bin文件下载到开发板内存的80100000地址中。
163+
```
164+
165+
7. 执行跳转指令,便可以正常执行
166+
167+
```
168+
bootvx32 80100000
169+
170+
boot32 80100000
171+
```
172+
173+
![](./figures/启动演示图.png)
174+
175+
### 5. 相关实验
176+
177+
#### 网卡
178+
179+
- 主机 ping 本机 指令 sudo ping 192.168.3.20 (默认)
180+
181+
- rtt ping 主机 指令 ping 192.168.x.x (根据实际情况)
182+
183+
- 通过界面
184+
185+
![](./figures/rttPing通过界面.png)
186+
187+
#### sd 卡调试
188+
189+
- 通过基本命令进行,mv ,echo ,ls ,cd ,rm ....
190+
191+
![](./figures/rttsd调试.png)
192+
193+
#### spi flash 卡调试
194+
195+
- 找一块有 spi flash 插槽的 ft-2004 开发板,插入 sf25s 或 gd25q 系列 spi flash
196+
- 配置 rt-thread 的编译选项,打开 BSP_USE_SPI 和 BSP_USE_GPIO 配置,关闭 BSP_USE_QSPI 配置,打开 rt-thread 的 SFUD 调试开关
197+
- 编译 rt-thread,加载版本启动,启动后显示 spi flash probe 成功
198+
- 执行 sf 基本操作,read, write, erase
199+
200+
#### 推荐指令
201+
202+
1. sf probe S25FS256
203+
204+
2. sf read 0x1FFF000 16
205+
206+
3. sf write 0x1FFF000 16 25 68 78 95 15 75 20
207+
208+
4. sf read 0x1FFF000 16
209+
210+
5. sf erase 0x1FFF000 16
211+
212+
#### can 测试
213+
214+
1. 使用 scons menuconfig 选中 Enable Can
215+
216+
2. 然后选中 Enable can0 ,Enable can0 work in loop back
217+
218+
3. 烧录程序并且烧录
219+
220+
4. 打开 can 盒,将波特率设为 1000000
221+
222+
5. 然后通过 can 盒发送对应的数据(标准帧,扩展帧),就可以看见回复同样的内容
223+
224+
## 6. 参考资源
225+
226+
- ARM Architecture Reference Manual
227+
228+
- FT-2000/4 软件编程手册-V1.4
229+
230+
## 7. 联系人信息
231+
232+
请联系飞腾嵌入式软件部
233+
234+
235+
236+

bsp/ft2004/SConscript

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# for module compiling
2+
import os
3+
Import('RTT_ROOT')
4+
5+
cwd = str(Dir('#'))
6+
objs = []
7+
list = os.listdir(cwd)
8+
9+
for d in list:
10+
path = os.path.join(cwd, d)
11+
if os.path.isfile(os.path.join(path, 'SConscript')):
12+
objs = objs + SConscript(os.path.join(d, 'SConscript'))
13+
14+
Return('objs')

bsp/ft2004/SConstruct

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import os
2+
import sys
3+
import rtconfig
4+
5+
if os.getenv('RTT_ROOT'):
6+
RTT_ROOT = os.getenv('RTT_ROOT')
7+
else:
8+
RTT_ROOT = os.path.join(os.getcwd(), '..', '..')
9+
10+
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
11+
from building import *
12+
13+
TARGET = 'ft2004.' + rtconfig.TARGET_EXT
14+
15+
DefaultEnvironment(tools=[])
16+
env = Environment(tools = ['mingw'],
17+
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
18+
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
19+
CXX= rtconfig.CXX, CXXFLAGS = rtconfig.CFLAGS,
20+
AR = rtconfig.AR, ARFLAGS = '-rc',
21+
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
22+
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
23+
env['ASCOM'] = env['ASPPCOM']
24+
25+
Export('RTT_ROOT')
26+
Export('rtconfig')
27+
28+
# prepare building environment
29+
objs = PrepareBuilding(env, RTT_ROOT)
30+
31+
# make a building
32+
DoBuilding(TARGET, objs)

bsp/ft2004/applications/SConscript

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Import('RTT_ROOT')
2+
Import('rtconfig')
3+
from building import *
4+
5+
cwd = GetCurrentDir()
6+
src = Glob('*.c')
7+
CPPPATH = [cwd]
8+
9+
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
10+
11+
Return('group')

0 commit comments

Comments
 (0)