W800开发板开箱初体验

前言

销售同事定制了一款第三方的硬件产品, 上面用到了W800 SOC(北京联盛德微(winnermicro))的wifi soc, 里面集成了平头哥的玄铁MCU XT804),同事让我向W800中写一段程序,完成他需要的功能。

W800的硬软件设计资料挺全的,自己做W800的硬软件应用也可以。不过需要时间,先用第三方的,如果上了批量,想降低成本时,再自己做,不难。

第一次用W800, 还在门外。现在板子跑起来了。写程序,下载固件到W800开发板的事情都解决了。
到此,开发环境问题已经解决了,剩下都是业务逻辑的细节问题。

记录一下我从W800门外到门口(用了3天)的过程。

实验

先看看W800开发板的简介,找到一个线索后,后续线索就多了。
芯片开放社区官网主页上就有。往下翻,可以看到W800开发板和开发环境

首先是整个W800开发板,可以从2个地方买。

板子到手后,专门有一个小塑料盒子装着开发板,很精致。
在这里插入图片描述
在这里插入图片描述
这个板子的版本是V2.0
在这里插入图片描述
板子的的串口0的作用(下载固件,调试信息打印,接收串口命令(用SecureCRT的命令窗口可以向W800串口0发送命令))

板子的串口1可以接用户自己的串口通讯的设备。
在这里插入图片描述

整理开发环境

如果工程目录较长或敏感,可以用subst命令将目录模拟成磁盘,不影响编译。

@echo off

rem @filename dir2disk.cmd

rem @brief 将当前目录虚拟为磁盘

rem @note 如果注释中有中文, 必须要回车一行带一行空行,否则脚本运行后有乱码

rem 原因是注释和下面带的命令连在一起了, cmd的命令处理器可能没处理好

rem 清屏

cls

rem 删除subst虚拟磁盘z

call subst z: /D

rem 将当前目录虚拟为subst虚拟磁盘z

rem echo cur dir = %~dp0

call subst z: %~dp0

rem 此时打开文件资源管理器,在此电脑图标上点击

rem 在右侧磁盘列表区域空白处,右击菜单选择刷新, 就能看到subst模拟出来的磁盘

rem pause

找开发资料

手头有其他开发板用的 MicroUSB 通讯线,有2根线。
先不着急上电,上电后该怎么办?
先去找板子的资料,看看板子怎么写程序?怎么下载固件?怎么调试?

板子资料来源如下:

芯片开放社区

*芯片开放社区
首页往下拉,能看到W800开发板和编译环境
在这里插入图片描述
点击集成开发环境页面,将开发环境开发包CDK, CDS下载下来。
后来看W800官方的SDK包中有CDK工程,直接能打开实验。

点击W800开发板的子页面,将资料都下载到本地
在这里插入图片描述
这些资料中,就开发资源有用。
在线视频没有。

博文中都是开箱体验,直接去连公有云,没写怎么对W800写程序。
而且我的应用不是连公有云,是连我们自己的服务器。看着这些博文,对我进行的开发任务没帮助。

联盛德微官方资料

板子到手后,可以给联盛德微淘宝客服留言,要开发资料。
店家会给开发资料的网页索引页,将资料全部下载下来。

下载后的资料汇总如下

