注释
奇怪的。在 v0.6、v0.7 和 v0.8 之间,对串行协议进行了许多调整,但我有一个 Uno(不确定 rev 版本)并且一切正常。所以我认为这可能是某个地方的设置问题。您是否通过断开 USB 线以外的所有设备来消除任何外部影响?尝试过 Wiki 中列出的闪烁方法吗?有关您正在做什么以及如何帮助我们诊断您的问题的更多信息。 |
我正在使用 avrisp MK11。它在闪烁后读回闪光灯并说一切都是花花公子。我尝试手动擦除 eeprom 然后重新刷新但没有成功。有趣的是,无论我使用预编译的二进制文件还是自己构建,它都会在 0.6/0.7 版本拆分时中断。尝试使用连接的和未连接的屏蔽开关。看起来它可能试图从那个别针中取出一些东西?或者是37Hz的方式来减慢? 要确定您的版本,请查看: 我只是不知道该怎么做 |
当您使用 AVRmkii 刷新 Arduino 时,您使用什么命令标志?你试过’-D’标志吗?或者将 Arduino 引导加载程序(通过 IDE 完成)刷到 Arduino 上,然后使用 Arduino USB 编程器代替?这可能会解决它。 我不在家看Uno,我会去看看。我很确定这是 Rev 1 或 Rev 2,但它们之间几乎没有区别。 不确定 37Hz 脉冲是什么,但绝对不是阶跃脉冲。 |
尝试了引导加载程序,但没有成功。我正在尝试进一步调试并注意到负脉冲(630us)的宽度取决于波特率。开始怀疑是否有办法让串行驱动程序变得无聊? |
进一步的调试表明串行变低可能是一个副作用,导致电路板在 37Hz 时复位。我在 main 的第一行添加了一些小玩意,发现它正在重置。 通过代码进行一些进一步的二进制搜索显示崩溃发生在通过“protocol_execute_startup”调用的“settings_read_startup_line”调用的“memcpy_from_eeprom_with_checksum”执行期间 |
有趣的。无法确定您的 Arduino 发生了什么。“settings_read_startup_line”仅适用于 v0.8c+。似乎您的 Arduino 的 EEPROM 或 EEPROM 代码导致崩溃。一般来说,自 v0.6 以来,EEPROM 设置的操作没有太大变化。或者它可能是从特定事件序列中突然出现的一些晦涩的错误。很难说。我会环顾四周,看看是否能发现任何东西,但这样的东西很难确定。 回到家里,我确实有一个 rev1 Uno,所以我无法进行苹果与苹果的比较。但是,我感觉至少有几十个或更多的用户有一个rev2 Uno,而且还没有报告过这样的案例。这可能是一个孤立的问题。如果您发现任何新线索,请告诉我。我也会这样做。 |
两种我都用过,基本没问题。我见过几个问题,主要是关于设备没有枚举。通常我会使用 ISP 重新刷新 arduino 引导加载程序,并通过 arduino 协议对十六进制进行 avrdude。 |
在带有 Win7 的 Arduino Nano 3.0 上也是如此。 |
我还看到了 AVRStudio4 和 AtmelStudio6 编译代码之间的行为变化(编译器和 stdlib 的差异)。有时编译器不会警告其中之一 – 然后就是整个’const’的东西。我发现内存乱写的地方是 memset。我先检查它们。 |
我已经使用 edge 的代码进行了尝试,但明天我将尝试 v0.6 和 v0.8。 |
我试过 grbl: 我使用过 avr-gcc: Grbl 0.51 和 0.6b 有 avr-gcc > 4.3.3 的编译错误,因为 delay.h….. 使用 AVR-Studio 6.0 中的 avr-gcc 4.6.2,我可以重新启动所有版本。 所有其他组合都可以。 |
太感谢了@sebbra. 似乎 avr-gcc 4.6.2 肯定有一些东西。我将看看 memsets@aldenhart建议。如果有人对此有任何其他想法,请告诉我。没有什么真正被完全排除。 顺便问一下,我们页面上的预编译固件是怎么做的?特别是 v0.6b 到 v0.8c?不确定 v0.6b 是用什么编译的(可能是旧的 Arduino IDE avr-gcc 版本)。v0.7d+ 都使用 Arduino IDE v1.0+ 和 avr-gcc 4.3.2 编译(我认为)。 |
有趣的信息。我一直在用 4.7.0 编译。另外,我想我测试了您页面中的二进制文件并遇到了同样的问题。我今天可以再检查一次。我会尝试看看使用 arduino IDE gcc 是否可以修复它。我很好奇为什么我们会在特定版本的 GCC 中看到这个问题。是否有一个补丁集正在修复/破坏某些东西? |
@mcclurem– 对不起,我最近几周忙于工作.. 它们并没有太大的不同,它们使用不同的寄存器,但它们非常相似。 ; GNU C (AVR_8_bit_GNU_Toolchain_3.4.0_663) 版本 4.6.2 (avr) .section .text.memcpy_from_eeprom_with_checksum,”ax”,@progbits ; GNU C (GCC) 版本 4.7.2 (avr) .section .text.memcpy_from_eeprom_with_checksum,”ax”,@progbits |
麦克卢伦 评论 on 29 Jan 2013
我有一个运行 0.6 的 unor r2 没问题。升级到0.7或0.8,串口流废话。确定它的范围,它以 37Hz 周期性地发出一个 630us 的低脉冲。我不知道 wtf 在这里。