19
bsp/gd32/README.md
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
# GD32 BSP 说明
|
||||
|
||||
GD32 系列 BSP 目前支持情况如下表所示:
|
||||
|
||||
| **BSP 文件夹名称** | **开发板名称** |
|
||||
|:------------------------- |:-------------------------- |
|
||||
| **F4 系列** | |
|
||||
| [gd32407v-start](gd32407v-start) | 兆易创新 官方 GD32407V-START 开发板 |
|
||||
|
||||
可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
|
||||
|
||||
| **BSP 使用教程** | **简介** |
|
||||
|:-------------------- |:------------------------------------------------- |
|
||||
| [外设驱动使用教程](docs/GD32系列BSP外设驱动使用教程.md) | 讲解 BSP 上更多外设驱动的使用方法 |
|
||||
| [外设驱动介绍与应用](docs/GD32系列驱动介绍.md) | 讲解 GD32 系列 BSP 驱动的支持情况,以及如何利用驱动框架开发应用程序 |
|
||||
| **BSP 制作与提交** | **简介** |
|
||||
| [BSP 制作教程](docs/GD32系列BSP制作教程.md) | 讲解 GD32 系列 BSP 的制作方法 |
|
||||
|
||||
941
bsp/gd32/docs/GD32系列BSP制作教程.md
Normal file
77
bsp/gd32/docs/GD32系列BSP外设驱动使用教程.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# GD32系列BSP外设驱动使用教程
|
||||
|
||||
## 简介
|
||||
|
||||
本文档是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
|
||||
|
||||
主要包括以下内容:
|
||||
|
||||
1. 如何使用开发板上更多的板载资源
|
||||
2. 如何使用更多的片上资源
|
||||
3. 如何添加更多片上资源选项
|
||||
|
||||
## 前提要求
|
||||
|
||||
- 学会如何使用 ENV 工具,参考:[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/programming-manual/env/env/)
|
||||
|
||||
## 如何使用更多的板载资源
|
||||
|
||||
开发板上一般有很多板载资源,如 Flash、SD卡等,但是 BSP 工程默认没有开启这些外设驱动。RT-Thread 提供了 ENV 工具来开启或关闭 BSP 的外设驱动。下面以在GD32407V-START开发板上开启 UART2 驱动为例,一步步的展示如何使用 ENV 工具对 BSP 进行配置。
|
||||
|
||||
### 1)打开配置工具
|
||||
|
||||
在目录 `rt-thread\bsp\gd32\gd32407v-start` 下打开 menuconfig 配置界面。
|
||||
|
||||

|
||||
|
||||
打开的配置工具界面如下所示:
|
||||
|
||||

|
||||
|
||||
通过键盘上的上下键移动光标,选中 `Hardware Drivers Config`然后按回车键进入硬件驱动配置菜单。
|
||||
|
||||
### 2)进入硬件驱动配置菜单
|
||||
|
||||
在硬件配置菜单里有三个选项,分别是 **板载外设配置菜单**、**片上外设配置菜单**和**扩展模块配置菜单**,按回车键进入板载外设配置菜单。
|
||||
|
||||

|
||||
|
||||
### 3)在板载外设配置菜单里开启 UART2 选项
|
||||
|
||||

|
||||
|
||||
### 4)保存退出
|
||||
|
||||
然后右移光标选中 Save 按回车键保存,然后按 Esc 键退出配置工具。
|
||||
|
||||

|
||||
|
||||
### 5)更新软件包
|
||||
|
||||
输入命令 `pkgs --update` 使软件包配置生效。
|
||||
|
||||

|
||||
|
||||
### 6)生成 MDK5 工程
|
||||
|
||||
输入命令 `scons --target=mdk5 -s` 重新生成 MDK5 的工程。
|
||||
|
||||

|
||||
|
||||
### 7)编译下载
|
||||
|
||||
打开生成的 MDK5 工程文件,编译并下载。
|
||||
|
||||

|
||||
|
||||
### 8)查看运行结果
|
||||
|
||||
程序运行后,输入命令 `list_device` 可以看到名为 uart2的设备,此时 `UART2` 设备已经可以使用了。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 总结
|
||||
|
||||
当开发者需要使用未开启的外设时,只要在 ENV 工具中使能相关的外设即可,重新生成的工程中就会添加对应的驱动文件。开发者就可以利用 RT-Thread 提供的驱动开快速开发应用了。
|
||||
63
bsp/gd32/docs/GD32系列驱动介绍.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# GD32系列驱动介绍
|
||||
|
||||
在 RT-Thread 实时操作系统中,各种各样的设备驱动是通过一套 I/O 设备管理框架来管理的。设备管理框架给上层应用提供了一套标准的设备操作 API,开发者通过调用这些标准设备操作 API,可以高效地完成和底层硬件外设的交互。设备管理框架的结构如下图所示:
|
||||
|
||||

