背景介绍:2019年12月19日在面板包偶然发可以免费申请测评GD32VF103开发板,欣喜万分;在这之前各大技术论坛说是已经有国产兆易创新的RISCV指令集的MCU发布的事情,一时间摩拳擦掌想购入一块开发板回来,体验一下我天朝自己产的MCU和外国货的区别,期盼国产自强的那一天,不为别的只为看技术文档的时候不那么累。 下面我就从硬件电路,工程搭建,和固件库和调试的基本使用等方面来谈谈我对这款国产MCU的粗略看法,以求抛砖引玉,因个人水平有限评测过程难免不当甚至错误的地方,烦请大神批评斧正。

一、硬件篇:

1、开箱预览,如其他评测一样豹子标的白色外翻盒子,两篇薄如蝉翼的缓冲薄膜,两根白色的数据线,一款蓝色的开发板。包装略显简单,但是对于一个专注技术而不是外观的人来说已经足够了。

2、开发板预览,官方提供了详细的关于开发板的资料,原理图,硬件说明手册,固件手册等,先上图吧,我单独标了一下开发板各个功能模块,开发板几乎板载了所有的指控IC包含的功能,单独引出了主控IC可用的80多个IO口,所以当你入手这款开发板之后就连调试器也不用另外购买,板载的官方调试器就可以满足你所有的需求。

3、板子设计精良简洁,每个功能模块都标有字符说明,一目了然,抬手一看就知道是什么功能,再配备官方提供的原理图即使入门级别的选手也能轻松搞清楚。

4、这款开发板的主控IC使用的是兆易创新自主开发的基于RISC-V指令集的国产MCU,这款MCU也是兆易创新目前唯一一款RISC-V系列的芯片,而且板载的GD32VF103VBT6是其系列最高配的工业级芯片。

二、开发环境篇

1、了解完开发板的基本情况之后在来看看该开发板所使用的IDE,毕竟没有好的开发环境再好的硬件配置想轻松使用起来也是让人头疼的一件事情,由于GD32VF103系列芯片使用的是芯来科技提供的代号为《Bumblebee》IP内核,所以开发环境需要到芯来科技官网下载下,芯来科技

2、官方只提供了基于windows的集成开发环境,其他系统的用户只能自己搭建开发环境了。该IDE也是基于一个开源项目Eclipse,官方已经配置好了一切的一切。也就是说你下载下来IDE只需要做的工作量几乎为零,不像IAR,Keil等要配置好多东西。

3、关于怎样建立一个工程,官方已经提供了非常详细的手册,这里我就不复述了,文章末尾会附上相应的配置文件,根据配置文件就可以建立一个工程,事实上实际的建立 一个工程远比官方文档说明的要简单的多。我们自己需要配置环境的步骤少,这样可以把更多的精力放在怎样去编写代码。

三、官方固件篇

1、使用IDE建好一个工程之后我们面临的一个问题就是写代码,现在的MCU由于集成了更多的内部资源,如果像51单片机那样直接去操作寄存器那简直是不敢想的一件折磨人的事情,为此GD和一线国际大厂ST的一样为芯片提供了完善的固件库,加快了用户的开发进度。

2、使用过ST单片机的同学都知道ST有一个非常完善的标准固件库,并且在相对高端的MCU推出了更完善的HAL库,方便在不同产品上的代码移植工作,GD也是一样提供了一个标准的固件库,估计在日后产品线更加丰富之后也能推出类似HAL的固件库,下面我们来对比ST的标准固件库来了解一下GD的固件库。

3、提供固件库之后最重要的事需要有一个固件库的说明和相应的编程手册,这方面ST和GD做的都非常棒,提供了完善的资料,重要的区别是GD提供的是官方编写的中文版资料,ST的大多是技术爱好者自行翻译的中文(英文的对于大多数国人来说晦涩难懂),这就造成因为翻译的问题导致有些细节的地方不准确。

4、不论是ST还是GD的开发流程都大同小异,比如说一个端口的初始化都是一样的,其中一个的区别就是,GD初始化采用的是函数的方式,ST采用的是结构体的方式,比如说官方提供的COM初始化的函数就能看出来,每一个步骤都对应一个函数,而ST的是先配置一个结构体,然后用一个init的函数来完成初始化。

5、除了以上编程思维方面的区别其他的感觉一样,用过ST的同学想上手GD是一件很容易的事情。

四、调试篇

1、之前说过了开发板自带调试器也预留了JlTAG调试接口,对于没有JLink调试器的同学,板载的完全就够了,在建立完工程之后都不用配置调试器,直接点击那个小蜘蛛按钮就可以进行调试。

2、关于调试给我的感觉就是,调试速度慢,由于我没有JTAG调试器不知道是板载调试器的问题还是调试软件优化的问题,打上断点之后命中速度比较慢。另外一个好的地方就是借助Eclipse的强大和调试器的配合可以很方便的看到内存寄存器的状态。