卷 work 的文件夹 PATH 列表
卷序列号为 0000009D 0D8F:1459
Z:\
│  dir2disk.cmd
│  list.txt
│  
└─wifi_w800
    └─doc
        │  cygwin4wm_setup_v1.1.1.rar
        │  readme.txt
        │  W800开发文档20210513.rar
        │  W800开发板接口使用指南_V0.1.pdf
        │  W800芯片产品规格书_V2.0.pdf
        │  W800芯片设计指导书V1.4.pdf
        │  WM_Arduino接口开发板_使用指导_V2.1.0.pdf
        │  WM_Iperf测试工具使用指导_V1.0.pdf
        │  wm_sdk_w800_20210513.rar
        │  WM_W800 AutoTest产测工具操作指南.pdf
        │  WM_W800_BleWiFi蓝牙配网Android App使用指导_V1.0.pdf
        │  WM_W800_BleWiFi蓝牙配网Android SDK_V1.0.pdf
        │  WM_W800_BleWiFi蓝牙配网IOS App使用指导_V1.0.pdf
        │  WM_W800_BleWiFi蓝牙配网IOS_SDK_V1.0.pdf
        │  WM_W800_CDS 使用手册V1.0.pdf
        │  WM_W800_QFLASH布局说明_V1.1.pdf
        │  WM_W800_ROM功能简述_V1.0.pdf
        │  WM_W800_SDK_AT指令用户手册_V1.0.pdf
        │  WM_W800_SDK_DEMO使用指导_V1.1.pdf
        │  WM_W800_SDK_OS移植指导_V1.0.pdf
        │  WM_W800_SDK命令行编译指南_V1.0.pdf
        │  WM_W800_SDK用户手册_V1.1.pdf
        │  WM_W800_SECBOOT功能简述_V1.0.pdf
        │  WM_W800_SWD调试配置指南_V1.0.pdf
        │  WM_W800_低功耗使用指导_V1.0.pdf
        │  WM_W800_入门手册_V1.3.pdf
        │  WM_W800_参数区使用说明_V1.2.pdf
        │  WM_W800_固件升级指导_V1.1.pdf
        │  WM_W800_固件生成说明_V1.2.pdf
        │  WM_W800_寄存器手册_V2.1.pdf
        │  WM_W800_快速入门_mysys_V0.2.pdf
        │  WM_W800_研发验证指导_V1.0.pdf
        │  WM_W800_蓝牙系统架构以及API描述_V1.0.pdf
        │  WM_W800_认证测试工具说明_V1.2.pdf
        │  WM_W800批量烧录工具操作指南V1.0.pdf
        │  WM_WiFi_自由通信接口使用指导_V0.2.pdf
        │  
        ├─occ_t_head_cn
        │  │  readme.txt
        │  │  
        │  ├─w800_dev_board
        │  │  │  readme.txt
        │  │  │  
        │  │  ├─A1_W800芯片
        │  │  │      A1_W800芯片设计指导书.pdf
        │  │  │      A2_W800芯片数据手册.pdf
        │  │  │      A3_W800串口烧录工具.zip
        │  │  │      A4_W800模组AT指令集.pdf
        │  │  │      A5_W800射频测试资料包.zip
        │  │  │      A6_W800_SDK开发指南.pdf
        │  │  │      A7_W800_SDK.zip
        │  │  │      A8_W800芯片用户手册.pdf
        │  │  │      
        │  │  ├─A2_W800开发板
        │  │  │      A1_W800开发板用户手册.pdf
        │  │  │      A2_W800开发板原理图.pdf
        │  │  │      A3_W800开发板资料包.zip
        │  │  │      A4_W800开发板快速上手手册.pdf
        │  │  │      
        │  │  └─A3_方案_W800_WiFi智能灯控
        │  │          A1_W800_SmartLighting_SDK_Release_Notes.pdf
        │  │          A2_W800智能灯控SDK快速上手手册.pdf
        │  │          A3_W800_SmartLighting_SDK.zip
        │  │          A4_W800智能灯控开发指南.pdf
        │  │          A5_W800_smartlighting_SDK开发指南.pdf
        │  │          
        │  └─w800_dev_tools
        │          cdk-windows-V2.8.7-20210507-1704.zip
        │          cds-windows-mingw-elf_tools-V5.2.6-20210208-1615.zip
        │          readme.txt
        │          
        └─ref
                

看开发环境CDK教程

CDK环境第一次用,咋用啊?
看到芯片开放社区有CDK的教程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
粗看了一遍,知道CDK大概咋用了。这个系列的CDK教程只是讲CDK怎么用。
从完成任务的角度,我看完这教程,还不知道怎么使用W800的SDK怎么编程。
收获不大。

看收集到本地的文档

先将资料都过一遍,从SDK编程的角度看,好像收获都不大。
应该是去看W800SDK中的demo工程才行。

先装CDS, 不会用。后来看资料,好像W800官方程序是用CDK的IDE写的。应该是用不到CDS的。
再装CDK, 搜W800, 选择helloword工程,建立的工程能编译过。打印了printf语句。具体怎么使用SDK进行wifi配网和http url 操作没写。

开始正式做W800实验

这时,离任务开始已经过了3天了,板子还没上电,对W800只有那么一点感觉。
再看资料也就那样了。
得动手了。

看来只能去看W800中自带的demo工程才行,才知道具体怎么针对W800进行编程。
前面看的官方资料虽然作用不大,也有个感性认识。也行。

Z:\wifi_w800\doc\wm_sdk_w800_20210513.rar 是W800官方SDK, 解压开
开始找工程文件,从目录名字上猜,翻来翻去也没看到CDK的工程文件,只有makefile. 这对于新手多不友好。咋才能看到一个工程文件呢?不是只能用命令行整吧?

最后用everything列出所有文件,被我找到了CDK工程文件
Z:\wifi_w800\doc\wm_sdk_w800_20210513\tools\w800\projects\SDK_Project\project\CDK_WS

工程文件在哪,文档上没说。都当大家都是熟手…

Z:\wifi_w800\doc\wm_sdk_w800_20210513\tools\w800\projects\SDK_Project\project\CDK_WS>tree /F
卷 work 的文件夹 PATH 列表
卷序列号为 0D8F-1459
Z:.
│  CDK_WS.cdkws
│
├─W800_SDK
│      W800_SDK.cdkproj
│
└─W800_SDK_BT
        W800_SDK_BT.cdkproj

用CDK找到CDK_WS.cdkws,打开
在这里插入图片描述
这就有线索了,这个demo是联盛德微(winnermicro)给用户写的全功能demo, 能用W800做的全部功能都在这。

先试试程序的编译

在这里插入图片描述
在这里插入图片描述
编译完成花了1分26秒,生成了w800.elf
值得注意的是,最后下载到W800开发板中的固件并不是 w800.elf,而是w800.fls

为啥下载固件不是w800.elf?因为用SecureCRT下载固件时,如果选的是w800.elf,会出现下列报错