|
||||
|
||||
使用 I/O 设备管理框架开发应用程序,有如下优点:
|
||||
|
||||
- 使用同一套标准的 API 开发应用程序,使应用程序具有更好的移植性
|
||||
- 底层驱动的升级和修改不会影响到上层代码
|
||||
- 驱动和应用程序相互独立,方便多个开发者协同开发
|
||||
|
||||
## 1. 驱动分类介绍
|
||||
|
||||
本小节介绍 BSP 提供的不同类别驱动的概念,对一个 BSP 而言,有如下三类驱动:
|
||||
|
||||
- **板载外设驱动**:指 MCU 之外,开发板上外设,例如 TF 卡、以太网和 LCD 等
|
||||
- **片上外设驱动**:指 MCU 芯片上的外设,例如硬件定时器、ADC 和看门狗等
|
||||
- **扩展模块驱动**:指可以通过扩展接口或者杜邦线连接的开发板的模块,例如 ESP8266 模块
|
||||
|
||||
这三种外设的示意图如下所示:
|
||||
|
||||

|
||||
|
||||
## 2. 外设驱动的使用方法
|
||||
|
||||
点击下表中的驱动名称,即可跳转到对应驱动框架的介绍文档。开发者可以通过阅读相关资料,了解如何在应用开发中通过设备驱动框架来使用这些外设驱动。
|
||||
|
||||
### 2.1 片上外设
|
||||
|
||||
| 序号 | 驱动 | 简介 |
|
||||
| ---- | ------------------------------------------------------------ | ------------------------------------------------ |
|
||||
| 1 | [GPIO](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pin/pin.md) | 操作 GPIO 管脚 |
|
||||
| 2 | [UART](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart) | 通过串口收发数据 |
|
||||
| 3 | [soft I2C](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md) | 通过软件 I2C 收发数据 |
|
||||
| 4 | [SPI](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/spi/spi) | 通过 SPI 收发数据 |
|
||||
| 5 | [ADC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/adc/adc.md) | 测量管脚上的模拟量 |
|
||||
| 6 | SDIO | 通过 SDIO 读写数据 |
|
||||
| 7 | [TIMER](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/hwtimer/hwtimer.md) | 使用硬件定时器实现测量时间和定时执行回调函数功能 |
|
||||
| 8 | [PWM](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pwm/pwm.md) | 在特定的管脚输出 PWM 波形 |
|
||||
| 9 | [RTC](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/rtc/rtc.md) | 设置和读取时间 |
|
||||
| 10 | [WDT](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/watchdog/watchdog.md) | 看门狗驱动 |
|
||||
| 11 | [QSPI](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/spi/spi.md) | 通过 SPI(1、2、4线) 收发数据 |
|
||||
|
||||
### 2.2 板载外设
|
||||
|
||||
| 序号 | 驱动 | 简介 |
|
||||
| ---- | ------- | --------------------------------------- |
|
||||
| 1 | SD | 适用于 SPI 接口或 SDIO 接口的 SD(TF) 卡 |
|
||||
| 2 | ETH PHY | 以太网 |
|
||||
| 3 | USB PHY | USB |
|
||||
| 4 | LCD | 显示屏 |
|
||||
|
||||
### 2.3 扩展模块
|
||||
|
||||
| 序号 | 驱动 | 简介 |
|
||||
| ---- | -------- | ---------------------- |
|
||||
| 1 | ESP8266 | 串口转 WIFI 模块 |
|
||||
| 2 | ENC28J60 | SPI 接口的以太网控制器 |
|
||||
|
||||
### 2.4 驱动示例代码
|
||||
|
||||
在 RT-Thread 的 `examples\test` 目录下,有 RT-Thread 提供的基于不同外设驱动的示例代码。在 env 工具中开启 BSP 中要测试的驱动,并将 `examples\test` 中对应的驱动框架测试文件加入工程,即可快速测试 BSP 中提供的驱动。
|
||||
BIN
bsp/gd32/docs/figures/CMSIS-DAP_Debugger.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
bsp/gd32/docs/figures/FMC.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
bsp/gd32/docs/figures/Gigadevice.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
bsp/gd32/docs/figures/MDK_Build.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
bsp/gd32/docs/figures/MDK_Build_Success.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
bsp/gd32/docs/figures/Peripheral.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
bsp/gd32/docs/figures/UART2.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
bsp/gd32/docs/figures/chip.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
bsp/gd32/docs/figures/com_print.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
bsp/gd32/docs/figures/complise.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
bsp/gd32/docs/figures/config1.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
bsp/gd32/docs/figures/config2.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
bsp/gd32/docs/figures/debug.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
bsp/gd32/docs/figures/disable_lwip.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
bsp/gd32/docs/figures/disable_net.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
bsp/gd32/docs/figures/disable_socket.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
bsp/gd32/docs/figures/dowmload.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
bsp/gd32/docs/figures/download_success.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
bsp/gd32/docs/figures/frame.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
bsp/gd32/docs/figures/gdlink_debug.png
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
bsp/gd32/docs/figures/gdlink_download.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
bsp/gd32/docs/figures/import_rt-thread_studio.png
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
bsp/gd32/docs/figures/install_pack.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
bsp/gd32/docs/figures/mdk_keil.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
bsp/gd32/docs/figures/menuconfig_gd32407v-start.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
bsp/gd32/docs/figures/pack_finish.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
bsp/gd32/docs/figures/rename.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
bsp/gd32/docs/figures/rt-thread_studio.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
bsp/gd32/docs/figures/rt_device.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
bsp/gd32/docs/figures/run_flash.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
bsp/gd32/docs/figures/save.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
bsp/gd32/docs/figures/scons.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
bsp/gd32/docs/figures/scons_dist.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
bsp/gd32/docs/figures/scons_mdk5.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
bsp/gd32/docs/figures/scons_success.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
bsp/gd32/docs/figures/setting1.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
bsp/gd32/docs/figures/setting2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
bsp/gd32/docs/figures/storage.png
Normal file
|
After Width: | Height: | Size: 105 KiB |
BIN
bsp/gd32/docs/figures/update.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
571
bsp/gd32/gd32407v-start/.config
Normal file
21
bsp/gd32/gd32407v-start/Kconfig
Normal file
@@ -0,0 +1,21 @@
|
||||
mainmenu "RT-Thread Configuration"
|
||||
|
||||
config BSP_DIR
|
||||
string
|
||||
option env="BSP_ROOT"
|
||||
default "."
|
||||
|
||||
config RTT_DIR
|
||||
string
|
||||
option env="RTT_ROOT"
|
||||
default "../../.."
|
||||
|
||||
config PKGS_DIR
|
||||
string
|
||||
option env="PKGS_ROOT"
|
||||
default "packages"
|
||||
|
||||
source "$RTT_DIR/Kconfig"
|
||||
source "$PKGS_DIR/Kconfig"
|
||||
source "../libraries/Kconfig"
|
||||
source "board/Kconfig"
|
||||
88
bsp/gd32/gd32407v-start/README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# GD32407V-START开发板BSP说明
|
||||
|
||||
## 简介
|
||||
|
||||
GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高主频高达168M,该开发板具有丰富的板载资源,可以充分发挥 GD32407V 的芯片性能。
|
||||
|
||||
|
||||
开发板外观如下图所示:
|
||||
|
||||

