开源改变世界

raster.comp 似乎无法使用 RTAI 进行编译。 #2228

推推 grbl 2年前 (2023-01-31) 189次浏览
打开
andypugh 打开了这个问题 2022 年 12 月 28 日 · 10 条评论
打开

raster.comp 似乎无法使用 RTAI 进行编译。#2228

andypugh 打开了这个问题 2022 年 12 月 28 日 · 10 条评论

注释

raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者

使用 RTAI 内核 4.19.195-rtai-amd64 运行 git checkout pf LinuxCNC master

提交56367af添加了一个组件以使用 hal_port 将数据流式传输到激光器。

它包含了

include <stdlib.h>

如果为 RTAI 构建,这似乎会导致问题。

  CC [M]  /home/andypugh/linuxcnc-dev/src/objects/hal/components/raster.o
/home/andypugh/linuxcnc-dev/src/objects/hal/components/raster.c:14:10: fatal error: stdlib.h: No such file or directory
 #include <stdlib.h>
          ^~~~~~~~~~

@curtdutt有什么想法吗?我猜你没有系统来测试这个?

raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者
彼得赖因霍尔特森 评论了 2022 年 12 月 28 日 通过电子邮件
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者作者

是的。我们在 rtapi 中有 simple_strtol
https://github.com/LinuxCNC/linuxcnc/blob/2.9/src/rtapi/rtapi.h#L835
但没有什么等同于 strtoul 和 strtod。

raster.comp 似乎无法使用 RTAI 进行编译。 #2228
贡献者
简明扼要 评论了 2022 年 12 月 28 日 通过电子邮件
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者作者
安迪普 评论了 2022 年 12 月 28 日  

RTAI 构建可以使用 kstrtol(和朋友)但是没有字符串到双精度(在 usr/src/linux-headers……./include/linux 中找到的函数)
但是那些不适用于 uspace (这就是为什么 rtapi 在 rtapi.h 中为 uspace 构建定义它们

写一个几乎可能更简单..

val = 0
radix = 10;
bool sign = False
switch (char) 
    case '0':
    case '1':
    (case.....)
        if (radix > 1) {
            val = val * 10 + (char - '0');}
        } else {
             val = val + char * radix;
             radix /= 10;
        }
   case '.':
   case ',': // For Germans etc
       radix = 0.1;
   case '-':
       sign = True;
   case else
       panic();
}
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
贡献者
简明扼要 评论了 2022 年 12 月 28 日 通过电子邮件
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
贡献者
简明扼要 评论了 3个星期前 通过电子邮件
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者作者

您应该只需要这样做:
http
://linuxcnc.org/docs/stable/html/getting-started/getting-linuxcnc.html#cha:Installing -RTAI 有预建的 RTAI 内核包。(并匹配 LinuxCNC,但无论如何你都将从源代码进行编译,所以不需要它)

raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者作者

在内核空间中,有用于整数和布尔类型的 kstrto* 函数,但没有用于浮点数的函数。
出于此组件的目的,我认为一个简单的十进制数字解析器可能会起作用,因为我们(您)也可以控制数据源。

raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者
彼得赖因霍尔特森 评论了 3个星期前 通过电子邮件
raster.comp 似乎无法使用 RTAI 进行编译。 #2228
合作者作者

我认为我的简单版本与真实版本之间的唯一区别在于不处理 314.159E-2 形式的数字。(显然e、E、d、D都是有效的指数指标)
那个那个实数其实用的是符号,而且不忘小数点后减’0’。

没有 kstrtod 或 kstrtof 的可能原因
https://stackoverflow.com/questions/13886338/use-of-floating-point-in-the-linux-kernel

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
raster.comp 似乎无法使用 RTAI 进行编译。 #2228raster.comp 似乎无法使用 RTAI 进行编译。 #2228raster.comp 似乎无法使用 RTAI 进行编译。 #2228

喜欢 (0)