开源改变世界

进行了一些更改以使代码与 Arduino IDE 兼容 #201

推推 grbl 3年前 (2023-01-21) 247次浏览

对话

进行了一些更改以使代码与 Arduino IDE 兼容 #201
贡献者

你好呀,

我对代码做了一些修改,使其与最新版本的 Arduino IDE 兼容。

Protoneer 添加了2 个提交 10年前
@@ -25,7 +25,6 @@
#包含 planner.h
 
#define MAX_INT_DIGITS 8 // int32(和浮点数)中的最大位数
外部浮动 __floatunsisf(无符号长);
成员

我一直不确定这个“extern float __floatunsisf”函数调用做了什么。你知道吗?只是想确保这在合并之前不会破坏任何东西。

进行了一些更改以使代码与 Arduino IDE 兼容 #201
贡献者作者

我完全同意。您目前如何测试事物以确保它们一切正常?应用程序的哪一部分对更改最敏感?

进行了一些更改以使代码与 Arduino IDE 兼容 #201
成员

不确定。但看起来它确保转换正确,具体取决于编译器。这是该代码所基于的 gcc 的 strtod() 的摘录。

/* Only GCC 4.2 calls the library function to convert an unsigned long to float. Other GCC-es (including 4.3) use a signed long to float conversion along with a large inline code to correct the result. */ extern double __floatunsisf (unsigned long);

仍然不确定这意味着什么,但我们可能需要弄清楚我们是否可以忽略它。不想以后再调试这个问题。至于测试,我只是将它闪存到一个备用的 Arduino 上,然后用示波器运行它进行一系列测试。可能有更简单的方法来做到这一点,但它对我有用。无论如何,我们知道这意味着什么,只是现在需要弄清楚它是否重要。

进行了一些更改以使代码与 Arduino IDE 兼容 #201

http://gcc.gnu.org/onlinedocs/gccint/Soft-float-library-routines.html

” 这些函数将 i(一个带符号的 long long)转换为浮点数。

— 运行时函数:float __floatunsisf (unsigned int i)
— 运行时函数:double __floatunsidf (unsigned int i)
— 运行时函数:long double __floatunsitf (unsigned int i)
— 运行时函数:long double __floatunsixf (unsigned int i)”

进行了一些更改以使代码与 Arduino IDE 兼容 #201

恕我直言,从(任何)到漂浮的演员是安全的。调用以 __ 开头的 GCC 内部函数可能不太安全。

camnit 添加了一个引用此拉取请求的提交 2013 年 12 月 31 日

进行了一些更改以使代码与 Arduino IDE 兼容 #201 chamnit 合并提交15a803e 到 grbl :主人 2013 年 12 月 31 日
免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

成功合并此拉取请求可能会关闭这些问题。

还没有

4人参加
进行了一些更改以使代码与 Arduino IDE 兼容 #201进行了一些更改以使代码与 Arduino IDE 兼容 #201进行了一些更改以使代码与 Arduino IDE 兼容 #201进行了一些更改以使代码与 Arduino IDE 兼容 #201

喜欢 (0)