总结: 

  从申请通过就想拿这个开发板做点东西,那时候手头刚好有一个小项目,然后就想用这个开发板来做,但是项目时间紧开发板发货时间有点长,无奈只能用ST的MCU来做了。不过收到这块开发板的是兴奋的,作为一名电子爱好者,一直期望用到国产的芯片做点东西,虽然这次错过了,不过我依然想抽时间好好研究一下这个开发板,初步是想完成芯片的IAP功能,GD的片子虽然内置了bootloader但是必须先配置引脚启动才能实现从串口下载程序,IAP的功能就是想在线热更新程序。
  这几天一直忙其他的事情,只能晚上或者周末来研究这块开发板,初步体验还是比较棒的,但是缺点也有,第一,就是固件资料,文档资料更新太随意,固件有个1.0版本,在下载页面又挂了一个1.01版,居然里面没有任何更新说明,固件库居然还有错误(RISCV/write.c,使用printf函数输出不加换行符号不能正常输出),全凭用户自己猜。第二,要下载资料什么的居然要去第三方网站下载,各种资料杂揉在一起看的眼花。第四,官方网站既然没有中文版,没有资料下载通道,你看看咱国产的STC,那最起码还有一个官网提供技术支持。估计还有其他的吧,后面深入研究发现了再说。
  总之,国产芯刚刚起步各种问题在所难免,但还是希望官方能能认真对待,尤其是客户服务这一块,把资料弄完善一些,细节的地方多做做。

附件下载

【兆易创新RISC-V开发板评测】01.干货分享的更多相关文章

  1. 米尔科技MPSoC开发板评测

    米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 — XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...

  2. 【ST开发板评测】使用Python来开发STM32F411

    前言 板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试一下,记录移植过程. MicroPython是 ...

  3. (转载)跟Classic ARM 处理器说拜拜——Atmel SAMA5D3 Xplained开发板评测

    2014 年 4 月 10 日 时间: 下午 3:15 作者: 幸得安然 电子产业的蓬勃发展带来了史无前例的生活.生产大跃进,但是,人们在享受发展喜悦的同时又不得不面临现实现状的囧境--在以移动电子设 ...

  4. 【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照

    关于uFun学习板--"满满的爱和正能量" uFun是由@张进东 张工组织发起的一个开源的学习板,设计初衷是为了帮助学生更好的理解电子知识和开发技巧,同时又能对学生毕业找工作有很明 ...

  5. 米尔电子i.MX8开发板评测

    基于 NXP 公司的i.MX8M 系列芯片的高性能开发平台 MYD-JX8MX开发板.是采用核心板(MYC-JX8MX)加底板(MYB-JX8MX)的形式,提供了 HDMI,LVDS(或 MIPI), ...

  6. 【ST开发板评测】Nucleo-F411RE开箱报告

    前言 面包板又举办开发板试用活动了,很荣幸能获得一块ST官方的Nucleo-F411RE开发板,感谢面包板社区和ST意法半导体的赞助,这是我第一次试用官方的开发板,收到板子后查了一些关于ST官方开发板 ...

  7. 开发板免费领!腾讯云IoT应用创新大赛正式启动!

    大赛简介 腾讯云IoT应用创新大赛是腾讯云面向物联网领域举办的大型竞赛,通过腾讯云IoT全链路产品能力,开放平台和服务,与广大开发者共同创新,孵化优秀的IoT产品和解决方案,共同构建IoT应用生态. ...

  8. 千呼万唤始出来——uFUN开发板2.0开箱评测

    前言 今年3月,我参与了面包板社区组织的第一批uFUN开发板评测活动,并有幸能获得试用机会,那是我第一次了解到uFUN这个项目及背后的故事,4月份,uFUN 2.0版本来了,收到了张工送的一块样板,后 ...

  9. NXP恩智浦VEGA织女星开发板免费申请!

    前言 大概两周前申请了一块NXP恩智浦的开发板,今天终于收到了!在这里推荐给大家,官方网站刚上线一个月左右,目前申请的人还不算多,感兴趣的朋友可以申请一个,体验一下这个四核性能怪兽.大厂就是大气,包装 ...

随机推荐

  1. CSS的布局之文档流,与行内/块级元素的延伸

    文档流,即(position:stiatic),是html布局机制的默认状态. 文档流在排列的过程中,块级元素从上到下,行内元素,从左到右. ·块级元素 <div> <h系列> ...

  2. HTML的列表标签和表格标签

    网页的列表和表格 列表的分类 无序列表 有序列表 自定义列表 有序列表 <!--有序列表--><ol>    <li>辽宁</li>    <li ...

  3. [C#] 委托与匿名方法

    using System; namespace 匿名函数 { class Program { delegate void TestDelegate(string s); static void M(s ...

  4. angularJS 十六进制与字符串相互转换

    angular 将字符串数据转换为十六进制数据 /** * @Description: TODO 字符串转16进制方法 * @author wjw * @date 2019年9月18日16:35:32 ...

  5. 关于Dev-C++的安装以及基本使用方法

    我觉得Dev-C++是一款小巧方便的编译器,就给那些刚刚学习编程的同学讲一下这个软件的安装和基本的编译以及一些使用的技巧. (完全是傻瓜式的截图和教程,内容过于冗余,主要是考虑到这些新生没有接触过编程 ...

  6. es7实现数学乘方

    //math.pow简写方法 console.log(2 ** 6)

  7. js加密(五)产品目录

    1.  url:http://www.300600900.cn/ 2. target: 3. 简单分析 偶然发现,这个网站的加密,和landChina加密一模一样,js函数的名字都一样...所以,只贴 ...

  8. 闲来无事.gif

  9. AcWing 870. 约数个数

    #include <iostream> #include <algorithm> #include <unordered_map> #include <vec ...

  10. h5 datalist标签获取值

    今天使用datalist标签时,想要获得选中的值,发现使用datalist标签上的val()输出结果一直都是空的 后面改用配套的input获得值 代码如下 <!DOCTYPE html> ...