目录

介绍

W806是32位MCU, 1MB flash, 288K内存, 是W800去掉无线部分的版本, 这个芯片背后是T-HEAD 800 系列. 这个月HLK还会上架带无线部分的版本, 型号是W801.

T-HEAD 500, 600 和 800 系列都是基于 CSKY 架构, 其中 T-HEAD 500 和 600 系列基于 CSKY V1, T-HEAD 800 系列基于 CSKY V2. T-HEAD 800 系列的 ABI 是 CSKY ABI V2.

关于W806

题外话, 顺便了解一下. 2006年初的汉芯事件, 其中一个关键人物是这个项目的评审专家组组长严晓浪, 严是中天微的创始人, 而W806呢, 其实就是中天微的XT804内核给联盛德贴牌的产品.

当时这个圈子, 基本上都是从moto-freescale一脉相承, 汉芯虽然是用dsp56800打磨, 但是确实弄到了dsp56800的源代码, 中天微的自定义指令集CSKY v1, v2, 也是moto-freescale m-core的一个分支. 杭州中天微系统有限公司2001年成立, 主要领域是嵌入式CPU和自定义指令集, 前面两代CSKY v1,v2是兼容m-core(moto rce)的定制化指令集, 2015年前后开始与阿里合作, 2018年4月正式被阿里收购, 改名叫平头哥, 同年年底发布的v3转向了开源的risc-v. 联盛德是2017年前后开始参乎进来的, 成为阿里iot伙伴之后也就顺理成章的在中天微的芯片基础上发布产品, 2018年发布了W600系列, 2019年发布了W800系列.

中天微的产品系列是CK61x, CK80x, CK81x系列, CK90x系列, 其中

  • CK61x 属于CSKY v1, 发布时间不详, 和T-HEAD 500,600 是同一个系列
  • CK80x, CK81x 属于CSKY v2, 2011年前后发布, 和T-HEAD 800是同一个系列.
  • CK90x 属于risc-v, 2018年9月发布, 之后发布的新品, 指令集都是基于risc-v

关于CSKY架构

CSKY架构在2018年底被合并入Kernel. 关于这个架构, Bergmann的评论:

In commenting on C-SKY, Arnd Bergmann commented that C-SKY might end up being the last new CPU architecture added to the kernel... He rightfully points out that most vendors now not part of the ARM/x86/POWER bandwagon are pursuing RISC-V based designs, which is already part of the mainline kernel. For low-power devices ARM and RISC-V are likely the future and with those architectures there isn't much of an advantage for hardware vendors to pursue their own architectures from scratch. On the high performance computing front, nothing is expected to unseat x86_64 and POWER anytime soon... If any new CPU targets are added to the Linux kernel in the coming years, it's likely to be some virtual target. One more general comment: I think this may well be the last new CPU architecture we ever add to the kernel. Both nds32 and c-sky are made by companies that also work on risc-v, and generally speaking risc-v seems to be killing off any of the minor licensable instruction set projects, just like ARM has mostly killed off the custom vendor-specific instruction sets already. If we add another architecture in the future, it may instead be something like the LLVM bitcode or WebAssembly, who knows?

另一个评论:

While there isn't anything preventing new architectures from being introduced, the general trend is that fewer and fewer architectures are being developed. x86, ARM, and now RISC-V are fulfilling more and more use cases. It's much cheaper to tweak an existing processor or platform than to invent your own from nothing. With RISC-V, this becomes even more the case since there are no royalties involved. MIPS also went open source recently, which is popular in routers and embedded devices. AFAIK, C-SKY doesn't exist for technical reasons, it only exists because the Chinese wanted their own architecture.

HLK-W806 开发板

这个板子在淘宝上的实际售价差不多在8 RMB, 加上一些商家优惠, 可以真正做到低于0.99 USD, 这个价格的32位MCU, 性价比完胜STC的那些8位MCU了.

正面

背面

参数

  • MCU – WinnerMicro W806 32-bit XT804 MCU

    • 240 MHz
    • 1MB Flash
    • 288KB RAM
    • FPU, DSP, crtypto engine
  • 2x24排针
  • 1x SDIO host with support for SDIO 2.0, SDHC, MMC 4.2
  • 1x SDIO device up to 200 Mbps
  • Up to 6x UART, 1x I2C
  • 1x SPI slave up to 50 MHz, 1x master/slave SPI
  • LCD controller with support for 4×32 interface
  • 1x I2S
  • Up to 4x ADC (16-bit, 1KHz sampling rate)
  • Up to 44x GPIOs, 5x PWM, PWM最高到160KHz, 分辨率比较低只有8bit
  • Up to 15 touch sensors
  • ISO/IEC 7816 smart card interface
  • Reset, Wakeup, 3.3V, and GND signals
  • Debugging – CH340 via micro USB port
  • Misc – Reset and Boot buttons
  • Power Supply – 5V via micro USB port
  • 尺寸65 x 26 mm

使用

下载

安装

上面下载的tar.gz文件外层路径用的是./目录, 建议放到一个单独的目录中解压, 或者指定解压目录解压目录, 参考命令如下

mkdir csky-elfabiv2-tools-x86_64-minilibc-20210423
tar xvf csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz -C csky-elfabiv2-tools-x86_64-minilibc-20210423/

移动到/opt下, 目录可以自己定, 设置权限禁止普通用户修改

cd /opt/toolchains/
sudo mv ~/Download/csky-elfabiv2-tools-x86_64-minilibc-20210423/ .
sudo chown -R root:root csky-elfabiv2-tools-x86_64-minilibc-20210423/

不需要添加系统路径

编译

导出此项目

git clone https://github.com/IOsetting/wm-sdk-w806.git

