1. 主页
  2. 文档
  3. GrblHAL Core核心文档
  4. 编译grblHAL

编译grblHAL

Web Builder(新的,正在进行中)

现在可以使用Web Builder 构建一些驱动程序。

它有一个用户界面,可以在其中选择驱动程序功能,并可以从中下载生成的固件。

如何烧写固件取决于驱动和板子,有的支持通过SD卡烧写,有的通过专用编程器烧写,有的通过USB烧写。我计划添加有关如何在 zip 文件中闪烁下载固件的文档。

这是一个概述:

准备

  • 将所选处理器的 grblHAL 驱动程序(如果作为 .zip 文件解压)下载到某个地方,如果基于 Eclipse 的 IDE 通常在您的项目工作区之外 – 如果对于 Arduino 它必须在您的 sketchbook 文件夹之外的某个地方。
    最好的下载方式是使用gitGithub desktop,因为这会自动获取所需的子模块。

单击驱动程序存储库页面中的绿色代码按钮时,将出现存储库 URL 或下载 ZIP按钮。

编译grblHAL

iMXRT1062 驱动程序示例(适用于 Teensy 4.x 板):

使用git命令行

打开命令窗口/控制台并cd转到要下载的目录,然后进行初始下载问题:

git clone --recurse-submodules https://github.com/grblHAL/iMXRT1062.git

这将为驱动程序创建一个目录并获取驱动程序和所有必需和可选的子模块。

对于以后更新cd驱动程序目录和问题:

git pull --recurse-submodules

使用Github 桌面(Windows 和 MacOS)

选择File > Clone repository…,然后选择URL选项卡,在Repository URL字段中粘贴或键入 URL并选择要下载到的目录(本地路径)(如果是默认建议的其他位置)。然后按克隆下载。

AFAIKT Github 桌面在获取更新时不会获取最新的子模块,因此必须使用命令行 git 或必须删除本地副本然后重新克隆。

使用Tortoise git(仅限 Windows)

我还没有安装这个,但应该可以使用。

下载压缩包

不幸的是,为驱动程序下载的 zip 文件不包含子模块代码,只有空文件夹,因此必须单独下载并复制到正确的文件夹中。作为最低限度的核心必须下载并复制到grbl文件夹,其他子模块依赖于my_machine.h.

一些驱动程序将链接的子模块“隐藏”在源代码树中——对于 iMXRT1062 驱动程序,可以看到它们,并从中打开,grblHAL_Teensy4/src文件夹,对于大多数它们从根目录可见。子模块显示为一个链接(通常为蓝色),并且@在文件夹名称后有一个字符后跟一个 id。
注意:最好按照驱动程序中提供的子模块链接进行下载,因为这可能导致代码与直接从核心或插件存储库下载的代码不同。如果不同的编译或运行时错误很可能会浮出水面。

编译时配置

请注意,在将驱动程序加载到 IDE 后更改配置文件必须通过在新位置编辑文件来完成。

对于基于 Eclipse 的 IDE,这可以通过从Project Explorer打开文件并在内置编辑器中编辑它们来完成。
对于 Arduino IDE,这有点复杂,因为无法从内置编辑器中查看文件。请参阅下文了解它们的位置。

涉及的文件有:

  • my_machine.h– 用于特定于驱动程序的选项,例如为哪个板编译和启用驱动程序功能。请注意,一些驱动程序没有此文件可用。
  • grbl/config.h– 适用于所有驱动程序通用的选项。

这两个通常是大多数最终用户需要修改的文件,至少my_machine.h应该检查并可能更改使用哪个板图作为最小值。

  • *_map.h– 板引脚分配等文件。

这些文件通常不应由最终用户更改,建议在需要时创建一个新文件。

  • driver.h– 用于特定于驱动程序的选项,处理编译器命令行选项中my_machine.h或来自编译器命令行选项的选定选项。
  • grbl/grbl.h– 用于基本设置。更改此文件中的设置可能会破坏发件人。
  • grbl/defaults.h– 对于可设置$<n>选项的默认值。除非添加新设置,否则不要更改这些。改写grbl/config.h或在运行时使用$<n>命令来设置值。

这些文件通常不应由最终用户更改。

开发环境

注意:开始之前,从 Arduino IDE 中删除之前安装的 grblHAL 库。否则,您将遇到编译问题!

在 Mac 上,Arduino 库位于~/My Documents/Arduino/libraries/.
在 Windows 上,它位于My Documents\Arduino\libraries.
在 Linux (Ubuntu) 上,它位于/usr/share/arduino/libraries

在下面的示例中,将xxx替换为您要为其编译的驱动程序名称。

  1. 启动 Arduino IDE
  • 确保您使用的是最新版本的 Arduino IDE!
  1. grblHAL_xxx将所选文件夹作为库加载到 Arduino IDE 中。
  • 选择Sketch > Include Library > Add .ZIP Library菜单。添加 .ZIP 库支持 .ZIP 文件或文件夹。在我们的例子中,没有 .ZIP 文件。

您可以通过检查File > Examples菜单确认库已添加,滚动到列表底部,您应该在其中看到grblHAL for xxx
重要提示:选择grblHAL_xxx驱动程序文件夹内的文件夹,该文件夹仅包含源文件和示例目录。如果您不小心选择了 .zip 文件或错误的文件夹,您需要导航到您的 Arduino 库,删除错误,然后重新执行第 2 步。

  1. 打开 grblHAL_xxx_Upload 示例。
  • 选择File > Examples > grblHAL for xxx > grblHAL_xxx_Upload
  1. 编译 Grbl 并将其上传到您的 Arduino。
  • 将开发板连接到计算机。确保您的电路板在Tools > Board: xxx菜单中设置为正确的,并且通过Tools > Port正确选择了端口。

选择Skecth > Upload菜单,grblHAL 应该编译并闪存到您的电路板!

基于 Eclipse 的 IDE

下面的示例中使用了 STM32F4xx 驱动程序,将其替换为您选择的驱动程序。请注意,不同的 IDE 之间的完成方式可能略有不同。

  • 在 STM32CubeIDE 中选择File > Import > General > Existing projects into workspace
  • 为Select root directory选择您的drivers/STM32F4xx文件夹。
  • 如果您希望将项目添加到当前工作区,请选中将项目复制到工作区。建议您这样做。
  • 单击完成
  • 右键单击该项目并选择Build project进行构建。

如何闪存会因不同的 IDE 和什么样的板而异。有些需要外部调试器,有些有板载调试器,有些甚至允许将二进制文件复制到板上可能存在的闪存驱动器。

可以通过 UI 添加符号从 IDE 完成编译时配置。STM32CubeIDE 的示例:

我们想将 CNC3040 电路板图用于具有本地串行 over USB 通信的四轴机器。
要进行此设置,请右键单击Project Explorer中的项目根目录,然后选择Properties > C/C++ General > Paths and Symbols > Symbols

添加OVERRIDE_MY_MACHINE,这将禁用在my_machine.h中选择的任何选项。
Add BOARD_CNC3040, this 选择板引脚映射文件。
添加N_AXIS并将值设置为4
添加USB_ENABLE并将值设置为1

应用并关闭然后重建 – 如果使用此选项,则无需更改源文件。:-)

注意:grbl/config.h 中的所有选项也可以这样设置。
注意:除非在驱动程序自述文件中有说明,否则不要更改或删除现有符号

编译grblHAL


2022-11-09

这篇文章对您有用吗?

我们要如何帮助您?