想象一下我丢失了我的源代码。 有没有一种方法可以转储Arduino闪存? 我想做的是在我的PC上获得一个十六进制文件,它逐字节表示Arduino闪存(包括引导程序)
我有3种Arduino类型:
- Arduino UNO(rev3)
- Arduino MEGA
- Leonardo Ethernet
谢谢
想象一下我丢失了我的源代码。 有没有一种方法可以转储Arduino闪存? 我想做的是在我的PC上获得一个十六进制文件,它逐字节表示Arduino闪存(包括引导程序)
我有3种Arduino类型:
谢谢
avrdude
可以帮助你实现这一点。具体方式取决于你使用的Arduino板型,但大致如下:
avrdude -p m328p -P usb -c usbtiny -U flash:r:flash.bin:r
此代码将获取闪存中的内容。
以下网站提供更多信息:
http://www.evilmadscientist.com/2011/avr-basics-reading-and-writing-flash-contents/
看起来使用Arduino板,程序员(选项-c
)必须设置为arduino
(详见avrdude
手册)。此外,我还需要指定ACM端口(在我的情况下是Linux机器上的/dev/ttyACM0
)。
因此,完整的读取命令(并将flash备份到flash.bin
)如下:
avrdude -p m328p -P /dev/ttyACM0 -c arduino -U flash:r:flash.bin:r
恢复闪存的方法如下:
avrdude -p m328p -P /dev/ttyACM0 -c arduino -U flash:w:flash.bin