Skip to content

Commit 63c4373

Browse files
authored
Merge pull request #1493 from TanekLiang/hifive1-pr
[bsp] add hifive1 bsp support
2 parents 661338d + 43922e4 commit 63c4373

Some content is hidden

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

65 files changed

+6217
-0
lines changed

bsp/hifive1/.config

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
#
2+
# Automatically generated file; DO NOT EDIT.
3+
# RT-Thread Configuration
4+
#
5+
6+
#
7+
# RT-Thread Kernel
8+
#
9+
CONFIG_RT_NAME_MAX=32
10+
CONFIG_RT_ALIGN_SIZE=4
11+
# CONFIG_RT_THREAD_PRIORITY_8 is not set
12+
# CONFIG_RT_THREAD_PRIORITY_32 is not set
13+
CONFIG_RT_THREAD_PRIORITY_256=y
14+
CONFIG_RT_THREAD_PRIORITY_MAX=256
15+
CONFIG_RT_TICK_PER_SECOND=100
16+
CONFIG_RT_DEBUG=y
17+
CONFIG_RT_USING_OVERFLOW_CHECK=y
18+
CONFIG_RT_DEBUG_INIT=0
19+
CONFIG_RT_DEBUG_THREAD=0
20+
CONFIG_RT_USING_HOOK=y
21+
CONFIG_IDLE_THREAD_STACK_SIZE=1024
22+
# CONFIG_RT_USING_TIMER_SOFT is not set
23+
24+
#
25+
# Inter-Thread communication
26+
#
27+
CONFIG_RT_USING_SEMAPHORE=y
28+
CONFIG_RT_USING_MUTEX=y
29+
CONFIG_RT_USING_EVENT=y
30+
CONFIG_RT_USING_MAILBOX=y
31+
CONFIG_RT_USING_MESSAGEQUEUE=y
32+
# CONFIG_RT_USING_SIGNALS is not set
33+
34+
#
35+
# Memory Management
36+
#
37+
CONFIG_RT_USING_MEMPOOL=y
38+
# CONFIG_RT_USING_MEMHEAP is not set
39+
# CONFIG_RT_USING_NOHEAP is not set
40+
CONFIG_RT_USING_SMALL_MEM=y
41+
# CONFIG_RT_USING_SLAB is not set
42+
CONFIG_RT_USING_MEMTRACE=y
43+
CONFIG_RT_USING_HEAP=y
44+
45+
#
46+
# Kernel Device Object
47+
#
48+
CONFIG_RT_USING_DEVICE=y
49+
# CONFIG_RT_USING_INTERRUPT_INFO is not set
50+
CONFIG_RT_USING_CONSOLE=y
51+
CONFIG_RT_CONSOLEBUF_SIZE=128
52+
CONFIG_RT_CONSOLE_DEVICE_NAME="dusart"
53+
# CONFIG_RT_USING_MODULE is not set
54+
55+
#
56+
# RT-Thread Components
57+
#
58+
CONFIG_RT_USING_COMPONENTS_INIT=y
59+
CONFIG_RT_USING_USER_MAIN=y
60+
CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
61+
62+
#
63+
# C++ features
64+
#
65+
# CONFIG_RT_USING_CPLUSPLUS is not set
66+
67+
#
68+
# Command shell
69+
#
70+
CONFIG_RT_USING_FINSH=y
71+
CONFIG_FINSH_THREAD_NAME="tshell"
72+
CONFIG_FINSH_USING_HISTORY=y
73+
CONFIG_FINSH_HISTORY_LINES=5
74+
CONFIG_FINSH_USING_SYMTAB=y
75+
CONFIG_FINSH_USING_DESCRIPTION=y
76+
# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
77+
CONFIG_FINSH_THREAD_PRIORITY=20
78+
CONFIG_FINSH_THREAD_STACK_SIZE=4096
79+
CONFIG_FINSH_CMD_SIZE=80
80+
# CONFIG_FINSH_USING_AUTH is not set
81+
CONFIG_FINSH_USING_MSH=y
82+
CONFIG_FINSH_USING_MSH_DEFAULT=y
83+
CONFIG_FINSH_USING_MSH_ONLY=y
84+
85+
#
86+
# Device virtual file system
87+
#
88+
# CONFIG_RT_USING_DFS is not set
89+
90+
#
91+
# Device Drivers
92+
#
93+
CONFIG_RT_USING_DEVICE_IPC=y
94+
CONFIG_RT_USING_SERIAL=y
95+
# CONFIG_RT_USING_CAN is not set
96+
# CONFIG_RT_USING_HWTIMER is not set
97+
# CONFIG_RT_USING_CPUTIME is not set
98+
# CONFIG_RT_USING_I2C is not set
99+
# CONFIG_RT_USING_PIN is not set
100+
# CONFIG_RT_USING_MTD_NOR is not set
101+
# CONFIG_RT_USING_MTD_NAND is not set
102+
# CONFIG_RT_USING_RTC is not set
103+
# CONFIG_RT_USING_SDIO is not set
104+
# CONFIG_RT_USING_SPI is not set
105+
# CONFIG_RT_USING_WDT is not set
106+
# CONFIG_RT_USING_WIFI is not set
107+
# CONFIG_RT_USING_AUDIO is not set
108+
109+
#
110+
# Using USB
111+
#
112+
# CONFIG_RT_USING_USB_HOST is not set
113+
# CONFIG_RT_USING_USB_DEVICE is not set
114+
115+
#
116+
# POSIX layer and C standard library
117+
#
118+
CONFIG_RT_USING_LIBC=y
119+
# CONFIG_RT_USING_PTHREADS is not set
120+
121+
#
122+
# Network stack
123+
#
124+
125+
#
126+
# light weight TCP/IP stack
127+
#
128+
# CONFIG_RT_USING_LWIP is not set
129+
130+
#
131+
# Modbus master and slave stack
132+
#
133+
# CONFIG_RT_USING_MODBUS is not set
134+
135+
#
136+
# VBUS(Virtual Software BUS)
137+
#
138+
# CONFIG_RT_USING_VBUS is not set
139+
140+
#
141+
# Utilities
142+
#
143+
# CONFIG_RT_USING_LOGTRACE is not set
144+
# CONFIG_RT_USING_RYM is not set
145+
146+
#
147+
# RT-Thread online packages
148+
#
149+
150+
#
151+
# system packages
152+
#
153+
154+
#
155+
# RT-Thread GUI Engine
156+
#
157+
# CONFIG_PKG_USING_GUIENGINE is not set
158+
# CONFIG_PKG_USING_LWEXT4 is not set
159+
# CONFIG_PKG_USING_PARTITION is not set
160+
# CONFIG_PKG_USING_SQLITE is not set
161+
# CONFIG_PKG_USING_RTI is not set
162+
# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
163+
164+
#
165+
# IoT - internet of things
166+
#
167+
# CONFIG_PKG_USING_PAHOMQTT is not set
168+
# CONFIG_PKG_USING_WEBCLIENT is not set
169+
# CONFIG_PKG_USING_MONGOOSE is not set
170+
# CONFIG_PKG_USING_WEBTERMINAL is not set
171+
# CONFIG_PKG_USING_CJSON is not set
172+
# CONFIG_PKG_USING_LJSON is not set
173+
# CONFIG_PKG_USING_EZXML is not set
174+
# CONFIG_PKG_USING_NANOPB is not set
175+
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
176+
177+
#
178+
# Wi-Fi
179+
#
180+
181+
#
182+
# Marvell WiFi
183+
#
184+
# CONFIG_PKG_USING_WLANMARVELL is not set
185+
186+
#
187+
# Wiced WiFi
188+
#
189+
# CONFIG_PKG_USING_WLAN_WICED is not set
190+
# CONFIG_PKG_USING_COAP is not set
191+
# CONFIG_PKG_USING_NOPOLL is not set
192+
# CONFIG_PKG_USING_NETUTILS is not set
193+
# CONFIG_PKG_USING_ONENET is not set
194+
195+
#
196+
# security packages
197+
#
198+
# CONFIG_PKG_USING_MBEDTLS is not set
199+
# CONFIG_PKG_USING_libsodium is not set
200+
# CONFIG_PKG_USING_TINYCRYPT is not set
201+
202+
#
203+
# language packages
204+
#
205+
# CONFIG_PKG_USING_JERRYSCRIPT is not set
206+
# CONFIG_PKG_USING_MICROPYTHON is not set
207+
208+
#
209+
# multimedia packages
210+
#
211+
# CONFIG_PKG_USING_OPENMV is not set
212+
213+
#
214+
# tools packages
215+
#
216+
# CONFIG_PKG_USING_CMBACKTRACE is not set
217+
# CONFIG_PKG_USING_EASYFLASH is not set
218+
# CONFIG_PKG_USING_EASYLOGGER is not set
219+
# CONFIG_PKG_USING_SYSTEMVIEW is not set
220+
# CONFIG_PKG_USING_IPERF is not set
221+
222+
#
223+
# miscellaneous packages
224+
#
225+
# CONFIG_PKG_USING_FASTLZ is not set
226+
# CONFIG_PKG_USING_MINILZO is not set
227+
# CONFIG_PKG_USING_QUICKLZ is not set
228+
# CONFIG_PKG_USING_MULTIBUTTON is not set
229+
# CONFIG_PKG_USING_SAMPLES is not set
230+
# CONFIG_PKG_USING_CANFESTIVAL is not set
231+
232+
#
233+
# example package: hello
234+
#
235+
# CONFIG_PKG_USING_HELLO is not set
236+
237+
#
238+
# Privated Packages of RealThread
239+
#
240+
# CONFIG_PKG_USING_CODEC is not set
241+
# CONFIG_PKG_USING_PLAYER is not set
242+
# CONFIG_PKG_USING_PERSIMMON_SRC is not set
243+
244+
#
245+
# Network Utilities
246+
#
247+
# CONFIG_PKG_USING_WLAN_WICED_SRC is not set
248+
# CONFIG_PKG_USING_CLOUDSDK is not set
249+
# CONFIG_PKG_USING_COREMARK is not set
250+
# CONFIG_PKG_USING_POWER_MANAGER is not set
251+
# CONFIG_PKG_USING_RT_OTA is not set
252+
# CONFIG_PKG_USING_RT_AT is not set