|
||||
|
||||
该开发板常用 **板载资源** 如下:
|
||||
|
||||
- GD32407V,主频 168MHz,3072KB FLASH ,192KB RAM
|
||||
|
||||
- 常用外设
|
||||
|
||||
- LED :3个,LED1 (电源指示灯),LED2(PC6)
|
||||
- 按键:2个,K1(复位引脚),K2(用户按键,PA0)
|
||||
|
||||
- 常用接口:USB 接口
|
||||
|
||||
- 调试接口:GD-LINK
|
||||
|
||||
|
||||
|
||||
## 使用说明
|
||||
|
||||
使用说明分为如下两个章节:
|
||||
|
||||
- 快速上手
|
||||
|
||||
本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
|
||||
|
||||
- 进阶使用
|
||||
|
||||
本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
|
||||
|
||||
|
||||
### 快速上手
|
||||
|
||||
本 BSP 为开发者提供 MDK5 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
|
||||
|
||||
#### 硬件连接
|
||||
|
||||
使用数据线连接开发板到 PC,使用USB转TTL模块连接PA2(MCU TX)和PA3(MCU RX),打开电源开关。
|
||||
|
||||
#### 编译下载
|
||||
|
||||
双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
|
||||
|
||||
> 工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,点击下载按钮即可下载程序到开发板
|
||||
|
||||
#### 运行结果
|
||||
|
||||
下载程序成功之后,系统会自动运行,LED 闪烁。
|
||||
|
||||
连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
|
||||
|
||||
```bash
|
||||
\ | /
|
||||
- RT - Thread Operating System
|
||||
/ | \ 4.0.4 build Jan 9 2021
|
||||
2006 - 2021 Copyright by rt-thread team
|
||||
msh >
|
||||
```
|
||||
|
||||
### 进阶使用
|
||||
|
||||
此 BSP 默认只开启了 GPIO 和 串口1的功能,如果需使用高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
|
||||
|
||||
1. 在 bsp 下打开 env 工具。
|
||||
|
||||
2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
|
||||
|
||||
3. 输入`pkgs --update`命令更新软件包。
|
||||
|
||||
4. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
|
||||
|
||||
## 注意事项
|
||||
|
||||
暂无
|
||||
|
||||
## 联系人信息
|
||||
|
||||
维护人:
|
||||
|
||||
- [BruceOu](https://github.com/Ouxiaolong/), 邮箱:<ouxiaolong@bruceou.cn>
|
||||
15
bsp/gd32/gd32407v-start/SConscript
Normal file
@@ -0,0 +1,15 @@
|
||||
# for module compiling
|
||||
import os
|
||||
Import('RTT_ROOT')
|
||||
from building import *
|
||||
|
||||
cwd = GetCurrentDir()
|
||||
objs = []
|
||||
list = os.listdir(cwd)
|
||||
|
||||
for d in list:
|
||||
path = os.path.join(cwd, d)
|
||||
if os.path.isfile(os.path.join(path, 'SConscript')):
|
||||
objs = objs + SConscript(os.path.join(d, 'SConscript'))
|
||||
|
||||
Return('objs')
|
||||
60
bsp/gd32/gd32407v-start/SConstruct
Normal file
@@ -0,0 +1,60 @@
|
||||
import os
|
||||
import sys
|
||||
import rtconfig
|
||||
|
||||
if os.getenv('RTT_ROOT'):
|
||||
RTT_ROOT = os.getenv('RTT_ROOT')
|
||||
else:
|
||||
RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
|
||||
|
||||
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
|
||||
try:
|
||||
from building import *
|
||||
except:
|
||||
print('Cannot found RT-Thread root directory, please check RTT_ROOT')
|
||||
print(RTT_ROOT)
|
||||
exit(-1)
|
||||
|
||||
TARGET = 'rtthread.' + rtconfig.TARGET_EXT
|
||||
|
||||
DefaultEnvironment(tools=[])
|
||||
env = Environment(tools = ['mingw'],
|
||||
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
|
||||
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
|
||||
AR = rtconfig.AR, ARFLAGS = '-rc',
|
||||
CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
|
||||
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
|
||||
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
|
||||
|
||||
if rtconfig.PLATFORM == 'iar':
|
||||
env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
|
||||
env.Replace(ARFLAGS = [''])
|
||||
env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
|
||||
|
||||
Export('RTT_ROOT')
|
||||
Export('rtconfig')
|
||||
|
||||
SDK_ROOT = os.path.abspath('./')
|
||||
|
||||
if os.path.exists(SDK_ROOT + '/libraries'):
|
||||
libraries_path_prefix = SDK_ROOT + '/libraries'
|
||||
else:
|
||||
libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
|
||||
|
||||
SDK_LIB = libraries_path_prefix
|
||||
Export('SDK_LIB')
|
||||
|
||||
# prepare building environment
|
||||
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
|
||||
|
||||
gd32_library = 'GD32F4xx_HAL'
|
||||
rtconfig.BSP_LIBRARY_TYPE = gd32_library
|
||||
|
||||
# include libraries
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, gd32_library, 'SConscript')))
|
||||
|
||||
# include drivers
|
||||
objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
|
||||
|
||||
# make a building
|
||||
DoBuilding(TARGET, objs)
|
||||
11
bsp/gd32/gd32407v-start/applications/SConscript
Normal file
@@ -0,0 +1,11 @@
|
||||
Import('RTT_ROOT')
|
||||
Import('rtconfig')
|
||||
from building import *
|
||||
|
||||
cwd = os.path.join(str(Dir('#')), 'applications')
|
||||
src = Glob('*.c')
|
||||
CPPPATH = [cwd, str(Dir('#'))]
|
||||
|
||||
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
|
||||
|
||||
Return('group')
|
||||
35
bsp/gd32/gd32407v-start/applications/main.c
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2006-2021, RT-Thread Development Team
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2021-08-20 BruceOu first implementation
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
#include <board.h>
|
||||
|
||||
/* defined the LED2 pin: PC6 */
|
||||
#define LED2_PIN GET_PIN(C, 6)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int count = 1;
|
||||
|
||||
/* set LED2 pin mode to output */
|
||||
rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);
|
||||
|
||||
while (count++)
|
||||
{
|
||||
rt_pin_write(LED2_PIN, PIN_HIGH);
|
||||
rt_thread_mdelay(500);
|
||||
rt_pin_write(LED2_PIN, PIN_LOW);
|
||||
rt_thread_mdelay(500);
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||