运行menuconfig, 配置工具路径

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Toolchain Configuration -> 第二个toolchain path, 将刚才的路径填进去, 需要完整路径, 带最后的斜杆, 例如

/opt/toolchains/csky-elfabiv2-tools-x86_64-minilibc-20210423/bin/

其他不用动, Save后退出menuconfig

执行编译

make

写入开发板

首先通过dmesg,lsusb, ls /dev/tty*等命令确定自己开发板在系统中对应的USB端口, 例如ttyUSB0.

运行menuconfig, 配置端口名称

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Download Configuration -> download port, 填入开发板在你的系统中对应的USB端口, 例如ttyUSB0, 注意这里只需要填纯端口名, 不需要用完整的路径. 可以调高波特率加快下载,只支持115200, 460800, 921600, 1000000, 2000000, Save后退出menuconfig

执行烧录

make flash

根据输出的提示, 按一下reset键就会开始下载. 如果前一次写入的固件已经开启了USE_UART0_AUTO_DL则不需要按键, 会自动开始下载

enerate compressed image completed.
build finished!
connecting serial...
serial connected.
wait serial sync......... <----- 这里按下reset
please manually reset the device. <----- 或者这里
....
serial sync sucess.
mac CC-CC-CC-CC-CC-CC.
start download.
0% [###] 100%
download completed.
reset command has been sent.

下载完成后, 下载工具会发送复位指令, 复位成功后程序会自动开始执行. 如果自动复位失败, 则需要按一下Reset键手工复位.

更多下载选项

显示串口列表

make list

烧录并打开串口监视器

make run

只打开串口监视器

make monitor

问题

如果出现can not open serial make: *** [tools/w806/rules.mk:158: flash] Error 255错误, 检查一下是否有其他串口软件占用了这个端口, 如果有需要先关闭

参考

联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明的更多相关文章

  1. 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  2. Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】

    本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...

  3. HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置

    目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...

  4. Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

    前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...

  5. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  6. Ubuntu16.04安装后开发环境配置和常用软件安装

    Ubuntu16.04安装后1.安装常用软件搜狗输入法+编辑器Atom+浏览器Chome+视频播放器vlc+图像编辑器GIMP Image Editor安装+视频录制软件RcordMyDesktop安 ...

  7. 从零开始安装搭建win10与ubuntu20.04双系统开发环境——集安装、配置、软件、美化、常见问题等于一体的——超详细教程

    目录 **前言 ** 关于系统安装配置与软件安装 一.Win10安装ubuntu20.04双系统 1.按照自己的需求分区 2.配置软件镜像源 软件包管理工具介绍 更换APT源--使用国内镜像 3.解决 ...

  8. Ubuntu 14.04下java开发环境的搭建--1--JDK的安装

    说明:以下内容均是本人个人经验,接触ubuntu系统是从10.04开始,转眼转眼之间已经四年了,经常浏览各种相关论坛,发现从我刚开始基础到现在,论坛上还有很多人在问关于JAVA环境配置的相关问题.所以 ...

  9. Ubuntu16.04下的stm32环境配置

    安装stlink 必须安装libusb-1.0-0-dev, 其他安装不起作用 -dev git clone https://github.com/texane/stlink.git cd stlin ...

随机推荐

  1. python中的 * 和 ** 作用含义

    python中的 * 和 ** ,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的 一. 打包参数 * 的作用:在函数定义中,收集所有位置参数到一个新的元组,并将整个元组赋值给变量 ...

  2. 对cpu与load的理解及线上问题处理思路

    cpu如何计算 当我们执行top命令的时候,看到里面的值(主要是cpu和load)值是一直在变的,因此有必要简单了解一下Linux系统中cpu的计算方式. cpu分为系统cpu和进程.线程cpu,系统 ...

  3. 【c++ Prime 学习笔记】第15章 面向对象程序设计

    15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是:数据抽象.继承.动态绑定 使用数据抽象,可将类的接口与实现分离 使用继承,可定义相似的类 ...

  4. AtCoder Beginner Contest 223

    AtCoder Beginner Contest 223 A是纯纯的水题,就不说了 B - String Shifting 思路分析 我真的sb,一开始想了好久是不是和全排列有关,然后读了好几遍题目也 ...

  5. Scrum Meeting 10

    第10次例会报告 日期:2021年05月30日 会议主要内容概述: 目前组员均无暇软工,进展较慢. 一.进度情况 我们采用日报的形式记录每个人的具体进度,链接Home · Wiki,如下记录仅为保证公 ...

  6. 百度OCR技术博客

    百度OCR工具链使用 百度OCR的API使用总体来说比较容易,主要步骤为:注册云平台并登录,选择服务并创建应用,保存API Key以及Secret Key,选择调用API. 注册登录百度云平台 首先需 ...

  7. numpy中的nan和常用方法

    1.数组的拼接 import numpy as np t1 = np.array([[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11]]) t2 = np.array([ ...

  8. 数组中只出现过一次的数字 牛客网 剑指Offer

    数组中只出现过一次的数字 牛客网 剑指Offer 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. def FindNumsAppearOnce ...

  9. Luogu P1118 [USACO06FEB]数字三角形 Backward Digit Sums | 搜索、数学

    题目链接 思路:设一开始的n个数为a1.a2.a3...an,一步一步合并就可以用a1..an表示出最后剩下来的数,不难发现其中a1..an的系数恰好就是第n层杨辉三角中的数.所以我们可以先处理出第n ...

  10. 变量命名网站 Codelf

    程序员最头疼的事情除了头发以外就是给变量或函数命名,一开始学编程语言的时候还可以 abc.a1.x2 等方式命名,等到工作过程中开始真正的项目开发时,如果还是这样随意的命名,即使同事可以忍受你的 ab ...