前言

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

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

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

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

实验

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

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

  • 平头哥芯片开放社区官方旗舰店
  • 北京联盛德微官方淘宝店
    1688要批量买才行,要不走不了帐。就在 北京联盛德微官方淘宝店 买的板子

板子到手后,专门有一个小塑料盒子装着开发板,很精致。


这个板子的版本是V2.0

板子的的串口0的作用(下载固件,调试信息打印,接收串口命令(用SecureCRT的命令窗口可以向W800串口0发送命令))

板子的串口1可以接用户自己的串口通讯的设备。

整理开发环境

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

@echo offrem @filename dir2disk.cmdrem @brief 将当前目录虚拟为磁盘rem @note 如果注释中有中文, 必须要回车一行带一行空行,否则脚本运行后有乱码rem 原因是注释和下面带的命令连在一起了, cmd的命令处理器可能没处理好rem 清屏clsrem 删除subst虚拟磁盘zcall subst z: /Drem 将当前目录虚拟为subst虚拟磁盘zrem echo cur dir = %~dp0call subst z: %~dp0rem 此时打开文件资源管理器,在此电脑图标上点击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_BTW800_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_CONSOLECreateDemoTask();
#endif
//用户自己的task
}

重新编译,下载固件,看看效果。

编译成功.
为啥官方demo工程这么多警告呢?

选择固件时,可以看一下修改时间,1分钟之前修改的,说明是刚改过的。

固件下载完成

板子reset, 看看效果。

看到我们改工程时,新加入的调试语句 hello w800

实验结束

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

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

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

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

W800开发板开箱初体验相关推荐

  1. linux下s3c2440开发板,SAMSUNG S3C2440 ARM LINUX 开发板 上手初体验 --开发环境搭建

    1,linux开发环境搭建 2,程序测试 easyOpentag驱动安装,打开连接,选择ARM-linux 1,环境搭建 我的系统版本 root@ubuntu:~# lsb_release -a No ...

  2. 【致敬未来的攻城狮计划】— 连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下(文字上的初理解)

    系列文章目录 系列文章目录 前言 一.瑞萨MCU(CPK_RA2E1是瑞萨RA系列开发板)是什么? 首先引入是什么? 他的优势在哪? 瑞萨CPK_RA2E1 对标stm32 相似之处和不同之处? 瑞萨 ...

  3. 【RT-Thread Smart】ART-Pi Smart 开发板开箱及爱之初次体验

    ART-Pi Smart 开发板开箱及爱之初次体验 首先, 感谢RT=Thread给的试用机会, 感谢熊大的指导. 本文ART-Pi Smart开箱及初次体验内置应用 标题开箱 收到有几天了.我们一步 ...

  4. Arduino UNO开发板开箱体验

    Arduino UNO开发板开箱体验 1.Arduino简述 1.1什么是Arduino  Arduino是一个开源的电子设计平台,包括软件和硬件.其中硬件部分就是一块开发板了,软件部分就是对这块板子 ...

  5. Linux环境下ARM开发工具TrueSTUDIO初体验

    Linux环境下ARM开发工具TrueSTUDIO初体验 TrueSTUDIO是Atollic公司出品的ARM开发工具,号称"The best FREE C/C++ IDE for ARM® ...

  6. 真正的RISC-V开发板——VEGA织女星开发板开箱评测

    文章目录 前言 关于RISC-V架构 关于VEGA织女星开发板 基于FPGA实现的RISC-V开发板 基于RISC-V芯片实现的开发板 开箱爆照 板载资源简介 主控芯片RV32M1简介 支持的开发工具 ...

  7. 使用Kotlin开发Android应用初体验

    使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之 ...

  8. 联盛德W800开发板|SDK|make menuconfig|工具链|本地命令行编译|Windows11|msys|清华源|(4)、联盛德W800开发板命令行编译指南

    目录 W800 芯片介绍: W800开发板 主要接口如下: 1 概述 2 准备工作 3.SDK目录结构如下: 4 W800编译固件编译 4.1 安装MSYS到本地: 4.2增加国内软件更新源 ​编辑4 ...

  9. 燕雀安知鸿蒙之志,笔点酷玩 篇一百零三:燕雀焉知鸿鹄之志:华为智慧屏V65开箱初体验...

    笔点酷玩 篇一百零三:燕雀焉知鸿鹄之志:华为智慧屏V65开箱初体验 2019-12-30 23:12:00 23点赞 17收藏 42评论 随着手机等智能设备的崛起,电视机已经从90年代的"家 ...

最新文章

  1. 腾讯云Ubuntu挂载硬盘空间
  2. myeclipse2014如何创建user library
  3. python 慕课课程笔记(一)
  4. Windows 2003下网络负载平衡(负载均衡)的配置
  5. matlab迭代次数,怎么知道程序中的迭代次数呢
  6. java 获取classpath下文件多种方式
  7. spring-boot使用教程(一):让程序跑起来
  8. 【英语学习】【WOTD】remittance 释义/词源/示例
  9. 八卦图代码matlab,12行javascript代码绘制一个八卦图_javascript技巧
  10. 《产品经理的第一本书》--产品经理职责
  11. Cannot locate a 64-bit Oracle Client library:The specified module could not be found.
  12. 7-3 人民币与美元汇率兑换程序 (10分)
  13. oracle wire protocol,WMB 8.0.0.2 在linux下面怎么配置连接ORACLE数据库
  14. 一窥Memory测试算法及自我修复机制
  15. 算法语句高中数学计算机,高中数学《基本算法语句》文字素材3 新人教A版必修3...
  16. Vue中使用防抖与截流
  17. 减少USB 1.1 2.0 端口驱动程序延时_旅行伴侣 紫米65W单USB-C口PD快充头 双十一不可错过数码单品好物...
  18. adb命令之:手机与电脑文件之间的粘贴复制
  19. vs 如何配置组件 c语言,VS Code配置C语言开发环境的超详细教程
  20. 100元钱买100只鸡

热门文章

  1. 微信开发笔记之-用户绑定
  2. Python实现栈及其简单应用
  3. vue 企业发展历程动画_三维动画的发展简史
  4. 发一些转载PS视频教程
  5. 计算机的发展历程(计算机组成原理知识点总结)
  6. 上海出租车是如何计费的?
  7. 专访|威威玮炜蜜汁同框的背后,看ofo小黄车的野心与坚持
  8. 手机数据恢复软件该如何使用
  9. 工程师的自我修养:全英文技术学习实践
  10. Blink SQL UNION ALL语句