注释
我目前也在移植到 ARM、德州仪器 Tiva C (TM4C123GH6PM)。我的 HAL 实现基于指向函数的指针。我会将代码更改为库,因为我打算将其集成到我制作的CO2 激光控制器的另一个项目中。我并不着急,因为我的控制器已经有了 Mach3 支持 – GRBL 端口将在今年年底完成? 我知道 GRBL 核心团队也在研究 HAL – 但我不知道他们的方法是什么,也许它受到仍然支持 8 位处理器这一事实的限制? |
您为 tivaC 创建不同端口的原因是什么?
|
@cri-s不确定你所说的“不同”是什么意思,无论如何我的主要原因是我的激光控制器是基于 Tiva C 的,并且端口是针对它的。另一个原因是我想做一些硬件/固件设计只是为了好玩(和学习)——即使我可以用更少的钱购买现有的控制器。 |
@terjeio:没有多少“团队”Grbl,因为很长一段时间以来它一直是我自己。v1.0 发布后不久将取消对 8 位的支持。我将继续投入所有时间来继续开发 ARM 版本,这是对 Grbl 基本代码的完全重写。Grbl 本身是专门为 8 位 AVR 设计的,并且有很多“讨厌的”代码是为了最大化性能和减少编译闪存大小而编写的。主要是后者。ARM 版本没有这样的限制,并且有许多算法改进可以使它在基础层面上变得更好。我不会透露它们是什么,但它们会很棒。 |
@rspievakc:不,目前没有,但我会定期密切关注人们将 Grbl 移植到不同的 ARM 芯片。看看其他人如何解决问题总是有帮助的。 |
@rspievakc: lasaurGrbl 是一个始终以 tivaC123 为目标的端口, 2016-07-03 0:35 GMT,Sonny Jeon notifications@github.com:
|
@cri-s: 非常感谢您提供指向现有 Tiva 端口的指针 – 我会调查一下。快速浏览一下,我可以看出 HAL 是基于#define 的——我正在使用一个包含函数指针的结构,这意味着 HAL 将与不同实现的主要 Grbl 代码库完全分离——从而更容易移植和维护(海事组织)。 |
很高兴看到“端口”没有被忽视.. 我的目标是:
到目前为止,我已经为 tiva 完成了一个 boosterpack/shield,添加了
|
Search-fu 再次失败!但是这一次,稍微有点曲折……在我的工作进展顺利很久之后,这个线程出现了(并引起了我的注意)。 |
这是我尝试将 GRBL 1.0d 移植到 STM32F103C8T6。https://www.youtube.com/watch?v=ehgXMa2spWM&feature=youtu.be。我只有 3020 CNC,没有测试限位开关。我将很快购买限位开关安装在我的 CNC 上以测试该功能。主轴或冷却剂功能未实现。它使用micro USB(串口模拟)。EEPROM 实现使用 1K 闪存来存储数据。我使用 |
“usbcnc” 我怎么联系你? |
给你。还有一个WIndows模拟工程(有助于调试代码)。您可能需要修改文件夹。STM32 项目文件位于 STM32GRBL 下。grbl 文件在 grbl-masterwin 下。(是的,Windows 模拟文件在其中)。要为 STM32 启用 EEPROM 模拟,您需要在 grbl.h 中取消注释 NOEEPROMSUPPORT。如果你只是在你的机器上运行它或调试代码,那真的没有必要,因为它最终可能会杀死闪存的寿命。但是这个功能有效。我所做的是使用刷新函数写入闪存,而不是使用 STM 的 EEPROM 库。那个至少需要 2K 闪存,并且可以轻松模拟 GRBL 的 EEPROM。Windows 也进行了相同的仿真。(检查 eeprom.c)。 要运行 Windows 模拟,如果您没有任何串行端口,那么它接受键盘。如果你有两个串行端口并相互连接 TX-RX,你可以用一个串行端口的参数启动 win-grbl(比如 grbl COM3),你可以在另一个串行端口上运行 gcode-sender 并且它可以工作,你可以把任何地方的断点来调试代码。 我首先移植到 Windows,因为 Windows 不喜欢某些 C 风格(在中间声明变量),所以我改变了很多)。 |
@ericwazhung: 惊人的!感谢分享! |
这是我对 HAL 抽象的方法。代码未在物理机上测试且不完整,发布此处仅用于分享想法。 步进驱动器 ISR 在 80MHz Tiva C 处理器上的执行时间约为 7uS… |
终于学会了如何使用github推送变更。 |
我正在将代码移植到 ARM 微控制器和 GCC 工具链。我的问题是,是否有任何项目已经这样做了?在这种情况下,我可以为它做出贡献,而不是从头开始。
我已经调整了最新的源代码并准备好硬件抽象。我还创建了一个设置,它使用 Segger System View + JLink 来跟踪执行点并验证逻辑 + 时序是否全部正确。硬件抽象使用内联语句来避免调用分支。
我还在使用 NXP 的 FRDM-64F 和 Cypress PSOC 4200 和 PSOC 4200M 对其进行测试。
我的下一个问题是我应该创建一个新的 GitHub 存储库还是应该共享 GRBL 树中的代码?
感谢您的帮助。