背景介绍:2019年12月19日在面板包偶然发可以免费申请测评GD32VF103开发板,欣喜万分;在这之前各大技术论坛说是已经有国产兆易创新的RISCV指令集的MCU发布的事情,一时间摩拳擦掌想购入一块开发板回来,体验一下我天朝自己产的MCU和外国货的区别,期盼国产自强的那一天,不为别的只为看技术文档的时候不那么累。 下面我就从硬件电路,工程搭建,和固件库和调试的基本使用等方面来谈谈我对这款国产MCU的粗略看法,以求抛砖引玉,因个人水平有限评测过程难免不当甚至错误的地方,烦请大神批评斧正。
一、硬件篇:
1、开箱预览,如其他评测一样豹子标的白色外翻盒子,两篇薄如蝉翼的缓冲薄膜,两根白色的数据线,一款蓝色的开发板。包装略显简单,但是对于一个专注技术而不是外观的人来说已经足够了。
2、开发板预览,官方提供了详细的关于开发板的资料,原理图,硬件说明手册,固件手册等,先上图吧,我单独标了一下开发板各个功能模块,开发板几乎板载了所有的指控IC包含的功能,单独引出了主控IC可用的80多个IO口,所以当你入手这款开发板之后就连调试器也不用另外购买,板载的官方调试器就可以满足你所有的需求。
![53e0e2e6bbb7844924a51897af0b408e.png](https://i-blog.csdnimg.cn/blog_migrate/2fd817b61e181824c2baf7f05ec7e8f1.jpeg)
3、板子设计精良简洁,每个功能模块都标有字符说明,一目了然,抬手一看就知道是什么功能,再配备官方提供的原理图即使入门级别的选手也能轻松搞清楚。
4、这款开发板的主控IC使用的是兆易创新自主开发的基于RISC-V指令集的国产MCU,这款MCU也是兆易创新目前唯一一款RISC-V系列的芯片,而且板载的GD32VF103VBT6是其系列最高配的工业级芯片。
二、开发环境篇
1、了解完开发板的基本情况之后在来看看该开发板所使用的IDE,毕竟没有好的开发环境再好的硬件配置想轻松使用起来也是让人头疼的一件事情,由于GD32VF103系列芯片使用的是芯来科技提供的代号为《Bumblebee》IP内核,所以开发环境需要到芯来科技官网下载下,芯来科技。
2、官方只提供了基于windows的集成开发环境,其他系统的用户只能自己搭建开发环境了。该IDE也是基于一个开源项目Eclipse,官方已经配置好了一切的一切。也就是说你下载下来IDE只需要做的工作量几乎为零,不像IAR,Keil等要配置好多东西。
4、关于怎样建立一个工程,官方已经提供了非常详细的手册,这里我就不复述了,文章末尾会附上相应的配置文件,根据配置文件就可以建立一个工程,事实上实际的建立 一个工程远比官方文档说明的要简单的多。我们自己需要配置环境的步骤少,这样可以把更多的精力放在怎样去编写代码。
三、官方固件篇
1、使用IDE建好一个工程之后我们面临的一个问题就是写代码,现在的MCU由于集成了更多的内部资源,如果像51单片机那样直接去操作寄存器那简直是不敢想的一件折磨人的事情,为此GD和一线国际大厂ST的一样为芯片提供了完善的固件库,加快了用户的开发进度。
2、使用过ST单片机的同学都知道ST有一个非常完善的标准固件库,并且在相对高端的MCU推出了更完善的HAL库,方便在不同产品上的代码移植工作,GD也是一样提供了一个标准的固件库,估计在日后产品线更加丰富之后也能推出类似HAL的固件库,下面我们来对比ST的标准固件库来了解一下GD的固件库。
![21fad63a7d95d8edc27ae29139bb476c.png](https://i-blog.csdnimg.cn/blog_migrate/0b455d8b367566c5ef3aa4936e72df5f.jpeg)
3、提供固件库之后最重要的事需要有一个固件库的说明和相应的编程手册,这方面ST和GD做的都非常棒,提供了完善的资料,重要的区别是GD提供的是官方编写的中文版资料,ST的大多是技术爱好者自行翻译的中文(英文的对于大多数国人来说晦涩难懂),这就造成因为翻译的问题导致有些细节的地方不准确。
4、不论是ST还是GD的开发流程都大同小异,比如说一个端口的初始化都是一样的,其中一个的区别就是,GD初始化采用的是函数的方式,ST采用的是结构体的方式,比如说官方提供的COM初始化的函数就能看出来,每一个步骤都对应一个函数,而ST的是先配置一个结构体,然后用一个init的函数来完成初始化。
![5f4281c36d8b2cc3e60fc056e9f1d28f.png](https://i-blog.csdnimg.cn/blog_migrate/2ad24315a5321bd56ffaba50dd6d623e.jpeg)
5、除了以上编程思维方面的区别其他的感觉一样,用过ST的同学想上手GD是一件很容易的事情。
四、调试篇
1、之前说过了开发板自带调试器也预留了JlTAG调试接口,对于没有JLink调试器的同学,板载的完全就够了,在建立完工程之后都不用配置调试器,直接点击那个小蜘蛛按钮就可以进行调试。
![d19b25a01b143a5313d4369480d2519a.png](https://i-blog.csdnimg.cn/blog_migrate/f890cc4ae21aade57a96635f147f9e06.jpeg)
2、关于调试给我的感觉就是,调试速度慢,由于我没有JTAG调试器不知道是板载调试器的问题还是调试软件优化的问题,打上断点之后命中速度比较慢。另外一个好的地方就是借助Eclipse的强大和调试器的配合可以很方便的看到内存寄存器的状态。
总结:
从申请通过就想拿这个开发板做点东西,那时候手头刚好有一个小项目,然后就想用这个开发板来做,但是项目时间紧开发板发货时间有点长,无奈只能用ST的MCU来做了。不过收到这块开发板的是兴奋的,作为一名电子爱好者,一直期望用到国产的芯片做点东西,虽然这次错过了,不过我依然想抽时间好好研究一下这个开发板,初步是想完成芯片的IAP功能,GD的片子虽然内置了bootloader但是必须先配置引脚启动才能实现从串口下载程序,IAP的功能就是想在线热更新程序。
这几天一直忙其他的事情,只能晚上或者周末来研究这块开发板,初步体验还是比较棒的,但是缺点也有,第一,就是固件资料,文档资料更新太随意,固件有个1.0版本,在下载页面又挂了一个1.01版,居然里面没有任何更新说明,固件库居然还有错误(RISCV/write.c,使用printf函数输出不加换行符号不能正常输出),全凭用户自己猜。第二,要下载资料什么的居然要去第三方网站下载,各种资料杂揉在一起看的眼花。第四,官方网站既然没有中文版,没有资料下载通道,你看看咱国产的STC,那最起码还有一个官网提供技术支持。估计还有其他的吧,后面深入研究发现了再说。
总之,国产芯刚刚起步各种问题在所难免,但还是希望官方能能认真对待,尤其是客户服务这一块,把资料弄完善一些,细节的地方多做做。
作者:燎原创客
![392136aee59b73e78e4a8627bc4ec69c.png](https://i-blog.csdnimg.cn/blog_migrate/1db2740ed9944f6f1348305c2e8c20dd.jpeg)