开源改变世界

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

推推 grbl 2年前 (2023-01-23) 361次浏览

关闭
rspievakc 打开了这个问题 2016 年 6 月 29 日 · 17条评论
关闭

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M)#1030

rspievakc 打开了这个问题 2016 年 6 月 29 日 · 17条评论

注释

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
回复 评论了 2016 年 6 月 29 日  

我正在将代码移植到 ARM 微控制器和 GCC 工具链。我的问题是,是否有任何项目已经这样做了?在这种情况下,我可以为它做出贡献,而不是从头开始。
我已经调整了最新的源代码并准备好硬件抽象。我还创建了一个设置,它使用 Segger System View + JLink 来跟踪执行点并验证逻辑 + 时序是否全部正确。硬件抽象使用内联语句来避免调用分支。
我还在使用 NXP 的 FRDM-64F 和 Cypress PSOC 4200 和 PSOC 4200M 对其进行测试。
我的下一个问题是我应该创建一个新的 GitHub 存储库还是应该共享 GRBL 树中的代码?
感谢您的帮助。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

我目前也在移植到 ARM、德州仪器 Tiva C (TM4C123GH6PM)。我的 HAL 实现基于指向函数的指针。我会将代码更改为库,因为我打算将其集成到我制作的CO2 激光控制器的另一个项目中。我并不着急,因为我的控制器已经有了 Mach3 支持 – GRBL 端口将在今年年底完成?

我知道 GRBL 核心团队也在研究 HAL – 但我不知道他们的方法是什么,也许它受到仍然支持 8 位处理器这一事实的限制?

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

您为 tivaC 创建不同端口的原因是什么?
Il 02/lug/2016 23:05 “Terje Io” notifications@github.com ha scritto:

我目前也在移植到 ARM、德州仪器 Tiva C
(TM4C123GH6PM)。我的 HAL 实现基于指向函数的指针。我
会将代码更改为一个库,因为我的目的是将它集成到
另一个 CO2 激光控制器项目中
http://www.buildlog.net/forum/viewtopic.php?f=16&t=2625&p=24072#p24072
我有制作。我并不着急,因为我的
控制器已经有了 Mach3 支持 – GRBL 端口将在今年年底完成?

我知道 GRBL 核心团队也在研究 HAL – 但我不
知道他们的方法是什么,也许它受到
仍然支持 8 位处理器这一事实的限制?


您收到此消息是因为您订阅了此线程。
直接回复此电子邮件,在 GitHub
#1030(评论)
上查看,或 将线程静音
https://github.com/notifications/unsubscribe/AJEOltHQWj4jdqV1_ox0gSkJV8qBP5p6ks5qRtKwgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@cri-s不确定你所说的“不同”是什么意思,无论如何我的主要原因是我的激光控制器是基于 Tiva C 的,并且端口是针对它的。另一个原因是我想做一些硬件/固件设计只是为了好玩(和学习)——即使我可以用更少的钱购买现有的控制器。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
成员

@terjeio:没有多少“团队”Grbl,因为很长一段时间以来它一直是我自己。v1.0 发布后不久将取消对 8 位的支持。我将继续投入所有时间来继续开发 ARM 版本,这是对 Grbl 基本代码的完全重写。Grbl 本身是专门为 8 位 AVR 设计的,并且有很多“讨厌的”代码是为了最大化性能和减少编译闪存大小而编写的。主要是后者。ARM 版本没有这样的限制,并且有许多算法改进可以使它在基础层面上变得更好。我不会透露它们是什么,但它们会很棒。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
作者

有没有办法在 ARM 的端口工作上进行协作?
Em 2 de jul de 2016 19:37, “Sonny Jeon” notifications@github.com escreveu:

已关闭#1030 #1030


您收到此消息是因为您是该线程的作者。
直接回复此电子邮件,在 GitHub
#1030(评论)
上查看,或将 线程静音
https://github.com/notifications/unsubscribe/AEa6D0-w29DE1eN7mpdlxCXy1RBqAyMZks5qRugMgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
成员

@rspievakc:不,目前没有,但我会定期密切关注人们将 Grbl 移植到不同的 ARM 芯片。看看其他人如何解决问题总是有帮助的。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@rspievakc: lasaurGrbl 是一个始终以 tivaC123 为目标的端口,
即使该板和 cpu
是由 Ti 以不同的名称出售的。我觉得2 年前@mschorer
将 grbl 移植到 tivaC123G ,https://github.com/mschorer/grbl具有
简单干净的抽象接口。

2016-07-03 0:35 GMT,Sonny Jeon notifications@github.com