bsp/hifive1/Kconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
mainmenu "RT-Thread 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"

bsp/hifive1/README.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# HIFIVE1 #
2+
3+
## 简介
4+
5+
[HIFIVE1](https://www.sifive.com/products/hifive1/)是SiFive提供的一款基于RISCV的开发板,搭载SiFive Freedom E310。
6+
7+
板载主要资源如下:
8+
9+
| 硬件 | 描述 |
10+
| -- | -- |
11+
|CPU| SiFive E31 RISC-V Core |
12+
|架构| 32-bit RV32IMAC |
13+
|主频| 320+ MHz |
14+
|SRAM| 16KB |
15+
|Flash| 16MB QSPI + 16KB 指令Cache |
16+
17+
## 编译说明
18+
19+
HIFIVE1可以自行编译工具链,或者使用SiFive提供的[二进制版本](https://www.sifive.com/products/tools/)
20+
21+
22+
## 烧写及执行
23+
24+
供电方式:开发板使用 Micro USB 线连接电脑和开发板。
25+
26+
下载程序:参看[hifive1-getting-started](https://static.dev.sifive.com/dev.../hifive1/hifive1-getting-started-v1.0.2.pdf)完成开发环境的配置,运行bsp里的openocd.sh脚本就可以下载程序了。
27+
28+
### 运行结果
29+
30+
下载程序之后,连接串口(115200-N-8-1),可以看到RT-Thread的输出信息:
31+
32+
```
33+
\ | /
34+
- RT - Thread Operating System
35+
/ | \ 3.0.4 build May 30 2018
36+
2006 - 2018 Copyright by rt-thread team
37+
msh >
38+
```
39+
40+
## 4. 驱动支持情况及计划
41+
42+
| 驱动 | 支持情况 | 备注 |
43+
| ------ | ---- | :------: |
44+
| UART | 支持 | |
45+
| GPIO | 未支持 | |
46+
| SPI | 未支持 | |
47+
| I2C | 未支持 | |
48+
49+
### 4.1 IO在板级支持包中的映射情况
50+
51+
| IO号 | 板级包中的定义 |
52+
| -- | -- |
53+
| GPIO19 | LED_GREEN |
54+
| GPIO21 | LED_BLUE |
55+
| GPIO22 | LED_RED |
56+
57+
## 5. 联系人信息
58+
59+
维护人:
60+
- [tanek](https://github.com/TanekLiang)
61+
62+
## 6. 参考
63+
64+
* [HIFIVE1 Info](https://www.sifive.com/products/hifive1/)
65+
* [HIFIVE1 Software Development Tools](https://www.sifive.com/products/tools/)
66+
* [hifive1-getting-started-guide](https://www.sifive.com/documentation/boards/hifive1/hifive1-getting-started-guide/)
67+
* [hifive1-schematics](https://www.sifive.com/documentation/boards/hifive1/hifive1-schematics/)
68+
69+

bsp/hifive1/SConscript

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

bsp/hifive1/SConstruct

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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.normpath(os.getcwd() + '/../..')
9+
10+
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
11+
from building import *
12+
13+
TARGET = 'rtthread.' + rtconfig.TARGET_EXT
14+
15+
env = Environment(tools = ['mingw'],
16+
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
17+
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
18+
AR = rtconfig.AR, ARFLAGS = '-rc',
19+
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
20+
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
21+
22+
Export('RTT_ROOT')
23+
Export('rtconfig')
24+
25+
# prepare building environment
26+
objs = PrepareBuilding(env, RTT_ROOT)
27+
28+
# make a building
29+
DoBuilding(TARGET, objs)

0 commit comments

Comments
 (0)