这是第二次在这里发帖,很不幸过去一个多月不断尝试在公司内部引进WCH的RISC-V芯片失败。不是因为对芯片本身的硬件配置和可靠性存有疑虑,而是去说服开发人员去使用MRS这个奇葩的东西。MCU做的再好,如果没有人去将之实现到实际应用的产品里面完成所需的功能,都是徒劳。归根结底,执行事情的主要还是开发人员。
这篇帖子可能辜负了MRS的开发人员和WCH的一些定制设计的人员。但是还是要说出来。
在这里回顾一下过去一个多月的几个片段:
1,为什么一直纠着MRS不放?MRS具备着Windows下快速开发特点,一键打开范例代码,Ctrl+C, Ctrl+V一通操作,一个基本的功能就立刻实现,听上去多么美好啊!
可惜,资深开发人员,并不这么看。RISC-V从出生开始就有鲜明的“开源”标签,但凡对RISC-V或者单片机内核有浓厚兴趣的,不管是芯片级(FPGA实现内核)还是应用级(toolchain交叉编译开发流程),都更多的关注这个开源开发流程,而不是一个定制好的IDE程序。MRS的集成开发环境本身并没有问题,有朝一日做好了,碾压Keil和IAR都不是梦。但是,RISC-V却是开源的啊?开源的东西,为什么到了某些人手里,就变成了拿来主义?某些IDE拿开源Eclipse的芯,包Keil的外皮,东拼西凑却标榜“好用”,优于开源的公版开发,不是不好用,而是不敢用。这种方式下出来的产品最终表现的都往往一致:用户只管去安装和使用,产品资料遮遮掩掩,尽量不公开。等遇到开发问题了,找谁去求助!
归结一句话,开源的RISC-V,终归要在开源开发环境下,才更有前途。不是MRS不好,而是无法回答几个问题:
1),WCH为什么至今没有官方发布toolchain, 兼容的openocd源代码或者预编译包,而是借MRS之手?放眼行业内能属的上号的MCU厂商,至少也是官方有预编译的toolchain和调试工具发布。MRS究竟有和魅力能让WCH如此?君不见ST或者TI把软件开发页面自动转向IAR或者Keil网站?必有隐情!
2),这个社区有一个很著名的回答,就是如果不用MRS而用公版开发,那么WCH的RISC-V就无法发挥很多定制化的功能。从未见一个芯片厂商公然为第三方开发工具站队的。这是第一次。能不能发挥定制版MCU最大性能,根本上是官方自己的toolchain交叉编译工具有没有做好并投放给所有人,而不是一个IDE来决定的。从道理上说,MRS里面设置成公版toolchain路径,照样不能发挥最大性能。
3),说服别人使用MRS来开发开源的RISC-V其实非常简单,就是让开发者先走通用的开源开发流程,比如Eclipse甚至VS code,配置Toolchain和调试,完整走一遍,这算第一条路。然后再使用MRS的一条龙解决方案,再走一遍。如果开发者发现用MRS的对比下优点,那是很自然会切换的。可惜,第一条路,行不通,实在想走,必须先绕道MRS来反向观察第一条路是怎么铺的。WCH做开源的MCU却没有自己去公布完整的第一条路,让人汗颜!
2,为什么第一条路偏偏走不通?这个问题接着第一点的第三个问题。
过去几个月,我们尝试使用公版的toolchain,在MAC, Linux都做了编译,也使用过Si-Five的预编译包,都可以正常编译出固件。我们使用MRS公布的Linux toolchain,也成功实现交叉编译。但是,这条路卡在了WCH这个奇葩的调试器上。
1),WCH宣称阉割掉JTAG,只支持便捷的SWD调试。但是这个SWD却不是标准的和Jlink10 兼容的协议。可惜的是,开发文档却找不到这个定制版SWD的只言片语。敢问这个SWD到底怎么样?是不是只能用不开源的WCH-LINK才能搭配?
开源就是这么神奇,一旦某一个节点开始不开源了,那么再下游的都不是开源的了。
我们遇到的最大问题,就是OpenOCD不支持WCH-Link,最后勉强找到这个https://github.com/kprasadvnsi/riscv-openocd-wch
在这个基础上重新编译OpenOCD之后,却又发现,WCH-Link因为被windows下升级到了新版固件,和这个版本兼容性又不好,频繁掉线。可问题是,WCH-Link不是开源的,不同固件版本也不知从何获取,更主要的是,这个riscv-openocd-wch并未声明兼容哪个版本!目前更不敢奢望WCH-Link能做出独立的快平台GDB server!
2),目前比较稳定的支持WCH的OpenOCD,只有MRS预编译的toolchain提供下载,也不可能会像https://github.com/kprasadvnsi/riscv-openocd-wch这样公布源代码。
可悲,第一条路走的伤痕累累,然后遥望MRS在那里招手,来吧,我们什么都有!可是,你们那些是怎么来的?WCH私信发给你们的吗?有何桌子底下的交易?三个字,不敢用。
最后,分享一个外链,也是一位热爱WCH产品的开发者的悲鸣:
https://bbs.21ic.com/icview-3127640-1-1.html
希望官方多多重视。眼下RISC-V方兴未艾,早期的路没有走正,再往后要纠正就很难了。谢谢。