Skip to content

WIOTA 二次开发环境搭建

Windows 环境

1. 准备工程代码

使用 git 工具 clone 项目工程代码,提供 github 和 gitee 仓库,国内推荐使用 gitee 仓库

基站侧代码

git clone https://github.com/ucchip/wiota_ap_customer.git

或者

git clone https://gitee.com/wiota/wiota_ap_customer.git

终端侧代码

git clone https://github.com/ucchip/wiota_dev_customer.git

或者

git clone https://gitee.com/wiota/wiota_dev_customer.git

异步节点代码

git clone https://github.com/ucchip/wiota_async_customer.git

或者

git clone https://gitee.com/wiota/wiota_async_customer.git

wiota_repo

2. 准备编译工具

2.1 下载编译工具链

riscv-gun-toolchain 下载 包含 windows 与 linux 版本 (按住 ctrl + 鼠标左键单击转到链接)

本文档基于 windows 环境,请下载网盘中的 windows 版本

rv_toolchain

解压后如下所示,记录 bin 文件夹路径,后面搭建编译环境时需要

rv-toolchain-path

2.2 下载安装仿真器驱动

UC-DAP5 仿真器驱动下载 (按住 ctrl + 鼠标左键单击转到链接)

解压后如下所示,依次安装 CDM21228_Setup.exe 串口驱动,和 UC_DAP_Setup.exe 仿真器调式烧录口驱动,安装时请将仿真器插上电脑

drivers

安装成功后,在设备管理器中可以看见如下两个设备

device_uc_dap5

2.3 下载安装 rtthread env 工具

rtthread env 工具下载地址 (按住 ctrl + 鼠标左键单击转到链接)

解压后如下所示,鼠标左键双击 env.exe 运行

rtthread_env

在 env 工具窗口抬头处点击鼠标右键,在右键菜单中点击 Settings...

rt_env_run

依次点击 Integration -> Register -> Save settings,将 env 工具注册到右键菜单中

rt_env_setting

之后就可以在任意文件夹中通过右键菜单快速打开 env 工具

rt_env_right_click_open

2.4 下载 UcProgrammer 烧录工具

WIoTa UC烧写工具 UcProgrammer ↓ 最新版本见底部 (按住 ctrl + 鼠标左键单击转到链接)

下载完成后解压如下所示

UcProgrammer

双击 UcProgrammer 运行 UcProgrammer详细使用说明链接 (按住 ctrl + 鼠标左键单击转到链接)

UcProgrammer_run

3. 配置编译环境

示例基于 IOTE 开发板 和 终端侧代码,

硬件清单如下:

  1. IOTE 开发板(使用UCM200T模组)

  2. UC-DAP5 烧录工具

  3. CH340 usb转串口模块

  4. 杜邦线

开发板调式器按如下连线,红色圈出为使用到的 log 输出串口,接上 usb 转串口模块后再插入电脑

iote_board

3.1 设置编译工具链路径

项目根目录下rtconfig.py文件为项目构建配置脚本,构建项目前需修改其中编译工具链路径。

找到前面下载的 riscv-gnu-toolchain 编译工具链 bin 文件夹路径

rv-toolchain-bin

修改rtconfig.py中编译工具路径

set_complier_path

4. 构建项目

使用 RTthread env 工具构建项目,在项目根目录下鼠标右键空白处,点击右键菜单中的 ConEmu Here,打开 RTthread env 工具

rt_env_proj_open

在 env 环境中执行命令 scons -j12 (数字 12 表示多核编译,最大为电脑 cpu 核心数)

complie_proj

编译成功后,在项目根目录下会生成 rtthread.bin 下载使用二进制文件, rtthread.elf 调试使用二进制文件,rtthread.map 链接映射文件

complie_proj_ok

bin

执行 scons -c 可清除编译内容

clear

5. 下载运行

打开 UcProgrammer 下载工具,选中项目根目录文件夹,再选中 rtthread.bin 文件

chose_bin

点击烧写,等待烧写完成后,开发板会自动运行

flash_ok

观察 log 串口输出,log 串口配置如下

  • 波特率:460800
  • 数据位:8
  • 校验位:none
  • 停止位:1

proj_run_log

6. 添加用户模块

在这里我们添加一个打印 hello wiota 的模块为例。

6.1 新增文件夹及源文件

首先,在项目根目录下新建一个文件夹命名为 hello_wiota ( 可任意命名 )

create_folder

再在 hello_wiota 文件中新建我们的源文件 hello_wiota.c hello_wiota.h 内容如下

hello_wiota.c

#include <rtthread.h>
#include "hello_wiota.h"

int print_hello(void)
{
    rt_kprintf("hello wiota\n");

    return 0;
}

hello_wiota.h

#ifndef __HELLO_WIOTA_H__
#define __HELLO_WIOTA_H__

int print_hello(void);

#endif // __HELLO_WIOTA_H__

6.2 调用 hello wiota 模块

在 wiota_dev_customer/applications/main.c 中调用我们的 hello_wiota 模块

包含头文件

include_hello_wiota

在mian函数中调用 print_hello 函数

call_hello_wiota

6.3 添加编译脚本

然后还要在hello_wiota文件夹下添加编译脚本将新增的源文件加入构建目标,新建一个文件名为 SConscript 的文件,文件内容如下

from building import *

cwd          = GetCurrentDir()   # 获取当前脚本路径
include_path = [cwd]             # 将当前路径加入构建搜索的头文件路径
src          = Split('''         
hello_wiota.c
''')                             # 源文件
# 也可等效成 src = ['hello_wiota.c'] 或 src= Glob('*.c')

# 使用DefineGroup创建一个名为hello_wiota的组
# 该Group是否被添加到工程中,参与编译,取决于depend的宏是否在Kconfig中被使能。为空则不依赖宏
group = DefineGroup('hello_wiota', src, depend = [''], CPPPATH = include_path)

Return('group')                  # 将当前脚本指定的构建对象返回上级SCons脚本

总共新增了三个文件,SConscript 是编译脚本

hello_wiota

6.4 编译下载

同样,在项目根目录下打开 rtthread env 工具,输入命令 scons -j12 编译,使用 UcProgrammer 工具烧录下载,最后观察串口助手输出如下图,成功打印出 hello wiota

hello_wiota_log

Back to top