注释
应该注意的是,所讨论的大小(即 2KiB 与 512 字节)由保险丝设置决定,而不是由上传的 .hex 图像的物理大小决定;-) 这意味着,新的较小图像实际上会给您带来任何好处,您必须确保已对正确的保险丝进行编程,以便 AVR 本身知道“特殊”区域现在只有 512 字节。 |
@csdexter:是的,保险丝设置 2KB 和 0.5KB 大小是正确的。但是,我很确定“Burn Bootloader”工具会在 Optiboot 闪烁之前正确设置这些保险丝。此外,Arduino IDE 在 Uno 和 Duemilanove/Nano 的“boards.txt”文件中设置了闪存限制。不确定,但这表明 Arduino IDE 将检查并防止您超过此限制,具体取决于您使用的是哪个板。 |
@csdexter: 我检查了保险丝,只是为了确定。Arduino IDE (1.6.5) 在刷新引导加载程序之前会烧掉保险丝。 |
@chamnit– 效果如何?你有没有发现任何问题?如果没有,我也会这样做。 |
@109JB: 到目前为止,一切都很好。我已经将母排针焊接到几个 Nanos 和 3d 打印的外壳中,大小与一包口香糖差不多。在过去的几天里,它们一直是我专用的开发板,我还没有发现任何明显的问题。尽管其中一个没有很好地闪烁并且在串行终端中返回了很多垃圾。不确定那里发生了什么,但再次烧录引导加载程序将其恢复。 |
/usr/share/arduino/hardware/arduino/bootloaders/optiboot README optiboot.c 等看起来很有用 几个可配置的选项:
|
“不确定,但这表明 Arduino IDE 会检查并防止您超过此限制,具体取决于您使用的是哪个板。” 这是报告使用的闪存的 %age 所必需的。我不确定 IDE 是否足够智能以防止下载对于目标来说太大的图像。 我听说如果图像太大,您可能会破坏引导加载程序。我自己没有做过任何破坏测试;) |
这是与 Uno 的 Optiboot 一起运行的 Arduino Nano 的更新。我偶尔会遇到闪烁程序无法正常工作的问题。它会给出超时而不是闪光。解决方案是在闪烁例程开始后立即硬重置 Nano。掌握正确的时机需要一些练习,但它确实有效。所以如果有人遇到这个问题,这是一个解决方案。 |
如果你切断链接以防止它在每次重置串行链接时重新启动,这听起来就像你必须在 Uno 上做的事情。IIRC,avrdude 切换其中一条串行线以强制重置,如果您切断 UNO 上的链接,您必须在正确的时间进行手动重置。看来你必须在大约半秒钟内把它弄好。所以,正如你所说,它需要一些练习。 |
@chamnit你用这个线程节省了我几个小时的睡眠时间——在烧掉 optiboot 之后,我无法将草图上传到我的 nano——不知道我必须选择新板作为 Uno 而不是 nano……非常感谢 |
我接触了几个 Arduino Nano,并一直在考虑摆脱它使用的 2.0KB Duemilanove 引导加载程序,并用更小的 0.5KB Uno Optiboot 代替它。这基本上意味着您将能够比以前多向 Nano 中塞入 1.5KB。这很重要,因为 Grbl 恰好位于 Duemilanove 的 30KB 闪存限制的边缘,而 Uno 有 31.5KB。
我已经设法将 Optiboot 刻录到我的 Nano 上以释放额外的空间。有人知道这样做有什么问题吗?
这就是我的做法,我对可能发生的事情不承担任何责任,即使它看起来完全无害。
然后,这会将 Optiboot 刻录到 Nano 上,释放 1.5KB 闪存空间,现在将作为 Arduino Uno 运行。确保从那时起选择 Arduino Uno 作为开发板类型。