共和年间,河北人码字为生。搞嵌入,忘编程之深浅。偶遇Grbl,左右数千行,中无杂碎,注释完善,性能极致,码农甚异之。遂前往,一探究竟……
Grbl是一款开源高性能,此成本的,针对Arduino/AVR328芯片的嵌入式G代码编译和运动控制器。Grbl性能高,成本低,所以经常被爱好者们用于制作小型CNC,激光雕刻机,写字机等。
通常,使用Grbl是非常简单的,只需要把编译好的Grbl固件烧录到Arduino开发板上,配合CNC扩展板就可以使用了。但是如果我们需要用于设计非标准的机器时该怎么办呢?我们可以修改Grbl的源码并重新编译,但是Grbl几乎榨干了Atmega328p的硬件资源,很难再此基础上扩展新的功能。新的MCU层出不穷,我们希望能在硬件比较丰富的MCU上实现Grbl的功能,也就是Grbl的移植。但是Grbl是针对AVR指令集的Atmega328p这款芯片开发的,里面包含了相当多的底层寄存器操作,并且利用了atmega328p的每一个灵巧特性来实现特定功能,这使得移植Grbl变得非常困难。所以我们需要先理解和掌握Grbl,然后再把硬件部分代码抽出来,针对另一个平台进行移植。
本专栏包含Grbl源码精度与解析,代码行级中文注释并提供丰富详尽的案例展示。包含Grbl的架构设计,Grbl的抽象层次,Grbl中对底层硬件的操作,如定时器,中断,串口等。希望通过对Grbl的源码解析,对Grbl的移植提供帮助。