嵌入式Zig比C更好用!刷抖音美女的好工具!——VScode或Clion在国产MCU梁山派上跑裸机Zig程序方法初探(一)

关键词Zig裸机开发、VScode、Clion、梁山派、GD32F470、Zig语言、龙芯1C103。

正经摘要

本文使用“The Better C”编程语言Zig,探索了在国产单片机GD32F470梁山派开发板上运行裸机Zig程序方法,探索了使用VScode和Clion这两款IDE的Zig嵌入式开发环境配置。该配置经过编译成功烧录上机,点灯成功。使用Zig进行嵌入式开发的优点包括但不限于:1. 简化多开发板适配的各种宏定义。2.比GCC的O0优化编译C还小的二进制文件,点灯最小几乎仅需600Byte!这种嵌入式开发路径相较于C的开发体验有极大提升,具有颠覆C语言的前景,值得广大嵌入式开发者探索一二,并对其进行完善。

不正经摘要舔狗程序猿阿豪想要追女神,不料三年未果,遂愤学Zig,看尽代码,最终阅尽美女,始得码道巅峰……

1. 正经背景

今年7月份被朋友推荐Zig语言,初次了解这个语言发现,好像和C语言没什么区别啊。再仔细一看教程,看起来入门难度不大,还能不用Rust的unsafe来直接操作寄存器,能导入C语言头文件进行调用,宣传说是“The Better C”。我不信,正好手里有块嘉立创生产的梁山派开发板,里面的单片机是GD32F470ZGT6,CPU核心是ARM Cortex-M4架构,正好来会一会这个Zig语言,看看是不是真如吹的这么牛逼。

2. 不正经的故事:阿豪想刷抖音妹

入门Zig第一关就给我拦住了:咋用Zig编程?

这里来讲一个我的舔狗朋友的故事。

2.1 马骝阿豪:我不当舔狗了!

只剩一根毛的程序猿马骝——阿豪,想追一个非常漂亮可爱的女生。可是他苦苦追求了三年,表白了好多次都没有成功,只好每隔一秒钟在抖音刷新一次美女来缓和自己的EMO情绪。可是一秒钟太短,在手机定闹钟每次间隔一秒钟也不太合适,怎么办呢?

它头上仅剩的一根毛忽然竖了起来,叮咚!想到一个好主意:阿豪回忆在初中的时候,他忽然对电子很感兴趣,想学习焊接电路板。物理老师添哥得知阿豪的志向,从口袋里掏出一个小包:

(类似于这样的,元器件没有焊接)

“阿豪啊,这是我最后一块开发板了,送给你玩啦!”

阿豪双手接过这块开发板,感激涕零,立马拿回家焊接。但是怎么也焊不上去,明明都是和网上一样的手法……后面才知道是工具不行。

咳咳,阿豪想起往事,不禁感慨万千。话说回来,怎么才能实现一秒钟提醒我换一个抖音美女刷呢?

“只要我做一个装置,里面有类似于跑马灯的其中一个灯,只要一个灯亮一下,我就换下一个妹妹刷,控制灯每隔一秒闪一次不就好了?”

阿豪觉得这是个好主意,一想到每秒能刷一个妹妹,每分钟能刷60个妹妹,心里就不EMO了。

“哼,我不当舔狗了!”

阿豪下定决心,说干就干。

2.2 想做秒刷抖音美女装置的马骝

首先,阿豪分析了一下这个装置的内容。这个装置需要一个单片机,控制一个LED灯亮灭。这样的电路和程序都很简单,一点挑战性都没有。

阿豪还想拿这个装置给女神炫耀。

于是他想用一个炫酷的语言实现。

“C有点太老了,不够炫酷。Rust太难了,虽然炫酷帅气牛逼炸天,但是我只有一根毛,学不会啊。Zig看起来不错,一根毛也能学会。”

选择完编程语言后,阿豪继续选择关键的器件——MCU。

“我是中国人,用国产芯片更帅。”

抱着这样的想法,阿豪开始搜刮家里积攒的芯片和开发板。

“论自主,龙芯公司的芯片是最自主的,国产流片、自主指令集、自主CPU IP核、连芯片开发指导思想都是毛泽东思想和中国特色社会主义,红得发光。用这个应该能狠狠地秀一波。”

阿豪充满自豪地掏出自己做的龙芯1C103开发板,开始分析它是否适合做Zig语言秒刷美女装置。

“芯片里面是龙架构(LoongArch32)指令集的CPU核LA132,有8KB的RAM和64KB的FLASH,支持SPI、IIC、PWM、ADC、路GPIO,点灯足够了。但是LoongArch和ARM指令集不同,OpenOCD和Zig都尚未完全支持,调试和编译都尚待完善,Zig虽然代码中留有LoongArch32/64的支持,但是编译起来就是报错,不能生成Bin文件。虽然用它很帅,但是只能用C编程,看来只能忍痛割爱了。”

阿豪忍住手里的颤抖放下了这颗流露着红色的开发板。开发板到桌面上翻了个身,露出了它的肚皮:

阿豪的心里更痛了。

“以后再倒腾你。”

说罢,顺手拿起它旁边的一块稍大的开发板:嘉立创设计的梁山派。

阿豪开始分析它是否合适:“里面搭载了兆易创新的单片机GD32F470ZGT6,这是国产版的STM32F407+++版本,但是“拆开了看里面都一样”,CPU核还是ARM Cortex-M4,不够帅。但是能用。”

单片机选好后,接下来阿豪终于可以开始编程了——吗?

还是没有。

阿豪还在精挑细选:我要用什么集成开发环境(IDE)写Zig裸机ARM架构程序呢?有一键部署的编程环境吗?

仔细搜罗网上文章,发现有VScode和Clion配置Zig环境的文章有很多,说明此路可行。
 

于是阿豪开始倒腾Zig编译器、ZLS、VScode、Clion、VScode……

【欲知后事如何,请听下回分解】

作者:星林湖月

物联沃分享整理
物联沃-IOTWORD物联网 » 嵌入式Zig比C更好用!刷抖音美女的好工具!——VScode或Clion在国产MCU梁山派上跑裸机Zig程序方法初探(一)

发表回复