<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.jackslab.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.jackslab.org/index.php?action=history&amp;feed=atom&amp;title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99</id>
		<title>Arduino bootloader 的烧写 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.jackslab.org/index.php?action=history&amp;feed=atom&amp;title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99"/>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;action=history"/>
		<updated>2026-08-12T10:02:59Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=8474&amp;oldid=prev</id>
		<title>Comcat：/* FTDI FT232RL */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=8474&amp;oldid=prev"/>
				<updated>2017-06-17T06:12:43Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;FTDI FT232RL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2017年6月17日 (六) 06:12的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第156行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第156行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;日本一哥们的实现如右：[http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;（需翻墙）他给 &lt;/del&gt;avrdude 添加了一些 patch 使其能使用 FT232RL 的 bitbang 模式来实现烧写&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;日本一哥们的实现如右：[http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;（需 FuckGFW）他给 &lt;/ins&gt;avrdude 添加了一些 patch 使其能使用 FT232RL 的 bitbang 模式来实现烧写&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;鉴于翻墙的麻烦，将其配套的可执行文件和源码包放在：&lt;/del&gt;[[文件:Avrdude-serjtag.rar]] (目前支持 win32 平台)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;鉴于 FuckGFW 的麻烦，将其配套的可执行文件和源码包放在：&lt;/ins&gt;[[文件:Avrdude-serjtag.rar]] (目前支持 win32 平台)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=6176&amp;oldid=prev</id>
		<title>Comcat：/* FTDI FT232RL */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=6176&amp;oldid=prev"/>
				<updated>2016-09-02T06:14:39Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;FTDI FT232RL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2016年9月2日 (五) 06:14的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第150行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第150行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== FTDI FT232RL ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== FTDI FT232RL ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;可以用一个 &lt;/del&gt;FT232RL USB &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;转串口板，来烧写 avr 系列单片机&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;准备一个 USB 转串口板，此处我们使用一个 FT232RL USB 转串口板，此物某宝有售：[http://s.click.taobao.com/bPo0xTx &lt;/ins&gt;FT232RL USB &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;转串口板]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=5461&amp;oldid=prev</id>
		<title>Comcat：/* FTDI FT232RL */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=5461&amp;oldid=prev"/>
				<updated>2015-12-29T02:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;FTDI FT232RL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2015年12月29日 (二) 02:58的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第158行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第158行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;日本一哥们的实现如右：[http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html] （需翻墙）他给 avrdude 添加了一些 patch 使其能使用 FT232RL 的 bitbang 模式来实现烧写&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;日本一哥们的实现如右：[http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html] （需翻墙）他给 avrdude 添加了一些 patch 使其能使用 FT232RL 的 bitbang 模式来实现烧写&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;鉴于翻墙的麻烦，将其配套的可执行文件和源码包放在：[[文件:Avrdude-serjtag.rar]] (&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;目前只支持 &lt;/del&gt;win32 平台)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;鉴于翻墙的麻烦，将其配套的可执行文件和源码包放在：[[文件:Avrdude-serjtag.rar]] (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;目前支持 &lt;/ins&gt;win32 平台)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3733&amp;oldid=prev</id>
		<title>Comcat：/* Leonardo 烧写 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3733&amp;oldid=prev"/>
				<updated>2015-02-07T12:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Leonardo 烧写&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2015年2月7日 (六) 12:28的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第377行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第377行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -e -u -Ulock:w:0x3f:m -U flash:w:Caterina-Leonardo.hex -Ulock:w:0x2f:m&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -e -u -Ulock:w:0x3f:m -U flash:w:Caterina-Leonardo.hex -Ulock:w:0x2f:m&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;其他命令参考：D:\arduino-1.0.1\hardware\arduino\boards.txt&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;所有的bootloader 位于：D:\arduino-1.0.1\hardware\arduino\bootloaders\&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== AVR Fuse&amp;amp;Lock (熔丝位) ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== AVR Fuse&amp;amp;Lock (熔丝位) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3732&amp;oldid=prev</id>
		<title>Comcat：/* Leonardo 烧写 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3732&amp;oldid=prev"/>
				<updated>2015-02-07T12:26:06Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Leonardo 烧写&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2015年2月7日 (六) 12:26的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第371行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第371行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=bash&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=bash&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;D:\arduino-1.0.1\hardware\tools\Avrdude-serjtag&amp;gt; ./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;D:\arduino-1.0.1\hardware\tools\Avrdude-serjtag&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;D:\arduino-1.0.1\hardware\tools\Avrdude-serjtag&amp;gt; &lt;/del&gt;./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -e -u -Ulock:w:0x3f:m -U flash:w:Caterina-Leonardo.hex -Ulock:w:0x2f:m&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -e -u -Ulock:w:0x3f:m -U flash:w:Caterina-Leonardo.hex -Ulock:w:0x2f:m&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3731&amp;oldid=prev</id>
		<title>Comcat：/* 烧写软件 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=3731&amp;oldid=prev"/>
				<updated>2015-02-07T12:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;烧写软件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2015年2月7日 (六) 12:25的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第366行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第366行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;avrdude 探测编程器是直接枚举所有的 usb 设备，用的是 libusb 库，如果机器 usb 口插有多个编程器，可在 &amp;lt;port&amp;gt; 加数字来区分&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;avrdude 探测编程器是直接枚举所有的 usb 设备，用的是 libusb 库，如果机器 usb 口插有多个编程器，可在 &amp;lt;port&amp;gt; 加数字来区分&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== Leonardo 烧写 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;source lang=bash&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;D:\arduino-1.0.1\hardware\tools\Avrdude-serjtag&amp;gt; ./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;D:\arduino-1.0.1\hardware\tools\Avrdude-serjtag&amp;gt; ./avrdude -p m32u4 -c ft232r -P ft0 -B 115200 -e -u -Ulock:w:0x3f:m -U flash:w:Caterina-Leonardo.hex -Ulock:w:0x2f:m&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== AVR Fuse&amp;amp;Lock (熔丝位) ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== AVR Fuse&amp;amp;Lock (熔丝位) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=2690&amp;oldid=prev</id>
		<title>2014年6月25日 (三) 08:52 Comcat</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=2690&amp;oldid=prev"/>
				<updated>2014-06-25T08:52:25Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←上一版本&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;2014年6月25日 (三) 08:52的版本&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第14行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第14行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;完整的参考电路图在： [http://wiki.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;easyhomelink&lt;/del&gt;.org/images/Arduino_duemilanove.png Arduino Duemilanove]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;完整的参考电路图在： [http://wiki.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jackslab&lt;/ins&gt;.org/images/Arduino_duemilanove.png Arduino Duemilanove]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	<entry>
		<id>http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=2689&amp;oldid=prev</id>
		<title>Comcat：以“== 硬件编程器 ==  === Arduino ===  如果有一个 Arduino 板，则可将其作为一个编程器，去烧写一个没有 bootloader 的 ATmega 单片机   [[...”为内容创建页面</title>
		<link rel="alternate" type="text/html" href="http://wiki.jackslab.org/index.php?title=Arduino_bootloader_%E7%9A%84%E7%83%A7%E5%86%99&amp;diff=2689&amp;oldid=prev"/>
				<updated>2014-06-25T08:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;以“== 硬件编程器 ==  === Arduino ===  如果有一个 Arduino 板，则可将其作为一个编程器，去烧写一个没有 bootloader 的 ATmega 单片机   [[...”为内容创建页面&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 硬件编程器 ==&lt;br /&gt;
&lt;br /&gt;
=== Arduino ===&lt;br /&gt;
&lt;br /&gt;
如果有一个 Arduino 板，则可将其作为一个编程器，去烧写一个没有 bootloader 的 ATmega 单片机&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Arduino-icsp.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
arduino 板上 ICSP 针脚皆定义为：&lt;br /&gt;
&lt;br /&gt;
[[文件:Arduino-icsp-pin.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
完整的参考电路图在： [http://wiki.easyhomelink.org/images/Arduino_duemilanove.png Arduino Duemilanove]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
参考接线方式：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Arduino 的 ICSP 脚：&lt;br /&gt;
&lt;br /&gt;
1 ---&amp;gt; MISO   2 ---&amp;gt; 5V&lt;br /&gt;
3 ---&amp;gt; SCK    4 ---&amp;gt; MOSI&lt;br /&gt;
5 ---&amp;gt; 不用    6 ---&amp;gt; GND&lt;br /&gt;
&lt;br /&gt;
Arduino 的数字 10 口接目标片 RESET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino ICSP 的 1, 2, 3, 4, 6 分别接待烧写目标片的 MISO, 5V, SCK, MOSI, GND&lt;br /&gt;
&lt;br /&gt;
连线时，Arduino 的数字 10 口接目标片 RESET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino 的数字 11 口就是 MOSI，数字 12 口就是 MISO，数字 13 口就是 SCK；因此也可以用数字口 10, 11, 12, 13 再加上 5V 和 GND&lt;br /&gt;
&lt;br /&gt;
为了方便，可自由选用 ICSP 的公针脚还是 Arduino 标准母口&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
烧写步骤：&lt;br /&gt;
&lt;br /&gt;
* 先把手头的 Arduino 板变成一个 avr 编程器，程序位于：[File] -&amp;gt; [Examples] -&amp;gt; [ArduinoISP]，编译后将其 uploader 到 Arduino 板上。ArduinoISP 这个 example 实际是 Arduino 官方实现的一个兼容 STK500v1 协议的编程器固件，其使用 Arduino 的数字口 10, 11, 12, 13 与待烧写片作数据通信&lt;br /&gt;
* 连接 ICSP（除 RESET）和要烧写 bootloader 的核心板，Arduino 的数字口 10 接 RESET，5 根线不要接反了，尤其是 5V 和 GND，接好后再仔细检查一遍&lt;br /&gt;
* 对于 Uno 板，要在 reset 和 GND 间加一个 10uF 的电容以关闭 auto reset，这个可以参考：[http://www.arduino.cc/playground/Code/MegaISP Mega ISP]&lt;br /&gt;
* 这个时候 Arduino 板变身了，成了一个独立的 avr 编程器，下面就可以直接找到你的目标板要用的 bootloader hex 文件，直接使用 avrdude 烧写 bootloader；亦可在图形界面操作，更直观：&lt;br /&gt;
&lt;br /&gt;
::*选择要烧写板子的型号 [Tools] -&amp;gt; [Board]，比如我们搭了一个 Arduino UNO 的核心板，就选择 Arduino Uno，这个实际是去选要用的 bootloader 二进制文件，所有的 Arduino bootloader 都位于: arudion-1.0.1\hardware\arduino\bootloaders 下&lt;br /&gt;
::*选择编程器类型 [Tools] -&amp;gt; [Programmer] -&amp;gt; [Arduino as ISP]&lt;br /&gt;
::*执行烧写 [Tools] -&amp;gt; [Burn Bootloader]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
实际执行的命令序列为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ avrdude -CD /path/to/arduino/hardware/tools/avr/etc/avrdude.conf -p atmega328p -c stk500v1       \&lt;br /&gt;
          -P \\.\COM25 -b 19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xda:m -Ulfuse:w:0xff:m&lt;br /&gt;
&lt;br /&gt;
$ avrdude -CD /path/to/arduino/hardware/tools/avr/etc/avrdude.conf -p atmega328p -c stk500v1       \&lt;br /&gt;
          -P \\.\COM25 -b 19200 -e -U flash:w:ATmegaBOOT_168_atmega328.hex&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
更多参考：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection Disabling Auto Reset On Serial Connection]&lt;br /&gt;
&lt;br /&gt;
[http://arduino.cc/en/Tutorial/ArduinoISP Using an Arduino as an AVR ISP]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduino.cc/playground/Code/MegaISP Mega ISP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USBasp ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
开源的 AVR programmer，包括硬件图和 firmware&lt;br /&gt;
&lt;br /&gt;
[http://www.fischl.de/usbasp/ USBASP 官方首页]&lt;br /&gt;
&lt;br /&gt;
taobao 上卖的最火的 avr/c51 编程器（15元左右），基本都是这个实现&lt;br /&gt;
&lt;br /&gt;
命令行方式使用的话，可以直接使用 avrdude 这个工具&lt;br /&gt;
&lt;br /&gt;
GUI 方式可使用 [http://extremeelectronics.co.in/avr-tutorials/gui-software-for-usbasp-based-usb-avr-programmers/ eXtreme Burner - AVR] 或者 [http://khazama.com/project/programmer/ Khazama AVR Programmer]&lt;br /&gt;
&lt;br /&gt;
国内也有小工作室做了一个 windows 的程序 progisp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;设备名称&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USBasp 的固件，用软件的方式将其实现成了一个 USB device。Window 下的驱动用的是 Libusb，因此其插入 windows xp 时，系统将其识别为：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:prog-usbasp-dev.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;引脚连线&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
所有类 USBasp 的 AVR 编程器，出来的接口都是如下（USB 的四条触点朝上）：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Usbasp-pin.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MISO，MOSI，SCK，RESET 连 ATmega 对应的引脚即可，VCC_OUT 和 GND 可用于 ATmega 的供电&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;烧写步骤&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
可以使用 Arduino 的图形环境，执行烧写命令：&lt;br /&gt;
&lt;br /&gt;
* 选择要烧写板子的型号 [Tools] -&amp;gt; [Board]，比如我们用 328p 搭了一个最小系统，就可以选择 Arduino Uno，这个实际是去选择 bootloader 二进制文件，所有的 Arduino bootloader 都位于: arudion-1.0.1\hardware\arduino\bootloaders 下&lt;br /&gt;
* 选择编程器类型 [Tools] -&amp;gt; [Programmer] -&amp;gt; [USBasp]&lt;br /&gt;
* 执行烧写 [Tools] -&amp;gt; [Burn Bootloader] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
命令行方式烧写步骤如下：&lt;br /&gt;
&lt;br /&gt;
对于一个 atmega328p 的芯片，使用 USBasp 编程器其在 Windows 下的烧写命令为：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush: bash&amp;quot;&amp;gt;&lt;br /&gt;
# 将 328p 的熔丝位设置为 hfuse = 0xda, lfuse = 0xff, efuse = 0x05&lt;br /&gt;
# 并将 bootloader 区解锁 lock = 0x3f&lt;br /&gt;
$ avrdude -p m328p -C /d/arduino-1.0.1/hardware/tools/avr/etc/avrdude.conf -c usbasp -P usbasp0 -Uhfuse:w:0xda:m -Ulfuse:w:0xff:m -Uefuse:w:0x05:m -Ulock:w:0x3F:m &lt;br /&gt;
&lt;br /&gt;
# 写入 bootloader，同时 bootloader 区加锁&lt;br /&gt;
$ avrdude -p m328p -C /d/arduino-1.0.1/hardware/tools/avr/etc/avrdude.conf -c usbasp -P usbasp0 -e -U flash:w:ATmegaBOOT.hex -Ulock:w:0x0F:m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux 下的命令类似：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush: bash&amp;quot;&amp;gt;&lt;br /&gt;
# 将 328p 的熔丝位设置为 hfuse = 0xda, lfuse = 0xff, efuse = 0x05&lt;br /&gt;
# 并将 bootloader 区解锁 lock = 0x3f&lt;br /&gt;
$ avrdude -p m328p -C /etc/avrdude.conf -c usbasp -P usbasp -Uefuse:w:0x05:m -Uhfuse:w:0xda:m -Ulfuse:w:0xff:m -Ulock:w:0x3F:m &lt;br /&gt;
&lt;br /&gt;
# 写入 bootloader，同时 bootloader 区加锁&lt;br /&gt;
$ avrdude -p m328p -C /etc/avrdude.conf -c usbasp -P usbasp -e -U flash:w:ATmegaBOOT.hex -Ulock:w:0x0F:m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FTDI FT232RL ===&lt;br /&gt;
&lt;br /&gt;
可以用一个 FT232RL USB 转串口板，来烧写 avr 系列单片机&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Ft232.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
日本一哥们的实现如右：[http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html] （需翻墙）他给 avrdude 添加了一些 patch 使其能使用 FT232RL 的 bitbang 模式来实现烧写&lt;br /&gt;
&lt;br /&gt;
鉴于翻墙的麻烦，将其配套的可执行文件和源码包放在：[[文件:Avrdude-serjtag.rar]] (目前只支持 win32 平台)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;引脚连线&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*RI   ---&amp;gt;  RESET&lt;br /&gt;
&lt;br /&gt;
*DSR  ---&amp;gt;  SCK&lt;br /&gt;
&lt;br /&gt;
*CTS  ---&amp;gt;  MISO&lt;br /&gt;
&lt;br /&gt;
*DCD  ---&amp;gt;  MOSI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
特别地，Arduino Duemilanove 这个老版本的板子，在 FT232RL 的片子边上预留了一个 4 针的接口（原理图中标为 X3），4 个针脚分别编号为 1, 2, 3, 4，对应将 FT232RL 的 CTS, DSR, DCD, RI 引出：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Duemilanove-ft232r-con.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Duemilanove-ft232r-isp-pin.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
则可将其直接连到 ICSP 的针脚上，直接用 Duemilanove 的 FT232RL 烧写 bootloader：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*4 (RI)  --&amp;gt; RESET (RST)&lt;br /&gt;
&lt;br /&gt;
*3 (DCD) --&amp;gt; MOSI (11)&lt;br /&gt;
&lt;br /&gt;
*2 (DSR) --&amp;gt; SCK (13)&lt;br /&gt;
&lt;br /&gt;
*1 (CTS) --&amp;gt; MISO (12)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Duemilanove-ft232r-isp.JPG ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;烧写步骤&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 将 FT232R 小板上的 6 针对应连上目标板&lt;br /&gt;
* USB 接入 PC&lt;br /&gt;
* avrdude 命令：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
$ cd /path/to/avrdude-sertag&lt;br /&gt;
$ avrdude -v&lt;br /&gt;
avrdude.exe: Version 5.3.1, compiled on Jun 20 2007 at 00:30:58&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
$ avrdude -p m328p -c ft232r -P ft0 -B 115200&lt;br /&gt;
avrdude: BitBang OK&lt;br /&gt;
avrdude: pin assign miso 3 sck 5 mosi 6 reset 7&lt;br /&gt;
avrdude: drain OK&lt;br /&gt;
&lt;br /&gt;
ft245r: bitclk 76800 -&amp;gt; ft baud 38400&lt;br /&gt;
avrdude: AVR device initialized and ready to accept instructions&lt;br /&gt;
Reading | ################################################## | 100% 0.00s&lt;br /&gt;
avrdude: Device signature = 0x1e950f&lt;br /&gt;
avrdude: safemode: Fuses OK&lt;br /&gt;
avrdude.exe done. Thank you.&lt;br /&gt;
&lt;br /&gt;
如果连接失败，avrdude 会打印出：&lt;br /&gt;
avrdude: ft245r_program_enable: failed&lt;br /&gt;
avrdude: initialization failed, rc=-1&lt;br /&gt;
&lt;br /&gt;
# 进入命令行模式&lt;br /&gt;
$ avrdude -p m328p -c ft232r -P ft0 -B 115200 -t&lt;br /&gt;
avrdude: BitBang OK&lt;br /&gt;
avrdude: pin assign miso 3 sck 5 mosi 6 reset 7&lt;br /&gt;
avrdude: drain OK&lt;br /&gt;
&lt;br /&gt;
ft245r: bitclk 76800 -&amp;gt; ft baud 38400&lt;br /&gt;
avrdude: AVR device initialized and ready to accept instructions&lt;br /&gt;
Reading | ################################################## | 100% 0.00s&lt;br /&gt;
avrdude: Device signature = 0x1e950f&lt;br /&gt;
&lt;br /&gt;
avrdude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# dump 出待烧写单片机当前熔丝位&lt;br /&gt;
avrdude&amp;gt; d hfuse&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; d hfuse&lt;br /&gt;
0000  d9&lt;br /&gt;
&lt;br /&gt;
avrdude&amp;gt; d lfuse&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; d lfuse&lt;br /&gt;
0000  62&lt;br /&gt;
&lt;br /&gt;
avrdude&amp;gt; d efuse&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; d efuse&lt;br /&gt;
0000  07&lt;br /&gt;
&lt;br /&gt;
avrdude&amp;gt; d lock&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; d lock&lt;br /&gt;
0000  3f&lt;br /&gt;
&lt;br /&gt;
# help 可列出支持的命令&lt;br /&gt;
avrdude&amp;gt; help&lt;br /&gt;
Valid commands:&lt;br /&gt;
&lt;br /&gt;
  dump  : dump memory  : dump &amp;lt;memtype&amp;gt; &amp;lt;addr&amp;gt; &amp;lt;N-Bytes&amp;gt;&lt;br /&gt;
  read  : alias for dump&lt;br /&gt;
  write : write memory&lt;br /&gt;
  erase : perform a chip erase&lt;br /&gt;
  sig   : display device signature byte&lt;br /&gt;
  part  : display the current part infromation&lt;br /&gt;
  send  : send a raw command : send &amp;lt;b1&amp;gt; &amp;lt;b2&amp;gt; &amp;lt;b3&amp;gt; &amp;lt;b4&amp;gt;&lt;br /&gt;
  ......&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# 将 328p 的熔丝位设置为 hfuse = 0xda, lfuse = 0xff, efuse = 0x05&lt;br /&gt;
$ avrdude -p m328p -c ft232r -P ft0 -B 115200 -Uhfuse:w:0xda:m -Ulfuse:w:0xff:m -Uefuse:w:0x05:m&lt;br /&gt;
&lt;br /&gt;
# 先将 bootloader 区解锁 lock = 0x3f，写入 bootloader 文件，再将 bootloader 区加锁 lock = 0x0f&lt;br /&gt;
$ ./avrdude -p m328p -c ft232r -Pft0 -b 115200 -e -u -Ulock:w:0x3f:m -U flash:w:ATmegaBOOT_168_atmega328.hex -Ulock:w:0x0F:m&lt;br /&gt;
avrdude.exe: BitBang OK&lt;br /&gt;
avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7&lt;br /&gt;
avrdude.exe: drain OK&lt;br /&gt;
&lt;br /&gt;
 ft245r:  bitclk 230400 -&amp;gt; ft baud 115200&lt;br /&gt;
avrdude.exe: AVR device initialized and ready to accept instructions&lt;br /&gt;
&lt;br /&gt;
Reading | ################################################## | 100% 0.02s&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: Device signature = 0x1e950f&lt;br /&gt;
avrdude.exe: erasing chip&lt;br /&gt;
 ft245r:  bitclk 230400 -&amp;gt; ft baud 115200&lt;br /&gt;
avrdude.exe: reading input file &amp;quot;0x3f&amp;quot;&lt;br /&gt;
avrdude.exe: writing lock (1 bytes):&lt;br /&gt;
&lt;br /&gt;
Writing | ################################################## | 100% 0.02s&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: 1 bytes of lock written&lt;br /&gt;
avrdude.exe: verifying lock memory against 0x3f:&lt;br /&gt;
avrdude.exe: load data lock data from input file 0x3f:&lt;br /&gt;
avrdude.exe: input file 0x3f contains 1 bytes&lt;br /&gt;
avrdude.exe: reading on-chip lock data:&lt;br /&gt;
&lt;br /&gt;
Reading | ################################################## | 100% 0.03s&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: verifying ...&lt;br /&gt;
avrdude.exe: 1 bytes of lock verified&lt;br /&gt;
avrdude.exe: reading input file &amp;quot;ATmegaBOOT_168_atmega328.hex&amp;quot;&lt;br /&gt;
avrdude.exe: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex&lt;br /&gt;
avrdude.exe: writing flash (32670 bytes):&lt;br /&gt;
&lt;br /&gt;
Writing | ################################################## | 100% 17.27s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: 32670 bytes of flash written&lt;br /&gt;
avrdude.exe: verifying flash memory against ATmegaBOOT_168_atmega328.hex:&lt;br /&gt;
avrdude.exe: load data flash data from input file ATmegaBOOT_168_atmega328.hex:&lt;br /&gt;
avrdude.exe: input file ATmegaBOOT_168_atmega328.hex auto detected as Intel Hex&lt;br /&gt;
avrdude.exe: input file ATmegaBOOT_168_atmega328.hex contains 32670 bytes&lt;br /&gt;
avrdude.exe: reading on-chip flash data:&lt;br /&gt;
&lt;br /&gt;
Reading | ################################################## | 100% 7.97s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: verifying ...&lt;br /&gt;
avrdude.exe: 32670 bytes of flash verified&lt;br /&gt;
avrdude.exe: reading input file &amp;quot;0x0F&amp;quot;&lt;br /&gt;
avrdude.exe: writing lock (1 bytes):&lt;br /&gt;
&lt;br /&gt;
Writing | ################################################## | 100% 0.05s&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: 1 bytes of lock written&lt;br /&gt;
avrdude.exe: verifying lock memory against 0x0F:&lt;br /&gt;
avrdude.exe: load data lock data from input file 0x0F:&lt;br /&gt;
avrdude.exe: input file 0x0F contains 1 bytes&lt;br /&gt;
avrdude.exe: reading on-chip lock data:&lt;br /&gt;
&lt;br /&gt;
Reading | ################################################## | 100% 0.02s&lt;br /&gt;
&lt;br /&gt;
avrdude.exe: verifying ...&lt;br /&gt;
avrdude.exe: 1 bytes of lock verified&lt;br /&gt;
&lt;br /&gt;
avrdude.exe done.  Thank you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
至此即可完成 bootloader 的烧写&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
avrdude 官方从 5.11 起开始支持 bitbang 模式，试了一下，烧写的速度奇慢，不建议使用&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 烧写软件 ==&lt;br /&gt;
&lt;br /&gt;
=== avrdude ===&lt;br /&gt;
&lt;br /&gt;
优秀的 open source 跨平台下载工具。 配合编程器使用&lt;br /&gt;
&lt;br /&gt;
[http://www.nongnu.org/avrdude/ 项目首页]  [http://savannah.nongnu.org/projects/avrdude 官方站点]&lt;br /&gt;
&lt;br /&gt;
  avrdude -p mcu_type -B bitclock(optional) -c programmer_type -P  &amp;lt;port&amp;gt; -U 输出文件及选项&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
avrdude 探测编程器是直接枚举所有的 usb 设备，用的是 libusb 库，如果机器 usb 口插有多个编程器，可在 &amp;lt;port&amp;gt; 加数字来区分&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== AVR Fuse&amp;amp;Lock (熔丝位) ==&lt;br /&gt;
&lt;br /&gt;
AVR Fuse&amp;amp;Lock (熔丝位) 可看作可编程控制的跳线，用于配置单片机的基础状态&lt;br /&gt;
&lt;br /&gt;
共有 4 个字节，分别为：hfuse, lfuse, efuse, lock&lt;br /&gt;
&lt;br /&gt;
ATMEGA 的各型号 MCU 这些位的定义都不同，像 ATMEGA 168 和 ATMEGA328p 也不同，具体可参考手册页&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
以下只讨论 328p 的情形&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== hfuse，熔丝高位 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=100% cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=#0066bb&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| HFuse Bit&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [7]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [6]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [5]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [4]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [3]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [2]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [1]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [0]&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| Bit Name&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | RSTDISBL&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | DWEN&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | SPIEN&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | WDTON&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | EESAVE&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BOOTSZ1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BOOTSZ0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BOOTRST&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | External Reset Disable&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Debug Wire Enable&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | SPI programming Enable&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Watch Dog Timer always ON&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | EEPROM memory is preserved through the chip erase&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Select bootloader area size&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Select bootloader area size&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Select Reset Vector&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Default Value&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (external reset enable)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (debug wire disable)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0 (SPI enable)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (WDT always off)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (EEPROM not reserved)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (Reset Vector = 0x0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AVR 系列寄存器的值，一般 0 为真&lt;br /&gt;
&lt;br /&gt;
对于 BOOTSZ1 BOOTSZ0 其对应为：&lt;br /&gt;
&lt;br /&gt;
[[文件:M328p-bootsz.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
表中的 Boot Reset Address (Start Boot Loader Section) 要将 hfuse 的 BOOTRST 置为 0 时，才有效&lt;br /&gt;
&lt;br /&gt;
!特别注意：表中的地址都是为字为单位，换算成常用的字节单位要乘以 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
可见：BOOTSZ 为 00 时，boot area size = 4KB （2048 words，一个 words 是 16bit，两个字节） ; 01 时为 2KB; 10 时为 1KB; 11 时为 512B&lt;br /&gt;
&lt;br /&gt;
BOOTSZ 为 01 时，boot area 地址为 0x3C00 ~ 0x3FFF （字为单位），则以字节为单位的地址范围为：0x7800 ~ 0x7FFF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino 使用 ATmega 328p 一般将 hfuse 设置为 0xDA，对应二进制值为 1101 1010，低三位与默认值不同，指示 boot area size 为 2KB，地址范围 0x7800 ~ 0x7FFF，Reset Vector = 0x7800&lt;br /&gt;
&lt;br /&gt;
0x7800 这个值，也与 Arduino 使用的 bootloader 文件 ATmegaBOOT_168_atmega328.hex 的起始地址一致&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lfuse，熔丝低位 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=100% cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=#0066bb&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| LFuse Bit&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [7]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [6]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [5]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [4]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [3]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [2]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [1]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [0]&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| Bit Name&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKDIV8&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKOUT&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | SUT1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | SUT0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKSEL3&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKSEL2&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKSEL1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | CKSEL0&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Divide clock by 8&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Clock Output&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Select start-Up Time&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Select start-Up Time&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Seleck Clock source&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Seleck Clock source&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Seleck Clock source&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Seleck Clock source&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Default Value&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino 使用 ATmega 328p 一般将 lfuse 设置为 0xFF，对应二进制值为 1111 1111&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== efuse，扩展熔丝位 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=100% cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=#0066bb&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| EFuse Bit&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [7]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [6]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [5]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [4]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [3]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [2]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [1]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [0]&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| Bit Name&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BODLEVEL2&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BODLEVEL1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BODLEVEL0&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Brown-out Detector trigger level&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Brown-out Detector trigger level&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Brown-out Detector trigger level&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Default Value&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (false)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (false)&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1 (false)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino 使用 ATmega 328p 一般将 efuse 设置为 0x05，对应二进制值为 0000 0101&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== lock，加密位 ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; width=100% cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; bgcolor=#0066bb&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| lock Bit&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [7]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [6]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [5]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [4]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [3]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [2]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [1]&lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | [0]&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot;  width=50| Bit Name&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BLB12&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BLB11&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BLB02&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | BLB01&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | LB2&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | LB1&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Description&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | NA&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Boot Lock Bit&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Boot Lock Bit&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Boot Lock Bit&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Boot Lock Bit&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Lock Bit&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | Lock Bit&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;background:#eeeeee&amp;quot; | Default Value&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;background:#ffffff&amp;quot; | 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BLB12/BLB11, BLB02/BLB01 针对的是 Application Section 和 Bootloader Section 的访问控制。其中 BLB12/BLB11 用于从 Application Section 到 Bootloader Section 的访问控制。BLB02/BLB01 则用于从 Bootloader Section 到 Application Section 的访问控制&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BLB12 BLB11 (Application 到 Bootloader):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11  --&amp;gt;  无限制&lt;br /&gt;
10  --&amp;gt;  不可写 Bootloader Section&lt;br /&gt;
01  --&amp;gt;  不可读 Bootloader Section&lt;br /&gt;
00  --&amp;gt;  不可写不可读 Bootloader Section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BLB02 BLB01 (Bootloader 到 Application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11  --&amp;gt;  无限制&lt;br /&gt;
10  --&amp;gt;  不可写 Application Section&lt;br /&gt;
01  --&amp;gt;  不可读 Application Section&lt;br /&gt;
00  --&amp;gt;  不可写不可读 Application Section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
!对于 Lock Bit 位 LB2 LB1，应引起高度重视，此二位用于对 Flash, EEPROM, Fuse (hfuse, lfuse, efuse) 和 Boot Lock Bit 的访问控制&lt;br /&gt;
&lt;br /&gt;
LB2 LB1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11  --&amp;gt;  无限制&lt;br /&gt;
10  --&amp;gt;  禁止对 Flash 和 EEPROM 通过并口和串口编程；Fuse 也被锁（不可读不可写）&lt;br /&gt;
00  --&amp;gt;  禁止对 Flash 和 EEPROM 通过并口和串口编程及验证；Fuse 和 Boot Lock Bit 也被锁（不可读不可写）&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
由此可见，对 LB2 LB1 的操作应放在最后，一旦操作提交，将不可更改&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Arduino 使用 ATmega 328p，bootloader area 不可访问时 lfuse 设置为 0x0F，对应二进制值为 0000 1111&lt;br /&gt;
&lt;br /&gt;
bootloader area 可读可写时 lfuse 设置为 0x3F，对应二进制值为 0011 1111&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Comcat</name></author>	</entry>

	</feed>