<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Atmel_AVR</id>
	<title>Atmel AVR - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Atmel_AVR"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Atmel_AVR&amp;action=history"/>
	<updated>2026-07-13T04:57:20Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Atmel_AVR&amp;diff=778513&amp;oldid=prev</id>
		<title>~2025-45230-4：​/* 程式執行 */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Atmel_AVR&amp;diff=778513&amp;oldid=prev"/>
		<updated>2025-08-27T05:54:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;程式執行&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{noteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[File:ATmega8 01 Pengo.jpg|thumb|right|AVR ATmega8微控制器，28針PDIP封裝]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Atmel AVR&amp;#039;&amp;#039;&amp;#039;系列是一种基于改进的[[哈佛结构]]、8位元～32位元[[精简指令集]]（{{lang|en|Reduced Instruction Set Computing，RISC}}）的[[微控制器]]，由[[Atmel]]公司于1996年研发。AVR系列是首次采用[[闪存]]（{{lang|en|Flash Memory}}）作为数据存储介质的[[单芯片]]微控制器之一，同時代的其它微控制器多採用一次寫入可编程ROM、EPROM或是EEPROM。&lt;br /&gt;
&lt;br /&gt;
目前AVR处理器发展了六个系列，分别是：tinyAVR，ATtiny系列；megaAVR，ATmega系列；XMEGA，ATxmega系列；Application-specific AVR，面向特殊应用的AVR系列，增加LCD控制器、[[USB]]控制器、PWM等特性；[[FPSLIC]]，[[FPGA]]上的AVR核；AVR32，32位AVR系列，包含SIMD和DSP以及音视频处理特性，与[[ARM架構]]形成[[竞争]]。&lt;br /&gt;
&lt;br /&gt;
== 發展簡史 ==&lt;br /&gt;
AVR架構最早由兩名{{tsl|en|Norwegian Institute of Technology|挪威理工學院}}（Norwegian Institute of Technology，NTH）的學生Alf-Egil Bogen和Vegard Wollan共同構思出來。&amp;lt;ref&amp;gt;自1996年以後，NTH成為挪威科技大學（Norwegian University of Science and Technology，NTNU）的一部分&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;storyofavr&amp;quot;&amp;gt;{{cite web |url=http://www.youtube.com/watch?v=HrydNwAxbcY |title=The Story of AVR |publisher=youtube.com |accessdate=2013-09-15 |archive-date=2013-10-17 |archive-url=https://web.archive.org/web/20131017175119/http://www.youtube.com/watch?v=HrydNwAxbcY |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
原始的AVR微控制單元由當地[[特隆赫姆|Trondheim]]的一所[[特殊應用積體電路]]（ASIC）工作室Nordic VLSI（現為{{tsl|en|Nordic Semiconductor|北歐半導體}}）負責開發。當時它被稱作μRISC（Micro RISC），還可使用Nordic VLSI的矽[[晶圓]]等基礎材料來製作其晶片。當這些技術被Nordic VLSI賣給[[Atmel]]後，其內部架構被當時任職於Atmel挪威子公司的Bogen以及Wollan進一步發展。架構設計者們和來自{{tsl|en|IAR Systems|IAR系統公司}}的[[編譯器]]編寫者們緊密合作，來確保[[指令集]]提供更高效率的[[高階程式語言]]編譯。&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/COMPILER.pdf |title=The AVR Microcontroller and C Compiler Co-Design |format=PDF |date= |accessdate=2012-09-19 |archive-date=2012-01-27 |archive-url=https://web.archive.org/web/20120127030622/http://www.atmel.com/dyn/resources/prod_documents/COMPILER.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
而在命名上，Atmel解釋『AVR』這個名稱不是某幾個單詞的縮寫，也不代表任何特別的事物。AVR的創造者們也沒有給出明確的關於『AVR』之表意的答案。&amp;lt;ref name=&amp;quot;storyofavr&amp;quot; /&amp;gt;然而，一般認為，『AVR』表示&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;lf (Egil Bogen) and &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;egard (Wollan)&amp;#039;s &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;ISC processor。&amp;lt;ref&amp;gt;{{cite web |url=http://www.cse.unsw.edu.au/~pcb/avr/avr.html |title=UNSW School of Computer Science and Engineering - General AVR Info |publisher=Cse.unsw.edu.au |date= |accessdate=2012-09-19 |deadurl=yes |archiveurl=https://web.archive.org/web/20120623131604/http://www.cse.unsw.edu.au/~pcb/avr/avr.html |archivedate=2012-06-23 }}&amp;lt;/ref&amp;gt;而本文裏用的『AVR』一般指8位元RISC的Atmel AVR微控制器的產品線。&lt;br /&gt;
&lt;br /&gt;
首個AVR微控制器的產品線是AT90S8515，擁有和[[英特爾8051]]微控制器相同的40針雙列直插封裝（DIP），包括外部多路位址和資料[[匯流排]]。但&amp;lt;span style=&amp;quot;text-decoration: overline&amp;quot;&amp;gt;RESET&amp;lt;/span&amp;gt;線和英特爾8051相反，8051的是高電平有效RESET，而AVR是低電平有效&amp;lt;span style=&amp;quot;text-decoration: overline&amp;quot;&amp;gt;RESET&amp;lt;/span&amp;gt;，但除此以外，其它針腳是完全一致的。&lt;br /&gt;
&lt;br /&gt;
== 裝置概覽 ==&lt;br /&gt;
AVR是一個修改過的[[哈佛架構]]計算機，程式和資料分別儲存在各自的擁有不同[[定址空間]]的物理內存系統上，但有能力使用特殊的指令可從程式存儲器內讀取資料項。&lt;br /&gt;
&lt;br /&gt;
=== 基本家族系列 ===&lt;br /&gt;
AVR分為六大家族系列：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;tinyAVR&amp;#039;&amp;#039;&amp;#039; — ATtiny系列&lt;br /&gt;
** 0.5～16kB的程式記憶體&lt;br /&gt;
** 6～32管腳封裝&lt;br /&gt;
** 有限的外圍裝置集合&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;megaAVR&amp;#039;&amp;#039;&amp;#039; — ATmega系列&lt;br /&gt;
** 4～512kB的程式記憶體&lt;br /&gt;
** 28～100管腳封裝&lt;br /&gt;
** 擴展指令集（乘法指令和管理更大容量的程式記憶體管理指令）&lt;br /&gt;
** 更多的外圍裝置集合&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XMEGA&amp;#039;&amp;#039;&amp;#039; — ATxmega系列&lt;br /&gt;
** 16～384kB程式記憶體&lt;br /&gt;
** 44～64～100管腳封裝（A4、A3、A1）&lt;br /&gt;
** 擴展效能特性，像是DMA、『事件系統』、以及加密支援&lt;br /&gt;
** 更多外圍裝置集，包含類比數位轉換器（ADC）&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Application-specific AVR&amp;#039;&amp;#039;&amp;#039; — 面向特殊應用的AVR&lt;br /&gt;
** 基於megaAVR搭載其它AVR家族系列上所沒有的特殊的功能，例如[[LCD]]控制器、[[通用串列匯流排|USB]]控制器、 進階[[脈衝寬度調變|PWM]]、[[控制器區域網路|CAN]]等等&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;FPSLIC (AVR with FPGA)&amp;#039;&amp;#039;&amp;#039; — 載於FPGA上的AVR核心&lt;br /&gt;
** [[現場可程式邏輯閘陣列|FPGA]] 5K 至 40K 個邏輯閘&lt;br /&gt;
** AVR程式碼使用[[SRAM]]，和其它AVR系列不同&lt;br /&gt;
** AVR核心可以運作於最高50MHz的[[時脈]]速率上&amp;lt;ref&amp;gt;{{Cite web |url=http://www.atmel.com/products/other/field_programmable_gate_array/default.aspx |title=Field Programmable System Level Integrated Circuit |accessdate=2013-09-15 |archive-date=2012-11-27 |archive-url=https://web.archive.org/web/20121127102202/http://www.atmel.com/products/other/field_programmable_gate_array/default.aspx |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;32-bit AVRs&amp;#039;&amp;#039;&amp;#039; — 32位元AVR&lt;br /&gt;
{{Main|AVR32}}&lt;br /&gt;
:2006年Atmel發布新的基於32位元的AVR32架構之微控制器。新架構包含[[單指令流多資料流]]運算（SIMD）和[[數位訊號處理器]]（DSP）指令，以及其他音頻視頻處理功能。這個[[32位元]]的裝置家族系列將與[[ARM架構]]的處理器形成競爭。儘管指令集和其它[[精簡指令集]]的中央處理核心相似，但與原來的AVR架構和其它ARM核心是不相容的。&lt;br /&gt;
&lt;br /&gt;
=== 存儲器架構 ===&lt;br /&gt;
[[快閃記憶體]]、[[電子抹除式可複寫唯讀記憶體]]（EEPROM）、以及[[靜態隨機存取記憶體]]（SRAM）都內建於一顆晶片上，在大部分應用中盡可能無需外部記憶體。一些裝置擁有並列的外部匯流排選擇以允許加入額外的資料記憶體或記憶體對映裝置。幾乎所有的裝置（除最小規模TinyAVR晶片以外）擁有串列匯流排，可以用來連接更大的串列EEPROM或快閃記憶體。&lt;br /&gt;
&lt;br /&gt;
==== 程式記憶體 ====&lt;br /&gt;
程式指令被存儲於非易失性的快閃記憶體上。儘管微控制器只有8位元，但每指令可以存取1至2個[[16位元]]的位元組。&lt;br /&gt;
&lt;br /&gt;
程式記憶體的容量大小常用於裝置命名（如ATmega64x產品線擁有64KB的快閃記憶體，ATmega32x產品線擁有32KB的快閃記憶體）&lt;br /&gt;
&lt;br /&gt;
不支援擴充程式記憶體，所有由AVR核心執行的程式碼皆需要儲存於內部的記憶體。然而AT94 FPSLIC AVR/FPGA晶片沒有這種限制。&lt;br /&gt;
&lt;br /&gt;
==== 內部資料記憶體 ====&lt;br /&gt;
資料定址空間由暫存器檔案、輸出/輸入暫存器、和SRAM組成。&lt;br /&gt;
&lt;br /&gt;
==== 內部暫存器 ====&lt;br /&gt;
[[Image:AVR ATXMEGA 128A1.JPG|thumb|right|Atmel ATxmega128A1，100管腳[[TQFP]]封裝]]&lt;br /&gt;
AVR擁有32個的暫存器，分別為( R0 到 R31 )並被歸類為8位元RISC裝置。&lt;br /&gt;
&lt;br /&gt;
在大部分AVR架構上，工作暫存器被對映為首位的32個記憶體位址（0000&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;–001F&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;）接著是64個輸出/輸入（I/O）暫存器（0020&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;–005F&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;）。&lt;br /&gt;
&lt;br /&gt;
實際上SRAM是在這些暫存器分段（定址為0060&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;）後開啟。（注意輸出/輸入暫存器空間在一些擴展裝置上或許更大，使得載入記憶體對映I/O暫存器將佔用一部分SRAM的定址空間）&lt;br /&gt;
&lt;br /&gt;
雖然有這些分開的定址解決方案和最佳化的暫存器檔案和I/O暫存器存取操作碼，但它們全部都可以被加以處理和操作，就像它們都在SRAM上。&lt;br /&gt;
&lt;br /&gt;
在XMEGA系列上，工作暫存器檔案並沒有對映到資料定址空間上；正因為如此，不能將XMEGA的工作暫存器像是在SRAM上那樣對待。作為替代，I/O暫存器被對映到資料定址空間內非常靠前的位置上。另外，資料定址空間中用作I/O暫存器的總數上大幅增加，容量達到4096位元組（0000&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;–0FFF&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;）。然而，正如前代產品一樣，快速I/O操作指令只可到達首先的64個I/O暫存器位置（首位的32個位置是給位元運算指令使用的）。往後的I/O暫存器，XMEGA系列預留了一個4096位元寬度位址空間範圍，可被選作將內建EEPROM對映至資料定址空間上（1000&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;–1FFF&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;）。實際可用的SRAM位於這些被佔用的定址空間以後，從2000&amp;lt;sub&amp;gt;16&amp;lt;/sub&amp;gt;開始。&lt;br /&gt;
&lt;br /&gt;
==== EEPROM ====&lt;br /&gt;
幾乎所有的AVR微控制器都擁有內建的EEPROM，用來提供半永久的資料存儲。和快閃記憶體一樣，EEPROM可在斷電以後維持其內存儲的資料。&lt;br /&gt;
&lt;br /&gt;
在大部分的AVR架構中，內部EEPROM記憶體並沒有對映到微控制單元的可定址記憶體空間上。它只可和外掛的外圍裝置一樣使用特別的指針暫存器和讀/寫指令來存取，這使得EEPROM的存取速度要比其它內建的隨機存取記憶體（RAM）要慢不少。&lt;br /&gt;
&lt;br /&gt;
然而，某些SecureAVR（AT90SC）家族系列的裝置&amp;lt;ref&amp;gt;{{Cite web |url=http://www.atmel.com/images/doc1010.pdf |title=Atmel Smart Card ICs |accessdate=2013-09-15 |archive-date=2014-02-25 |archive-url=https://web.archive.org/web/20140225223925/http://www.atmel.com/images/doc1010.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;使用了一種特殊的EEPROM根據相關配置設定對映至資料或程式記憶體。XMEGA家族系列也允許EEPROM對映至西遼定址空間上。&lt;br /&gt;
&lt;br /&gt;
因EEPROM的擦寫次數不是無限的——Atmel的技術細明規格表上標明是100,000次擦寫週期——一個設計精良的EEPROM擦寫常程序應比較EEPROM位址上的內容和請求寫入的內容並在需要進行改變的位置處才真正執行寫入操作。&lt;br /&gt;
&lt;br /&gt;
注意，在很多情況下擦除和寫入是分開執行的，以位元組為單位進行，這有助於延長其使用壽命，因位元僅需全被設定為『1』（擦除）或選擇性地置『0』（寫入）。&lt;br /&gt;
&lt;br /&gt;
=== 程式執行 ===&lt;br /&gt;
Atmel的AVR核心擁有二階單級[[管線]]設計。這意味著處理器可以在執行現在的指令同時將下一個指令讀取。絕大部分的指令執行僅需一到兩個時鐘週期，使AVR核心在眾多8位元微控制器中是最快的。&lt;br /&gt;
&lt;br /&gt;
AVR核心被設計為能夠高效運行經編譯的[[C語言]]程式，還內建了數個指針指令與之相適配。&lt;br /&gt;
&lt;br /&gt;
=== 指令集系統 ===&lt;br /&gt;
{{Main|Atmel AVR指令集}}&lt;br /&gt;
AVR指令集系統相比其它大多數的位元微控制器的，[[正交]]指令集要多出不少，尤其是AVR當下的競爭對手英特爾8051以及其[[仿製品]]和[[PIC微控制器]]。然而，這不完全是固定的：&lt;br /&gt;
* [[指针 (信息学)|指針]]暫存器  R26 至R31 是X、Y和Z擁有的定址能力，彼此是不同的&lt;br /&gt;
* [[暫存器]]位置R0至R15和暫存器R16至R31擁有不同的定址能力&lt;br /&gt;
* 輸出/輸入埠0～31和埠32至63擁有不同的定址能力&lt;br /&gt;
* 當SER不影響標誌時CLR會影響標誌，即使它們是互補指令。CLR設定所有位元為「零」而SER指令則設定所有位元為「一」。（注意，CLR指令是EOR R, R的虛假操作；SER指令是LDI  R,$FF的短指令。數學運算時當遇到搬移/載入/存儲/分支，像是EOR會變更標誌而像是LDI的則不會）&lt;br /&gt;
* 讀取存儲在程式記憶體（快閃型）的唯獨資料時要用到特殊的LPM指令；快閃記憶體匯流排會為指令記憶體保留。&lt;br /&gt;
&lt;br /&gt;
此外，一些晶片差異會影響代碼的生成。代碼指針（包括在堆疊上的返回位址）在晶片上是兩個位元組長度以及有高達128KB的快閃記憶體，但在一些更大的晶片上變成3個位元組長度;並不是所有的晶片都有硬體乘法器；擁有超過8KB快閃記憶體的晶片擁有分支和附帶更大範圍的傳喚指令；或者四者都有。&lt;br /&gt;
&lt;br /&gt;
通常的規則指令集使得可直接使用C（或者甚至Ada）編譯器來對AVR進行編程。[[GCC]]也在離目前相當長的時間以前就支援包括AVR在內的多種微控制器，而且還被廣泛使用。事實上，Atmel也從為小型微控制器用的編譯器的主要開發者當中徵集並導入他們的作品。以確定高階程式語言編譯器中最常用的指令集特性。&lt;br /&gt;
&lt;br /&gt;
=== MCU速度 ===&lt;br /&gt;
AVR系列可以很好地支援0～20MHz的時脈，某些裝置更達到32MHz。更低功耗的作業一般需要一個較低的時脈。所有最近的AVR裝置（Tiny、Mega、以及Xmega，但90年代的產品除外）有內建[[石英晶体谐振器|石英振盪器]]、可以不需要外接時鐘或震盪器電路。一些AVR裝置還有一個系統時鐘預定標器，提升系統時鐘至1024。這個預定標器可以被軟體執行時重新配置，允許對時脈進行最佳化作業。&lt;br /&gt;
&lt;br /&gt;
因所有在暫存器R0至R31位址的運算作業僅需一個時脈，AVR可以擁有每兆赫（MHz）最高每秒一百萬指令（MIPS），換言之一顆8MHz的AVR處理器擁有8MIPS的效能。從記憶體載入和儲存資料需要兩個時脈，分支也需要兩個時脈。在一些較新的『3位元組PC』上，像是ATmega2560的裝置，分支操作會比之前的裝置慢上一個時脈。&lt;br /&gt;
&lt;br /&gt;
=== 開發 ===&lt;br /&gt;
[[File:Atmel STK 500 DSC00557 wp.jpg|thumb|Atmel STK500 開發板]]&lt;br /&gt;
AVR由於開發工具可輕易免費或低價獲得，包括一些合適價格的開發板裝置和免費的開發軟體，而擁有龐大的開發群體。AVR也以眾多不同的名義販售，但它們都使用相同的基本核心，只是周邊設備和記憶體的搭配不一樣。每個系列的不同晶片之間的相容性相當好，儘管輸出輸入控制器的搭配會有所不同。&lt;br /&gt;
&lt;br /&gt;
更多可參見[[#外部連結]]一節中與AVR開發的相關站點。&lt;br /&gt;
&lt;br /&gt;
=== 功能特性 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 編程界面 ==&lt;br /&gt;
&amp;lt;!--注意：這一章節的原始內容於2011年2月20日從http://en.wikibooks.org/wiki/Embedded_Systems/Atmel_AVR#Programming_Interfaces移動至英語維基百科 --&amp;gt;&lt;br /&gt;
有多種方法可將程式載入至AVR晶片上。不同AVR家族系列的程式寫入方法都各有不同。&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== ISP ===&lt;br /&gt;
[[Image:Isp headers.svg|thumb|6- and 10-pin ISP header diagrams]]&lt;br /&gt;
The [[in-system programming]] (ISP) programming method is functionally performed through [[w:Serial Peripheral Interface Bus|SPI]], plus some twiddling of the Reset line. As long as the SPI pins of the AVR are not connected to anything disruptive, the AVR chip can stay soldered on a [[Printed circuit board|PCB]] while reprogramming. All that is needed is a 6-pin connector and programming adapter. This is the most common way to develop with an AVR.&lt;br /&gt;
&lt;br /&gt;
The Atmel AVR ISP mkII device connects to a computer&amp;#039;s USB port and performs in-system programming using Atmel&amp;#039;s software.&lt;br /&gt;
&lt;br /&gt;
AVRDUDE (AVR Downloader/UploaDEr) runs on [[Linux]], [[FreeBSD]], Windows, and {{nowrap|[[Mac OS X]]}}, and supports a variety of in-system programming hardware, including Atmel AVR ISP mkII, Atmel JTAG ICE, older Atmel serial-port based programmers, and various third-party and &amp;quot;do-it-yourself&amp;quot; programmers.&amp;lt;ref&amp;gt;{{cite web|url=http://savannah.nongnu.org/projects/avrdude |title=AVRDUDE programmer |publisher=Savannah.nongnu.org |date= |accessdate=2012-09-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PDI ===&lt;br /&gt;
The Program and Debug Interface (PDI) is an Atmel proprietary interface for external programming and on-chip debugging of XMEGA devices. The PDI supports high-speed programming of all non-volatile memory (NVM) spaces; flash, EEPROM, fuses, lock-bits and the User Signature Row. This is done by accessing the XMEGA NVM controller through the PDI interface, and executing NVM controller commands. The PDI is a 2-pin interface using the Reset pin for clock input (PDI_CLK) and a dedicated data pin (PDI_DATA) for input and output.&amp;lt;ref&amp;gt;{{cite web|url=http://www.atmel.com/dyn/resources/prod_documents/doc8282.pdf |title=PDI programming driver |format=PDF |date= |accessdate=2012-09-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== High voltage serial ===&lt;br /&gt;
High-voltage serial programming (HVSP)&amp;lt;ref&amp;gt;{{cite web |url=http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon_HVSP_Description.htm |title=HVSP_Description |publisher=Support.atmel.no |date= |accessdate=2012-09-19 |archive-url=https://web.archive.org/web/20091012094540/http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/AVRDragon/AVRDragon_HVSP_Description.htm |archive-date=2009-10-12 |dead-url=yes }}&amp;lt;/ref&amp;gt; is mostly the backup mode on smaller AVRs. An 8-pin AVR package does not leave many unique signal combinations to place the AVR into a programming mode. A 12 volt signal, however, is something the AVR should only see during programming and never during normal operation.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== 高電壓平行 ===&lt;br /&gt;
高電壓平行編程（High voltage parallel programming，HVPP）是作為『最後手段』來使用，亦可能是以壞熔絲設定修復AVR晶片的唯一方法。&lt;br /&gt;
&lt;br /&gt;
=== 開機載入程式（Bootloader） ===&lt;br /&gt;
大部分的AVR型號可以保留一個開機載入程式區域，有256位元組至4KB的大小，可儲存多次編程的程式碼。在復位後，首先執行bootloader，然後終止一些使用者運行的程式，當需要重新變成或跳轉至主程式時。在任何界面可用時，程式碼便可以進行重新編程，像PXE（預啟動執行環境）一樣，透過乙太網適配器能讀取加密處理的二進制資料。Atmel有關於許多匯流排介面的應用程式註釋及源碼。&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/doc2541.pdf |title=DES-encrypted AVR Bootloader |format=PDF |date= |accessdate=2012-09-19 |archive-date=2011-10-27 |archive-url=https://web.archive.org/web/20111027053429/http://www.atmel.com/dyn/resources/prod_documents/doc2541.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/doc2589.pdf |title=AES-encrypted AVR Bootloader |format=PDF |date= |accessdate=2012-09-19 |archive-date=2011-10-27 |archive-url=https://web.archive.org/web/20111027082425/http://www.atmel.com/dyn/resources/prod_documents/doc2589.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/doc2589.pdf |title=XMEGA Bootloader |format=PDF |date= |accessdate=2012-09-19 |archive-date=2011-10-27 |archive-url=https://web.archive.org/web/20111027082425/http://www.atmel.com/dyn/resources/prod_documents/doc2589.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/doc7618.pdf |title=AVR USB Bootloader |format=PDF |date= |accessdate=2012-09-19 |archive-date=2011-12-03 |archive-url=https://web.archive.org/web/20111203135510/http://www.atmel.com/dyn/resources/prod_documents/doc7618.pdf |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ROM ===&lt;br /&gt;
AT90SC系列的AVR晶片可以使用原廠掩模[[ROM]]而不使用快閃記憶體來作為程式記憶體。&amp;lt;ref&amp;gt;{{cite web |url=http://www.atmel.com/dyn/resources/prod_documents/doc24632.pdf |title=Atmel’s Self-Programming Flash Microcontrollers |format=PDF |date= |accessdate=2012-09-19 }}{{dead link|date=2017年11月 |bot=InternetArchiveBot |fix-attempted=yes }}&amp;lt;/ref&amp;gt; 因為在大批量生產基於AVR的特定功能控制器時，比起在開發階段使用價格較高的快閃記憶體，在生產階段使用掩模ROM可以有效提高成本效益。&lt;br /&gt;
&lt;br /&gt;
=== aWire ===&lt;br /&gt;
aWire是一種新的單線除錯界面，可用於新版UC3L AVR32裝置上。&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
{{Portal|電子學}}&lt;br /&gt;
* [[Arduino]]&lt;br /&gt;
* [[AVR32]]&lt;br /&gt;
&lt;br /&gt;
== 參考資料 ==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
== 擴展閱讀 ==&lt;br /&gt;
* &amp;#039;&amp;#039;Embedded C Programming and the Atmel AVR&amp;#039;&amp;#039;; Richard H Barnett, Sarah Cox, Larry O&amp;#039;Cull; 560 pages; 2006; ISBN 978-1-4180-3959-2.&lt;br /&gt;
* &amp;#039;&amp;#039;C Programming for Microcontrollers Featuring ATMEL&amp;#039;s AVR Butterfly and WinAVR Compiler&amp;#039;&amp;#039;; Joe Pardue; 300 pages; 2005; ISBN 978-0-9766822-0-2.&lt;br /&gt;
* &amp;#039;&amp;#039;Atmel AVR Microcontroller Primer : Programming and Interfacing&amp;#039;&amp;#039;; Steven F Barrett, Daniel Pack, Mitchell Thornton; 194 pages; 2007; ISBN 978-1-59829-541-2.&lt;br /&gt;
* &amp;#039;&amp;#039;Arduino : A Quick Start Guide&amp;#039;&amp;#039;; Maik Schmidt; 276 pages; 2011; ISBN 978-1-934356-66-1.&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
{{Commons category multi|Arduino|Atmel Microcontrollers}}&lt;br /&gt;
{{Wikibooks|Embedded Systems|Atmel AVR}}&lt;br /&gt;
;主要資源&lt;br /&gt;
* {{cite web|language=en|url=http://www.atmel.com/default.asp|title=Atmel官方网站|accessdate=2011-03-28|archive-date=2010-11-22|archive-url=https://web.archive.org/web/20101122084901/http://atmel.com/default.asp|dead-url=no}}&lt;br /&gt;
* [http://www.atmel.com/products/avr/ Atmel AVR homepage]{{Wayback|url=http://www.atmel.com/products/avr/ |date=20120121005753 }}&lt;br /&gt;
*[http://www.nongnu.org/avr-libc/ AVR-Libc homepage]{{Wayback|url=http://www.nongnu.org/avr-libc/ |date=20130919235834 }}&lt;br /&gt;
* [http://www.avrfreaks.net/ AVR Freaks community]{{Wayback|url=http://www.avrfreaks.net/ |date=20130918090002 }}&lt;br /&gt;
* [http://microembeded.blogspot.com/2011/04/avr-serial-port-programmer.html Atmel AVR Serial Port Programmer]{{Wayback|url=http://microembeded.blogspot.com/2011/04/avr-serial-port-programmer.html |date=20111011160452 }}&lt;br /&gt;
* [http://www.arduino.cc/ Arduino community]{{Wayback|url=http://www.arduino.cc/ |date=20110223104208 }}&lt;br /&gt;
* {{dmoz|Computers/Hardware/Components/Processors/AVR/}}, numerous AVR links&lt;br /&gt;
* [http://www.avrfreaks.net/index.php?module=FreaksArticles&amp;amp;func=downloadArticle&amp;amp;id=21 Why you need a clock source for the AVR?]{{Dead link}}&lt;br /&gt;
* [http://www.robotplatform.com/knowledge/AVR%20Basics/avr_basics.html AVR Basics]{{Wayback|url=http://www.robotplatform.com/knowledge/AVR%20Basics/avr_basics.html |date=20130912022303 }} - AVR guide for beginners&lt;br /&gt;
* [https://web.archive.org/web/20130326024446/http://makecircuits.com/blog/2009-03-23-simplest-atmega8-programmer-using-lpt-port.html Simplest AVR programmer Using LPT Port]&lt;br /&gt;
* [http://www.protostack.com/blog/2009/07/atmega8-breadboard-circuit-part-2-of-3-the-microcontroller/ Atmega8 Breadboard Tutorial]{{Wayback|url=http://www.protostack.com/blog/2009/07/atmega8-breadboard-circuit-part-2-of-3-the-microcontroller/ |date=20130919004034 }}&lt;br /&gt;
* AVR DIP-Package Pinout Diagrams: [http://www.flickr.com/photos/28521811@N04/8451023182/sizes/l/in/photostream/ ATtiny44/45/84/85]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8451023182/sizes/l/in/photostream/ |date=20150922193744 }}, [https://web.archive.org/web/20130801033936/http://www.pighixxx.com/pgdev/Temp/arduino_atmega328_Web.png ATmega328P], [http://www.flickr.com/photos/28521811@N04/8449933887/sizes/l/in/photostream/ ATmega644P]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8449933887/sizes/l/in/photostream/ |date=20150922193736 }}, [http://www.flickr.com/photos/28521811@N04/8451021230/sizes/l/in/photostream/ ATmega1284P]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8451021230/sizes/l/in/photostream/ |date=20150923045721 }}&lt;br /&gt;
* AVR TQFP-Package Pinout Diagrams: [http://www.flickr.com/photos/28521811@N04/8449935217/sizes/l/in/photostream/ ATmega328]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8449935217/sizes/l/in/photostream/ |date=20151122185250 }}, [http://www.flickr.com/photos/28521811@N04/8451021492/sizes/l/in/photostream/ ATmega2560]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8451021492/sizes/l/in/photostream/ |date=20151121172025 }}, [http://www.flickr.com/photos/28521811@N04/8467610175/sizes/l/in/photostream/ ATmega32U4]{{Wayback|url=http://www.flickr.com/photos/28521811@N04/8467610175/sizes/l/in/photostream/ |date=20150923045743 }}&lt;br /&gt;
&lt;br /&gt;
{{RISC-based processor architectures}}&lt;br /&gt;
{{CPU technologies|精简指令集}}&lt;br /&gt;
{{Microcontrollers}}&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
[[Category:微控制器]]&lt;/div&gt;</summary>
		<author><name>~2025-45230-4</name></author>
	</entry>
</feed>