@rspievakc:不,目前没有,但我会定期密切关注人们将
Grbl 移植到不同的 ARM 芯片。看看其他人如何
解决问题总是有帮助的。


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看:
#1030(评论)

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@cri-s: 非常感谢您提供指向现有 Tiva 端口的指针 – 我会调查一下。快速浏览一下,我可以看出 HAL 是基于#define 的——我正在使用一个包含函数指针的结构,这意味着 HAL 将与不同实现的主要 Grbl 代码库完全分离——从而更容易移植和维护(海事组织)。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

很高兴看到“端口”没有被忽视.. :-)

我的目标是:

  • 不增加原来的328码大小
  • 创建尽可能薄的抽象层
  • 在 tiva 上尽可能快地前进
  • 可能使@chamnit包括这样一个抽象层,这样我就不必
    自己维护它了;-)

到目前为止,我已经为 tiva 完成了一个 boosterpack/shield,添加了
对 spi、正交编码器的基本支持……这将驱动我的下一个自制
cnc。
可悲的是,我最近没有找到很多时间来处理这个.. :-(
Am 03.07.2016 17:25 schrieb “Terje Io” notifications@github.com :

@cri-s https://github.com/cri-s:非常感谢您提供指向
现有 Tiva 端口的指针 – 我会研究它。快速浏览一下,我可以看出
HAL 是基于#define 的——我正在使用一个包含
函数指针的结构,这意味着 HAL 将与
不同实现的主要 Grbl 代码库完全分离——从而更容易
移植和维护(海事组织)。


你收到这个是因为你被提到了。
直接回复此电子邮件,在 GitHub
#1030(评论)
上查看,或 将线程静音
https://github.com/notifications/unsubscribe/ACW6b-tSjWjezOsy61o_vWdeJz_6H664ks5qR9RvgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

Search-fu 再次失败!但是这一次,稍微有点曲折……在我的工作进展顺利很久之后,这个线程出现了(并引起了我的注意)。
所以在过去的三个多星期里,我基本上做了它看起来像的事情@mschorer正在做…类似的目标。由于缺少具有足够引脚的 atmega,我一直在移植到 PIC32,但目的是将硬件级接口与主要 grbl 函数分开,以便重新移植到另一个体系结构应该像编写适当的宏一样简单(pin -stuff)和功能(定时器设置、ISR 等)。
同样,缺少 atmega,我一直在编译检查整个过程中原始构建的所有更改,经过数百次更改后,atmega328p 仍然编译为与原始 (.8j,如我记得)。
我已经向 makefile(等)添加了一些 mod 以说明多种架构,#including 特定于架构的标头,并在适当的地方将特定于架构的 C 文件添加到 SRC 等。否则,基本上,我所拥有的done 看起来与 TivaC 端口非常相似。
还没有准备好公开,但愿意与有兴趣与原版进行比较的开发人员分享。
到目前为止,所缺少的只是对 eeprom 的支持……那一点是非常特定于体系结构的,所以仍在考虑如何/是否去做。
由于缺少带有 step/dir 输入的步进驱动器,我还计划直接在 grbl 中实际实现微步进,作为一种选择。虽然,我的芯片的 5pwm 输出仅限于两个轴,但没有理由不能在其他架构上扩展到更多。我认为它更像是对原始 grbl step/dir 代码的扩展,而不是对其步进算法的重写;基本上只是用函数调用(如果启用)替换 step/dir 引脚切换,而不是他们当前调用的 GPIO_write() 样式宏。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

这是我尝试将 GRBL 1.0d 移植到 STM32F103C8T6。https://www.youtube.com/watch?v=ehgXMa2spWM&feature=youtu.be。我只有 3020 CNC,没有测试限位开关。我将很快购买限位开关安装在我的 CNC 上以测试该功能。主轴或冷却剂功能未实现。它使用micro USB(串口模拟)。EEPROM 实现使用 1K 闪存来存储数据。我使用
CooCox IDE。它仍未准备好公开,但我可以发送给任何感兴趣的人。我发现这个模块实际上有 128KB 闪存而不是数据表中发布的 64KB 闪存。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
 评论了 2016 年 7 月 11 日  

“usbcnc” 我怎么联系你?

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

给你。还有一个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 风格(在中间声明变量),所以我改变了很多)。
grbl-masterwin.zip

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
成员

@ericwazhung: 惊人的!感谢分享!

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

这是我对 HAL 抽象的方法。代码未在物理机上测试且不完整,发布此处仅用于分享想法。

步进驱动器 ISR 在 80MHz Tiva C 处理器上的执行时间约为 7uS…

grbl-TivaC.zip

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

终于学会了如何使用github推送变更。
这是我的 STM32F108C8T6 端口和 Windows 模拟。https://github.com/usbcnc/grbl-Mega
Windows版全模拟。STM32F108C8T6端口在台式机CNC3020上测试。无需拆卸 Mach 3 的并行端口板。只需将一个小型转换板连接到控制箱,系统就可以以极低的成本运行。

喜欢 (0)