Xmodem operation was canceled by remote peer.

在这里插入图片描述
如果选的固件是w800.fls,下载固件正常,程序运行正常。

在这里插入图片描述

调试

如果要调试,需要买CK-LINK和板子的调试脚连接, 还要设置CDK的debug选项。
CK-LINK分为lite版本和pro版本。
ck-link lite 200元
ck-link pro 1000元
不是钱的问题,主要是这次任务有可能是个一锤子生意。
不确定是否有后续开发任务,如果只为了这次任务买1个ck-link, 可能以后就放着吃灰,不值当。
如果确认有长期的W800或玄铁MCU应用调试任务,再买不迟。

这次,就在CDK中闷着头写,用W800开发板串口0的调试信息来调试程序。

板子上电

要下载固件了,板子当让要上电:)
板子的串口0,串口1都是USB的,除了通讯之外,还负责提供电流。
插入2条MicroUSB线,电供的足一些。串口1还可以模拟设备的数据输入
在这里插入图片描述
先插入串口0, 去看一眼设备管理器,一会要通过串口0下载固件
在这里插入图片描述
CH340驱动我以前装过,插入USB线,马上能看到W800开发板的串口在开发机上是串口2.
现在将另一条USB串口线插上。
在这里插入图片描述
再看一眼设备管理器
在这里插入图片描述
可以看到W800开发板的串口1,在开发机上串口6.

下载固件试试

W800的demo已经编译过了,板子也上电和开发机连接好了。
现在可以下载固件到开发板,看看效果(是否可以正常下载?板子跑起来是否有串口0调试信息?)。

运行SecureCRT

在这里插入图片描述
在这里插入图片描述
点击connect按钮,进入板子串口0的接收
在这里插入图片描述
此时,板子还没进入固件下载模式,SecureCRT主窗口没提示。

下载固件前,要用reset按钮和BOOT按钮配合,使板子进入固件下载模式。

在这里插入图片描述
下载固件的按钮配合方法:
先按住reset按钮,再按住BOOT按钮。等2秒,松开reset按钮。
观察SecureCRT主窗口,看看开始收到从串口打印的连续的字符C,说明已经进入固件下载模式,此时,松开BOOT按钮。回到电脑前,使用SecureCRT进行固件下载。
在这里插入图片描述
SecureCRT主窗口不断的接收到字符C, 说明板子进入了固件下载模式。
找到固件的位置Z:\wifi_w800\doc\wm_sdk_w800_20210513\bin\w800\w800.fls
在这里插入图片描述

在这里插入图片描述
用SecureCRT的Send Xmodem功能,选择w800.fls 作为固件下载到板子。
在这里插入图片描述
固件下载中
在这里插入图片描述
固件下载的稍慢(大概2~3分钟),这生产时可咋弄? 暂时让同事去生产吧:)
批量生产时,W800官方还有生产指导文档,还没仔细看。

固件下载完成。
又出现接收固件的提示。

在这里插入图片描述
如果固件下载成功了,就不需要再下载固件。
此时,按住板子上的reset键,一秒钟后放开。
在这里插入图片描述
此时,从SecureCRT主窗口上看到了板子串口0的调试信息 “user task”.
这条调试信息,是main.c 中的 UserMain函数中写的。说明固件下载成功,程序运行正常。
在这里插入图片描述
现在尝试修改UserMain(), 加一条调试信息。再次下载,证明固件确实是我们自己修改过的。而不是板子出厂带的,或选错了下载用的固件。

/***************************************************************************** 
* 
* File Name : main.c
* 
* Description: main 
* 
* Copyright (c) 2014 Winner Micro Electronic Design Co., Ltd. 
* All rights reserved. 
* 
* Author : dave
* 
* Date : 2014-6-14
*****************************************************************************/ 
#include "wm_include.h"

void UserMain(void)
{
	printf("\n>> UserMain(), hello w800\n"); // 加1条调试语句,证明编译好的固件和用于下载用的固件都是我们自己的
	printf("\n user task \n");

#if DEMO_CONSOLE
	CreateDemoTask();
#endif
//用户自己的task
}


重新编译,下载固件,看看效果。
在这里插入图片描述
编译成功.
为啥官方demo工程这么多警告呢?

选择固件时,可以看一下修改时间,1分钟之前修改的,说明是刚改过的。
在这里插入图片描述
固件下载完成
在这里插入图片描述
板子reset, 看看效果。
在这里插入图片描述
看到我们改工程时,新加入的调试语句 hello w800

实验结束

到此,针对W800的开发环境和实验环境都准备就绪。

W800的官方工程用的是FreeRTOS, 只要用过一种rtos, 就会看到rtos用法都特别的像,重新写个任务不是问题。

剩下的任务是仔细看下W800板子官方SDK带的demo工程,将自己需要的功能捋出来。再写一个rtos任务, 将wifi自动配网,访问远程http url, 和串口1的设备通讯, 子任务就搞定。

十分确定,后续不会再遇到什么问题。应该再有2,3天,这个子任务就能交货。

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值