前言
UCM200和UCM202都是一颗内置了MCU和射频前端的模组,他们都支持二次开发。但是ucchip将射频部分都封装起来以lib库的形式提供给用户开发,在一定程度上会使得开发不那么方便,也不能完全释放射频的性能。但是基础的外设都是开放的,对于一些常见的场合,客户完全可以使用一个模组来完成全部的项目开发。
源码地址如下:
开发环境准备&编译
之前的文章,已经详细介绍了IDE的安装和使用,这里不再过多赘述。下载完源码后,找到根目录下的rtconfig.py文件,确定这里的路径和你的IDE编译工具链的位置是否一致,如果不一致则需要更改。
EXEC_PATH = r'D:/Program Files (x86)/UCCHIP_IDE/riscv-gnu-toolchain/bin/'
然后直接使用rt-thread env工具编译项目,关于rt-thread env的使用,请参考这里。
编译完成后会生成.elf可执行文件:
LINK rtthread.elf
riscv32-unknown-elf-size rtthread.elf
text data bss dec hex filename
227068 3688 10532 241288 3ae88 rtthread.elf
同时会接着执行一些flash相关的指令,我们继续分析rtconfig.py接下来的代码
POST_ACTION = SIZE + ' $TARGET\n'
POST_ACTION += 'packages/current_version.exe PS/app/include/uc_wiota_version.h' + '\n'
POST_ACTION += 'bintools.exe -u $TARGET ' + TARGET_NAME + '\n'
POST_ACTION += 'cp -f flat.bin ' + TARGET_NAME + '\n'
POST_ACTION += 'rm -f flat.bin \n'
这里是一些和芯片相关的操作,应该是生成特定的bin文件。同时这里应该也加了一个bootloader固件进去,这个bootloader可以使用ymodem来更新固件。
接着就在根目录生成了rtthread.bin固件。
烧录
将根目录生成的rtthread.bin固件通过下载工具烧录到开发板即可,具体的烧录工具请联系ucchip提供。
运行&&调试
烧录完成后,按下复位按键即可运行。和烧录器在一起的那个串口是UART0,这里用作AT口
AT口是UART0 115200 8N1
debug口是UART1 406800 8N1
从GitHub下载下来的代码,模式运行的就是AT固件,所以调试方法和之前的AT固件调试一样,这里不再过多赘述。
二次开发
- 首先将main.c里面的代码全都删除干净,只跑一个led灯闪烁的代码
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "uc_wiota_api.h"
#define LED0_PIN 2
int main(void)
{
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
app_task_init();
while (1) {
rt_pin_write(LED0_PIN, PIN_HIGH);
rt_thread_mdelay(1000);
rt_pin_write(LED0_PIN, PIN_LOW);
rt_thread_mdelay(1000);
}
}
-
编译下载烧录运行,如果led灯正常闪烁,则说明最小系统是正常的,接着进行第三步
-
分析AT指令的执行顺序,每个AT指令都有对应的函数调用,我们只需要将对应的函数放在main.c里面调用即可完成一个基本的wiota的测试
-
按照上面的步骤完成wiota函数调用后,一个基本的测试demo即开发完成,烧录运行后可以配合AP的AT固件来做一个调试
-
AP的二次开发流程同设备端
|